Velocity Aim Trainer title

Velocity Aim Trainer

Velocity Aim Trainer title

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.

Compétences travaillées

angular logo
unity logo
spring logo
html logo
js logo
css logo
postgresql logo
flyway logo
docker logo
webgl logo
restapi logo
webstorm logo
datagrip logo
idea logo
rider logo
blender logo
photoshop logo
git logo
Accéder