Homework 7: University Web App

The goal of this homework is to practice creating web applications.

Instructions

You should work with your course project team.

Note: Windows users: if you haven’t already, complete Step 2 from my guide to Configuring Windows for Docker Development.

Task 1: Run Example Apps

Follow the instructions in the csci220-uwsgi repo to run the example apps. Each team member should run all of the apps on their own device. The apps are listed from easiest to most challenging to run:

Note: miniFacebook.py requires particular database tables. postgres_files/miniFacebook.sql contains SQL to create these tables. See “Hints” in the README for instructions for executing SQL from a file.

Note: nginx is configured to listen on port 80, which is a privileged port. On macOS, follow these instructions to allow Docker to listen on port 80.

Task 2: Create a University App

Next, you will create a university web app, based on the database you saw in the Database Programming with SQL lab. postgres_files/university.sql contains SQL to create tables and add sample records. Your web app should support adding, updating, deleting, and displaying:

I recommend using pair programming to implement “adding, updating, deleting, and displaying” for students. Then, you can divide the remaining tasks as you think best.

To receive full-credit, your web app should support all of the functionality listed above.

Note: Creating, reading, updating, and deleting are common operations. They are often referred to as the CRUD operations.

Note: If you haven’t already, read this WSGI tutorial. Together with the course slides, this should give you a good understanding of WSGI applications.

Note: You are welcome to use generative AI for this assignment (e.g., GitHub Copilot).

Submit

One teammate should submit their team’s web app. They should upload:

/**********************************************************************
 * All teammates' names                                               *
 **********************************************************************/


/**********************************************************************
 * Approximate number of hours to complete this assignment            *
 **********************************************************************/

Number of hours for 1st TEAMMATE's NAME:

Number of hours for 2nd TEAMMATE's NAME:

Number of hours for 3rd TEAMMATE's NAME:

Number of hours for 4th TEAMMATE's NAME:


/**********************************************************************
 * Were all teammates able to get the example apps running on         *
 * their own devices? If not please explain.                          *
 **********************************************************************/


/**********************************************************************
 * Do you attest that this work is your own, in accordance with       *
 * the statement on academic integrity in the syllabus?               *
 **********************************************************************/

Yes or no?


/**********************************************************************
 * List any other comments here.                                      *
 **********************************************************************/