No description
| android | ||
| docs | ||
| examples | ||
| format | ||
| tests | ||
| tools | ||
| tui | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
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
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
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.