Files
2026-01-31 11:45:11 +01:00
..
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00

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 pour les détails de l'architecture modulaire.

Commandes

Depuis la racine du monorepo :

# 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 :

    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).