Guide de demarrage rapide¶
Ce guide couvre l'installation et le lancement de Revise Mieux en local (backend Go + mobile Expo).
Prerequis¶
| Outil | Version | Verification |
|---|---|---|
| Go | 1.23+ | go version |
| Node.js | 20+ | node --version |
| Docker + Docker Compose | recent | docker compose version |
| PostgreSQL client (psql) | 16+ | psql --version |
| Expo CLI | via npx | npx expo --version |
Optionnel :
- golangci-lint pour le linting Go (make backend-tools)
- swag pour la generation Swagger (make backend-tools)
Installation¶
# Cloner le depot
git clone https://github.com/popul/revisemieux.git
cd revisemieux
# Setup complet : demarre l'infra Docker, installe les deps, applique les migrations
make setup
La commande make setup execute dans l'ordre :
1. infra-up -- demarre PostgreSQL et Redis via Docker Compose
2. deps -- go mod download (backend) + npm install (mobile)
3. db-migrate -- applique les migrations SQL
Variables d'environnement¶
Le backend charge sa configuration depuis les variables d'environnement. Les valeurs par defaut permettent de demarrer sans fichier .env pour le developpement local (sauf JWT_SECRET qui est obligatoire).
Obligatoires¶
| Variable | Description | Exemple |
|---|---|---|
JWT_SECRET |
Cle secrete pour la signature des tokens JWT | une-cle-secrete-longue-et-aleatoire |
Base de donnees et cache¶
| Variable | Description | Defaut |
|---|---|---|
DATABASE_URL |
URL de connexion PostgreSQL | postgres://revisemieux:revisemieux@localhost:5432/revisemieux?sslmode=disable |
REDIS_URL |
URL de connexion Redis | redis://localhost:6379/0 |
MIGRATIONS_DIR |
Chemin vers les fichiers de migration SQL | migrations |
Serveur HTTP¶
| Variable | Description | Defaut |
|---|---|---|
PORT |
Port d'ecoute du serveur | 8080 |
GIN_MODE |
Mode Gin (debug ou release) |
debug |
JWT_EXPIRY |
Duree de validite des tokens JWT | 24h |
Storage S3 / MinIO¶
| Variable | Description | Defaut |
|---|---|---|
S3_ENDPOINT |
Endpoint S3 (MinIO en local) | http://localhost:9000 |
S3_BUCKET |
Nom du bucket | revisemieux |
S3_ACCESS_KEY |
Cle d'acces S3 | (vide -- pipeline desactive si absent) |
S3_SECRET_KEY |
Cle secrete S3 | (vide -- pipeline desactive si absent) |
S3_REGION |
Region S3 | us-east-1 |
LLM (structuration et scoring)¶
| Variable | Description | Defaut |
|---|---|---|
LLM_PROVIDER |
Provider LLM actif : gemini, anthropic, mistral |
gemini |
GOOGLE_AI_API_KEY |
Cle API Google AI (Gemini) -- sert aussi pour l'OCR | (vide) |
GEMINI_STRUCT_MODEL |
Modele Gemini pour la structuration | gemini-2.5-flash |
ANTHROPIC_API_KEY |
Cle API Anthropic | (vide) |
ANTHROPIC_STRUCT_MODEL |
Modele Anthropic pour la structuration | claude-sonnet-4-6 |
ANTHROPIC_FIDELITY_MODEL |
Modele Anthropic pour le fidelity check | claude-haiku-4-5 |
MISTRAL_API_KEY |
Cle API Mistral | (vide) |
MISTRAL_STRUCT_MODEL |
Modele Mistral pour la structuration | mistral-small-latest |
Le pipeline complet (upload -> OCR -> structuration -> items) n'est actif que si le storage S3, le service OCR (Google AI API key) et le LLM sont tous configures.
Lancement en developpement¶
# Lance le backend (hot reload via go run) + le mobile (Expo) en parallele
# Demarre automatiquement l'infra Docker si necessaire
make dev
Pour lancer les composants separement :
# Backend seul
make backend-dev
# Mobile seul
make mobile-dev
# Infrastructure Docker seule
make infra-up
Tests¶
# Tests unitaires (domaine + app, sans DB)
make test-unit
# Tests d'integration (necessite PostgreSQL)
make test-integration
# Tous les tests
make test
# Tests avec couverture
make backend-test-cover
Les tests unitaires du domaine n'ont besoin d'aucun mock (logique pure). Les tests d'integration utilisent une vraie base PostgreSQL.
Qualite du code¶
# Lint (golangci-lint + go vet)
make lint
# Formatage du code Go
make fmt
# Lint + tests (CI gate)
make check
Acces aux services¶
| Service | URL | Notes |
|---|---|---|
| API backend | http://localhost:8080 |
Health check : GET /health |
| Swagger UI | http://localhost:8080/swagger/index.html |
Disponible en mode debug |
| Token dev | GET /dev/token |
Disponible en mode debug, genere un JWT de test |
| MinIO Console | http://localhost:9001 |
Login : minioadmin / minioadmin (profil storage requis) |
| PostgreSQL | localhost:5432 |
User : revisemieux / revisemieux |
| Redis | localhost:6379 |
Pas d'authentification en local |
Pour activer MinIO (necessaire pour le pipeline d'upload) :
docker compose --profile storage up -d
Commandes utiles¶
| Commande | Description |
|---|---|
make help |
Liste toutes les cibles disponibles |
make setup |
Installation complete |
make dev |
Backend + mobile en parallele |
make test |
Tous les tests |
make lint |
Lint complet |
make db-migrate |
Applique les migrations |
make db-reset |
Detruit et recree la DB |
make infra-reset |
Detruit les volumes Docker et redemarre |
make backend-swagger |
Regenere la doc Swagger |
make bench |
Lance le benchmark LLM |
make clean |
Nettoyage des artefacts |