The problem
Field surveys — household censuses, water and sanitation audits, agricultural assessments — still happen on paper in large parts of rural India because the survey apps students know (Google Forms and its clones) stop working the moment the network drops. Paper forms come back with illegible handwriting, skipped questions and no proof the enumerator actually visited the location. This project solves exactly that gap: a progressive web app that works fully offline, attaches a GPS fix to every submission as proof of visit, queues records on the device, and uploads them automatically when connectivity returns. The buyer also gets a form builder (so one app serves many different surveys) and one-click CSV export that drops straight into Excel or any analysis tool. Everything is built with standard web technology — HTML, CSS, vanilla JavaScript, service workers — so the student can explain every layer in the viva without hiding behind a framework.
Builds the questionnaire in the form builder; the schema versions with every submission.
Follow the working sequence
How it works
- The survey designer builds the questionnaire in the form builder; the schema is stored as JSON and versioned with every submission so exports always match the form.
- On the field device the PWA is installed to the home screen; a service worker caches the app shell so it launches and runs with no network at all.
- The enumerator fills the entry form; on save, the app captures a GPS fix via the Geolocation API (latitude, longitude and precision in metres) and stamps the record with a timestamp.
- The record is written to persistent local storage immediately. If the device is online it is marked synced; if offline it enters the sync queue as pending.
- When connectivity returns (or on manual "Sync now"), the queue uploads records in batches of 50, retrying failures with exponential backoff (2 s, 4 s, 8 s, up to 5 attempts) before marking a record failed.
- At any point the supervisor opens the dashboard to search responses, check the geotag coverage plot, and export the whole dataset to CSV in one click.
Tech stack:
- HTML5, CSS3 (responsive layout)
- Vanilla JavaScript (ES6, no framework)
- Service Workers + Web App Manifest (PWA installability, offline shell)
- IndexedDB / localStorage (persistent offline storage)
- Geolocation API (GPS fixes)
- File API + Blob (client-side CSV download)
- Node.js + Express (reference sync-server design)
- Git (version control)
| Parameter | Value |
|---|---|
| App type | Progressive Web App, installable, works offline after first load |
| Offline storage | Approximately 5–50 MB of survey records (device/browser dependent, design target) |
| Geotag precision | Typically ±5–10 m outdoors on a phone GPS (device dependent, not a measured claim) |
| Sync batch size | 50 records per upload batch (design target) |
| Retry policy | Exponential backoff 2 s / 4 s / 8 s, up to 5 attempts per record (design target) |
| CSV export | UTF-8 with BOM, RFC-4180 quoting; design target 10,000 rows in under 5 s on a laptop |
| App shell size | Under 500 KB total (design target) |
| Browsers | Recent 2 versions of Chrome, Edge, Firefox, Safari (expected) |
Project features
- [Survey form builder] Add text, number, radio, checkbox and photo fields with required/optional flags; the entry form re-renders instantly from the schema and the schema version is stored with every submission.
- [Offline-first data capture] The entry form, validation and local storage all run with zero connectivity; the app is installable and launches from the home screen like a native app.
- [Automatic geotagging] Every submission carries a latitude/longitude fix with a precision reading, captured at save time as auditable proof of the visit location.
- [Offline sync queue with retry] Records saved offline wait in a persistent queue; the queue retries with exponential backoff and marks each record synced, pending or failed — no record is ever silently dropped.
- [One-click CSV export] The full dataset — including geotags, timestamps and sync status — downloads as a UTF-8 CSV with BOM that opens cleanly in Excel, with proper quoting of commas and quotes.
- [Submissions dashboard] Searchable table of all responses plus a geotag coverage plot, so supervisors can see at a glance where data was collected and what is still unsynced.
- [Connectivity simulator] A toggle that drops the app offline on demand, making the offline queue, retry logic and sync behaviour demonstrable live in the viva.
What is included
- Complete PWA source code (single deployable web app: form builder, entry form, queue, dashboard, CSV exporter)
- Service worker + web app manifest for offline installability
- Reference sync-server design (Node.js + Express) with API contract documentation
- Project report PDF (background, PWA concepts, architecture, methodology, testing plan)
- PPT presentation for final review
- Viva Q&A preparation document (service workers, offline storage, geolocation, sync strategies)
- Setup and deployment guide
Limitations & prerequisites
- GPS precision is device and environment dependent (±5 m in open sky, ±30–50 m indoors or under dense cover) — the app reports the precision honestly rather than claiming a fixed figure.
- The demo's photo field uses the File API; embedding GPS EXIF data into captured photos is listed as future scope, not included.
- The sync server ships as a reference design with a documented API contract — the buyer hosts it or adapts the contract to their own backend.
- CSV export is validated as a design target of 10,000 rows; very large datasets beyond that are untested in this build.
- Offline map tiles are not included — the coverage plot uses stored coordinates, not a live map layer.
- Browser storage quotas vary by device (typically ~50 MB); the app warns when the quota is approached but cannot exceed it.
- iOS limits background sync for installed PWAs, so uploads on iPhones happen while the app is open.
Frequently Asked Questions
How does the app keep working without internet?
A service worker caches the app shell on first load, so the app launches offline like a native app. Form data is written to persistent browser storage (IndexedDB/localStorage) the moment you press save — no network call is needed. The sync queue then uploads everything automatically when connectivity returns.
How is geotagging done?
At save time the app requests a position fix from the Geolocation API and stores latitude, longitude and the reported precision in metres with the record. The dashboard plots every fix on a coverage map, giving supervisors auditable proof of where each response was collected.
What does the CSV export contain?
One row per submission: submission ID, timestamp, latitude, longitude, GPS precision, sync status, and one column per survey field in schema order. It is UTF-8 with a BOM and RFC-4180 quoting, so it opens directly in Excel with Indian-language text intact.
Can the survey form be changed after data collection starts?
Yes. The builder edits the live schema, and each submission stores the schema version it was captured with, so exports stay consistent and old records are never corrupted by form changes.
Do I need my own server to run this?
For the demo and the viva, no — the sync endpoint is simulated in the app and everything runs in the browser. For real deployment the build includes a reference Node.js + Express sync-server design with a documented API contract you can host anywhere.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and Web Development programs. It demonstrates PWA architecture, offline-first design, browser storage, geolocation, background sync strategy and data export, all with a live demo that works in the viva room with the Wi-Fi switched off. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.
Components & software requirements
- HTML5, CSS3 (responsive layout)
- Vanilla JavaScript (ES6, no framework)
- Service Workers + Web App Manifest (PWA installability, offline shell)
- IndexedDB / localStorage (persistent offline storage)
- Geolocation API (GPS fixes)
- File API + Blob (client-side CSV download)
- Node.js + Express (reference sync-server design)
- Git (version control)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.