- Nuxt 3 CSR (ssr:false), @nuxtjs/tailwindcss, dev proxy to backend - useAuth composable: CSRF cookie, XSRF token, login/logout/fetchUser - auth middleware: redirects to /login if no session - Login page, client list with search + create modal - Client detail with editable name, dynamic notes (JSON), history feed - History form with type select, inline edit/delete per entry - Print layout at /clients/:id/print (calls window.print on mount) - TypeScript interfaces: User, Client, HistoryEntry, PaginatedResponse - German UI labels throughout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
Mandant CRM — Monorepo
Layout
backend/— Laravel 10 API + Filament adminfrontend/— Nuxt 3 CSR SPAdocker/— Docker Compose, nginx, PHP Dockerfile
Dev commands (run from repo root)
make dev # docker compose up -d
make stop # docker compose down
make test # composer test inside backend container
make lint # composer static-analysis inside backend container
make migrate # php artisan migrate
make fresh # migrate:fresh --seed
make shell-php # bash into backend container
make shell-node # sh into frontend container
Agent scope rules
- Backend feature → edit only
backend/ - Frontend feature → edit only
frontend/ - Auth / Docker / infra → root + both apps
- New module → follow scaffold in
.claude/skills/new-module.md - New history type → follow
.claude/skills/new-history-type.md
Commit style
feat/fix/chore/refactor/test/docs — conventional commits
Examples: feat(client): add search endpoint, fix(history): soft delete cascade
Telegram Channel Guidelines
- Before calling any write_file, edit_file, or bash tools that trigger system permission prompts, you MUST send a Telegram text message summarizing exactly what you are about to modify and why.
- Never trigger a tool call blindly without explaining the context to the user first.