Inspiration
Freshwater ecosystems—urban canals, streams, rivers, and community ponds—are crucial indicators of environmental health. Yet, monitoring them at scale requires widespread community engagement. While citizen science holds immense promise, existing environmental recording tools present steep usability barriers:
- Intimidating scientific jargon (such as measuring turbidity in NTU or hydrological velocity in m/s), which alienates students, community volunteers, and non-expert citizens.
- Exhausting, endless single-page forms that lead to high field abandonment rates.
- Forced guessing, where volunteers pick inaccurate options when unsure because forms lack an explicit "Cannot tell" choice.
- Connectivity dependencies, making apps unusable along remote riverbanks and wetlands without cell service.
We were inspired to build AquaVerify to dismantle these friction points. Our mission was to design an intuitive, delightful, and mobile-first experience that empowers anyone—from middle school field trips to weekend park walkers—to record structured, meaningful freshwater observations with zero training or internet connection required.
What it does
AquaVerify is a lightweight, offline-first citizen science freshwater observation application:
- Plain-Language Visual Assessment: Translates complex hydrological parameters into intuitive, visual choices (e.g., Turbidity $\rightarrow$ "How clear does the water look?", Catchment context $\rightarrow$ "What best describes the surrounding area?").
- Contextual Micro-Learning ("Why We Ask This"): Every observation step contains concise ecological context cards explaining why each indicator matters (e.g., how riparian buffer plants filter agricultural runoff and stabilize banks).
- Transparent Scientific Integrity & Safety: Enforces safety warnings ("Never touch or taste questionable water") and includes a clear disclaimer acknowledging that inputs are visual estimates rather than laboratory-grade measurements.
- 4-Step Guided Wizard with Direct Editing: Breaks the observation process into bite-sized steps with live progress tracking, dedicated "Unsure / Cannot tell" options, and quick 1-tap demo locations for field testing.
- Comprehensive Review & Local Persistence: Allows observers to review, edit specific sections via jump links, and save observations 100% locally to the device without creating an account or requiring cloud access.
- Observation History & Summary Export: Features instant keyword search, water body filter chips (Stream, River, Pond, Lake, Urban Canal), and a 1-tap clipboard report generator for sharing observations with local watershed groups.
How we built it
- Frontend & UI/UX: Built with Flutter (Dart) leveraging Material 3 guidelines, custom aquatic color palettes (
AppColors), smooth transitions viaflutter_animate, and modern typography with Google Fonts (Inter). - Architecture: Implemented a clean, decoupled Repository Pattern (
ObservationRepository) powered by Flutter's lightweightValueNotifierfor reactive, high-performance UI state updates. - Offline Storage Engine: Developed a resilient
StorageServiceon top ofSharedPreferenceswith custom JSON serialization and schema versioning, ensuring zero reliance on external backends or network connectivity. - Quality & Testing: Validated using automated unit tests for data serialization and end-to-end integration tests (
flutter test) simulating the full assessment flow.
Challenges we ran into
- Balancing Accessibility with Scientific Value: Simplifying scientific terminology without oversimplifying the data required careful taxonomy design. We designed a clear translation matrix (e.g., Chromaticity $\rightarrow$ Visual Color, Olfactory $\rightarrow$ Unusual Odour) with explicit "Unsure / Cannot tell" fallback options to preserve data integrity.
- Seamless Field Workflow: Ensuring users could easily fix a mistake in Step 2 while on the final Review screen without losing progress. We resolved this by building modular step-navigation callbacks that let users jump directly to any step and return seamlessly to their review.
- Zero-Latency Offline Experience: Guaranteeing instant launch and smooth performance on low-end mobile devices and web browsers while maintaining local historical records without heavy database bloat.
Accomplishments that we're proud of
- 100% Offline-First: Zero login walls, zero tracking, and fully operational in remote riparian zones.
- Accessible & Engaging UX: High-contrast touch targets, intuitive iconography, responsive layouts, and interactive educational tooltips.
- Robust Quality Assurance: Clean static analysis with
flutter analyzeand 100% passing automated unit and widget test suites. - Built-in Shareability: Structured 1-tap clipboard export making it trivial for volunteers to share data with local community initiatives.
What we learned
- Designing for citizen science requires treating empathy and clarity as core scientific instruments—lowering cognitive load directly improves data consistency and volunteer retention.
- Educational micro-copy embedded directly at the point of input substantially increases user confidence compared to separate help manuals.
What's next for AquaVerify
- Automated GPS & Geofencing: Native geolocation coordinate capture and watershed boundary mapping.
- Visual Photo Attachments: Local photo capture and offline image compression for riparian bank condition evidence.
- Export Formats (CSV / GeoJSON): One-click export for direct ingestion into GIS platforms and OneAquaHealth research databases.
- Optional Background Cloud Sync: Automatic sync queue to upload local observations when an internet connection becomes available.
Built With
- cross-platform
- dart
- flutter
- flutter-animate
- google-fonts
- json
- material-design-3
- mobile
- offline-first
- shared-preferences
- web
Log in or sign up for Devpost to join the conversation.