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.
- 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.
- 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.
- 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
Points | Criteria | Description |
---|---|---|
10 pts | Application runs | Flask or Express app that can start and run without errors |
15 pts | Multiple related models | Schema has two or more tables, appropriately related by foreign keys |
20 pts | CRUD actions | Can create, read, update, and delete items using the web app interface |
10 pts | Works on Mobile | App is styled so that all functionality is available on different screen sizes |
10 pts | Application Quality | App is designed clearly and effectively |
10 pts | Code Quality | Code is clear, uses good variable names, code style, and clean separation of helper functions |
15 pts | Deployment | App is deployed |
10 pts | Presentation | Video submission |
10 pts | (Bonus) Additional Features | App includes additional features, such as a third-party API or Authentication |
100 | Total | 110 possible points with the bonus, scored out of 100 |