This repo holds the source code for the CACHET Research Platform (CARP) Mobile Sensing (CAMS) Flutter software. It contains the source code for CACHET first-party (i.e., developed by the core CACHET team) CAMS framework, its packages, and example apps.
In addition, the CARP team maintain a set of Flutter plugins (mainly) for sensing purposes. Flutter plugins enable access to platform-specific APIs. For more information about plugins, and how to use them, see the Flutter Packages description.
All the CARP Flutter components including the these plugins are also available on pub.dev.
These are the available CARP Mobile Sensing Flutter components in this repository.
Component | Description | pub.dev |
---|---|---|
Core | Basic components | |
carp_serializable | A package for polymorphic serialization to/from JSON build on top of json_serializable | |
carp_core | The CARP core domain model | |
carp_mobile_sensing | The main CARP Mobile Sensing Framework | |
Packages | Data sampling packages | |
carp_apps_package | App sampling package (installed apps, app usage) | |
carp_connectivity_package | Connectivity sampling package (bluetooth, wifi, connectivity) | |
carp_communication_package | Communication sampling package (phone, sms) | |
carp_context_package | Context sampling package (location, activity, weather) | |
carp_audio_package | A "media" sampling package which can collect audio (incl. noise), image, and video data. The label audio in the package name is legacy. |
|
carp_survey_package | Sampling package for collecting survey data from Research Package and running cognitive test using the Cognition Package | |
carp_health_package | Sampling package for collecting health data from Apple Health and Google Fit | |
Wearables | Sampling Packages for Wearable Devices | |
carp_movisens_package | Movisens Move & ECG sampling package (movement, MET-level, ECG) | |
carp_esense_package | Sampling package for the eSense ear plug device (button pressed & movement) | |
carp_polar_package | Sampling package for the Polar heart rate monitors | |
Backends | Backend data upload components | |
carp_webservices | Flutter API for CARP web services | |
carp_backend | Support for downloading a study configuration (incl. protocol, informed consent, and language files) and uploading collected data a CARP data backend. | |
carp_firebase_backend | Support for uploading data to Firebase as both zipped files and JSON data | |
Utilities | Misc. CAMS utilities | |
carp_study_generator | A simple command line interface (CLI) to upload study protocols, informed consent and localization files to the CARP backend. | |
Apps | Misc. mobile sensing demo apps | |
carp_mobile_sensing_app | Demonstrates how basic mobile sensing can be implemented in a Flutter app using CAMS. Also demonstrates how to integrate to wearable devices over BLE connections. | |
pulmonary_monitor_app | Demonstrates how user tasks (aka. AppTask) are supported in CAMS. |
The overall documentation on the software architecture of CARP Mobile Sensing, and how to use and extend it is available on this github wiki. Each of the specific packages also contain more specific documentation on how each package is used in the framework (e.g. how the Firebase data backend package is to be used).
Please check existing issues and file any new issues, bugs, or feature requests in the carp.sensing-flutter repo.
Contributing is not entirely in place yet. However, if you wish to contribute a change to any of the existing components in this repo, please review our contribution guide, and send a pull request.