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