No description
  • Python 98.6%
  • Gherkin 0.6%
  • Just 0.5%
  • Nix 0.3%
Find a file
Olivier Albiez 2273dd054e Add flake.nix
2026-04-10 17:22:38 +02:00
.claude/agents Add agent configuration 2026-04-01 16:13:33 +02:00
.robots [S0015] Story completed 2026-03-06 10:04:35 +01:00
.vscode Add vscode settings 2026-02-17 23:13:28 +01:00
demo Add demo data 2025-09-23 21:01:28 +02:00
docs Add SQLite logbook repository 2026-04-03 10:26:28 +02:00
rules Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00
src/fabritrack Add import/export of events and configuration of yaml structure 2026-04-03 19:12:52 +02:00
tests Add import/export of events and configuration of yaml structure 2026-04-03 19:12:52 +02:00
.editorconfig Update .editorconfig 2025-08-23 19:41:54 +02:00
.gitignore [S0015] Story completed 2026-03-06 10:04:35 +01:00
.python-version Add .python-version 2025-09-23 20:50:40 +02:00
CLAUDE.md Update claude.md 2026-03-31 13:19:09 +02:00
fabritrack Implement ADR-0018 2026-03-31 13:00:48 +02:00
flake.lock Add flake.nix 2026-04-10 17:22:38 +02:00
flake.nix Add flake.nix 2026-04-10 17:22:38 +02:00
Justfile Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00
LICENSE Add license 2025-08-31 17:41:30 +02:00
pyproject.toml Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00
README.md Rename readme 2026-03-28 20:36:40 +01:00
sgconfig.yml Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00
uv.lock Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00

FabriTrack

FabriTrack is a small software application for managing food production. It uses an activity log as input and produces inventory, traceability, and other reports.

This application follows an event-sourced architecture. It consumes an event log stored under the data/ directory. Events are stored as YAML files, which represent the source of truth for the system. The CLI commands read these YAML events to rebuild state and generate reports (inventory, traceability, costs, etc.).

Usage

There is a demo data directory under demo/. You can use it to try the application.

Show global help and the list of available commands:

uv run ./fabritrack --help

To show the inventory:

uv run ./fabritrack --lb demo inventory list

Development

fabritrack is written in Python 3.13. This project uses :

  • uv for dependency management.
  • Ruff for linting.
  • Ty for typechecking.
  • Mypy for typechecking.
  • pytest for testing.
  • mkdocs for documentation.
  • Make for build automation.
  • Hypothesis for property-based testing.
  • coverage for test coverage.
uv sync

Make targets:

  • Run tests: uv run make test
  • Run typechecker: uv run make typecheck
  • Run linter: uv run make lint
  • Run formatter: uv run make reformat
  • Run tests coverage: uv run make coverage
  • Generate API documentation: uv run make docs