Files
la-voix-du-peuple/README.md
T
billisdead bc6bd3f9d7 Dé-Replit-isation complète du projet
Supprimés :
- replit.md — doc Replit obsolète
- docs/GITEA_TUTO.md — tuto push Replit → Gitea (obsolète)
- artifacts/api-server/ — serveur TypeScript mort, remplacé par Flask
- artifacts/voix-du-peuple/vite.config.selfhost.ts — fusionné dans vite.config.ts

Nettoyés :
- ai_agent.py — fallback Replit AI supprimé (Mistral + OpenAI-compatible suffisent)
- vite.config.ts — plugins @replit/* retirés, PORT optionnel (défaut 5173)
- package.json + pnpm-workspace.yaml — @replit/* retirés du catalog et des deps
- badge.tsx + button.tsx — commentaires // @replit supprimés
- README.md, DEPLOIEMENT.md, DAT.md, DEX.md, WIKI.md — références Replit remplacées

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 22:41:06 +02:00

5.2 KiB

La Voix du Peuple

Plateforme civique de démocratie participative assistée par IA

Un espace d'expression citoyenne — pas un sondage, pas une vérité établie.


Présentation

La Voix du Peuple permet à des citoyens de soumettre librement des propositions politiques en texte libre. Chaque contribution est automatiquement :

  1. Filtrée par une IA selon le droit international des droits humains (DUDH, PIDCP, CEDH, Charte UE, CERD, Statut de Rome)
  2. Intégrée à une synthèse collective structurée par thèmes
  3. Mise à disposition des élus et décideurs sous forme lisible

La plateforme ne produit pas un consensus, ni une vérité : elle donne à voir ce que des citoyens ont choisi d'exprimer, tel quel. La démarche est portée par un auteur attaché à l'expertise et au dialogue fondé sur les preuves.


Captures d'écran

Page principale — soumission et synthèse en temps réel

Page principale

À propos — concept et posture éditoriale

À propos

Fonctionnement — parcours d'une contribution

Fonctionnement

Flyer QR — diffusion physique imprimable

Flyer QR


Fonctionnalités

Fonctionnalité Description
Soumission libre Formulaire texte avec pseudonyme optionnel
Modération IA Filtre automatique fondé sur le droit international
Synthèse thématique Résumé en temps réel par Mistral Large
Export PDF Synthèse mise en page, générée côté client
Partage horodaté Copie dans le presse-papier ou partage natif mobile
Flyer QR imprimable Flyer A4 avec QR code configuré sur votre domaine
Dark mode Thème sombre pétrol
Accessibilité Police dyslexie · Contraste élevé · Texte agrandi · Navigation clavier

Stack technique

Couche Technologie
Frontend React 18 · TypeScript · Vite 7 · Tailwind CSS · shadcn/ui
Backend Python 3.11 · Flask 3 · Gunicorn
Base de données PostgreSQL 15
IA — modération Mistral Small (mistral-small-latest)
IA — synthèse Mistral Large (mistral-large-latest)
QR code qrcode.react

Installation rapide (RockyLinux)

Voir le guide complet → docs/INSTALL_ROCKY.md

# Cloner le dépôt
git clone https://homegit.gyozamancave.fr/billisdead/la-voix-du-peuple.git
cd la-voix-du-peuple

# Configurer l'environnement
cp .env.example .env
vim .env   # DATABASE_URL, MISTRAL_API_KEY, SESSION_SECRET

# Définir le domaine et construire le frontend
bash scripts/set-domain.sh https://votredomaine.fr

# Démarrer les services
systemctl start voix-du-peuple-api
systemctl start nginx

Le site écoute sur le port HTTP 8080. Vous gérez le HTTPS en amont.


Variables d'environnement clés

# Base de données
DATABASE_URL=postgresql://user:pass@localhost:5432/voix_du_peuple

# IA (Mistral recommandé — souveraineté européenne)
MISTRAL_API_KEY=sk-...

# Sécurité (obligatoire en production)
SECRET_KEY=une-longue-chaine-aleatoire-minimum-32-chars
ADMIN_SECRET=votre-mot-de-passe-admin

# Anti-abus (optionnel — valeurs par défaut raisonnables)
REDIS_URL=redis://localhost:6379/0
RATE_LIMIT_CONTRIBUTIONS=5 per minute;3 per hour
CONTRIBUTION_COOLDOWN_SECONDS=3600
FLOOD_THRESHOLD=10

# hCaptcha (optionnel — recommandé en production)
HCAPTCHA_SECRET_KEY=votre-cle-secrete

# Frontend
VITE_APP_URL=https://votredomaine.fr
VITE_HCAPTCHA_SITE_KEY=votre-cle-de-site   # Nécessite rebuild frontend

Changer de domaine (QR code)

bash scripts/set-domain.sh https://nouveaudomaine.fr
systemctl reload nginx

Documentation

Document Contenu
docs/DAT.md Architecture technique complète
docs/DEX.md Guide d'exploitation et maintenance
docs/WIKI.md Page wiki — présentation générale
docs/INSTALL_ROCKY.md Installation sur RockyLinux 9
docs/SECURITE_ANTI_ABUS.md Protections anti-bot, flood, rate limiting, hCaptcha
docs/RGPD.md Conformité RGPD — registre des traitements
docs/PROMPTS_IA.md Prompts IA intégraux (transparence algorithmique)

Licence

Ce projet est publié sous European Union Public Licence v. 1.2 (EUPL-1.2).

L'EUPL-1.2 est la licence open source officielle de l'Union européenne. Elle est :

  • Compatible avec la GPL v2/v3, l'AGPL v3 et la MPL 2.0 (cf. Appendice)
  • Reconnue par la Commission européenne et les institutions publiques de l'UE
  • Adaptée aux projets civiques et associatifs souhaitant une réutilisation libre sous condition de réciprocité (copyleft)
  • Disponible en 23 langues officielles de l'UE — voir joinup.ec.europa.eu

Ce choix est cohérent avec la posture souveraineté numérique européenne du projet et permet à toute association, mairie ou collectif de reprendre et déployer cet outil sous les mêmes conditions.