Create documentation for project architecture, deployment, and usage

Add DAT, DEX, GITEA_TUTO, and WIKI markdown files to the docs directory, and update agent_assets_metadata.toml to include these new documents.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 923ae0e3-a363-4db8-b04a-e8baca2a1330
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 4bb1a658-d577-451e-965c-fa15e2c21ca9
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8af7d2ec-2cc3-4ece-8af3-9f071488d072/923ae0e3-a363-4db8-b04a-e8baca2a1330/RusmVRz
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
pironantoine
2026-04-04 06:56:49 +00:00
parent e2a0b6401d
commit 213a67e612
5 changed files with 727 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
# La Voix du Peuple — Page wiki
**Type** : Plateforme civique numérique
**Stack** : Python / Flask · React / Vite · PostgreSQL · Mistral AI
**Hébergement** : Replit (dev) / Auto-hébergeable (RockyLinux, Debian)
**Dépôt** : `voix-du-peuple` (Gitea)
**Statut** : Actif — avril 2026
---
## Qu'est-ce que c'est ?
Un outil permettant à des citoyens de soumettre des propositions politiques en texte libre. Ces propositions sont :
- **filtrées** automatiquement par une IA selon les textes internationaux des droits humains (DUDH, PIDCP, CEDH…)
- **synthétisées** en un résumé structuré par thèmes, destiné à des élus ou décideurs
- **affichées** en temps réel sur la page principale
L'objectif est de fournir aux représentants politiques un document clair et utilisable issu des préoccupations citoyennes, sans intermédiaire.
---
## Fonctionnement en 5 points
1. Un citoyen saisit une proposition sur la page principale
2. L'IA (Mistral Small) vérifie que le contenu respecte les droits fondamentaux
3. Si la contribution est acceptée, elle s'ajoute à la base et déclenche une re-synthèse
4. L'IA (Mistral Large) relit toutes les contributions et produit un résumé thématique
5. Le résumé s'affiche en temps réel à droite de l'écran
---
## Pages de l'application
| URL | Contenu |
|-----|---------|
| `/` | Formulaire de soumission + contributions récentes + synthèse |
| `/about` | Description du projet et fondements juridiques |
| `/transparence` | Fonctionnement de l'IA, données collectées, limites |
---
## Stack technique
| Couche | Technologie |
|--------|-------------|
| Frontend | React 18 + TypeScript + Vite 7 + Tailwind CSS |
| Backend | Python 3.11 + Flask 3 + Gunicorn |
| Base de données | PostgreSQL |
| IA | Mistral AI (API OpenAI-compatible) |
| Modération | `mistral-small-latest` |
| Synthèse | `mistral-large-latest` |
| Police | Bahnschrift (titres), Inter (corps) |
---
## Variables d'environnement clés
```
DATABASE_URL — URL PostgreSQL
MISTRAL_API_KEY — Clé API Mistral
SESSION_SECRET — Secret Flask
FILTER_MODEL — Modèle de modération (optionnel)
SYNTHESIS_MODEL — Modèle de synthèse (optionnel)
```
---
## Données collectées
- Texte de la contribution
- Pseudonyme (facultatif, choisi par l'utilisateur)
- Horodatage
- Résultat du filtre IA (accepté / refusé + motif)
**Non collecté** : adresse IP, compte utilisateur, cookies de suivi.
---
## Liens
- Tutoriel Gitea → [`docs/GITEA_TUTO.md`](./GITEA_TUTO.md)
- Architecture technique → [`docs/DAT.md`](./DAT.md)
- Exploitation → [`docs/DEX.md`](./DEX.md)
- Guide déploiement → [`DEPLOIEMENT.md`](../DEPLOIEMENT.md)
- Fonctionnement technique (in-app) → `/transparence`