Advanced level · Module 6 of 6 · 30 guided hours
JavaScript Capstone Project
Design, build, test and present the Community Health Worker Visit Tracker as a professional TypeScript application with a Node.js API.
Learning objectives
- Plan a full JavaScript application with offline sync
- Build and test front end and API to professional standards
- Document, audit and present the project
Topics
- requirements and data model
- offline-first sync design
- TypeScript front end
- Node.js API
- testing strategy
- audit and presentation
Lessons
-
Lesson 1 Capstone Requirements and Sync Design
Define the users, data and offline behaviour, and design how visits recorded offline are synchronised safely.
user storiesdata modelclient-generated IDsidempotent sync
-
Lesson 2 Building the Visit API
Implement the Node.js API with validation, idempotent storage and summaries, with integration tests.
sync endpointupsert by IDsummary endpointintegration tests
-
Lesson 3 Building the Offline Front End
Build the TypeScript front end with offline storage, the store and views, and accessible forms.
IndexedDB storagetyped storeaccessible formsrouting
-
Lesson 4 Sync, Quality and Audits
Connect the front end to the API with retrying sync, then audit performance, security and accessibility.
sync on reconnectretry with backoffaudit checklistevidence
-
Lesson 5 Documentation and Presentation
Document the project for other developers and users, and present it with a live offline-to-online demonstration.
READMEuser guidedemo scriptreflection
Practical activity
Deliver the capstone through five reviewed milestones: design, API, front end, sync and quality, documentation and presentation.
Expected outcomes
- A portfolio-quality JavaScript application
- Experience with offline-first design
Assessment
The level project assessed against its criteria, with a demonstration that includes offline recording and later sync.
Taught live by an instructor — online or in person. Free course lessons are for self-study and do not lead to a certificate — see registration options.