- Python 51.5%
- JavaScript 22.1%
- C++ 11.7%
- CSS 5.4%
- C 2.8%
- Other 6.5%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| api | ||
| configuration | ||
| gate_server | ||
| libs | ||
| LICENSE | ||
| log_pruner | ||
| scripts | ||
| testing_sim | ||
| timegate-firmware | ||
| ui | ||
| .dockerignore | ||
| .env-dev | ||
| .env-prod | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| docker-compose.yml | ||
| Makefile | ||
| pyproject.toml | ||
| pyrightconfig.json | ||
| README.md | ||
| requirements.txt | ||
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.