
Velocity Aim Trainer

Velocity Aim Trainer
Velocity est un aim-trainer FPS 100% web, construit pour être rapide, traçable et scalable. Le gameplay est développé sous Unity WebGL (interop entre JS et Unity) et intégré à un front Angular (routing protégé, lazy-loading, formulaires typés). Le backend Spring Boot expose une API REST versionnée, sécurisée par Spring Security (login e-mail/mot de passe chiffrés en BCrypt et OAuth2 Google), sessions stateless via JWT (cookies HttpOnly, Secure, SameSite), CORS strict et en-têtes de sécurité. La persistance est assurée par PostgreSQL avec migrations Flyway (profil dev H2).
Côté métier, chaque partie crée un Game Session ID à usage unique pour éviter le replay et fiabiliser les scores. La charge utile de fin de partie est validée côté serveur (contrôles d’intégrité, anti-triche basique). L’API suit des conventions homogènes (erreurs normalisées, pagination) et la journalisation est structurée (traces requêtes/réponses, corrélation par requête) pour faciliter le debug et l’audit.
Chaque partie génère un GameSessionID unique et est archivée côté serveur (scores, précision, temps, paramètres de run). Les résultats sont immutables (anti-replay, idempotence) et consultables après coup par l’utilisateur : endpoints de listing paginé/filtré (par date, map, mode, durée) et détail d’une partie (/sessions/{id}).
Le front est déployé sur Netlify (CDN, cache, compression), l’API tourne en HTTPS derrière un reverse-proxy. L’architecture est stateless pour le scale horizontal.
En résumé : Angular + Unity WebGL + Spring Boot + PostgreSQL, sécurité soignée, données versionnées, performances web optimisées et deux pipelines dev et prod.