# ScrutIvoire
**Plateforme d'archivage et d'analyse électorale — Côte d'Ivoire**
ScrutIvoire permet de charger des rapports électoraux PDF officiels, d'en extraire automatiquement les données tabulaires, et d'interroger ces données en langage naturel via un agent SQL.
---
## Aperçu
```
┌─────────────────────────────────────────────────────────┐
│ ScrutIvoire │
│ │
│ Vue Admin Vue Utilisateur Monitoring │
│ ───────── ───────────────── ────────── │
│ • Charger PDF • Liste élections • Traces LLM │
│ • Voir extraction • Chat avec data • SQL généré │
│ • Gérer users • Graphiques • Tokens/latence│
└─────────────────────────────────────────────────────────┘
│ │
┌────▼─────┐ ┌────▼─────┐
│ Worker │ │ API │
│ (extract)│ │ (Flask) │
└────┬─────┘ └────┬─────┘
│ │
┌────▼────────────────────▼─────┐
│ PostgreSQL │ Redis │ MinIO │
└───────────────────────────────┘
```
---
## Stack
| Composant | Technologie |
|---|----------------------------------------|
| Backend | Python 3.11+, Flask, SocketIO |
| Worker | Python asyncio |
| Base de données | PostgreSQL 16 |
| Cache / PubSub | Redis 7 |
| Stockage fichiers | MinIO (compatible S3) |
| LLM | OpenAI, Groq, Cerebras, Gemini, Ollama |
| Frontend | HTML/CSS/JS, Tailwind CSS, D3.js |
---
## Prérequis
- Docker & Docker Compose
- Au moins une clé API LLM (OpenAI recommandé)
- 4 Go RAM minimum
---
## Installation
### 1. Cloner le repo
```bash
git clone
github.com
cd scrutivoire
```
### 2. Configurer l'environnement
```bash
cp config/.env.example config/.env
```
Édite `config/.env` et renseigne les variables …