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.
Document structure, forms, navigation, and layouts (Chapter 1).
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).
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.
HTTP servers, routes, JSON, and a sibling Express project that serves Kambaz (Chapter 5).
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.
| Date | Day | Event |
|---|---|---|
| September 7, 2026 | Monday | USA: Labor Day, no classes |
| September 9, 2026 | Wednesday | First day of full-semester fall classes |
| September 22, 2026 | Tuesday | Last day of add/drop period for full-semester fall classes |
| October 12, 2026 | Monday | USA: Indigenous Peoples Day, no classes |
| November 11, 2026 | Wednesday | USA: Veterans Day, no classes |
| November 25, 2026 – November 29, 2026 | Wednesday–Sunday | Fall break, no classes (first day November 25) |
| November 30, 2026 | Monday | Fall classes resume |
| December 13, 2026 | Sunday | Last day of full-semester fall classes with final exams |
| December 14, 2026 | Monday | First day of fall final exam period (if applicable) |
| December 20, 2026 | Sunday | Last 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.
| Name | Role | Hours | Location | Contact |
|---|---|---|---|---|
| TBA | ||||
Evaluation
| Component | Weight | What 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. |
| Project | 30% | A completed, deployed full-stack application (usually polished Kambaz) with public source and a short written design note. |
| Total | 100% |
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.
A1 — HTML 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.
A2 — CSS 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.
A3 — JavaScript 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.
A4 — Client 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.
A5 — RESTful 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.
A6 — MongoDB (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.
| Date | Type | Item |
|---|---|---|
| Mon, Sep 14 | Assignment | A1 assigned — HTML |
| Week of Sep 21 · end of lecture (your section’s meeting day) | Quiz | Q1 — HTML (end of Chapter 1 lecture) |
| Sun, Sep 27 | Assignment | A1 due · A2 assigned — CSS & Tailwind |
| Week of Oct 5 · end of lecture (your section’s meeting day) | Quiz | Q2 — CSS & Tailwind (end of Chapter 2 lecture) |
| Sun, Oct 11 | Assignment | A2 due · A3 assigned — JavaScript |
| Week of Oct 19 · end of lecture (your section’s meeting day) | Quiz | Q3 — JavaScript (end of Chapter 3 lecture) |
| Sun, Oct 25 | Assignment | A3 due · A4 assigned — Client state |
| Week of Oct 26 · 2nd half of lecture | Exam | X1 — Midterm (2nd half of lecture) |
| Week of Nov 2 · end of lecture (your section’s meeting day) | Quiz | Q4 — Client state (end of Chapter 4 lecture) |
| Week of Nov 16 · end of lecture (your section’s meeting day) | Quiz | Q5 — REST APIs (end of Chapter 5 lecture) |
| Week of Nov 30 · end of lecture (your section’s meeting day) | Quiz | Q6 — MongoDB (end of Chapter 6 lecture) |
| Sun, Dec 6 | Project | Project due |
| Sun, Dec 20 | Exam | X2 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 | # | Topic | Shared due that week |
|---|---|---|---|
| Orientation | |||
| Wed, Sep 9 | — | Orientation and syllabus — Chapter 1 begins the week of September 14 | |
| Chapter 1: Building Next.js User Interfaces with HTML | |||
| Week of Sep 14 | 1 | Chapter 1 week 1 — Building Next.js user interfaces with HTML: introduction, environment, and HTML foundations | A1 assigned — HTML |
| Week of Sep 21 · end of lecture (your section’s meeting day) | 2 | Chapter 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 28 | 3 | Chapter 2 week 1 — Styling user interfaces with CSS and Tailwind (A2) | |
| Week of Oct 5 · end of lecture (your section’s meeting day) | 4 | Chapter 2 week 2 — Styling Kambaz with CSS and Tailwind | Q2 — CSS & Tailwind (end of Chapter 2 lecture) · A2 due · A3 assigned — JavaScript |
| Chapter 3: Creating Single Page Applications with JavaScript | |||
| Week of Oct 12 | 5 | Chapter 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) | 6 | Chapter 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 26 | 7 | Chapter 4 week 1 — Managing client state: events, forms, useState, and React Context; midterm/X1 this week | X1 — Midterm (2nd half of lecture) |
| Week of Nov 2 · end of lecture (your section’s meeting day) | 8 | Chapter 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 9 | 9 | Chapter 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) | 10 | Chapter 5 week 2 — The Kambaz Node.js HTTP server and HTTP clients | Q5 — REST APIs (end of Chapter 5 lecture) |
| Chapter 6: Integrating React with MongoDB | |||
| Week of Nov 23 | 11 | Chapter 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) | 12 | Chapter 6 week 2 — Atlas, sessions, and wiring Kambaz to a database | Q6 — MongoDB (end of Chapter 6 lecture) · Project due |
| Project grading | |||
| Week of Dec 7 | 13 | Project grading — Integrating with external APIs (YouTube, ChatGPT, Grok slides) | |
| Final — X2 | |||
| Week of Dec 14 | 14 | X2 final — Chapters 4–6 | X2 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.