CSCI 338: Spring 2025

Software Engineering

CSCI 338: Spring 2025

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:

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 Review and RatingSummary. 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:

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:

Then, one member from each team should paste a link to their PROPOSAL.md, which should be merged to main, on the Moodle.