Files
la-voix-du-peuple/docs/WIKI.md
T
pironantoine 50bc1f5ce9 Update documentation and push code to Gitea repository
Update documentation files (DAT.md, DEX.md, WIKI.md) to version 1.4, incorporating changes related to Gitea synchronization, the `GITEA_TOKEN` secret, and the `scripts/push-gitea.sh` script.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 923ae0e3-a363-4db8-b04a-e8baca2a1330
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: cae3c6dc-0372-4c09-9980-7184f80535a3
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8af7d2ec-2cc3-4ece-8af3-9f071488d072/923ae0e3-a363-4db8-b04a-e8baca2a1330/qCk7LE3
Replit-Helium-Checkpoint-Created: true
2026-04-04 14:09:32 +00:00

4.5 KiB

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
Version doc : 1.4


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
  • exportables : copie horodatée dans le presse-papier, PDF mise en page, ou flyer A4 avec QR code pour diffusion physique

L'objectif est de fournir aux représentants politiques un document clair et utilisable issu des préoccupations citoyennes, sans intermédiaire. Ce que contient la synthèse est de l'expression — pas de la vérité établie. La démarche est portée par un auteur attaché à l'expertise et au dialogue fondé sur les preuves.


Fonctionnement en 6 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
  6. Le résumé peut être partagé (texte horodaté), exporté en PDF, ou diffusé via un flyer QR imprimable

Pages de l'application

URL Contenu
/ Formulaire de soumission + contributions récentes + synthèse (avec boutons Partager / PDF)
/about Description du projet, posture éditoriale ("Expression, pas vérité"), fondements juridiques
/transparence Fonctionnement de l'IA, données collectées, limites, encart "Ce que cette plateforme n'est pas"
/flyer Flyer A4 imprimable avec QR code configurable pour diffusion physique

Fonctionnalités d'export et de diffusion

Partager la synthèse

Bouton dans l'en-tête de la colonne de synthèse. Sur mobile : partage natif (WhatsApp, mail…). Sur bureau : copie dans le presse-papier avec date et heure.

Exporter en PDF

Bouton "PDF" dans la même zone. Ouvre une fenêtre avec le résumé mis en page (tricolore, titre, date, texte, pied de page) pour impression ou export PDF depuis le navigateur.

Flyer QR imprimable

Page /flyer : flyer format A4 avec grand QR code. L'URL encodée est modifiable :

  • Via le champ texte en haut de la page (sans recharger)
  • Via le paramètre URL /flyer?url=https://monsite.fr
  • En modifiant la constante DEFAULT_QR_URL dans src/pages/flyer.tsx

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
QR code qrcode.react
Police Bahnschrift (titres), Inter (corps)
Couleur principale Pétrol foncé hsl(185 42% 28%) — sans connotation partisane
Accessibilité Dark mode · Police dyslexie · Contraste élevé · Texte agrandi (panneau dans la navbar)
Dépôt Gitea — push via bash scripts/push-gitea.sh (token GITEA_TOKEN)

Variables d'environnement clés

DATABASE_URL        — URL PostgreSQL
MISTRAL_API_KEY     — Clé API Mistral
SESSION_SECRET      — Secret Flask
GITEA_TOKEN         — Token d'accès Gitea (push sécurisé)
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.

Export / partage : entièrement côté client, rien n'est envoyé au serveur lors d'un partage ou d'un export PDF.


Liens