Web Technologies

State University of Zanzibar (SUZA)

BSc Computer Science (BCS) & BITAM β€” Semester II, Academic Year 2025/2026

HTML Β· CSS Β· JavaScript Β· React Β· Spring Boot Β· Node Β· Django Β· Docker

🎯

Course Overview

This course teaches modern web application development from foundations to deployment. Students learn the full stack β€” HTML, CSS, JavaScript, React, REST APIs in three popular backend frameworks, databases, security, testing, performance, real-time, and DevOps β€” culminating in a production-grade capstone project.

A single unified course delivered jointly to BSc CS (BCS) and BITAM students. The capstone project is run by mixed BCS+BITAM teams of three.

Duration: 15 weeks (Semester II) Β· Contact hours: 3 lecture hrs + 2 lab hrs per week Β· Credits: 15

Assessment

  • Course Work β€” 60%
    • Practical labs (8 labs, auto-graded via GitHub Classroom): 15%
    • Homework 1 β€” Frontend (solo): 10%
    • Homework 2 β€” Full-stack CRUD (solo): 10%
    • Capstone project (mixed BCS+BITAM team of 3): 20%
    • Mid-semester test (week 8): 5%
  • Final Exam β€” 40%
βœ…

Prerequisites

Students should have completed (or have equivalent knowledge of):

  • Object-Oriented Programming β€” classes, inheritance, interfaces (ideally Java)
  • Programming fundamentals β€” variables, control flow, functions, basic data structures
  • Basic Git & command line β€” clone, commit, push; navigate folders
  • Basic SQL is helpful but not required (we cover what you need)
Hardware/software: A laptop able to run Node.js, JDK 21, Docker, and a modern browser (8 GB RAM minimum, 16 GB recommended). Stable internet for npm, Maven, and Docker pulls. No prior web experience required.
πŸŽ“

Learning Outcomes

By the end of this course, students will be able to:

  1. Explain the architecture of the web (HTTP, client–server, n-tier, monolith vs microservices).
  2. Apply common design patterns (MVC, REST, Repository, Observer) to web apps.
  3. Run an Agile project on GitHub using Scrum/Kanban with Projects boards.
  4. Use the cascade, specificity, and combinators correctly in CSS.
  5. Build accessible (WCAG-conformant), responsive UIs with HTML5 + CSS Flexbox + Grid.
  6. Write modern JavaScript and manipulate the DOM directly.
  7. Consume REST APIs from the browser using Fetch + async/await.
  8. Build single-page apps with React (components, state, hooks, routing).
  9. Design a relational schema and write safe, parameterised SQL.
  10. Implement REST APIs in Spring Boot (deep), Node/Express, and Django.
  11. Apply authentication (JWT) and OWASP-grade security.
  12. Write unit, integration, and E2E tests with Vitest, RTL, and Playwright.
  13. Optimise for Core Web Vitals and add real-time features (WebSockets / SSE).
  14. Containerise a multi-service app and set up CI/CD on GitHub Actions; deploy live.
πŸ“š

Lectures

#TopicWeeksNotesFormat
L1 Web Foundations 1 History, HTTP, client–server, Web 1.0/2.0/3.0 PDF
L2 Web Architecture & Design Patterns 2 n-tier, monolith vs microservices, MVC, REST, Repository, Observer, SPA/SSR/MPA PDF
L3 Agile Methodology 3 Scrum (roles, events, artefacts), Kanban, user stories, Git/GitHub workflow, GitHub Projects PDF
L4 HTML & CSS Basics 4 Semantic HTML, selectors, combinators, the cascade, specificity, inheritance, accessibility PDF
L5 CSS Layout 5 display, box model, Flexbox (with terminology), Grid, responsive design, CSS variables PDF
L6 JavaScript & the DOM 6 Modern JS, DOM, events, delegation, async/await, ES modules PDF
L7 AJAX, Fetch & REST APIs 7 HTTP verbs, JSON, Fetch, error handling, CORS, API-client patterns PDF
Mid-semester test (5%) 8 Covers Lectures 1–7
L8 Frontend Frameworks (React) 8–9 Components, JSX, useState, useEffect, props, routing Β· Vue/Angular/Svelte overview PDF
L9 Databases for the Web 10 SQL CRUD, joins, parameterised queries, transactions, ORMs, migrations PDF
L10 Backend REST APIs (10a/10b/10c) 11 10a Spring Boot (deep) Β· 10b Node/Express Β· 10c Django REST (comparison) PDF
L11 Authentication & Web Security 12 bcrypt, sessions vs JWT, OAuth/OIDC, OWASP Top 10, CSRF/XSS, HTTPS PDF
L12 Testing, Performance & Real-time 13 Vitest, RTL, Playwright Β· Core Web Vitals, caching Β· WebSockets & SSE PDF
L13 Deployment & DevOps 14 Docker, Compose, GitHub Actions CI/CD, Render/Fly.io, 12-Factor, observability PDF
Capstone presentations & revision 15 Team demos, peer evaluation, exam preparation
πŸ”¬

