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>
26 lines
943 B
Markdown
26 lines
943 B
Markdown
# 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
|