CSCI 338: Fall 2025

Software Engineering

CSCI 338: Fall 2025

Assignments > Project 2: Full Stack Application

Due on Fri, 12/05 @ 11:59PM. 100 Points.

This guide will walk you through building a complete full-stack application from scratch. Follow each section in order, and verify your work at each checkpoint.

Collaboration & AI Policy

You may:

  • Work in pairs or individually on this assignment – your choice.
  • If you work with a partner:
    • both parties must have their own individual repo and deploy their own repo on Railway
    • Any extra credit earned will be split evenly between the two partners to ensure fairness (e.g., if 10 extra credit points are awarded, each person will receive 5 points)
  • Discuss concepts, approaches, and debugging strategies with classmates
  • Share links to documentation, tutorials, or Stack Overflow posts
  • Help each other understand error messages or explain how technologies work
  • Use AI tools (ChatGPT, GitHub Copilot, etc.) to help understand concepts, debug errors, or generate small code snippets

You may NOT:

  • Share, copy, or view another student’s code (including via screenshots, GitHub repos), unless it is with your partner
  • Submit code written by someone else (including AI-generated code that you don’t understand)
  • Use AI tools to generate large portions of your application without understanding what the code does
  • Post your code publicly or share it in a way that others can copy it

Remember: The goal is for you to learn and demonstrate your understanding. If you can’t explain how your code works, you haven’t learned it. All submitted code must be your own work, even if you received help understanding concepts or debugging issues.

Table of Contents

Part 1. Build Your System

  1. Introduction
  2. Project Setup & Git
  3. Database
  4. Backend
  5. “Starter” Frontend
  6. Build Your Containers with the Docker Compose File

Part 2. Get React to Communicate with FastAPI

  1. Implement Frontend <> Backend Communication
  2. Before Moving On: How to work with your containers
  3. Add Continuous Integration on GitHub

Part 3. Extending the App

  1. Backend + Frontend Extensions (complete all required tasks)

Part 4. Deployment

  1. Railway Deployment

What To Submit

Before You Submit

Before submitting, verify you have completed all of the following:

20 pts Part 1: Build Your System

25 pts Part 2: React ↔ FastAPI Communication

35 pts Part 3: Required Enhancements

20 pts Part 4: Deployment

Optional: Complete any extra credit enhancements for additional points.

Submit

Once you have verified that your project is done, paste a link to your GitHub Repo and to your Railway deployment into the Moodle submission checkbox.