Modular Data Tracking Application Platform
Overview
This project is a plugin-based, configuration-driven mobile tracking platform for research studies. It lets researchers compose and run study protocols through JSON (including schedules, instruments, and UI blocks), while developers focus on building a stable runtime and reusable modules.
Why This Project
Most research platforms lean toward “survey-first” systems with fixed sensing pipelines. This platform treats surveys, sensors, health data, routines, notifications, and visualization as equal protocol components, making it closer to a Study Runtime / Protocol Engine than a single survey app.
Problem
- Each study often requires repeated custom development and brittle one-off app changes.
- Protocol changes are hard to track and reproduce, weakening methodological clarity.
- Mobile OS constraints make reliable collection and scheduling difficult.
- Researchers need operational support such as monitoring coverage and exporting data.
Goals
- Enable protocol composition through configuration rather than rebuilding the app per study.
- Separate a stable core runtime from flexible plugins.
- Support multi-source collection and study-specific scheduling.
- Treat study configuration as a versionable artifact to improve reproducibility.
System Design
- Config-driven execution (JSON): configuration controls plugin composition, schedules, surveys/routines, and SDUI-style UI blocks.
- Plugin-based architecture: modules can include collection logic and (depending on the plugin) UI components.
- Local-first storage: data is persisted locally with Room, then synced to Firebase as the server layer.
- Platform-level scheduling support: baseline scheduling infrastructure is provided so plugins can reuse reliability-sensitive patterns.
What I Built / Contributed
- Designed the overall platform architecture (core runtime vs plugins).
- Implemented JSON-driven protocol execution, including schedules and UI blocks.
- Built multi-source collection foundations (survey, sensors, health integrations, routines, notifications, visualization).
- Implemented local-first persistence with Room and Firebase-backed syncing.
- Started researcher tooling to reduce friction from editing JSON directly.
Key Features
- Plugin-based module composition for study protocols
- JSON configuration bundles for instruments, schedules, and UI blocks
- Offline-first data capture (Room) with Firebase sync
- Reproducible, versionable protocol configuration as a first-class artifact
- Researcher tool in progress: drag-and-drop protocol builder with live preview
Tech and Keywords
Android, Kotlin, Jetpack Compose, Modular Architecture, Plugin System, Protocol Engine / Study Runtime, JSON-driven Configuration + SDUI, Room, Firebase, Offline-first Data Collection, Research Operations Tooling
Outcome
A reusable study protocol engine that reduces repeated study-specific development by turning protocol customization into configuration and composable plugins. It enables researchers to act as protocol designers without programming, while keeping developers focused on building a stable, extensible runtime.