pironantoine 8cf90b8693 Add French legal framework to content moderation filters
Integrate French penal code and press law into the legal filter prompt and update frontend displays to reflect the expanded moderation criteria, including rejection of obscene and defamatory content.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 923ae0e3-a363-4db8-b04a-e8baca2a1330
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: ec496618-f357-4c5d-aea6-f0bff4665765
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8af7d2ec-2cc3-4ece-8af3-9f071488d072/923ae0e3-a363-4db8-b04a-e8baca2a1330/nghZcOj
Replit-Helium-Checkpoint-Created: true
2026-04-05 03:31:08 +00:00
2026-04-02 02:36:40 +00:00
2026-04-02 02:36:40 +00:00
2026-04-02 02:36:40 +00:00
2026-04-02 02:36:40 +00:00
2026-04-02 02:36:40 +00:00
2026-04-02 02:36:40 +00:00

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

DATABASE_URL=postgresql://user:pass@localhost:5432/voix_du_peuple
MISTRAL_API_KEY=sk-...
SESSION_SECRET=une-longue-chaine-aleatoire
VITE_APP_URL=https://votredomaine.fr

Changer de domaine (QR code)

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

Synchroniser avec ce dépôt (depuis Replit)

bash scripts/push-gitea.sh

Prérequis : secret GITEA_TOKEN configuré dans Replit → Secrets.


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/GITEA_TUTO.md Synchronisation Replit → Gitea

Licence

Projet personnel — tous droits réservés. Contactez l'auteur pour toute utilisation ou réutilisation.

S
Description
Site d'expression citoyenne
Readme EUPL-1.2 1.6 MiB
Languages
TypeScript 81.7%
Python 13.8%
CSS 2.5%
Shell 1.3%
HTML 0.7%