diff --git a/.agents/agent_assets_metadata.toml b/.agents/agent_assets_metadata.toml index b0ad16b..630c5c5 100644 --- a/.agents/agent_assets_metadata.toml +++ b/.agents/agent_assets_metadata.toml @@ -36,3 +36,9 @@ id = "4toQ5OnXtI6PicOZHDKnP" uri = "file://docs/INSTALL_ROCKY.md" type = "text" title = "Guide d’installation RockyLinux" + +[[outputs]] +id = "Gl9K70szTZifk6cTylypp" +uri = "file://README.md" +type = "text" +title = "README.md — Gitea" diff --git a/README.md b/README.md new file mode 100644 index 0000000..5a285a9 --- /dev/null +++ b/README.md @@ -0,0 +1,138 @@ +# 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. diff --git a/screenshots/about.jpg b/screenshots/about.jpg new file mode 100644 index 0000000..38914d3 Binary files /dev/null and b/screenshots/about.jpg differ diff --git a/screenshots/flyer.jpg b/screenshots/flyer.jpg new file mode 100644 index 0000000..8cbb70e Binary files /dev/null and b/screenshots/flyer.jpg differ diff --git a/screenshots/home.jpg b/screenshots/home.jpg new file mode 100644 index 0000000..6bc58ca Binary files /dev/null and b/screenshots/home.jpg differ diff --git a/screenshots/transparence.jpg b/screenshots/transparence.jpg new file mode 100644 index 0000000..83a5650 Binary files /dev/null and b/screenshots/transparence.jpg differ