Final Project - Final Milestone: Build your own database system
In this final part of the project, you will work on two major components to complete a database application: (a) implementing the database and (b) building the front-end user interface.
Upon finishing the project, you will polish your thoughts on the entire project and present them in both a written document and video demonstration, which will serve as a consistent, informative form of presentation. This will include a complete walkthrough of the motivation, design details, technical specifications, and an overview of functionalities driven by interaction with your database.
The final project consists of two main parts: implementation and documentation.
Key Information & Requirements
- Released: December 3, 2025
- Due: Tuesday, December 23, 2025 at 11:59 PM
- Submission: E3 (Group submission per team, and individual submission per person)
- Deliverable: Single PDF document, Demo Video (.mov), Code (.zip), and Reflection & Peer Evaluation (.txt)
- Weight: 12% of overall course grade (60% of final project grade)
- Language: English or Mandarin (based on your team's preference)
Requirements
Implementation
1. Back-end: Implementing your database
- Creating your schema: Create the SQL tables based on your schema from Milestone 2.
- Set up a database (PostgreSQL, MySQL, or a cloud-based database, such as GCP or AWS)
- Set up all of your tables (from Milestone 2) in your database
- Note: While finishing your final design, you may find that you need to revise the schema from your Milestone 2 submission. This is common and, in fact, encouraged as part of the design process. If you revise your schema, you need to acknowledge the changes and provide a brief summary of the decisions made (as also described below in the Documentation section).
- Populate the database with your chosen dataset.
- Note: The data should be realistic and sufficient to demonstrate that your project is practical. Insert at least 100 realistic/real tuples into each table in your database. This should be based on your description in Milestone 2.
- Write all necessary SQL commands to be used by your app
- Include all key and type constraints.
2. Front-end: Building the user interface
- Implement the application using any web framework you like. We recommend Python with Flask, as there are abundant resources online for creating a system that incorporates interaction with a database, but feel free to use any framework that your group is familiar with.
- Please carefully read the requirements below:
- Your application must have functionalities that allow users to perform the four types of fundamental operations: Create, Read, Update, Delete (CRUD). Specifically, these functions need to perform the following:
- Retrieve data from the database
- Add data to the database
- Update data in the database
- Delete data from the database
- Additional Feature: do at least one of the following:
- Sort data
- Search or filter data
- Export data
- Upload / import data
- Your application must execute SQL query strings on your database, instead of using an ORM. We set this constraint because the learning goal of the final project is to familiarize you with the practice of writing and debugging SQL queries. Therefore, we will not permit tools or libraries that attempt to make this process easier.
- It is acceptable for you to build a system with plain text pages. You are not required to make it stylish or sophisticated.