A flutter application for cognitive fatigue assessment
Motivation
soTired is an application for cognitive fatigue assessment.It includes a stand-alone Android app for fatigue detection and an additional part for data management and further analysis. The project is structured as client side (stand-alone app)
implemented in Dart/Flutter and a server side (data management) written in Golang.
Besides Android, Dart/Flutter provides the ability to add an iOS, desktop and / or web application from a single codebase.
soTired is a rewrite of the application presented in the
Validation of a Smartphone-Based Approach to In Situ Cognitive Fatigue Assessment
paper by Edward Price, George Moore, Leo Galway and Mark Linden.
How to contribute
PRs are very welcome! :)
You can set up your development environments following the steps below.
App development environment setup
- Make sure you have flutter (version
2.5.0or higher) installed andflutter doctor -vdoes not have any
errors regarding Android development. - Clone the repository and run
cd soTired/ && make initto initialize git pre-commit hooks. - Inside the
soTired/directory runmake flutterPubGetto install all depending packages.
Server development environment setup
- Make sure you have go (version
1.17or higher) installed. - Clone the repository and run
cd soTired/ && make initto initialize git pre-commit hooks. - Inside the
soTired/server/directory rungo installto install all requirements.
You're good to go now :)
NOTE: Check the Makefile for useful commands regarding the app and also the server part.
How to install the app
- Make sure you have
adbinstalled (or something similar to install the app). (The lowest Android
version supported is version9.0(API level 28).) - Download the official release (here) or build
it yourself by runningmake flutterBuildin the root directory of the project. Note that you need to
set up your development environment first.
How to set up the server
- After setting up the server development environment run
cd soTired && make gobuildto build the
server. - By then typing
cd server && ./soti-serveryou will be displayed the server help. Follow these
instructions to start the server.
Contributions
For communication through the code, please use one of the following tags:
FIXME - for a bug which can't be fixed now
TODO - for a feature or are a design change that has to be done later on
NOTE - for an important information
The git workflow for this repo is rebase-merge, which results in a history of this form:
F--G
/ \
feature-1 -> B--C E------H <- feature-2
/ \ / \
--A------D----------I <-main
In conclusion, the main branch only contains merge commits from other branches,
which are rebased onto the most recent commit.
Documentation
For further information please refer to the app's report.