No description
  • Python 64.2%
  • JavaScript 15.9%
  • C++ 7.9%
  • CSS 3.3%
  • HTML 3.2%
  • Other 5.5%
Find a file
João Freitas 85583f1268
All checks were successful
ci/woodpecker/push/main Pipeline was successful
Merge pull request 'live timing: Show event status' (#93) from live-timing/event-status into master
Reviewed-on: #93
2026-09-27 16:25:54 +00:00
.issues live_timing_relay: add service to relay lap times from PostgreSQL to live timing XML-RPC server 2026-07-20 18:56:00 +01:00
.woodpecker Configure woodpecker ci 2026-06-28 21:49:55 +01:00
api live_timing: scheduled start time for upcoming events 2026-09-27 17:09:42 +01:00
configuration Check gate roles on lap split 2026-06-11 22:32:03 +01:00
docs Normalize docs/ filenames to NNNN-prefix convention 2026-07-09 22:12:28 +01:00
endurance_ui display all timestamps in UTC consistently 2026-07-15 20:09:02 +01:00
gate_server dump_runtime: send framed protobuf cmd messages instead of raw JSON 2026-09-15 22:19:47 +01:00
libs Merge pull request 'live timing: Show event status' (#93) from live-timing/event-status into master 2026-09-27 16:25:54 +00:00
LICENSE Start the timekeeping repo 2026-02-06 21:25:28 +00:00
live_timing_relay live_timing: scheduled start time for upcoming events 2026-09-27 17:09:42 +01:00
live_timing_server live_timing: keep compact time line on the events list 2026-09-27 17:21:02 +01:00
log_pruner log_pruner: Add Dockerfile, requirements, and Makefile 2026-06-09 18:34:50 +01:00
scripts feat: add automated database backup sidecar and helper scripts 2026-06-17 22:54:36 +01:00
testing_sim sim: switch gate wire traffic to framed protobuf GateMessage 2026-09-15 22:19:47 +01:00
timegate-firmware firmware: reference canonical gate.proto in libs/ for nanopb 2026-09-27 11:48:47 +01:00
ui live_timing: scheduled start time for upcoming events 2026-09-27 17:09:42 +01:00
.dockerignore Here I change everything 2026-06-05 17:20:28 +01:00
.env-dev live_timing_relay: add service to relay lap times from PostgreSQL to live timing XML-RPC server 2026-07-20 18:56:00 +01:00
.env-prod fix(compose): fixed ports 2026-06-04 20:38:04 +01:00
.gitignore gate: add canonical gate.proto schema for gate<->server protocol 2026-09-15 22:19:38 +01:00
.gitlab-ci.yml Remove flatc 2026-05-03 16:43:54 +01:00
.pre-commit-config.yaml Setup pre commit checks 2026-03-01 00:06:32 +00:00
AGENTS.md persistence: Add gate_logs table, migration, and query methods 2026-06-09 01:46:05 +01:00
docker-compose.live-timing.yml live_timing_server: add Docker deployment with nginx reverse proxy 2026-07-20 18:27:38 +01:00
docker-compose.yml live_timing_server: fix Dockerfile for subdir layout, join relay to timekeeping-net 2026-09-27 15:43:25 +01:00
Makefile libs: add scoring CLI scaffold and integrate into build pipeline 2026-06-15 23:17:37 +01:00
pyproject.toml Fix ty paths 2026-05-30 16:44:07 +01:00
pyrightconfig.json Create pyrightconfig.json 2026-06-05 16:53:05 +01:00
README.md Add CI badge 2026-06-28 22:08:50 +01:00
requirements.txt Migrate timekeeping storage to Postgres 2026-05-12 21:48:05 +01:00

badge

Timekeeping

Software for the measurement of formula student lap times.

Database

The runtime stack now uses PostgreSQL. Application services read the database connection from DATABASE_URL, and docker-compose.yml starts a local PostgreSQL service that the API and gate server share by default. The compose setup stores PostgreSQL data in the named Docker volume postgres_data, so the database files stay out of the repository working tree and do not interfere with image builds. If you used the older bind mount at ./data/postgres, remove that directory after stopping the stack so legacy Docker builds no longer scan it.

To open a PostgreSQL prompt against the running compose service:

cd /home/joaj/sources/timekeeping
docker compose exec postgres psql -U timekeeping -d timekeeping

To inspect or change Alembic migration state from the compose stack, run the commands in the api container:

cd /home/joaj/sources/timekeeping
docker compose exec api python -m alembic -c /app/timekeeping_persistence/alembic.ini current
docker compose exec api python -m alembic -c /app/timekeeping_persistence/alembic.ini history
docker compose exec api python -m alembic -c /app/timekeeping_persistence/alembic.ini downgrade -1
docker compose exec api python -m alembic -c /app/timekeeping_persistence/alembic.ini downgrade base
docker compose exec api python -m alembic -c /app/timekeeping_persistence/alembic.ini upgrade head

If the api service is not running, use docker compose run --rm api ... instead of docker compose exec api ....

Note: the API service runs migrations to head on startup, so restarting the api container after a downgrade will automatically apply outstanding migrations again.

Contributing

Use the scoped commit format for commits.

License

Except for where otherwise noted, this project is licensed under GPL-v3+. The current license terms shall not automatically apply to derived works that interact with the supplied source modules or compiled outputs through their user facing interfaces.

This relates specifically to the definition of "covered work" as defined in GPL v3.0 or similar concept.