Files
open-school/MEMORY.md
2026-04-05 11:08:08 +02:00

2.1 KiB

Memoire Projet

Contexte

Ce projet est un POC de professeur virtuel pour enfants, avec:

  • frontend React + Vite
  • backend FastAPI
  • PostgreSQL pour les donnees eleve
  • Redis present dans la stack
  • integration OpenAI pour reponses texte et transcription audio

Points Importants

  • 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 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
    • / vers tutor-frontend:3000

Dictée Vocale

  • L'ancien bouton de dictee marchait en mode manuel avec MediaRecorder.start() puis stop().
  • Le mode actuel est un mode mains libres:
    • activation via un clic utilisateur
    • enregistrement automatique
    • detection du silence
    • transcription automatique
    • envoi automatique du message
  • Firefox s'est montre capricieux avec la mesure temps reel via AnalyserNode.
  • La solution retenue s'appuie sur un traitement plus direct du flux audio pour determiner le niveau sonore.
  • L'ecoute se rearme automatiquement apres:
    • la transcription/envoi du message eleve
    • la fin de lecture vocale du professeur

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.

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.

Fichiers Touchés Pendant Cette Session

  • frontend/src/App.jsx
  • frontend/vite.config.js
  • backend/app/main.py
  • backend/app/services.py
  • backend/requirements.txt