trainlog/README.md
2026-09-05 19:05:07 +02:00

75 lines
1.7 KiB
Markdown

# Trainlog
Trainlog is a local-first workout log composed of:
- a lightweight Android data-entry application;
- a colorful Unix/Linux TUI for history, statistics, graphs, and progress tracking.
## Project goals
Android is optimized for fast use during a workout:
- start and end time;
- exercise selection;
- new exercise creation;
- planned sets and repetitions;
- actual sets and repetitions;
- load;
- rest time;
- body weight;
- body measurements;
- JSON export.
The TUI is the main application:
- import Android exports;
- create sessions directly from the terminal;
- maintain the canonical exercise catalog;
- maintain SQLite history;
- display workout history;
- track body weight;
- track body measurements;
- track performance;
- display colorful terminal graphs;
- export data for external use.
## Architecture
```text
Android
|
| Trainlog JSON
v
Trainlog TUI
|
v
SQLite
```
The TUI SQLite database is the canonical long-term store.
The JSON exchange format is versioned and designed for idempotent imports.
## Repository layout
```text
android/ Android application
tui/ C17 ncursesw application
docs/ Canonical project documentation
format/ JSON schema and exchange-format material
examples/ Valid exchange examples
tools/ Development and validation tools
```
## Development principles
- local-first;
- no mandatory cloud account;
- user-owned data;
- versioned persistent formats;
- stable exercise identifiers;
- idempotent imports;
- documentation and tests are part of every feature;
- clear separation between UI, business logic, and persistence.
See `AGENTS.md` for the development contract.