Initial commit: SejeteralO water tarification platform

Full-stack app for participatory water pricing using Bezier curves.
- Backend: FastAPI + SQLAlchemy + SQLite with JWT auth
- Frontend: Nuxt 4 + TypeScript with interactive SVG editor
- Math engine: cubic Bezier tarification with Cardano solver
- Admin: commune management, household import, vote monitoring, CMS
- Citizen: interactive curve editor, vote submission
- Docker-compose deployment ready

Includes fixes for:
- Impact table snake_case/camelCase property mismatch
- CMS content backend API + frontend editor (was stub)
- Admin route protection middleware
- Public content display on commune page
- Vote confirmation page link fix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-02-21 15:26:02 +01:00
commit b30e54a8f7
67 changed files with 16723 additions and 0 deletions

29
Makefile Normal file
View File

@@ -0,0 +1,29 @@
.PHONY: install dev dev-backend dev-frontend test seed docker-up docker-down
# ── Development ──
install:
cd backend && python3 -m venv venv && . venv/bin/activate && pip install -r requirements.txt
cd frontend && npm install
dev: dev-backend dev-frontend
dev-backend:
cd backend && . venv/bin/activate && uvicorn app.main:app --reload --port 8000
dev-frontend:
cd frontend && npm run dev
test:
cd backend && . venv/bin/activate && python -m pytest tests/ -v
seed:
cd backend && . venv/bin/activate && python seed.py
# ── Docker ──
docker-up:
docker compose up --build -d
docker-down:
docker compose down