Project 2: Commerce

Milestones

Project Deadline 2023-07-09T23:59:00-04:00
Late Deadline 2023-07-12T23:59:00-04:00
Grading Deadline 2023-07-15T23:59:00-04:00

Staff Solution

github.com/vault50/e33a-web-solutions/tree/master/2/solution

Please notify Doug if you don’t have access to the above via vault50.

Features

Per the specification for this project, students are expected to implement the following seven features:

  • Models: The application should have at least three models in addition to the User model: one for auction listings, one for bids, and one for comments made on auction listings.
  • Create Listing: Users should be able to visit a page to create a new listing. They should be able to specify a title for the listing, a text-based description, and what the starting bid should be.
  • Active Listings Page: The default route of the web application should let users view all of the currently active auction listings. For each active listing, this page should display (at minimum) the title, description, current price, and photo (if one exists for the listing).
  • Listing Page: Clicking on a listing should take users to a page specific to that listing. On that page, users should be able to view all details about the listing, including the current price for the listing.
  • Watchlist: Users who are signed in should be able to visit a Watchlist page, which should display all of the listings that a user has added to their watchlist. Clicking on any of those listings should take the user to that listing’s page.
  • Categories: Users should be able to visit a page that displays a list of all listing categories. Clicking on the name of any category should take the user to a page that displays all of the active listings in that category.
  • Django Admin Interface: Via the Django admin interface, a site administrator should be able to view, add, edit, and delete any listings, comments, and bids made on the site.

This project is graded along the three of axes of Correctness, Design, and Style. Each should be treated as independently as possible (code that is very broken, but has some good ideas that didn’t come to fruition and is extremely well-styled should maybe earn a 2 for Correctness, a 3 for Design, and a 5 for Style, for example.)

Correctness

Award:

  • 5 if the requirements above are met with the student having introduced no bugs.
  • 4 if there is one minor bug.
  • 3 if there are multiple minor bugs, or one major bug, or at least one of the requirements appears to be missing entirely.
  • 2 if there are several major bugs, or at least two of the requirements appear to be missing entirely.
  • 1 for a very clearly low-effort (missing the implementation of three or more requirements) or very broken submission.
  • 0 for no submission at all.

Design

Design is primarily concerned with how elegant, efficient, readable, and clear the student’s code is. Some design questions to consider and leave feedback on include (but are not limited to):

  • Is the code unnecessarily complex?
  • Is code reused where possible?
  • Are there unnecessary loops, conditions, and/or variables?
  • Are there places where the student’s code could have been made more efficient?
  • Is the code logical in structure?
  • Is there repetition of code that could be more cleanly written with the addition of a function?

Award:

  • 5 for the best designs, with absolutely no room for improvement.
  • 4 for better than average designs, with maybe a few quirks.
  • 3 for good, solid designs, though there are a few suggestions for areas for improvement.
  • 2 for fair designs that feature significant room for improvement.
  • 1 for poor designs reflecting very little effort or consideration of design implications of coding decisions.
  • 0 for no submission at all.

Style

Style is concerned with the aesthetics of the code (whitespace, comments, etc.). Some style questions to consider and leave feedback on include (but are not limited to):

  • Is the student consistent about the use of single quotation marks vs. double quotation marks?
  • Is the use of spacing and indentation consistent?
  • Are there appropriate comments in the code?
  • Is the use of variable names clear, meaningful, and consistent?
  • Do files have appropriate names?
  • Are there places where an extra newline would help with readability? Are there places where there are too many unnecessary newlines?
  • Do lines run on for a long time where it would have been clearer to separate into multiple lines?

Award:

  • 5 for the best style, with virtually no room for improvement.
  • 4 for better than average style, with maybe a few quirks.
  • 3 for good, solid style, though there are a few suggestions for areas for improvement.
  • 2 for fair style that feature significant room for improvement.
  • 1 for poor style reflecting very little effort or consideration of aesthetics, commenting, etc.
  • 0 for no submission at all.