You will do Part 2 of Project 1 with the same team as for Part 1. If your team partner dropped the class and you did not submit a contingency plan for this with your Part 1 submission, then unfortunately you will still have to complete the whole project by yourself. If your partner dropped the class and you did submit a contingency plan for this with your Part 1 submission, then you are welcome to switch to this reduced version of your project.
For continuity, the TA who grades your Part 1 will grade the two remaining parts of your project. (In many but not all cases, this is the TA with whom you met to discuss Part 1.) This TA will be your "project mentor" for the remainder of your project; the name of your mentor will be included in your graded Part 1. You are welcome to contact other members of the class staff (including the instructor) about your project, but your project mentor should be your main contact, for continuity, since your mentor will be grading all parts of the project.
As mentioned earlier, both students in a team will receive the same grade for Project 1. Team partners are expected to fully collaborate with each other on solving the project. However, communication about project details with somebody other than your partner is not permitted, and is considered cheating. If in doubt about what kinds of consultations are allowed, check with the instructor, or see the Computer Science Department's policies and procedures on academic honesty. Questions of a general nature that may be of interest to the whole class should be posted to the Ed Discussion board.
For Part 2 of this project, which you will submit electronically, you will implement the relations that you created in Part 1 of the project on our PostgreSQL database server and load your tables with some real or realistic data, as you outlined in Part 1.
ssh to connect to your Google Cloud virtual
machine, using the instructions available
here.Start the Cloud SQL proxy (as discussed in
our Google
Cloud Setup instructions) by running:
nohup
./cloud-sql-proxy --credentials-file=proxy-key.json --port 5454
coms4111-db-ta:us-east1:server-4111-fall-2026 > proxy.log 2>&1
&
Then connect to our section's PostgreSQL database server,
which is running at 127.0.0.1, by executing:
psql -U <uni> -h 127.0.0.1 -p 5454 -d
proj1part2
Note: You only need to set up one single
PostgreSQL account/database per team, even though your team was
assigned one account per teammate. Pick just one of the two accounts
arbitrarily and work on it together with your teammate. You will
need to let us know with your submission which of the team's two
PostgreSQL accounts we should use for grading (see "What to
submit..." section below, item 2).
After running the line above, you will be prompted for your
PostgreSQL password, which you should have received by email from
Alisha and which you shouldn't share with anyone other than your
teammate. You don't need to change the (strong) password that we
sent you. But if you change it, please make sure that you pick a
password that is long (at least 16 characters) and has a mix of
upper- and lower-case letters, digits, and special characters. To
change your PostgreSQL password when you first connect, which we
recommend, type the following inside the psql prompt:
ALTER USER <uni> WITH PASSWORD '<new
password>'
(the single quotes are
necessary).
varchar(n) with an appropriate value for n as the
domain for variable-length string attributes such as names, instead
of a fixed-length char domain. varchar(n) will simplify
your handling of such attributes in Part 3.IMPORTANT NOTE: So that you don't exhaust your Google Cloud credits --and also to avoid wasting energy-- make sure to turn off your virtual machine on Google Cloud whenever you are not using it, by following the instructions available here.
You will submit this part of the project electronically on Gradescope. The deadline is Friday October 23 at 5 p.m. ET. Just as for Part 1, you should submit your project exactly once per team, rather than once per student. (Click on "Add Group Member" after one of you has submitted your project.) You should submit a single (uncompressed) file containing:
Please check the Project Lateness Policy.
The use of generative AI tools (e.g., ChatGPT, Claude, Gemini) is allowed for Part 2, but we strongly advise against using them. (However, using LLMs to generate data for your project, as mentioned in Part 1 of the project in the "data plan" discussion, is fine.) The development and understanding of your own SQL statements are critical learning objectives for this course, and are needed to prepare for exams and also for successfully implementing Part 3 of Project 1. AI models routinely produce designs that overlook subtle integrity constraints or conflict with the modeling principles taught in class. You and your teammate are fully responsible for the final submission; you must thoroughly understand your database schema and verify that it fully matches the concepts and principles that we use in our class.
Your grade for Part 2 of Project 1 will be split as follows: