cph-cachet / carp.sensing-flutter

CARP Mobile Sensing for Flutter, including mobile sensing framework, data backend support, and the CARP mobile sensing app.
MIT License
80 stars 28 forks source link
carp flutter flutter-plugins mobile sensing ubicomp wearable

CARP-Mobile-Sensing-Vertical

This repo holds the source code for the Copenhagen Research Platform (CARP) Mobile Sensing (CAMS) Flutter software. It contains the source code for CARP first-party (i.e., developed by the core CARP team) CAMS framework, its packages, and example apps.

In addition, the CARP team maintains 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 plugins are also available on pub.dev.

Software Components

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 pub package
carp_core The CARP core domain model pub package
carp_mobile_sensing The main CARP Mobile Sensing Framework pub package
Packages Data sampling packages
carp_apps_package App sampling package (installed apps, app usage) pub package
carp_connectivity_package Connectivity sampling package (bluetooth, wifi, connectivity) pub package
carp_communication_package Communication sampling package (phone, sms) pub package
carp_context_package Context sampling package (location, activity, weather) pub package
carp_audio_package Audio sampling package (audio, noise) pub package
carp_survey_package Sampling package for collecting survey data from Research Package and running cognitive test using the Cognition Package pub package
carp_health_package Sampling package for collecting health data from Apple Health and Google Health Connect pub package
Wearables Sampling Packages for Wearable Devices
carp_movisens_package Movisens Move & ECG sampling package (movement, MET-level, ECG) pub package
carp_esense_package Sampling package for the eSense earplug device (button pressed & movement) pub package
carp_polar_package Sampling package for the Polar heart rate monitors pub package
carp_movesense_package Sampling package for the Movesense heart rate monitors pub package
Backends Backend data upload components
carp_webservices Flutter API for CARP Web Services (CAWS) pub package
carp_backend Data manager for uploading data to a CAWS data backend. pub package
carp_firebase_backend Data manager for uploading data to Firebase as both zipped files and JSON data pub package
Utilities Misc. CAMS utilities
carp_study_generator A simple command line interface (CLI) to upload study protocols, informed consent, and localization files to a CAWS backend. pub package
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 wearable devices over BLE connections.
pulmonary_monitor_app Demonstrates how user tasks (aka. AppTask) are supported in CAMS.

Documentation

The overall documentation of 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 contains more specific documentation on how each package is used in the framework (e.g. how the Movesense sampling package is to be used).

Issues

Please check existing issues and file any new issues, bugs, or feature requests in the carp.sensing-flutter repo.

Contributing

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.