login passwd
This commit is contained in:
56
MEMORY.md
56
MEMORY.md
@@ -14,6 +14,9 @@ Ce projet est un POC de professeur virtuel pour enfants, avec:
|
||||
- Le frontend appelle l'API via le prefixe `/api`.
|
||||
- Le backend expose une route `POST /transcribe` pour la transcription audio.
|
||||
- La route `/transcribe` utilise `UploadFile`, donc `python-multipart` est requis dans le backend.
|
||||
- Le backend a un socle d'authentification avec comptes `users`, roles `student`, `teacher`, `maintenance`.
|
||||
- Le compte admin/prof initial est seede depuis `.env` via `ADMIN_USERNAME` et `ADMIN_PASSWORD`.
|
||||
- Le login pose un cookie HTTP-only `professeur_top_session` et renvoie aussi un token bearer.
|
||||
- Le vrai `docker-compose.yml` de production n'est pas dans ce repo. Il est situe un niveau au-dessus sur le serveur.
|
||||
- La conf nginx reelle route:
|
||||
- `/api/` vers `tutor-backend:8000`
|
||||
@@ -36,21 +39,68 @@ Ce projet est un POC de professeur virtuel pour enfants, avec:
|
||||
|
||||
## Voix du Professeur
|
||||
|
||||
- Le frontend charge les voix du navigateur via `speechSynthesis.getVoices()`.
|
||||
- Une liste de voix est proposee dans l'interface.
|
||||
- Les voix francaises sont priorisees dans le tri.
|
||||
- L'ancien systeme de voix navigateur a ete remplace par une vraie TTS OpenAI.
|
||||
- Le backend expose maintenant:
|
||||
- `GET /tts/profiles` pour lister les profils de voix
|
||||
- `POST /tts` pour generer un MP3 a partir d'un texte et d'un `profile_id`
|
||||
- Les profils actuels sont:
|
||||
- `rigolote`
|
||||
- `petillante`
|
||||
- `douce`
|
||||
- `sobre`
|
||||
- Chaque profil TTS definit:
|
||||
- une voix OpenAI
|
||||
- une vitesse
|
||||
- des instructions de style vocal
|
||||
- Le frontend ne depend plus de `speechSynthesis` pour la voix sortante.
|
||||
- Le choix de voix est memorise dans `localStorage` avec la cle `professeur-top-tts-profile`.
|
||||
- La lecture audio se fait via un blob MP3 retourne par le backend.
|
||||
- Le mode micro auto doit continuer a se re-armer apres la fin de lecture du MP3.
|
||||
|
||||
## Identite Produit
|
||||
|
||||
- Le personnage et le nom visibles dans le frontend ont ete renommes de `ProfAmi` vers `Professeur TOP`.
|
||||
- Le nouvel avatar image est stocke dans:
|
||||
- `frontend/src/assets/professeur-top.png`
|
||||
- Le composant avatar React utilise maintenant l'image raster au lieu du visage CSS/SVG precedent.
|
||||
- Le backend a aussi ete aligne dans le prompt systeme et le message de debut de session avec le nom `Professeur TOP`.
|
||||
|
||||
## Notes de Session 2026-04-24 21:58:39 +02:00
|
||||
|
||||
- Repo clone dans `c:\DataS\OpenSquared\OpenSchool\ProfTop`.
|
||||
- `safe.directory` Git ajoute globalement pour ce dossier a cause d'un mismatch d'ownership Windows.
|
||||
- Image utilisateur `face.png` integree dans le frontend sous `frontend/src/assets/professeur-top.png`.
|
||||
- Libelles assistant remplaces par `Professeur TOP` dans l'UI.
|
||||
- README mis a jour pour refleter la TTS OpenAI au lieu de la voix navigateur.
|
||||
- Le frontend n'a pas encore ete verifie par build local car `frontend/node_modules` est absent.
|
||||
- Lors d'un prochain demarrage, penser a installer les dependances frontend avant validation finale.
|
||||
- La TTS OpenAI suppose une `OPENAI_API_KEY` valide cote backend.
|
||||
|
||||
## Points de Vigilance
|
||||
|
||||
- Les erreurs WebSocket Vite/HMR sur `wss://prof.open-squared.tech/...` sont du bruit de dev tant que le frontend tourne via Vite derriere nginx.
|
||||
- Ces erreurs ne sont pas la cause principale si `/api/*` renvoie des `502` ou si le micro se comporte mal.
|
||||
- En cas de `502` sur `/api/*`, verifier d'abord `docker logs tutor-backend`.
|
||||
- Pour tester l'auth locale actuelle: `.env` contient `ADMIN_USERNAME=admin` et `ADMIN_PASSWORD=admin`; a changer avant tout usage partage.
|
||||
|
||||
## Plan de Dev Acces Eleve / Admin
|
||||
|
||||
1. Socle comptes et roles: table `users`, hash password, seed admin depuis `.env`, login, session courante.
|
||||
2. Separation UI: `LoginPage`, `StudentApp`, `AdminApp`, composants partages.
|
||||
3. Conversation persistante: endpoints de lecture messages, puis sessions et rattachement des messages/tentatives.
|
||||
4. UI eleve sans scroll: Professeur TOP en haut, log de seance a gauche, derniere instruction au centre, saisie/micro en bas.
|
||||
5. Dashboard prof/admin: creation eleves/comptes, rapports, historique seances, conversation complete, stats de reussite.
|
||||
|
||||
## Fichiers Touchés Pendant Cette Session
|
||||
|
||||
- `frontend/src/App.jsx`
|
||||
- `frontend/src/styles.css`
|
||||
- `frontend/src/assets/professeur-top.png`
|
||||
- `frontend/vite.config.js`
|
||||
- `backend/app/main.py`
|
||||
- `backend/app/schemas.py`
|
||||
- `backend/app/services.py`
|
||||
- `backend/requirements.txt`
|
||||
- `README.md`
|
||||
- `MEMORY.md`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user