Plateforme de decisions collectives pour Duniter/G1. Backend FastAPI async + PostgreSQL (14 tables, 8 routers, 6 services, moteur de vote avec formule d'inertie WoT/Smith/TechComm). Frontend Nuxt 4 + Nuxt UI v3 + Pinia (9 pages, 5 stores). Infrastructure Docker + Woodpecker CI + Traefik. Documentation technique et utilisateur (15 fichiers). Seed : Licence G1, Engagement Forgeron v2.0.0, 4 protocoles de vote. 30 tests unitaires (formules, mode params, vote nuance) -- tous verts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
943 B
943 B
Glibredecision
Plateforme de decisions collectives pour la communaute Duniter/G1.
Stack
- Frontend: Nuxt 4 + Nuxt UI v3 + Pinia + UnoCSS (port 3002)
- Backend: Python FastAPI + SQLAlchemy async + PostgreSQL asyncpg (port 8002)
- Auth: Duniter V2 Ed25519 challenge-response
- Sanctuaire: IPFS (kubo) + hash on-chain (system.remark)
Commands
- Backend:
cd backend && uvicorn app.main:app --port 8002 --reload - Backend tests:
cd backend && pytest tests/ -v - Frontend:
cd frontend && npm run dev - Frontend build:
cd frontend && npm run build - Migrations:
cd backend && alembic upgrade head - Docker:
docker compose -f docker/docker-compose.yml up
Conventions
- French for UI text and documentation
- English for code (variable names, comments, docstrings)
- API versioned under
/api/v1/ - Pydantic v2 for all schemas
- Async everywhere (SQLAlchemy, FastAPI)
- Ed25519 signatures for vote integrity