Offline Data Support
Feature Detail
Description
Offline Data Support enables Meander Mobile App users to continue registering activities, viewing contacts, and accessing their data even when network connectivity is unavailable. The feature uses a local SQLite database on the device to cache relevant data and queue write operations, ensuring that peer mentors and coordinators can work uninterrupted in low-connectivity environments such as rural home visits or areas with poor signal. A conflict resolution service handles cases where the same record is modified both locally and on the server before sync occurs, applying deterministic merge strategies to preserve data integrity.
User Flow
Analysis
Many peer mentors operate in areas with unreliable internet access - rural regions, care facilities, or during travel. Without offline support, they are blocked from registering activities at the moment they occur, leading to underreporting or inaccurate timestamps that compromise data quality and Bufdir reporting. This feature directly addresses a core usability requirement identified across all workshop organizations and removes a critical friction point that could prevent adoption. Strategically, offline-first design signals a professional, robust product to prospective organizations and differentiates Meander from simpler web-only tools that fail in the field.
The local SQLite database is managed using a Flutter package such as sqflite or drift, with a schema that mirrors the server-side data model for the subset of entities needed offline (activities, contacts, events). Write operations are queued in a sync queue repository rather than sent immediately, and a conflict resolution service applies last-write-wins or field-level merge strategies depending on entity type. The offline storage service coordinates reads from local cache and falls back gracefully, while a connectivity listener (e.g., connectivity_plus) triggers sync when the device comes back online. All cached data must be encrypted at rest using Flutter Secure Storage or platform keychain APIs to meet WCAG and security requirements.
Components (36)
Shared Components
These components are reused across multiple features
Service Layer (9)
Data Layer (12)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.