Syllabus · Course book · Blog · Slides · Practice (ungraded)
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 one public GitHub repository for A1–A6 and a Vercel URL that is running the work for that assignment. The same repository continues through the stack, and it must contain the source that produced the deployment.
Submit A1 from the main branch together with the production Vercel URL. For A2 and later, submit an assignment-named branch (a2, a3, …) together with that branch’s Vercel preview URL. You may tag the commit aN-submit (for example a2-submit) if that is useful for graders.
Use the checklists to track Delivery, Lab, and Kambaz work. Due dates are informational — Canvas is still the official calendar. A1 grades on this site are all-or-nothing per criterion from a public Vercel URL (GitHub is optional). Canvas is a grade shell only.
Course website accounts. Need an account? Sign up first with the same Northeastern email you use on Canvas, then Sign in. This site is not Canvas, and accounts are not pre-provisioned. Using your Canvas email lets us map site progress back to the roster.
Sign in to see your submission status
A1 — HTML user interfaces
Due Sunday, September 27, 2026 · 125 pts
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
Due Sunday, October 11, 2026 · 83 pts
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
Due Sunday, October 25, 2026 · 100 pts
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
100 pts
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
Checklist coming soon
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
Checklist coming soon
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.