Choose your section

Khoury College of Computer Sciences

CS 4550-01 Web Development

CRN 11464 · Undergrad · In person · Boston · Fall 2026 · 4 credits

Dr. Jose Annunziato · j.annunziato@northeastern.edu

Companion to Developing Full Stack Next.js Web Applications. How to use the book. Course website accounts (Sign up first with your Canvas email — this site is not Canvas). This section meets Wednesdays, starting September 9, 2026. Lecture recordings are available to enrolled students for a legitimate absence — not as a replacement for class.

Course goals

This course is about building full-stack Web applications that are dynamic, data-driven, and interactive. The emphasis is on the software-engineering problems of combining several languages and runtimes — markup, style, client JavaScript, an HTTP API, and a database — into one product you can deploy and explain.

We work from the interactive book Developing Full Stack Next.js Web Applications. CS 4550 and CS 5610 share this sequence. You will implement Kambaz, a learning-management interface inspired by Canvas, in layers that match the book: structure first, then style, then data and events, then a REST API, then persistence.

By the end of the term you should be able to design a user interface in HTML, style it with CSS and Tailwind, make it interactive with React and Next.js, hold client state in Zustand, expose a Node.js / Express REST API, and store documents in MongoDB — then ship the result to the public Web.

  • HTML

    Document structure, forms, navigation, and layouts (Chapter 1).

  • CSS and Tailwind

    Selectors, the box model, flex/grid, and utility-first styling. Tailwind is the primary framework in this book — not Bootstrap.

  • JavaScript and Next.js / React

    Language fundamentals, data-driven rendering, and the App Router (Chapter 3).

  • Client state with Zustand

    Events, useState, Context, and Zustand stores for shared application data. Redux Toolkit appears in the labs as optional literacy so you can read a reducer when you meet one; Kambaz uses Zustand.

  • Node.js and Express REST APIs

    HTTP servers, routes, JSON, and a sibling Express project that serves Kambaz (Chapter 5).

  • MongoDB

    Local MongoDB, Mongoose models, Atlas, and wiring the API to collections (Chapter 6).

How to use the book

This website is the companion to Developing Full Stack Next.js Web Applications. CS 4550 and CS 5610 share the same book. Required work is the main book content — the chapter text, labs, and LiveDemos — plus whatever an assignment explicitly names. Open the book.

Optional book videos are not the same as lecture recordings. For attendance and lecture recordings, see Meeting information.

Course website accounts

Graded quizzes. Sign up with the same Northeastern email you use on Canvas so site progress can be mapped back to the roster. Taking a graded quiz still requires that Canvas email to be on the course roster. Creating a site account does not enroll you on the roster.

Meeting information

Each section meets once a week at 6:00–9:00pm ET — Monday, Tuesday, or Wednesday. In-person sections (CS 4550-01 and CS 5610-02) meet in Shillman Hall 105. CS 5610-09 meets online Tuesdays, 6:00–9:00pm ET.

Section
CS 4550-01 · CRN 11464
Pattern
Once a week · Wednesday
Time
6:00–9:00pm ET
Location
Shillman Hall 105
First class
Wednesday, September 9, 2026
Final exam window
Monday, December 14, 2026 Sunday, December 20, 2026 Academic calendar

All lectures are recorded and available to enrolled students. Find them in your Canvas course under Zoom Meetings → Recordings tab — not under Piazza Resources. Missing a lecture for a legitimate reason is fine — use the recording. Recordings are not a general replacement for attending live lectures.

University holidays — including Labor Day, Indigenous Peoples’ Day, Veterans Day, and fall break (November 25–29; classes resume November 30) — do not skip a lecture week. Fall break sits in Chapter 6 week 1 (week of Nov 23); Veterans Day sits in Chapter 5 week 1 (week of Nov 9). If a holiday falls on your meeting day, you are not required to attend. A recording of the lecture will be posted, and you are responsible for that content.

Undergraduate, in person, Boston. Meets once a week on Wednesdays, 6:00–9:00pm ET, starting September 9, 2026.

The September 9 meeting is orientation and syllabus only. Shared Chapter 1 begins the week of September 14.

Academic calendar

Course-relevant Fall 2026 dates from the university registrar — holidays, the start of classes, add/drop, fall break, and the final exam window. Session A/B and third-of-term rows are omitted.

University holidays — including Labor Day, Indigenous Peoples’ Day, Veterans Day, and fall break (November 25–29; classes resume November 30) — do not skip a lecture week. Fall break sits in Chapter 6 week 1 (week of Nov 23); Veterans Day sits in Chapter 5 week 1 (week of Nov 9). If a holiday falls on your meeting day, you are not required to attend. A recording of the lecture will be posted, and you are responsible for that content.

