# 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`