Initial commit

This commit is contained in:
jpgiannetti
2026-01-31 11:45:11 +01:00
commit f99fb3c614
166 changed files with 115155 additions and 0 deletions

77
backend/README.md Normal file
View File

@@ -0,0 +1,77 @@
# 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).