Dedicated page: Academic Calendar. Chapter weeks stay on the agenda — holidays do not skip a slot.

DateDayEvent
September 7, 2026MondayUSA: Labor Day, no classes
September 9, 2026WednesdayFirst day of full-semester fall classes
September 22, 2026TuesdayLast day of add/drop period for full-semester fall classes
October 12, 2026MondayUSA: Indigenous Peoples Day, no classes
November 11, 2026WednesdayUSA: Veterans Day, no classes
November 25, 2026 – November 29, 2026Wednesday–SundayFall break, no classes (first day November 25)
November 30, 2026MondayFall classes resume
December 13, 2026SundayLast day of full-semester fall classes with final exams
December 14, 2026MondayFirst day of fall final exam period (if applicable)
December 20, 2026SundayLast day of fall final exam period (if applicable)

Source: Northeastern University Registrar academic calendar · 2026–2027 Academic Calendar (PDF). Dates are subject to change.

Teaching assistants and office hours

Teaching assistants and office hours will be posted here when they are assigned. Until then this table is empty — TBA.

Dedicated page: Office Hours · Piazza Hours.

NameRoleHoursLocationContact
TBA

Evaluation

ComponentWeightWhat it is
Assignments (A1–A6)30%Six incremental implementations of Kambaz, one per book chapter. Each assignment is submitted as a GitHub repository and a deployed Vercel URL.
Quizzes (Q1–Q6)10%Short in-class checks taken at the end of lecture at the end of each chapter on this course website (~10 questions, about 30 minutes). Q1 is at the end of Chapter 1’s two weeks, Q2 at the end of Chapter 2, and so on. Canvas is a staff-approved fallback if the site is unavailable — ask your instructor or TA before using it.
Exams (X1–X2)30%X1 is taken in the second half of lecture the week after A3. X2 is exam week. Each exam is ~90 minutes.
Project30%A completed, deployed full-stack application (usually polished Kambaz) with public source and a short written design note.
Total100%

Weights sum to 100%. The category weights above are what enter the final average.

Graded quizzes and exams are taken online on this course website. Canvas is a staff-approved fallback if the site is unavailable — ask your instructor or TA before using it.

You must submit every assignment and the project to be eligible for a passing grade, even if a late penalty applies.

Letter grades

Final averages map to letters as follows. Thresholds are inclusive of the listed minimum.

  • A 93+
  • A− 90+
  • B+ 87+
  • B 83+
  • B− 80+
  • C+ 77+
  • C 73+
  • C− 70+
  • D+ 67+
  • D 63+
  • D− 60+
  • F 0

Late policy

Assignments are due at the date and time posted on Canvas and on the agenda. Submit what you have by the deadline — a partial, working deployment is worth more than a perfect repository that arrives late.

Work submitted after the deadline loses 10% of the assignment’s points per 24-hour period, or fraction thereof, for up to three days. After three days the assignment is not accepted, except when Disability Access Services accommodations or a documented emergency arranged with the instructor apply.

Quizzes (Q1–Q6) and exams (X1/X2) cannot be submitted late. If you have a university-approved absence or an emergency, write to the instructor before the deadline when possible.

  • On time — eligible for full credit.
  • 0–24 hours late — 10% penalty.
  • 24–48 hours late — 20% penalty.
  • 48–72 hours late — 30% penalty.
  • More than 72 hours late — no credit, unless arranged in advance.

Regrade policy

You may request a regrade, or resubmit an assignment for a regrade, only for the assignment immediately before the one you are working on. Older assignments are not open for a regrade.

That window opens when you receive a grade for the prior assignment, and it lasts one week from when the grade is posted.

While you are working on A2, once A1 is graded you have one week to resubmit A1 for a regrade. While you are working on A4, you may only seek a regrade for A3 — not A2 or A1.

Assignments

Six assignments (A1–A6) implement Kambaz incrementally. Each one corresponds to a chapter of the interactive book. Later assignments build on earlier ones — do not skip ahead and leave a hole in the stack.

Due dates are one Canvas calendar for CS 4550 and both CS 5610 sections.

Unless a handout says otherwise, submit (1) a public GitHub repository and (2) a Vercel URL that is running the work for that assignment. The repository must contain the source that produced the deployment.

