Retour aux projets

Reload-Airsoft

Plateforme Backend Microservices

À propos du projet

Reload Airsoft est une application web et mobile conçue pour rassembler les passionnés d'airsoft en France et, à terme, à l'international. Ce projet a pour but de faciliter la connexion entre les joueurs et les événements d'airsoft, en offrant une plateforme conviviale pour découvrir, s'inscrire et participer à divers événements.

Objectifs principaux

👥Connecter les joueurs

Permettre aux utilisateurs de se rencontrer et de s'inscrire à des événements d'airsoft à proximité.

📊Tableau de bord pour organisateurs

Offrir aux organisateurs une interface pour créer et gérer leurs événements, ainsi que pour suivre les inscriptions.

📅Calendrier interactif

Proposer un calendrier où les utilisateurs peuvent visualiser les événements à venir et s'inscrire facilement.

🔐Gestion des rôles

Intégrer des rôles tels qu'administrateur, joueur et organisateur pour différencier les fonctionnalités accessibles selon le type d'utilisateur.

Architecture technique

Reload-Airsoft est une plateforme backend complète développée avec une architecture microservices. Le projet vise à créer un écosystème scalable et maintenable pour la gestion d'événements airsoft, d'une communauté active, et d'un système de monétisation.

L'architecture modulaire permet une séparation claire des responsabilités, une communication efficace via API Gateway, et une préparation à la monétisation et à l'analytics. Chaque service est indépendant, déployable séparément, et communique via REST et gRPC.

📋Contexte métier

Le projet est en phase de construction. Certains services sont encore au stade de conception afin de garantir une architecture cohérente et scalable. Cette approche permet de valider l'architecture globale avant d'implémenter les services de monétisation et d'analytics.

Architecture globale

Client (Web / Mobile)

API Gateway

Point d'entrée unique

User Service

Event Service

Blog Service

Payment Service

Prévu

Analytics Service

Prévu

Caractéristiques de l'architecture :

  • API Gateway : Point d'entrée unique pour tous les services
  • Services indépendants : Déployables séparément
  • Communication : REST (actuel) et gRPC (pour performance)
  • Scalabilité : Chaque service peut être mis à l'échelle indépendamment
  • Séparation des responsabilités : Chaque service a un domaine métier clair

Services Microservices

🧩 API Gateway

🚧 En cours

Point d'entrée unique pour tous les services. Gère le routage, la sécurité, le rate limiting et centralise les appels API. Documentation Swagger/OpenAPI, monitoring Prometheus et tracing OpenTelemetry.

Technologies :

GoGingRPCRESTRedisGORMSwaggerPrometheusOpenTelemetry

🧩 User Service

🚧 En cours

Gestion de l'authentification, des profils utilisateurs, rôles et permissions. Service central pour la gestion des utilisateurs. Architecture hexagonale avec gRPC, JWT et Redis pour la scalabilité.

Technologies :

GogRPCJWTRedisPostgreSQL

🧩 Event Service

🚧 En cours

Gestion complète des événements airsoft : création, modification, inscription aux événements, géolocalisation. Architecture avec PostgreSQL, Redis pour le cache et OpenTelemetry pour l'observabilité.

Technologies :

GogRPCPostgreSQLGORMRedisOpenTelemetry

🧩 Blog Service

🚧 En cours

Gestion des articles et actualités, système de commentaires, modération de contenu. Utilise MongoDB pour la flexibilité du schéma et JWT pour l'authentification.

Technologies :

GogRPCMongoDBJWTOpenTelemetry

🧩 Payment Service

📋 Prévu

Gestion des paiements, abonnements, historique de transactions. Service volontairement non démarré - phase de conception. Architecture prévue avec GORM, Redis et OpenTelemetry.

Technologies :

GogRPCGORMRedisOpenTelemetryDockerDocker ComposeGitHub Actionsstripe-go

🧩 Analytics Service

📋 Prévu

Statistiques d'utilisation, tracking d'événements, aide à la prise de décision. Service prévu pour la phase de monitoring avec Redis pour le cache et OpenTelemetry pour l'observabilité.

Technologies :

GogRPCRedisOpenTelemetry

Roadmap

v0.1

Phase 1 : Fondations

API Gateway + User Service + Event Service - Authentification et gestion des événements

v0.2

Phase 2 : Contenu

Blog Service - Articles, actualités et système de commentaires

v0.3

Phase 3 : Monétisation

Payment Service - Paiements, abonnements et historique de transactions

v1.0

Phase 4 : Analytics & Monitoring

Analytics Service - Statistiques, tracking et monitoring avancé

Technologies & Stack

Frontend

  • React 18.3.1 + TypeScript 4.9.5
  • Tailwind CSS 3.4.7
  • React Router 6.26+
  • Leaflet (Cartographie interactive)
  • Axios (HTTP Client)

Backend

  • Golang 1.23+ (Tous les services backend)
  • Gin Framework (API Gateway)
  • gRPC pour communication inter-services
  • REST API via API Gateway
  • Protocol Buffers (protobuf)

Base de données & Cache

  • PostgreSQL 18.0 (User Service, Event Service)
  • MongoDB 7.0 (Blog Service)
  • Redis (Cache et sessions - tous les services)
  • GORM (ORM pour PostgreSQL)

DevOps & Infrastructure

  • Docker (Containerisation de tous les services)
  • Docker Compose (Orchestration locale)
  • Kubernetes (Orchestration production)
  • CI/CD avec GitHub Actions
  • Gosec (Analyse de sécurité statique)

Observabilité & Monitoring

  • OpenTelemetry (Tracing distribué)
  • Prometheus (Collecte de métriques)
  • Grafana (Dashboards)
  • Swagger/OpenAPI (Documentation API)

Sécurité & Authentification

  • JWT (golang-jwt/jwt/v5)
  • bcrypt (Hachage de mots de passe)
  • Rate Limiting (API Gateway)
  • Gosec (Analyse de sécurité)

🔒Code source

Les dépôts GitHub sont actuellement privés pour protéger le code source. Le code source est disponible sur demande pour les recruteurs, clients ou collaborateurs intéressés. Cette approche permet de préserver la propriété intellectuelle tout en permettant une évaluation technique du projet.