diff --git a/CLAUDE.md b/CLAUDE.md index f6ed5d6..e71232a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # Dudi – Claude Context ## What this is -Habit & goal tracking PWA. Users set goals (e.g. "50 push-ups/day for 30 days"), log sets daily, and see progress. Invite-only registration. German UI. +Habit & goal tracking PWA. Users set goals (e.g. "50 push-ups/day for 30 days"), log sets daily, and see progress. Invite-only registration. Multilingual UI (DE/EN/PL). ## Stack - Symfony 8 + Doctrine ORM (src/) @@ -13,7 +13,7 @@ Habit & goal tracking PWA. Users set goals (e.g. "50 push-ups/day for 30 days"), - URL: http://dudi.local/ - DB: zieltracker / zieltracker (see .env.local, gitignored) - `php bin/console cache:clear` after config changes -- `public/app.js` is the authoritative JS file — also copy to `public/` after edits to `app.js` at root (root copy is legacy, will be removed) +- `public/app.js` is the authoritative JS file ## Server - `ssh -p 30183 root@miniweb.kuehn.home` @@ -22,9 +22,10 @@ Habit & goal tracking PWA. Users set goals (e.g. "50 push-ups/day for 30 days"), - Remember-me table must exist: `rememberme_token` (already created) ## Key files -- `src/Controller/AuthController.php` — login, register, password reset, name change +- `src/Controller/AuthController.php` — login, register, password reset, name/locale change - `src/Controller/GoalController.php` — goals CRUD - `src/Controller/InviteController.php` — invite creation + listing +- `src/Controller/AdminController.php` — admin-only user list (guarded by ADMIN_EMAIL env var) - `src/Security/JsonLoginAuthenticator.php` — JSON POST /api/login - `config/packages/security.yaml` — firewall, remember-me, access control - `templates/app.html.twig` — SPA shell + all tpl-* templates @@ -38,11 +39,9 @@ Habit & goal tracking PWA. Users set goals (e.g. "50 push-ups/day for 30 days"), ## Conventions - API responses: `{ ok: true, ... }` on success, `{ error: "message" }` on failure - All API routes prefixed `/api/`, catch-all route in AppController renders SPA -- No Twig cache (cache: false in index.php, now handled by Symfony kernel in prod) +- No Twig cache in dev (handled by Symfony kernel; disabled in dev env) - JS uses `tpl(id)` helper to clone `