halkyon/apps/train
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 220816884c
All checks were successful
CI / check (push) Successful in 41m20s
CI / deploy (push) Successful in 58s
feat(train): Maps shows every route on the map, above the list or beside it (ADR 0030, D60)
The instance's map with every route drawn, fitted to them all, a route
tapped opening its planner. On phones the map stands above the list;
from expanded windows on the two are panes side by side, as Material's
list-detail layout. Without a route to draw, the list alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-31 12:25:38 +01:00
..
brouter feat(train): routes planned through the instance's BRouter (ADR 0030, D44) 2026-10-30 15:53:01 +01:00
halkyon_train_client fix(train): the firmware relay's calls to Polar time out, are bounded and limited per person (ADR 0030, D55) 2026-10-30 15:53:11 +01:00
halkyon_train_flutter feat(train): Maps shows every route on the map, above the list or beside it (ADR 0030, D60) 2026-10-31 12:25:38 +01:00
halkyon_train_server fix(train): the firmware relay's calls to Polar time out, are bounded and limited per person (ADR 0030, D55) 2026-10-30 15:53:11 +01:00
.gitignore feat(train): Halkyon Train's shell, Todo's copied and renamed (ADR 0030, D12) 2026-10-30 15:52:45 +01:00
AGENTS.md feat(train): Maps shows every route on the map, above the list or beside it (ADR 0030, D60) 2026-10-31 12:25:38 +01:00
CLAUDE.md feat(train): Halkyon Train's shell, Todo's copied and renamed (ADR 0030, D12) 2026-10-30 15:52:45 +01:00
README.md feat(train): setting up and keeping the Polar Loop (ADR 0030, D34–D36) 2026-10-30 15:52:55 +01:00
release.dart build(train): Train is released as Learn is, with a key of its own, beside it in the F-Droid repository (ADR 0030, D58) 2026-10-30 17:05:10 +01:00

Halkyon Train

Running, cycling and rowing, as a Halkyon app (what it is to do: ADR 0030). For now a shell on the shared packages: people choose an instance, sign in (with SimpleLogin or a password), switch between the accounts on their devices, sign out and delete their account; the home is empty until Train's first model.

Package What it is
halkyon_train_server The server: Serverpod with the halkyon_base module
halkyon_train_client Its client, generated by Serverpod
halkyon_train_flutter The app, on halkyon_app and halkyon_ui (Android, iOS, Linux, macOS, Windows)

Run it with serverpod start in halkyon_train_server, which starts the server (and its embedded PostgreSQL) on ports of its own, 8180 to 8190, and the app; or the app alone against an instance with flutter run --dart-define=SERVER_URL=https://…/ in halkyon_train_flutter. Tests: dart run melos run test:dart --scope=halkyon_train_server and dart run melos run test:flutter --scope=halkyon_train_flutter at the repository's root, or dart run tool/check.dart for everything.

The app's icon is Lucide's bike (ISC licence, ADR 0031), drawn by the repository's tool/app_icons.py. Licences: the server under the SSPL, the client and the app under the AGPL, the app's with a permission for linking Polar's BLE SDK, which isn't free software, for the Polar Loop (ADR 0030, D36; LICENSE.md).