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.
| Assignment | Topic | Release Date | Due Date |
|---|---|---|---|
| 1 | Basic Backend Development | January 18 | February 1 |
| 2 | PostgreSQL with Prisma ORM | February 1 | February 15 |
| 3 | React Frontend | February 15 | March 1 |
| 4 | Next.js + Modern Styling |
Assignment 4 has been slightly rescheduled so that all required Next.js concepts are covered in lecture before the handout is released.
- 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.mdfile 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.