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:

  1. Proposal, due 2024-04-14T23:59:00-04:00.
  2. Status Report, due 2024-04-28T23:59:00-04:00.
  3. Implementation, due 2024-05-11T23:59:00-04: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.