V0 : initial import
This commit is contained in:
76
.claude-memory.md
Normal file
76
.claude-memory.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# ProserveReport - Mémoire Projet (locale au repo)
|
||||
|
||||
Ce fichier sert de référence pour Claude Code entre sessions et postes de travail.
|
||||
|
||||
## Contexte
|
||||
- **Projet** : Simulateur VR d'entraînement pour forces de police (Proserve)
|
||||
- **API** : PHP, consommée par Unreal Engine en lecture/écriture
|
||||
- **Objectif** : Créer une interface web locale pour visualiser sessions et statistiques
|
||||
- **Serveur** : WAMP (Apache + MariaDB), installé localement
|
||||
|
||||
## Base de données
|
||||
- **Nom** : `ProserveAPI`
|
||||
- **SGBD** : MariaDB 10.4.27
|
||||
- **Connexion** : `localhost`, user `root`, pas de mot de passe
|
||||
- **Schema SQL** : `proserveapi.sql` à la racine
|
||||
|
||||
## Structure API
|
||||
```
|
||||
ProserveAPI/htdocs/proserve/
|
||||
├── config/ → database.php, constants.php, init.php, error.php
|
||||
├── objects/ → 18 modèles PHP (User, GameSession, TriggerEvent, ReactEvent, etc.)
|
||||
├── events/ → storetriggerevent.php, storereactevent.php
|
||||
├── session/ → start, stop, registeruser, userleave, getobjectives, updateobjectives, debrief, get
|
||||
├── user/ → signup, login, get, update, resetpassword
|
||||
├── stats/ → get, userhistory
|
||||
├── lists/ → sessions_for_user, users_in_session
|
||||
├── score/ → score_algo1.php, score.php
|
||||
└── debug/ → test.php
|
||||
```
|
||||
|
||||
## Tables principales
|
||||
| Table | Clé | Description |
|
||||
|-------|-----|-------------|
|
||||
| users | id | Comptes (username, password base64, stats moyennes avgPrecision/avgReaction/avgFault/avgRapidity) |
|
||||
| sessions | id | Sessions (sessionType, mapName, scenarioName, score, timeToFinish, success) |
|
||||
| participates | userId+sessionId | Relation user-session (score, firePrecision, reactionTime, rôle, endStatus, results JSON) |
|
||||
| triggerevents | sessionId+indexCount | Tirs (srcUserId, type, timestamp, successful) |
|
||||
| reactevents | id | Impacts (reactType, hitBoneName, damage, hitPrecision, distance, reactTime, reactMode) |
|
||||
|
||||
## Types de session
|
||||
0:FireRange, 1:Challenge, 2:Protect, 3:De-Escalation, 4:Terrorism, 5:FireExtinction, 6:Recovering
|
||||
|
||||
## Types de réaction (impacts)
|
||||
0:EnemyHit, 1:CivilianHit, 2:PoliceHit, 3:ObjectHit, 4:PaperTargetHit, 5:TargetHit, 6:DeadBodyHit
|
||||
|
||||
## Rôles utilisateur
|
||||
0:Police, 1:Enemy, 2:Civil, 3:IA
|
||||
|
||||
## Scoring
|
||||
- FireRange : precision * 10
|
||||
- Autres modes : (precisionOnEnemies * 100) - (nbCivils * 200)
|
||||
- Succès si score >= 70
|
||||
- Sessions "Calibration" exclues des stats
|
||||
|
||||
## Objectifs JSON (par user par session)
|
||||
9 catégories : civilian, time, enemy, health, precision, reactTime, ammoLimit, target, overall
|
||||
|
||||
## Endpoints API (tous POST, JSON)
|
||||
- User : signup, login, get, update, resetpassword
|
||||
- Session : start, stop, registeruser, userleave, getobjectives, updateobjectives, debrief, get
|
||||
- Events : storetriggerevent, storereactevent
|
||||
- Stats : get, userhistory
|
||||
- Listes : sessions_for_user, users_in_session
|
||||
|
||||
## Environnement serveur
|
||||
- **XAMPP** (C:\xampp) - pas WAMP
|
||||
- **PAS D'INTERNET** sur le PC cible : tout CSS/JS/fonts inclus localement (pas de CDN)
|
||||
|
||||
## Interface Web (en cours)
|
||||
- Objectif : reproduire la consultation depuis Unreal en version web
|
||||
- Hébergée sur XAMPP local
|
||||
- Git : `C:\ASTERION\GIT\ProserveReport\PS_Report`
|
||||
- Test : `C:\xampp\htdocs\ProserveReport`
|
||||
- Stack : PHP + HTML/CSS/JS, Bootstrap local, Chart.js local
|
||||
- Accès data : via l'API PHP existante
|
||||
- Pages prévues : dashboard, liste sessions, détail session/debrief, profil utilisateur, stats
|
||||
Reference in New Issue
Block a user