ad41956ea1
feat(frontend): Dashboard + Orders UI + Vehicle Picker + Vehicles list
...
- Pinia stores: orders (CRUD, line management, totals recalc, stats) and vehicles (CRUD, search, marca/model cascade)
- useSync composable: auto-sync on window focus + periodic 60s interval
- VehiclePicker component: debounced autocomplete search by nr. inmatriculare or client name
- OrderLineForm component: manopera/material toggle with live total preview
- DashboardView: stats cards (orders, vehicles, revenue), recent orders list
- OrdersListView: filterable table (all/draft/validat/facturat), clickable rows
- OrderCreateView: vehicle picker + inline new vehicle form, tip deviz select, km/observatii
- OrderDetailView: order info, lines table with add/remove, totals, validate action
- VehiclesListView: searchable table, inline create form with marca/model cascade
- AppLayout: mobile hamburger menu with slide-in sidebar overlay
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 17:29:02 +02:00
907b7be0fd
feat(backend): FastAPI + libSQL + auth register/login/me + tests (TDD)
...
- FastAPI app with lifespan, CORS, health endpoint
- SQLAlchemy 2.0 async with aiosqlite, Base/UUIDMixin/TenantMixin/TimestampMixin
- Tenant and User models with multi-tenant isolation
- Auth: register (creates tenant+user), login, /me endpoint
- JWT HS256 tokens, bcrypt password hashing
- Alembic async setup with initial migration
- 6 passing tests (register, login, wrong password, me, no token, health)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 17:26:31 +02:00
c3482bba8d
feat(frontend): Vue 3 + wa-sqlite + sync engine + auth + layouts
...
- package.json with Vue 3, Pinia, vue-router, wa-sqlite, Tailwind CSS 4, Vite
- wa-sqlite database layer with IDBBatchAtomicVFS (offline-first)
- Full schema mirroring backend tables (vehicles, orders, invoices, etc.)
- SyncEngine: fullSync, incrementalSync, pushQueue for offline queue
- Auth store with JWT parsing, login/register, plan tier detection
- Router with all routes and auth navigation guards
- AppLayout (sidebar desktop / bottom nav mobile) + AuthLayout
- Login/Register views connected to API contract
- SyncIndicator component (online/offline status)
- Reactive SQL query composable (useSqlQuery)
- Placeholder views for dashboard, orders, vehicles, appointments, catalog, settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 17:22:50 +02:00
a16d01a669
chore(deploy): Docker production config, nginx gzip/cache, deploy docs
...
- docker-compose.yml: restart always, env_file, named volume, start_period
- frontend/nginx.conf: gzip compression, cache headers for assets, no-cache for SW
- Makefile: add prod-down and prod-logs targets
- docs/DEPLOY.md: Dokploy + Cloudflare Tunnel deploy instructions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 17:20:36 +02:00
6f82c56995
chore(devops): docker-compose dev + prod, Dockerfiles, nginx, Makefile
...
- backend/Dockerfile: Python 3.12 slim, non-root user, WeasyPrint system deps
- backend/Dockerfile.dev: dev variant with hot-reload support
- frontend/Dockerfile: Node 20 alpine build + nginx:alpine serve
- frontend/nginx.conf: SPA routing + /api proxy to backend:8000
- docker-compose.yml: production with healthcheck
- docker-compose.dev.yml: dev with volume mounts and hot-reload
- Makefile: dev, build, up, down, logs, migrate, test, shell, prod targets
- .dockerignore for backend and frontend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 17:19:12 +02:00
1ab109b1d4
chore: project structure + API contract
2026-03-13 17:17:22 +02:00
d6e1a0c2fa
chore: ignore HANDOFF.md
2026-03-13 17:09:12 +02:00
b5085bf2fa
chore: plan implementare Agent Teams + API contract
...
- docs/PLAN.md - plan arhitectural complet (creat anterior)
- docs/api-contract.json - contract API intre backend/frontend agenti
- docs/superpowers/plans/2026-03-13-roaauto-implementation.md - plan implementare cu Agent Teams
- HANDOFF.md - context pentru sesiuni viitoare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 17:07:04 +02:00