No description
  • Python 98%
  • Nix 0.9%
  • Gherkin 0.6%
  • Just 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-27 21:35:01 +02:00
.claude Add cartu skill 2026-07-27 21:03:28 +02:00
.robots
.vscode
demo
docs Migrate stories to cartulary 2026-07-27 21:35:01 +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
.gitignore
.python-version
cartulary.toml Migrate stories to cartulary 2026-07-27 21:35:01 +02:00
CLAUDE.md Migrate stories to cartulary 2026-07-27 21:35:01 +02:00
fabritrack Implement ADR-0018 2026-03-31 13:00:48 +02:00
flake.lock Update flake inputs 2026-07-17 11:25:12 +02:00
flake.nix Add cartulary to flake 2026-07-27 20:23:05 +02:00
Justfile Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00
LICENSE
pyproject.toml Add ast-grep to detect violation of static factories 2026-03-30 04:25:21 +02:00
README.md
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