No description
Find a file
2026-09-06 09:59:00 +02:00
android Bootstrap Trainlog project contract 2026-09-05 19:05:07 +02:00
docs Align documentation with current TUI state 2026-09-06 09:59:00 +02:00
examples Define Trainlog v1 freeze candidate 2026-09-05 19:22:37 +02:00
format Freeze Trainlog exchange format v1 2026-09-05 19:28:26 +02:00
tests Define Trainlog v1 catalog identity rules 2026-09-05 19:25:54 +02:00
tools Define Trainlog v1 catalog identity rules 2026-09-05 19:25:54 +02:00
tui Add editable TUI workflows and unified navigation 2026-09-06 09:54:28 +02:00
.gitignore Bootstrap Trainlog project contract 2026-09-05 19:05:07 +02:00
AGENTS.md Bootstrap Trainlog project contract 2026-09-05 19:05:07 +02:00
CHANGELOG.md Add editable TUI workflows and unified navigation 2026-09-06 09:54:28 +02:00
LICENSE Bootstrap Trainlog project contract 2026-09-05 19:05:07 +02:00
meson.build Add first usable Trainlog TUI 2026-09-05 19:59:55 +02:00
README.md Bootstrap Trainlog project contract 2026-09-05 19:05:07 +02:00

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.