Main is an experimental branch with more analysis and some BE features, that are not yet on stable Back-end functionality to collect personal data and run initial analysis this is the back-end part of the app to track different aspects of the personal life and identify some useful patterns, correlations and trends to better adjust habits, routines and such
- if you have PostgresDB running on your host machine, make sure you have
trackme
database created and given privileges toroot
:
CREATE DATABASE trackme;
CREATE USER root;
GRANT ALL PRIVELEGES ON DATABASE trackme TO root;
- Adjust .env file (rename
.env.example
to.env
or create it), use.env.example
as a reference for needed values - Create a configuration file for topics and attributes to track in the app. You can use
configuration_example.json
as a reference or read wiki for default setup (no configuration file supplied)
- (MacOS and Linux) run
make build
- in case you want to supply your own structure, run
make docker-migrate-own-config PATH=absolute_path_to_the_host_file
- in case you want to run default structure, run
make docker-migrate.default
- to start the backend app run
make run
and navigate tolocalhost:5000/docs
- you will need python 3.9+ and poetry installed
- to setup dependencies for local run or development:
make local-setup
- to start the backend app run
make local-run
and navigate tolocalhost:5000/docs
TBD
within active poetry environment (after running make local-setup
run poetry shell
to activate python environment)
- run linters:
make linter
- to generate openapi client for this server:
- save newest opeanpi.json to openapiclient folder
- run: make generate-client laguage=<deisred_language>
make sure you have openapi-generator installed. Preferred way of installation is a package with OS specific package manager.
!! tests are run on default data seeding !!
run: make test
This program is designed to combine several approaches from psychological research as well as ease of tracing. Several information classes are predefined for an easier and more granular analysis. Although this split can cerate an information bias, where people have to choose slightly wrong form for their thoughts. I believe, that with categories held as abstract as possible and a possibility to customize this information, the bias will be insufficient.
More documentation about ideas and default structure can be found here: wiki