Practical Lab Sessions

πŸ“

Homeworks

πŸ’‘

Code Examples

Starter HTML

Semantic HTML5 page with header, nav, main, sections, form, footer.

HTML

Starter CSS

CSS variables, Flexbox header, responsive Grid, mobile-first media queries.

CSS

Starter JS

Form handling, FormData, smooth-scroll nav.

JS

Fetch Demo

Async/await against the Open-Meteo API with error handling.

JS

Express Students API

Full CRUD with Node, Express, and SQLite β€” runnable in <1 min.

JS

Spring Boot Controller

Layered REST controller with validation and proper status codes.

JAVA

Django REST Views

Model + serializer + ViewSet + router β€” full CRUD in ~15 lines.

PY

docker-compose.yml

3-tier stack: web (nginx) + api + Postgres with healthcheck.

YAML

GitHub Actions CI

Workflow that tests frontend + backend, then publishes Docker image.

YAML
πŸ“š

Resources for Students

Cheatsheets, starter templates, setup instructions, and curated external links for every part of the course. See the full Resources page β†’ for everything; quick picks below.

πŸ’» Setup Guide

Install Node, Git, JDK 21, Python, Docker. macOS / Windows / Linux steps.

MD

πŸ“ Code Style Guide

What graders look for: HTML, CSS, JS, React, Java, Python, Git conventions.

MD

πŸ“‹ HTML Cheatsheet

Skeleton, semantic elements, forms, media, accessibility quick wins.

MD

πŸ“‹ CSS Cheatsheet

Selectors, cascade, box model, Flexbox, Grid, responsive design.

MD

πŸ“‹ JavaScript Cheatsheet

ES2015+, DOM, events, async/await, modules β€” everything for L6 & Lab 2.

MD

πŸ“‹ HTTP & REST Cheatsheet

Methods, status codes, REST design, CORS, Fetch usage.

MD

πŸ“‹ React Cheatsheet

Components, props, useState, useEffect, routing, custom hooks.

MD

πŸ“‹ SQL Cheatsheet

DDL, CRUD, joins, aggregation, transactions, parameterised queries.

MD

πŸ“‹ Docker Cheatsheet

Daily commands, Dockerfile recipes, multi-service Compose stack.

MD

πŸ“‹ Git & GitHub Cheatsheet

Daily workflow, branches, conflicts, GitHub Classroom flow.

MD

πŸ“¦ Starter Templates

HTML page, CSS reset, JS skeleton, .gitignore, README β€” drop-in for any lab.

HTML

πŸ“– Books, Courses & Videos

Eloquent JS, Full Stack Open, MDN, Traversy, Fireship β€” the full curated list.

List

πŸ‘‰ Open the full Resources page for external links (MDN, OWASP, Spring guides, Docker docs, Postman, Vitest, Playwright, and more) organised by lecture topic.

πŸ“–

Course Topics

  • β–Έ Web architecture & HTTP
  • β–Έ n-Tier, monolith vs microservices, SPA/SSR
  • β–Έ MVC, REST, Repository, Observer patterns
  • β–Έ Agile, Scrum, Kanban, GitHub Projects
  • β–Έ Semantic HTML5 & accessibility (WCAG)
  • β–Έ CSS cascade, specificity, inheritance
  • β–Έ CSS combinators & selectors
  • β–Έ Box model, Flexbox, Grid, responsive design
  • β–Έ Modern JavaScript & the DOM
  • β–Έ Fetch API & consuming REST
  • β–Έ React (hooks, routing)
  • β–Έ SQL & ORMs (Prisma, JPA, Django)
  • β–Έ Spring Boot, Express, Django REST
  • β–Έ Authentication: bcrypt, JWT, OAuth
  • β–Έ OWASP Top 10 mitigations
  • β–Έ Testing: Vitest, RTL, Playwright
  • β–Έ Performance: Core Web Vitals, caching
  • β–Έ Real-time: WebSockets, SSE
  • β–Έ Docker & Docker Compose
  • β–Έ GitHub Actions CI/CD
  • β–Έ Deployment to Render / Fly.io
  • β–Έ 12-Factor & observability