Skip to main content

CIS 371

Bug Tracking

Fall 2022

This assignment was originally designed by Prof. Engelsma

For this sequence of assignments, you will build a simple web application using a server-side application of your choice (Express, Rails, Flask, .etc) The framework must be server-side. You may not use client-side systems such as React, Angular, Vue, etc.

This is a solo assignment.

Please use this GithubClassroom URL: https://classroom.github.com/a/ENrW9Zfp

Part 1: Bug Overflow --- Modeling Bugs

Use what you have learned in class to create a single model called Bug that models the bugs in a project. (Later you will add additional models to the app.) Bugs are represented with this information:

Generate basic screens for managing bugs (list of all bugs, show bug, edit bug, and delete bug).

Use sqlite3 or some other "real" database. Don't use my fake "in-memory" DB.

Pay little attention to styling at this point (e.g. you need not write fancy CSS/SCSS files). Your final product should look somewhat like the screenshots inserted below:

Sample Screenshot Sample Screenshot Sample Screenshot

Grading

This part of the assignment will be graded by demo. When your project is ready, schedule a demonstration with me.

Part 2: Bug Overflow --- Associating Users With Bugs

In this part of the assignment you will extend the Bug Overflow application that you started in the previous section by adding a User model to the app and associating users and bugs.

Users typically report bugs, so we need to have a model for users. In this iteration of the application, add an additional model for users. For each user you should have the following fields:

Generate the model and basic screens for managing users. (list of all users, show user, edit user, and delete user).

Using the TDD approach outlined in lecture, write the automated tests and then implement the following model requirements:

Formally model the association between users and bugs so that every bug is owned by a single user, and a single user may own many bugs. In addition, make sure you modify the appropriate bug views so that a user can be specified when a bug is entered/updated, or shown in the bug listing or bug detail views. Make sure that you present users as "Firstname Lastname" when they are shown in views.

Bugs should reference their user by the user's primary key (e.g., the id). Don't link Bugs to user by the user's name, since names aren't necessarily unique.

Pay little attention to styling at this point (e.g. you need not write much CSS/SCCS). Your final product should look like the screenshots inserted below. Your user views (not shown below) should also be fully functional.

Sample Screenshot Sample Screenshot Sample Screenshot

Grading

This part of the assignment will be graded both demo and source code evaluation. When your code is ready, please commit it with the message [grade me 2]. Then schedule a demonstration time with me.

Part 3: Bootstrap

In this part you will focus on making your Bugs Overflow app more attractive using a responsive frontend framework of your choice. Use what you learned in lecture to dress up your app using Bootstrap (or an alternate frontend framework of your choice: Foundation, etc.) Here are the general requirements your solution needs to meet:

You have some freedom to style as you see fit, but do make sure each view is reasonably attractive and fully responsive.

Important: If you prefer, you can use Bootstrap to style your React app instead.

Deliverables:


Updated Thursday, 17 November 2022, 2:14 PM

W3c Validation