Assignments > Project 2a: The Proposal
Due on Mon, 04/14 @ 11:59PM. 5 Points.
new Video Walkthroughs
Part of the Stack Video Length 1 Overview Introduction to the system architecture 12:11 2 Overview Docker development environment 6:27 3 Overview Docker production environment 4:51 4 Python Web Server How the SQLAlchemy setup works 11:54 5 Python Web Server How to make a new SQLAlchemy model and database table 18:46 6 Python Web Server How to make a FastAPI Endpoint 9:18 7 Python Web Server Understanding the Depends module and Pydandic 9:56 8 Deployment Supabase (for the PostgreSQL Database) 6:35 9 Deployment Render (for the Python + React Web App) 10:25 10 Deployment GitHub Actions (CI/CD) 17:11 11 UI / React Walkthrough of existing UI code 13:01 12 UI / React Todo Component Stub 12:58 13 UI / React Display TODOs in UI 7:34 14 UI / React + Server Filter by logged-in user 9:04
Here is a link to the full Project 2 description
Before beginning implementation, your team must submit a brief proposal outlining your planned features for approval, following the guidelines outlined below. To submit this assignment, one person will create a markdown file at the root of your project called PROPOSAL.md, with all of the components outlined in the instructions. The author of PROPOSAL.md will make a pull request and then have another member of their team review and approve it. Once the PR has been approved, make sure to merge it into main.
1. Project Description
Write a brief (1–2 paragraph) summary of what your team plans to build. Describe:
- The feature or extension you’re adding to the academic planning tool
- The problem it solves or what it improves
- Who it’s for (target user)
- The two new models, API routes, and UI screens you’re planning to add
Sample Description: We are building a Course Review feature that allows students to leave feedback on courses. This helps future students make informed choices. Our models will include
ReviewandRatingSummary. Routes will allow users to create and fetch reviews. New UI screens will include a review form and a ratings dashboard.
2. Team Roles & Responsibilities
List your team members and the role(s) and responsibilities they will take on. You are welcome (even encouraged) to share roles and collaborate on features.
| Name | Role | Responsibilities |
|---|---|---|
| [Name] | Project Manager / Scrum | - [Responsibility 1] - [Responsibility 2] |
| [Name] | Backend | - [Responsibility 1] - [Responsibility 2] |
| [Name] | Database | - [Responsibility 1] - [Responsibility 2] |
| [Name] | Frontend/UI | - [Responsibility 1] - [Responsibility 2] |
| [Name] | DevOps & Deployment | - [Responsibility 1] - [Responsibility 2] |
| [Name] | QA/Testing | - [Responsibility 1] - [Responsibility 2] |
| [Name] | Docs & Demo | - [Responsibility 1] - [Responsibility 2] |
3. First Tasks
List the specific first task each person will complete to get the project started (to be completed by the next project deliverable). Example…
| Name | First Task |
|---|---|
| [Name] | e.g., Create wireframes for new UI screen |
| [Name] | e.g., Design data model for new feature |
| [Name] | e.g., Set up project board and task tracking |
| [Name] | e.g., Start implementation of a FastAPI route |
| [Name] | e.g., Configure deployment and test cloud setup |
4. Local Setup Verification
Each team member should confirm that the project is running locally on their machine.
Paste a screenshot or code output from each person that shows:
- The frontend running in the browser, OR
- Terminal output showing backend and frontend servers running
Screenshots or terminal output:
Name 1: screenshot or paste output here
Name 2: screenshot or paste output here
(Add more as needed)
What to submit
Make sure that you have completed all of the required tasks:
- Project description written
- Team roles and responsibilities listed
- First task listed for each member
- Everyone has the app running locally
- Local setup screenshots or output included
Then, one member from each team should paste a link to their PROPOSAL.md, which should be merged to main, on the Moodle.