# 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](screenshots/home.jpg) ### À propos — concept et posture éditoriale ![À propos](screenshots/about.jpg) ### Fonctionnement — parcours d'une contribution ![Fonctionnement](screenshots/transparence.jpg) ### Flyer QR — diffusion physique imprimable ![Flyer QR](screenshots/flyer.jpg) --- ## 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`](docs/INSTALL_ROCKY.md) ```bash # 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 ```env 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 bash scripts/set-domain.sh https://nouveaudomaine.fr systemctl reload nginx ``` --- ## Synchroniser avec ce dépôt (depuis Replit) ```bash bash scripts/push-gitea.sh ``` Prérequis : secret `GITEA_TOKEN` configuré dans Replit → Secrets. --- ## Documentation | Document | Contenu | |----------|---------| | [`docs/DAT.md`](docs/DAT.md) | Architecture technique complète | | [`docs/DEX.md`](docs/DEX.md) | Guide d'exploitation et maintenance | | [`docs/WIKI.md`](docs/WIKI.md) | Page wiki — présentation générale | | [`docs/INSTALL_ROCKY.md`](docs/INSTALL_ROCKY.md) | Installation sur RockyLinux 9 | | [`docs/GITEA_TUTO.md`](docs/GITEA_TUTO.md) | Synchronisation Replit → Gitea | --- ## Licence Projet personnel — tous droits réservés. Contactez l'auteur pour toute utilisation ou réutilisation.