Skip to Content
AssignmentsOverview

Assignments

This course includes four progressive assignments that will guide you through building a Paper Management System — a real-world full-stack web application for academic paper management. Each assignment builds upon the previous one, gradually incorporating more advanced technologies and features.

At a Glance

What you will build:

  • A full-stack Paper Management System developed incrementally
  • Backend APIs for managing paper metadata
  • A frontend interface for creating, viewing, and updating records

How it is structured:

  • Each assignment extends the same system with a new focus:

    • Assignment 1: Backend API + SQLite
    • Assignment 2: Migrate to PostgreSQL + Prisma (data modeling & queries)
    • Assignment 3: Add a React frontend that talks to your API
    • Assignment 4: Migrate to Next.js + modern styling
  • Later assignments reuse and extend earlier work

What you will practice:

  • Backend API design and databases
  • Frontend development with React and Next.js
  • Modern full-stack development workflows

The Paper Management System: Background

In academic peer review, editors often select reviewers based on their previous publications. As a result, reviewers are frequently asked to maintain and submit lists of their representative papers.

Conventionally, this information is managed manually (e.g., spreadsheets or repeated form submissions), which is time‑consuming, error‑prone, and inconsistent across venues.

The Paper Management System models a realistic solution: a centralized web application where users can store, update, and manage their paper records in a structured and reusable way.

You do not need prior knowledge of academic publishing. The domain is simply a realistic setting for practicing full‑stack development.

Assignment Timeline

Each assignment builds upon the previous one, so make sure to start early and maintain a steady progress throughout the course.

AssignmentTopicRelease DateDue Date
1Basic Backend DevelopmentJanuary 18February 1
2PostgreSQL with Prisma ORMFebruary 1February 15
3React FrontendFebruary 15March 1
4Next.js + Modern StylingMarch 1 March 6March 15 March 22

Assignment 4 has been slightly rescheduled so that all required Next.js concepts are covered in lecture before the handout is released.

Note
  • All assignments are due at 11:59 PM EST on the due date.
  • Each assignment contributes 12.5% to your final grade.
  • Assignments must be submitted through Quercus.
  • Start early to allow time for questions and debugging.

Assignment Structure

Assignment 1: Basic Backend Development

Build the foundational backend API for paper metadata management using Express.js and SQLite.

Key Features:

  • RESTful API implementation with Express
  • CRUD operations for paper metadata (title, authors, year, etc.)
  • Database operations with SQLite
  • Input validation
  • Error handling

Technologies:

  • Express.js
  • SQLite
  • REST API principles

Assignment 2: PostgreSQL with Prisma ORM

Migrate the backend to PostgreSQL with Prisma ORM and enhance data modeling.

Key Features:

  • Database migration to PostgreSQL with Prisma ORM
  • Query operations with Prisma
  • Data validation

Technologies:

  • PostgreSQL
  • Prisma ORM
  • Express.js
  • TypeScript

Assignment 3: React Frontend

Develop a React frontend for managing papers and authors and interacting with the backend.

Key Features:

  • React components for paper management
  • Form handling with validation
  • API integration with fetch()
  • Frontend-backend integration
  • Client-side routing with React Router

Technologies:

  • React
  • React Router
  • fetch() API

Assignment 4: Full-Stack Next.js Application

Upgrade to Next.js with modern styling.

Key Features:

  • Migration from React (Vite) to Next.js
  • Modern UI with Tailwind CSS and shadcn/ui

Technologies:

  • Next.js
  • Tailwind CSS
  • shadcn/ui

AI Usage for Assignments

AI tools are permitted in this course, but assignments are designed for hands-on skill development.

For assignments, students are expected to:

  • Write most of the code themselves
  • Reason about the solution before using AI
  • Use AI primarily for clarification, debugging, or small, isolated snippets
  • Understand, verify, and be able to explain all submitted code

Using AI to generate large portions of an assignment solution, skeleton code, or end-to-end implementations is not appropriate for assignments and may negatively impact learning and grading.

Each assignment requires a short reasoning.md file to document your thinking and any AI usage. See AI Usage Policy – Core Principles for expectations, and AI Usage Guidelines & Checklists for examples and best practices.

Submission Guidelines

  • All assignments must be submitted through Quercus.
  • Each assignment has specific submission requirements detailed in its handout.
  • A short reasoning.md file is required for each assignment to document your thinking and any AI usage.
  • Auto-grading will be used to evaluate submissions.

Questions and Support

  • Check assignment specifications carefully before starting.
  • Use GitHub Discussions  for assignment-related questions.
  • Attend office hours for additional support.
Last updated on