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.0
or higher) installed andflutter doctor -v
does not have any
errors regarding Android development. - Clone the repository and run
cd soTired/ && make init
to initialize git pre-commit hooks. - Inside the
soTired/
directory runmake flutterPubGet
to install all depending packages.
Server development environment setup
- Make sure you have go (version
1.17
or higher) installed. - Clone the repository and run
cd soTired/ && make init
to initialize git pre-commit hooks. - Inside the
soTired/server/
directory rungo 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.
How to install the app
- Make sure you have
adb
installed (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 flutterBuild
in 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 gobuild
to build the
server. - By then typing
cd server && ./soti-server
you 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.