UCESCO Volunteer Manager (VM) — a Symfony 8.1 web app so UCESCO's Volunteer Manager can track volunteers working at UCESCO's projects in Kibera (Nairobi) and Mombasa. v0.1 scope: login-protected CRUD for Volunteers, Projects, Activity Types, Users, and Activities (the log entries), plus a basic per-volunteer/per-project report.
docker compose up -d --wait # start (first run auto-bootstraps the app)
docker compose down # stop — the SQLite data survives (named volume)You can interact with Symfony CLI and the SQLite DB:
docker compose exec php bin/console
docker compose exec php bin/console dbal:run-sql "SELECT * FROM user"
docker compose exec php bin/console app:user:create \
--email=SOMEONE@gmail.com --full-name="Some One" --password=SOMEONE --adminApp: https://localhost (self-signed cert — accept the browser
warning). No host PHP/Composer install is needed — everything runs
through Docker + FrankenPHP. A seeded login is created via
app:user:create — see AGENTS.md rather than looking
credentials up here; the command is idempotent, so re-run it to reset
the password.
docker compose exec php php bin/phpunitBefore committing, run the full toolchain — static analysis, style, and dependency audit:
docker compose exec php composer quality # cs-check + phpstan + phpat + security-audit
docker compose exec php composer cs-fix # auto-fix style issues
docker compose exec php composer rector # preview refactors (dry-run only — review before applying)- PHPStan runs at level
maxagainstsrc/andtests/. - PHP-CS-Fixer enforces
@Symfony+@PER-CS2.0. - PHPat enforces the one architecture rule from ADR 0004
(
Entitymust not depend onController/Twig). - Rector is preview-only — never apply its output without reviewing the diff first; it can produce technically-valid but wrong refactors.
composer auditchecks the dependency tree for known vulnerabilities.
A local pre-commit hook enforces this automatically. Enable it once per checkout:
git config core.hooksPath .githooksIt runs composer quality before every commit and blocks on failure.
Bypass deliberately, when you know what you're doing, with
git commit --no-verify.
See ADR 0005 for the full rationale behind this toolchain.
AGENTS.md is the complete day-to-day reference (used by
both human contributors and AI coding agents working in this repo):
directory map, migrations workflow, testing conventions, and known
gotchas. docs/project/backlog/ holds one card
per open item, indexed in order by
docs/project/next-steps.md;
docs/project/done.md
logs completed work. docs/adr/ records every
architectural decision.