Skip to content
This repository has been archived by the owner on Mar 20, 2021. It is now read-only.

nebbles/MHML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cover

Mobile Healthcare and Machine Learning

Mohyeldin Aboualam, Scott Bunting, Felix Crowther, Benedict Greenberg, Josephine Latreille, Cao An Le, Leah Pattison

Department of Electrical and Electronic Engineering & Dyson School of Design Engineering, Imperial College London

Sensa is a mobile healthcare monitoring system which aims to use a blend of self reported measures and physiological signal analysis to detect stress and guide users to improve their state using personalised exercises.

Code Structure

  • The hardware directory was used for firmware development of the M5Stack Fire, have a look at the README for more info.
  • The app directory was used for the app development (using Unity) for iOS/Android, have a look at the README for more info.
  • The server directory was used for backend server code such as the API (fronting the database) and machine learning elements, have a look at the README for more info.

Documentation

Throughout our code we have endeavored to leave useful comments and READMEs where suitable. In addition, to aid our cross-platform development within the team, we kept to project wide specifications.

Repository Structure Tree

Note: This is a 'light' version of the project structure. For more information on files, refer to the relevant subdirectory README.

MHML/
  ├─ .github/                     GitHub configuration files
  ├─ docs/API_Specification.md    Documentation on API usage
  ├─ docs/BLE_Specification.md    Documentation on BLE configuration and usage
  ├─ docs/Data_Specification.md   Documentation on cross platform data usage
  │
  ├─ app/                         Unity app development is stored
  │    ├─ Assets/Scripts/                    
  │    │  ├─ Main.cs              Main app logic
  │    │  ├─ Wifi/            
  │    │  │  └─ Networking.cs     Networking logic for communicating with API
  │    │  └─ Bluetooth/
  │    │     └─ controller.cs     BLE client logic for receiving from hardware
  │    └─ README.md               App specific readme
  │
  ├─ hardware/                    Firmware development for M5Stack Fire            
  │    ├─ lib/                    Custom and 3rd party libraries
  │    ├─ src/ble.h               BLE server logic
  │    ├─ src/data.h              Definition of central data structure
  │    ├─ src/gsr.h               GSR sensor development
  │    ├─ src/main.cpp            Main firmware runtime
  │    ├─ src/ppg.h               PPG sensor development
  │    └─ README.md               Hardware specific readme
  │
  ├─ server/
  │    ├─ api/                    Flask application for server API
  │    ├─ ml/                     Development of machine learning models
  │    └─ main.py     
  │
  ├─ LICENSE
  └─ README.md

System Overview

cover

Project Development

From the early stages of the project, we anticipated how the division of development should operate in order to maximise our modularity and reduce interdependencies. This made integration at the later stages far more efficient. See below for a simple graphic of the process.

cover

License

Our source code is licensed under GNU General Public License v3.0

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.