Track the Delivery / Lab / Kambaz checklist on Assignments.

  1. A1HTML user interfaces (Chapter 1)

    Build the Labs HTML work (Lab 1 components and Labs navigation) and prototype Kambaz structure screens with HTML and the App Router: landing, Account, Dashboard, course Home, Modules, and Assignments. Structure first; visual polish comes in A2.

  2. A2CSS and Tailwind (Chapter 2)

    Style the prototype with CSS fundamentals and Tailwind utility classes. Navigation, Dashboard, Modules, and related screens should start to resemble the target product.

  3. A3JavaScript and data-driven UI (Chapter 3)

    Replace hardcoded markup with data. Render courses, modules, and people from JSON; encode IDs in the URL; keep the UI in sync with the structures you define.

  4. A4Client state (Chapter 4)

    Make the UI editable. Use React state for forms and Zustand stores for shared Kambaz data (courses, modules, account). Redux labs are literacy; the assignment store is Zustand.

  5. A5RESTful Web APIs (Chapter 5)

    Move the database off the client. Implement a Node.js / Express HTTP server (and the Next.js route-handler labs) so Kambaz reads and writes over HTTP.

  6. A6MongoDB (Chapter 6)

    Persist courses, modules, users, and related documents in MongoDB with Mongoose. Connect locally and through Atlas so a refresh no longer wipes the semester’s work.

Shared deadlines

Assignment, exam, and project dates are one Canvas calendar for every section. Assignments are due Sunday 11:59pm ET. Quizzes (Q1–Q6) are taken at the end of lecture at the end of each chapter. “Week of … · end of lecture” means the end of your section’s own meeting that week — CS 5610-02 Mondays 6:00–9:00pm ET, CS 5610-09 Tuesdays 6:00–9:00pm ET (online), CS 4550-01 Wednesdays 6:00–9:00pm ET — not a calendar day labeled “today,” and not any weekday that week. Q1 in the week of Sep 21 is Mon Sep 21 for CS 5610-02, Tue Sep 22 for CS 5610-09, and Wed Sep 23 for CS 4550. X1 is taken in the second half of lecture the week of October 26. The project is due Sunday, December 6; grading begins the week of December 7. X2 is due Sunday 11:59pm ET the week of December 14 (finals week). A4–A6 due dates will be posted on Canvas.

DateTypeItem
Mon, Sep 14AssignmentA1 assigned — HTML
Week of Sep 21 · end of lecture (your section’s meeting day)QuizQ1 — HTML (end of Chapter 1 lecture)
Sun, Sep 27AssignmentA1 due · A2 assigned — CSS & Tailwind
Week of Oct 5 · end of lecture (your section’s meeting day)QuizQ2 — CSS & Tailwind (end of Chapter 2 lecture)
Sun, Oct 11AssignmentA2 due · A3 assigned — JavaScript
Week of Oct 19 · end of lecture (your section’s meeting day)QuizQ3 — JavaScript (end of Chapter 3 lecture)
Sun, Oct 25AssignmentA3 due · A4 assigned — Client state
Week of Oct 26 · 2nd half of lectureExamX1 — Midterm (2nd half of lecture)
Week of Nov 2 · end of lecture (your section’s meeting day)QuizQ4 — Client state (end of Chapter 4 lecture)
Week of Nov 16 · end of lecture (your section’s meeting day)QuizQ5 — REST APIs (end of Chapter 5 lecture)
Week of Nov 30 · end of lecture (your section’s meeting day)QuizQ6 — MongoDB (end of Chapter 6 lecture)
Sun, Dec 6ProjectProject due
Sun, Dec 20ExamX2 due

Project

The project is a completed full-stack Web application that you design, implement, deploy, and document. Most students finish and polish Kambaz — the same product built through A1–A6 — into a coherent, publicly reachable system. With the instructor’s permission you may instead propose an original application of similar scope that uses the same stack.

You may work individually or team up with up to 5 members. You do not need the instructor’s permission to form a team. Every repository must stay open: source files should be public, and the live site should serve them or link to them. A short written note — goals, architecture, design decisions, and a user guide — is part of the hand-in.

Deploy the client (Vercel or equivalent) and the HTTP API (for example Render) so a reviewer can sign in, use the main flows, and inspect the code without installing anything. The agenda lists the project due date near the end of the term.

  • Public GitHub repository (or equivalent) with a clear README.
  • Deployed client and API URLs that stay up through grading.
  • The course stack: HTML, CSS, Tailwind, Next.js / React, Zustand, Node / Express, MongoDB.
  • A short design and user document (NUpath writing-intensive expectation).

Full requirements for Quizzes, Pazza, and the open-ended option are on the Final Project page.

Agenda

