78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# Backend - RoadWave
|
|
|
|
Backend Go de l'application RoadWave.
|
|
|
|
## Structure
|
|
|
|
```
|
|
backend/
|
|
├── cmd/ # Points d'entrée de l'application
|
|
│ └── api/ # Serveur API REST
|
|
├── internal/ # Code interne (non exportable)
|
|
│ ├── auth/ # Validation JWT, intégration Zitadel
|
|
│ ├── user/ # Profils, centres d'intérêt
|
|
│ ├── content/ # CRUD contenus, métadonnées
|
|
│ ├── geo/ # Recherche géospatiale, algorithme
|
|
│ ├── streaming/ # Génération HLS, transcoding
|
|
│ ├── moderation/ # Signalements, workflow
|
|
│ ├── payment/ # Intégration Mangopay
|
|
│ └── analytics/ # Métriques écoute, jauges
|
|
├── pkg/ # Code exportable (bibliothèques réutilisables)
|
|
├── migrations/ # Migrations SQL
|
|
├── tests/
|
|
│ └── bdd/ # Step definitions pour tests Gherkin
|
|
├── config/ # Fichiers de configuration (dev, staging, prod)
|
|
├── go.mod # Dépendances Go
|
|
├── sqlc.yaml # Configuration SQLC
|
|
├── .air.toml # Configuration Air (hot reload)
|
|
├── Dockerfile # Image production
|
|
└── Dockerfile.dev # Image développement
|
|
```
|
|
|
|
## Architecture
|
|
|
|
Voir [ADR-012 : Architecture Backend](../docs/adr/012-architecture-backend.md) pour les détails de l'architecture modulaire.
|
|
|
|
## Commandes
|
|
|
|
Depuis la **racine du monorepo** :
|
|
|
|
```bash
|
|
# Développement
|
|
make dev # Démarrer avec hot reload
|
|
make docker-up # Lancer tous les services Docker
|
|
|
|
# Tests
|
|
make test # Lancer tous les tests
|
|
make test-unit # Tests unitaires uniquement
|
|
make test-bdd # Tests BDD Gherkin
|
|
|
|
# Migrations
|
|
make migrate-up # Appliquer les migrations
|
|
make migrate-down # Rollback dernière migration
|
|
make migrate-create name=add_users # Créer nouvelle migration
|
|
|
|
# Build
|
|
make build # Compiler le binaire production
|
|
make lint # Linter le code
|
|
make format # Formatter le code
|
|
```
|
|
|
|
## Configuration
|
|
|
|
1. Copier `.env.example` en `.env` :
|
|
```bash
|
|
cp backend/.env.example backend/.env
|
|
```
|
|
|
|
2. Ajuster les variables d'environnement si nécessaire
|
|
|
|
## Dépendances
|
|
|
|
- **Go** : 1.21+
|
|
- **PostgreSQL** : 16+ avec PostGIS
|
|
- **Redis** : 7+
|
|
- **Zitadel** : dernière version
|
|
|
|
Toutes les dépendances sont gérées via Docker Compose (voir `docker-compose.yml` à la racine).
|