Final Project: Multi-model CRUD App

For your final project, you'll work with a team to design and build a complete web application.

Team Formation

This is a Team Project. You'll work in groups of 2-3 students to design and build your application.

  1. You are expected to work with the same group as you did for your mid-term project. If you need to change your group for any reason, then reach out to the instructor.
  2. Join the same team in Github Classroom. Work on your project together. Ideally, find a time when you can all join a video call and work together on the project. Everyone in the group should have a roughly equal contribution to the project.
  3. Submit your project as a group in Gradescope.

Join the project on Github Classroom

Note: Do not join a team you have not communicated with ahead of time. If someone joins your team without communicating with you, please reach out to the instructor.

Requirements

  • Your application must use Flask or Express.
  • Your application must use a relational database.
  • Your application must have multiple related database models.
  • Your application must have features to Create, Read, Update, and Delete at least some of those models from a web interface.
  • Your application must be designed such that it works properly on different devices (desktop and mobile).
  • Your application must be deployed to the web.

You must also include a README.md file that

  • explains what your app does
  • explains the tables in your schema
  • explains how to set the app up and run it locally

Optional components

The following are optional, but not required:

  • you may use an ORM library
  • you may use a CSS framework
  • you may use an API
  • you may have users and authentication
  • you may use a library to manage authentication and authorization.

Presentations

During the final week(s) of class, your team will share your project to the rest of the class.

Record a 5 minute video to share what the application does, explain the code for the features implemented, and share challenges you faced in creating the application.

Submission

For credit, you must:

  • Join the same team in Github as your teammates
  • Submit your code together in Gradescope
  • Submit your project in Anchor
  • Submit the link to the video and deployed app here.

Guidelines on the Video Submission

  • Length of video should be between 5 to 7 minutes.
  • The video should begin with a brief overview/description of your webapp.
  • Video should show all the pages of the webapplication (running on a browser).
  • Video should contain a code walkthrough, going through all your files.
  • Video should show your database and the tables therein, with sample data
  • Video should show a full description of using your web app.
  • Upload the video to any accessible platform of your choice and submit the link here.

Rubric

PointsCriteriaDescription
10 ptsApplication runsFlask or Express app that can start and run without errors
15 ptsMultiple related modelsSchema has two or more tables, appropriately related by foreign keys
20 ptsCRUD actionsCan create, read, update, and delete items using the web app interface
10 ptsWorks on MobileApp is styled so that all functionality is available on different screen sizes
10 ptsApplication QualityApp is designed clearly and effectively
10 ptsCode QualityCode is clear, uses good variable names, code style, and clean separation of helper functions
15 ptsDeploymentApp is deployed
10 ptsPresentationVideo submission
10 pts(Bonus) Additional FeaturesApp includes additional features, such as a third-party API or Authentication
100Total110 possible points with the bonus, scored out of 100