Initial commit
This commit is contained in:
77
backend/README.md
Normal file
77
backend/README.md
Normal 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).
|
||||
Reference in New Issue
Block a user