Available courses
Web 110 - Final 2026
Full Stack Web Development — Final Project Brief
Total Weight: 110% (includes 5% peer assistance bonus)
Presentations: April 13th | Final Submission: April 17th | Last Instructor Meeting: April 19th | Group Check-ins: Thursdays, 9:00–10:00 AM
Overview
The Final Project is the capstone of this course — a chance to bring together everything you have learned and demonstrate that you can conceive, plan, build, and ship a production-quality web application from the ground up.
This year, the scope has expanded to reflect where the industry is headed. Your application must be AI-driven, meaning artificial intelligence is not a surface-level feature but a core part of how the application thinks, responds, and delivers value. More specifically, you are expected to demonstrate an understanding of agentic engineering — the practice of designing software systems in which an AI model is given context, tools, and a goal, and takes a sequence of actions to accomplish it. This is one of the fastest-growing disciplines in software development, and this project is your first real exposure to building at that layer.
Alongside the AI requirement, you will continue to be assessed on your full stack fundamentals — database design, server architecture, authentication, performance, security, and deployment — as well as your ability to plan your work, reflect on your process, and communicate your results to an audience.
Build something with genuine commercial value. Build something you would want to use.
Components at a Glance
| # | Component | Weight |
|---|---|---|
| 1 | Research & Proposal | 15% |
| 2 | Agile Project Plan | 10% |
| 3 | Work Journal & Reporting | 25% |
| 4 | Full Stack Web App | 50% |
| 5 | Presentation | 10% |
| + | Peer Assistance Bonus | +5% |
1. Research & Proposal (15%)
Before writing a single line of code, you must be able to articulate what you are building, why it matters, and how you intend to build it. The proposal is a one-page document written with the clarity and intent of something you might hand to an investor or a technical hiring manager.
Your proposal must address each of the following:
Problem Statement
Describe the real-world problem your application solves. Who experiences this problem? How do they currently deal with it, and why is the current solution inadequate? Ground this in specifics — a well-defined problem is the foundation of a well-designed product.
Proposed Solution
Describe your application: what it does, how a user interacts with it, and what outcomes it delivers. Be concrete. Avoid vague language — “an AI assistant that helps users” tells us nothing. “An AI-powered lease review tool that flags non-standard clauses, summarises tenant obligations, and generates a plain-language summary” tells us everything.
AI & Agentic Architecture
This is the section that distinguishes this year’s project from previous cohorts. Describe how AI is integrated into your application at an architectural level. What model or provider are you using (e.g., OpenAI, Anthropic, Ollama, Mistral)? What role does the AI play — is it a conversational interface, an autonomous task executor, a structured data extractor, a classification engine? Does it use tools or external data sources? How does it maintain context across a session? Justify why an agentic approach is the right fit for your problem.
Technology Stack
Your stack must be built from the following approved technologies — selected because they reflect real-world industry usage and give you transferable skills beyond this course:
- Runtime & Backend — Node.js with your choice of framework (e.g., Express, Fastify, or Hono)
- Scripting & AI Tooling — Python for any server-side scripting, data processing, or AI/agent orchestration logic
- Databases — You must use at least one of the following, chosen to suit your application’s data model: SQLite3 for lightweight relational storage, SQL (PostgreSQL or MySQL) for a full relational database, or MongoDB for document-oriented data. Using more than one database is permitted if your architecture justifies it
- Architecture Pattern — You must make a deliberate decision between a single-file architecture (all server logic in one entry point, appropriate for lean APIs or prototypes) and a multi-file modular architecture (controllers, routes, models, and services separated into distinct files and directories, appropriate for larger applications). Document your choice and justify it in your README — there is no wrong answer, but there must be a reason
List every layer of your stack in your proposal with intent: what you chose and why you chose it.
Commercial Viability
Who is your target user or customer? What would they pay for this, or what value does it create for them? You do not need a full business plan — but you should be able to articulate why this application has a life beyond a course submission.
A note on specificity: The proposals that score highest are the ones that demonstrate the student has already thought deeply about the problem. If you find yourself writing in generalities, that is a signal to go back and think harder before writing more.
2. Agile Project Plan (10%)
Referring to the Agile methodology covered in Web 101, produce a structured project plan with three components:
User Stories
Write user stories for both user roles in your application. Each story must follow the standard format:
“As a [role], I want to [action] so that [outcome].”
- Administrative User — Stories covering backend management: user account oversight, content or data moderation, AI configuration or behaviour tuning, system monitoring, log review, and access control.
- Client / End User — Stories covering the front-facing experience: interacting with the AI, managing their own account and data, receiving outputs, and navigating the application.
Aim for a minimum of five stories per role. Stories should be specific enough that a developer could estimate the work involved.
Scope of Work
Define what is in scope and what is explicitly out of scope for this project. Identify your MVP — the minimum set of features that constitutes a functional, submittable application — and list any stretch goals you will pursue if time allows. Being honest about scope is a professional skill; it protects you from overcommitting and helps your instructor understand your intentions.
Work Proposal
Provide a realistic estimate of the work ahead, structured as:
- A feature or phase breakdown with hourly estimates for each item
- A week-by-week timeline from project kickoff through April 13th
- A list of key milestones and any dependencies between them (e.g., authentication must be complete before the admin dashboard can be built; AI integration must be stable before end-to-end testing begins)
3. Work Journal & Reporting (25%)
Twenty-five percent of your final grade is allocated to this component — not because journalling is busywork, but because how you work is as important as what you produce. Developers who understand their own process, who surface blockers early, and who reflect honestly on their progress become better engineers faster. This component is designed to build that muscle.
Journal Entries
Write three journal entries per week from March 26th through April 13th. Each entry should be dated and address the following:
- What did you work on since your last entry?
- What went well, and what did you struggle with?
- What decisions did you make, and why?
- What is your plan before your next entry?
Your first entry is different in character from the rest. Use it to describe the tools and methods you have chosen to manage your project — your task tracker, your note-taking system, your version control workflow, your time logging approach, and how you plan to stay accountable to your own timeline. Justify your choices. There is no single right answer, but there is a difference between a student who has thought about their process and one who hasn’t.
From the second week onward, each entry should also include at least one AI-specific observation: How did the AI component behave? What prompt strategies worked or failed? What did you change in your integration and why? These reflections are a record of your growth as an agentic engineer.
Instructor Check-ins
Schedule and attend three virtual meetings with your instructor over the course of the project. The final available meeting date is April 19th. These meetings are not formalities — they are your opportunity to raise blockers, pressure-test your decisions, and get feedback before it is too late to act on it. Come prepared with a status update and specific questions.
4. Full Stack Web App (50%)
This is the centrepiece of the project, and it carries the most weight. You are building and deploying a production-quality, AI-driven full stack web application that demonstrates competency across every layer of the stack — from database design and server architecture through to frontend experience, AI integration, and live infrastructure.
The application will be graded across four dimensions: Creativity, Database Usage, Base Requirements, and Best Practices. All four matter. A creative idea implemented sloppily will not score well, and a technically clean app that solves no real problem will not either.
Deployment
Your application must be live and publicly accessible on one of the assigned scweb-xxx.site domains, running on your own provisioned infrastructure. If you are using a personal domain or external hosting provider, notify your instructor before you begin. A non-deployed application cannot be fully assessed.
AI & Agentic Engineering Requirements
This section represents the new dimension of the project. Your application must demonstrate a meaningful, architecturally considered AI integration — not a single API call hidden behind a form. The following are required:
LLM Integration
Your application must be built using Cursor as your primary AI-assisted development environment. Cursor’s agentic coding capabilities — inline code generation, multi-file edits, and the Agent mode for autonomous task execution — should be central to how you write, refactor, and reason about your codebase throughout the project. Document how you used Cursor in your README and journal entries, reflecting on where it accelerated your work and where human judgment was still required.
Agentic Behaviour
Your AI integration must exhibit at least one form of agentic capability. Agentic systems are those in which the AI is given a goal and takes one or more steps — potentially using tools, querying data, or making decisions — to reach it, rather than simply returning a single response to a single prompt.
Infrastructure Awareness
Deploying an AI-integrated application introduces responsibilities that a standard web app does not. You are expected to demonstrate that you have handled these thoughtfully: API keys and secrets must be managed securely and never exposed to the client; the application should implement rate limiting or usage controls to prevent runaway API costs; error and fallback handling must be in place for when the AI model is unavailable or returns an unexpected response; and AI inputs and outputs should be logged for observability and debugging purposes.
Prompt Engineering
Your system prompts, few-shot examples, and any structured prompt templates must be intentional — designed with care, not written once and forgotten. Document your prompt design decisions in your README: what you tried, what didn’t work, and what you landed on.
Base Technical Requirements
Every item in the following list is a mandatory requirement. Missing items will directly impact your Base Requirements score.
| Requirement | Description |
|---|---|
| README.md | Deployment instructions (Docker and/or manual), environment variable setup, AI configuration notes, and a brief architecture overview |
| Database | A structured, persistent database drives application data — not just AI outputs |
| CRUD Operations | Create, Read, Update, and Delete are all implemented and exercised by real application features |
| User Authentication | Secure registration, login, and logout with proper session or token management |
| Asset Compression | Static assets (JS, CSS, images) are minified and/or compressed |
| HTTP Request Budget | Fewer than 40 HTTP requests on initial page load |
| Responsive Design | The application is fully functional and visually coherent on mobile, tablet, and desktop |
| Admin Dashboard | A protected, role-gated interface for administrative users — distinct from the end-user experience |
| Server Compression | Response compression is enabled at the server level (gzip or brotli) |
| Server Security | HTTPS enforced, security headers configured, inputs validated and sanitised, protection against common vulnerabilities (XSS, CSRF, SQL injection) |
Code Quality Rubric
Your submitted codebase will be reviewed and graded independently across five dimensions. These are assessed by reading your code — not just running it.
| Dimension | What Is Being Assessed |
|---|---|
| Code Commenting | Are functions, routes, middleware, AI prompt logic, and non-obvious decisions documented inline with clear, useful comments? |
| Organisation & Referencing | Is the project structured logically? Are files and modules where a developer would expect to find them? Are imports and references clean? |
| Code Structure | Is the codebase modular and coherent? Is there a clear separation of concerns between the database layer, business logic, and presentation? |
| Readability | Are files, variables, and functions named meaningfully? Is the web root clean? Could a developer unfamiliar with the project orient themselves quickly? |
| Process & Functionality | Does the application behave as designed? Is the user experience intuitive and free of friction? (Revisit the Norman Doors concept — if a user can’t figure out how to use your app, that is a design and code failure.) |
5. Presentation (10%)
On April 13th, you will present your application to a live virtual audience. Your final project submission is due by April 17th. You have ten minutes. That is enough time to make a strong impression — and not enough to waste any of it on setup problems or disorganised slides.
A strong presentation moves through four beats:
The Problem (1–2 minutes) — Open with the problem, not the technology. Make the audience feel why this matters. Who has this problem? How painful is it? Why hasn’t it been solved well?
The Demo (5–6 minutes) — Walk through the application live. Show the end-user experience first, then pull back the curtain on the AI integration: demonstrate the agentic behaviour, show what happens under the hood, and highlight at least one infrastructure or engineering decision you made deliberately.
The Architecture (1–2 minutes) — Give a brief overview of your stack and how the pieces connect. This is your opportunity to show that you understand not just how to build, but why you made the choices you did.
The Reflection (1 minute) — What did you learn? What would you do differently? What would you build next if you had more time?
At the close of all presentations, the audience will vote for the best application. Prizes will be digitally delivered to the winner(s). Prepare as if someone in the audience might want to hire you.
Bonus: Peer Assistance (+5%)
Software development is a team discipline. An additional 5% bonus is available to students who contribute meaningfully to the learning of their peers — either by helping others solve problems or by seeking help and documenting it honestly.
To claim this bonus, record the following in your Weekly Journal:
- Help you gave: Who you helped, what the problem was, and how you worked through it together
- Help you received: Who helped you, what the problem was, and what you learned from the interaction
Both parties should document the same interaction. Discrepancies will not be credited. Vague entries (“helped a classmate with CSS”) will not be credited. Specific, reflective entries will be.
Key Dates
| Date | Milestone |
|---|---|
| Thursdays, 9:00–10:00 AM | Weekly group check-in with instructor |
| March 26th | Journal entries begin |
| April 13th | Final weekly journal entry due & Presentations |
| April 17th | Final project submission deadline |
| April 19th | Last available one-on-one instructor meeting |
Instructor Availability
Your instructor is available for questions and one-on-one meetings Monday, Wednesday, Thursday, and Friday from 8:00 AM to 3:30 PM, with a break for lunch from 11:30 AM to 1:00 PM. Do not wait until the final week to surface a problem that could have been resolved in week two. Early questions are a sign of professional maturity, not weakness.
The best applications in this cohort will not just work — they will solve something real, they will be built with care, and they will tell a story worth hearing. That standard is achievable. Now go build it.
- Teacher: M P
- Enrolled students: 3
Context Engineering
Context Engineering
_“The model is only as good as the context you give it.”_
**Context engineering** is designing the *entire environment* around that sentence:
the systems, data, memory, retrieval, rules, and output formats that determine what a model sees **before** it responds.
It’s not just writing better prompts.
It’s **managing the model’s inputs like an engineer manages an API contract**.
- Teacher: M P
- Enrolled students: There are no students enrolled in this course.
Web 109 - Cyber Security & Dev OPS
- Teacher: M P
- Enrolled students: 7
Web 108
WEB TBA: Data Persistence builds upon fundamental back-end development knowledge and skills by familiarizing students with database management systems, frameworks, and methods for data storage and retrieval. Students will learn to how to utilize both relational and non-relational databases in web applciation development as well as gain understanding of how the two models are different and why they are needed. Students will use data persistence strategies to determine the right storage model for their different web application use-cases and how to maintain information integrity, security and confidentiality.
- Teacher: M P
- Enrolled students: 7
Web 107 - Backend Development Fundamentals
- Teacher: M P
- Enrolled students: 7
Web 105 - Development Environment
Starting a DevOps course with a lecture on internet protocols and server communication is an excellent approach. This foundational knowledge provides students with a crucial understanding of how systems interact, which is fundamental to DevOps practices. Here's why this is a good starting point:
- Builds a strong foundation: Understanding protocols like HTTP, TCP/IP, and DNS is essential for grasping how web applications and services communicate.
- Facilitates understanding of networking concepts: Knowledge of protocols helps students comprehend networking issues that may arise in DevOps workflows.
- Enhances troubleshooting skills: Familiarity with protocols enables better diagnosis and resolution of connectivity and communication problems.
- Supports cloud computing concepts: Many DevOps practices involve cloud services, which rely heavily on these protocols.
- Prepares for security discussions: Understanding protocols is crucial for implementing proper security measures in DevOps pipelines.
To structure this initial lecture effectively:
- Start with an overview of the OSI model to provide context.
- Focus on key protocols like HTTP, HTTPS, TCP/IP, and DNS.
- Explain how these protocols relate to common DevOps tools and practices.
- Include practical demonstrations or simple coding exercises to illustrate protocol usage.
This approach aligns well with DevOps principles of continuous integration and delivery, as it lays the groundwork for understanding how different components of a system interact throughout the development and deployment process.
- Teacher: M P
- Enrolled students: 7
Web 106 - Entrepreneurship
- Teacher: M P
- Enrolled students: There are no students enrolled in this course.
Web 104 - Advanced JavaScript Programming Concepts
WEB TBA: Advanced Front-end Development with JavaScript expands upon students foundational knowledge and skills in front-end web development to explore modular, maintainable, and efficient approaches to coding in JavaScript through the integration of external dependencies and use of tools and frameworks. Students will apply these approaches and refine skills to develop more complex client-side applications for the web and produce a responsive browser independent dynamic web application for their portfolio.
- Teacher: M P
- Enrolled students: 7
- Teacher: M P
- Enrolled students: 6
This course is designed to build a solid foundation in programming, problem-solving, and critical thinking through JavaScript. Students will learn essential skills required to master programming, understand the layers of abstraction, and leverage these skills to become proficient developers capable of using AI tools effectively in the future.
- Teacher: M P
- Enrolled students: 6
“Python Essentials for Beginners” is a hands-on introduction to programming fundamentals, designed to equip you with core coding skills. Starting with variables, data types, and control structures, you’ll learn how to store data and build logic that drives your programs. As you progress, you’ll master essential tools like functions, data structures, and basic algorithms to organize and manipulate data efficiently. The course also introduces foundational concepts in object-oriented programming, error handling, version control with Git, and basic debugging and testing techniques. By the end, you’ll have developed a solid computational mindset, ready to tackle real-world coding challenges with confidence.
- Teacher: M P
- Enrolled students: There are no students enrolled in this course.
















