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:
@@ -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`
|
||||
Reference in New Issue
Block a user