Final Project
The climax of this course is its final project. The final project is your opportunity to take your newfound savvy with SQL for a spin and develop your very own database. We ask that you build something of interest to you, that you solve a substantive problem, that you positively impact others, or that you change the world. Strive to create something you’re proud of.
Since software development is rarely a one-person effort, you are allowed an opportunity to collaborate with one or two classmates for this final project. Needless to say, it is expected that every student in any such group contribute equally to the design and implementation of the project. Moreover, it is expected that the scope of a two- or three-person group’s project be, respectively, twice or thrice that of a typical one-person project. Although no more than three students may design and implement a given project, you are welcome to solicit advice from others, so long as you respect the course’s policy on academic honesty.
Ideas
The ideas for what you could build are endless, though to get your thinking started, a few others have attempted projects like the below!
- A database to find your favorite songs, representing artists, playlists, albums, and more (à la Spotify or Apple Music)
- A database to manage personal finances, storing bank account balances, transactions, budgets, and more (à la Mint, Quicken, or your favorite banking app)
- A database to help others find friends when they move to a new city, representing people, cities, events, connections, and more (à la Meetup or Bumble BFF)
Components
The final project is comprised of three components, each due at different points during the term:
- Proposal, due 2023-11-26T23:59:00-05:00.
- Status Report, due 2023-12-10T23:59:00-05:00.
- Implementation, due 2023-12-20T23:59:00-05:00.
Sample Project
If you’d find it helpful to see a sample project, consider exploring the staff’s own! The sample project creates a database for managing students, instructors, and submissions in this very course.
Download the sample project
Log into cs50.dev, click on your terminal window, and execute cd
by itself. You should find that your terminal window’s prompt resembles the below:
$
Next execute
wget https://cdn.cs50.net/sql/2023/x/project/sample-project.zip
in order to download a ZIP called sample-project.zip
into your codespace.
Then execute
unzip sample-project.zip
to create a folder called sample-project
. You no longer need the ZIP file, so you can execute
rm sample-project.zip
and respond with “y” followed by Enter at the prompt to remove the ZIP file you downloaded.
Now type
cd sample-project
followed by Enter to move yourself into (i.e., open) that directory. Your prompt should now resemble the below.
sample-project/ $
If all was successful, you should execute
ls
and see DESIGN.md
, schema.sql
, and queries.sql
—the three components of the sample project.