213a67e612
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
87 lines
2.7 KiB
Markdown
87 lines
2.7 KiB
Markdown
# 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`
|