Every section follows the same Canvas module sequence from the week of September 14, 2026, grouped by chapter. Dates are the shared Monday — Week of Sep 14 through Week of Dec 14 — so Monday, Tuesday, and Wednesday tabs show the same labels. CS 4550’s September 9 meeting is orientation only and does not start Chapter 1. Each chapter spans two weeks. Chapter 4 is one Canvas module — “Ch 4 — Client state, Midterm/X1” — covering the weeks of Oct 26 and Nov 2. X1 is taken in the second half of lecture the week of Oct 26, not a separate midterm module. Chapter 5 is Nov 9 and Nov 16; Chapter 6 is Nov 23 and Nov 30. Project grading is the week of Dec 7 (project due Dec 6), with room for the Project — Integrating with External APIs lecture slides (YouTube API, ChatGPT API, and Grok API). X2 is the week of Dec 14, even though the last day of classes is Dec 13. Quizzes are taken at the end of lecture at the end of each chapter. “Week of … · end of lecture” means the end of your section’s own meeting that week — CS 5610-02 Mondays 6:00–9:00pm ET, CS 5610-09 Tuesdays 6:00–9:00pm ET (online), CS 4550-01 Wednesdays 6:00–9:00pm ET — not a calendar day labeled “today,” and not any weekday that week. Q1 in the week of Sep 21 is Mon Sep 21 for CS 5610-02, Tue Sep 22 for CS 5610-09, and Wed Sep 23 for CS 4550.

University holidays — including Labor Day, Indigenous Peoples’ Day, Veterans Day, and fall break (November 25–29; classes resume November 30) — do not skip a lecture week. Fall break sits in Chapter 6 week 1 (week of Nov 23); Veterans Day sits in Chapter 5 week 1 (week of Nov 9). If a holiday falls on your meeting day, you are not required to attend. A recording of the lecture will be posted, and you are responsible for that content.

Showing CS 4550-01 · In person. Use the section buttons at the top of the page to switch. Due dates in the last column are the shared Canvas dates when they fall on a meeting day.

Date#TopicShared due that week
Orientation
Wed, Sep 9Orientation and syllabus — Chapter 1 begins the week of September 14
Chapter 1: Building Next.js User Interfaces with HTML
Week of Sep 141Chapter 1 week 1 — Building Next.js user interfaces with HTML: introduction, environment, and HTML foundationsA1 assigned — HTML
Week of Sep 21 · end of lecture (your section’s meeting day)2Chapter 1 week 2 — HTML forms, navigation, and layouts; prototyping Kambaz (A1)Q1 — HTML (end of Chapter 1 lecture) · A1 due · A2 assigned — CSS & Tailwind
Chapter 2: Styling User Interfaces with CSS and Tailwind
Week of Sep 283Chapter 2 week 1 — Styling user interfaces with CSS and Tailwind (A2)
Week of Oct 5 · end of lecture (your section’s meeting day)4Chapter 2 week 2 — Styling Kambaz with CSS and TailwindQ2 — CSS & Tailwind (end of Chapter 2 lecture) · A2 due · A3 assigned — JavaScript
Chapter 3: Creating Single Page Applications with JavaScript
Week of Oct 125Chapter 3 week 1 — Creating single-page applications with JavaScript: language, functions, arrays, and JSON
Week of Oct 19 · end of lecture (your section’s meeting day)6Chapter 3 week 2 — Data-driven UI and chapter wrap (A3)Q3 — JavaScript (end of Chapter 3 lecture) · A3 due · A4 assigned — Client state
Ch 4 — Client state, Midterm/X1
Week of Oct 267Chapter 4 week 1 — Managing client state: events, forms, useState, and React Context; midterm/X1 this weekX1 — Midterm (2nd half of lecture)
Week of Nov 2 · end of lecture (your section’s meeting day)8Chapter 4 week 2 — Zustand stores and adding state to Kambaz (A4)Q4 — Client state (end of Chapter 4 lecture)
Chapter 5: Implementing RESTful Web APIs with Express.js
Week of Nov 99Chapter 5 week 1 — Implementing RESTful Web APIs with Express.js; Next.js route handlers (A5)
Veterans Day — not required to attend; a lecture recording will be posted
Week of Nov 16 · end of lecture (your section’s meeting day)10Chapter 5 week 2 — The Kambaz Node.js HTTP server and HTTP clientsQ5 — REST APIs (end of Chapter 5 lecture)
Chapter 6: Integrating React with MongoDB
Week of Nov 2311Chapter 6 week 1 — Integrating React with MongoDB: Compass, collections, and Mongoose (A6)
Fall break — not required to attend; a lecture recording will be posted
Week of Nov 30 · end of lecture (your section’s meeting day)12Chapter 6 week 2 — Atlas, sessions, and wiring Kambaz to a databaseQ6 — MongoDB (end of Chapter 6 lecture) · Project due
Project grading
Week of Dec 713Project grading — Integrating with external APIs (YouTube, ChatGPT, Grok slides)
Final — X2
Week of Dec 1414X2 final — Chapters 4–6X2 due

