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.
AGPL-3.0 License
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.
PRs are very welcome! :) You can set up your development environments following the steps below.
2.5.0
or higher) installed and flutter doctor -v
does not have anycd soTired/ && make init
to initialize git pre-commit hooks.soTired/
directory run make flutterPubGet
to install all depending packages.1.17
or higher) installed.cd soTired/ && make init
to initialize git pre-commit hooks.soTired/server/
directory run go install
to install all requirements.You're good to go now :)
NOTE: Check the Makefile
for useful commands regarding the app and also the server part.
adb
installed (or something similar to install the app). (The lowest Android9.0
(API level 28).)
make flutterBuild
in the root directory of the project. Note that you need tocd soTired && make gobuild
to build thecd server && ./soti-server
you will be displayed the server help. Follow theseFor 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.
For further information please refer to the app's report.