Add README for internal data representation

This commit is contained in:
Marty Oehme 2022-01-05 12:54:35 +01:00
parent 7134dc65d8
commit fd4cd62636
Signed by: Marty
GPG key ID: B7538B8F50A1C800

View file

@ -1,6 +1,6 @@
# habit-migrate # habit-migrate
Can take an export of nomie habits in json format and convert it to be importable in Loop Habit Tracker. Can take an export of [nomie](https://nomie.app/) habits in json format and convert it to be importable in [Loop Habit Tracker](https://loophabits.org/).
Confirmed working for nomie version 5.6.4 and Loop Habit Tracker version 2.0.2 and 2.0.3. Confirmed working for nomie version 5.6.4 and Loop Habit Tracker version 2.0.2 and 2.0.3.
Presumably works for other nomie 5.x versions and other Loop 2.x versions as well, Presumably works for other nomie 5.x versions and other Loop 2.x versions as well,
@ -32,3 +32,22 @@ In the future there might be an easier road to using this package but that's the
The package can also be used as a library to load nomie data The package can also be used as a library to load nomie data
or move data into Loop Habit Tracker. or move data into Loop Habit Tracker.
## Internal representation
Internally, the data gets represented within three concepts:
Events, Activities and Trackers.
Events are simple entries or logs of, basically, anything and represent *qualitative* data.
At their most basic, they only describe 'something' at a certain point in time.
For that, they have to contain a time and they may contain prose text (i.e. an arbitrary text string).
Additionally, an event can contain a list of one or more activities.
Activities are the changes to whatever is tracked *quantitatively*.
They always belong to an event and thus the moment in time the event took place.
They might even be the only interesting thing that took place in the event,
but not necessarily.
Lastly, they contain a single tracker which they belong to.
Trackers are the meta-data of whatever is being tracked quantitatively through activities.
They define a name, label, scores, descriptions, reminders and so on.
All data being imported is transformed into this model and output from it again.