Capstone 14 · Full-Stack
Field Notes
Community researchers, canvassers, health workers and oral historians collect data in places with no reliable connection. Most tools assume a network and become useless exactly where they are needed. Build one that does not. It must be fully usable with the connection off: create records, attach photos, edit and delete, and see everything already collected. When a connection returns, it syncs. Sync is where this becomes a serious project. Two devices edit the same record while both are offline, and when they reconnect somebody has to decide what the record now says. Last write wins is a decision, not a default, and it silently loses work. Whatever you choose, choose it deliberately, document it, and make sure a person can see that a conflict happened rather than having their work disappear quietly. The rest is real too: a service worker so it loads with no network, local storage that survives a browser restart, queued changes that survive being closed mid-sync, and photos that do not exhaust the device's storage.
Concepts used
Your dataset
A form definition you design, plus enough seeded records to test sync at a realistic size.
Milestones
Your workspace
Build the full project here. Work through the milestones in order, in both languages.