AI policy

Working with an AI agent is like asking your expert professional uncle or team at Google to do the work for you. If that would not be allowed with a person or a team, it is not allowed with AI.

You may ask that uncle or team to explain something and to help you work things out. You may use AI (Cursor, ChatGPT, Copilot, and similar assistants) when the book or an exercise explicitly mentions it. You may not copy code wholesale from an AI tool unless that exercise explicitly allows it.

IDE autocomplete is allowed, including VS Code IntelliSense and Copilot-style inline suggestions. Turning autocomplete or inline suggestions off is an optional personal preference, not an academic integrity requirement.

You are responsible for the work and are expected to take full responsibility for the code you submit. The intent is for you to acquire the experience and the criteria to create and evaluate quality code. The idea is to become that expert uncle and join amazing teams.

Teaching assistants will schedule regularly random audits asking you to explain a random piece of code from your submission. The slightest suspicion that the code is not your own results in a zero for that assignment, unless the instructor or the book explicitly allowed AI for that particular purpose.

Quizzes (Q1–Q6) and exams (X1/X2) are closed: do not use AI unless the handout says otherwise.

  • Allowed: using AI when the book or an exercise explicitly mentions it; asking that uncle or team to explain something and help you work things out; using IDE autocomplete, including VS Code IntelliSense and Copilot-style inline suggestions. Turning autocomplete or inline suggestions off is an optional personal preference, not an academic integrity requirement.
  • Not allowed: having that uncle or team do the work for you; copying generated code wholesale unless the exercise explicitly allows it.
  • Audits: TAs will schedule regularly random audits. You must explain a random piece of code from your submission. The slightest suspicion that the code is not yours is a zero for that assignment, unless the instructor or book explicitly allowed AI for that particular purpose.
  • You take full responsibility for the code you submit. The intent is the experience and criteria to create and evaluate quality code. The idea is to become that expert uncle and join amazing teams. Closed quizzes and exams: no AI unless the handout says otherwise.

Academic integrity

Northeastern expects every assignment, quiz, exam, and project in this course to meet the university Academic Integrity Policy. Instructors are required to cite that policy on the syllabus. Cheating, plagiarism, fabrication, unauthorized collaboration, and facilitating dishonesty are violations.

In this course, that includes copying another student’s Kambaz or lab code (current or past semester), publishing solutions where others can turn them in, and copying AI-generated code wholesale unless an exercise explicitly allows it. You may discuss ideas with classmates; the code and write-up you turn in must be your own unless the assignment explicitly allows a team.

A violation may be reported to the Office of Student Conduct and Conflict Resolution (OSCCR) and may also receive an academic penalty in the course, up to a failing grade, at the instructor’s discretion.

Classroom environment

Treat lecture, discussion, office hours, and shared repositories as professional spaces — whether the section meets in Boston or online. Critique ideas and code, not people. Harassment, slurs, and exclusionary behavior are not acceptable.

Keep cameras and microphones considerate during live sessions. Do not record other students without consent. When you post questions, include the route, the error, and what you already tried — that is how we help each other efficiently.

If something in the course environment is preventing you from participating, contact the instructor. You may also use university reporting channels listed under Title IX and Disability Access Services.

Title IX

Northeastern University is committed to providing a living, learning, and working environment free from discrimination and harassment. The university does not discriminate on the basis of race, color, religion, sex (including pregnancy and related conditions), gender identity or expression, sexual orientation, age, national origin, disability, or veteran status in its programs and activities.

Sexual and gender-based harassment, sexual assault, dating or domestic violence, and stalking are prohibited. Faculty and most university employees are responsible employees: if a student discloses a possible Title IX incident, we must share it with the Office for University Equity and Compliance so the university can offer support and options. Confidential resources are listed on the OUEC site.

Disability Access Services

Northeastern is committed to an inclusive learning environment and welcomes students with disabilities into its programs. Disability Access Services (DAS) determines reasonable accommodations. If you need accommodations in this course, contact DAS as early as possible and share your Professor Notification Letter so we can put supports in place.

Any student who feels they may need an accommodation based on the impact of a disability is encouraged to contact Disability Access Services to coordinate reasonable accommodations.