Sprint 4a:
- correctEO aligned on CorrectionRapport format (revelation, diagnostic, criteres, conseil_nclc, erreurs_codes)
- nclc_cible parameter (default 9, accepts 9|10)
- Fire-and-forget modele + exercices jobs (same pattern as EE)
- EO-specific DeepSeek prompt (oral transcript tolerance, 4 TCF criteria)
- Gemini transcribeAudio: 30s timeout + 1 retry
- POST /presentations/generate: 5-field questionnaire → DeepSeek generates oral presentation (~220-260 words, NCLC 7-8)
- Migration 006_sprint_4a_eo.sql (documentation only — no audio storage)
Sprint 4b:
- POST /transcriptions/token: Deepgram temporary API key (600s TTL)
- Removed audio storage pipeline (audioStorage.ts, XOR validation, 14MB limit)
- Backend receives transcript text only, no audio files
- TD-10/TD-11 resolved (Sprint 3.6c), TD-16/17/18 resolved (4b cleanup)
Typecheck: OK · Tests: 241/241 ✅
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
366 B
Text
20 lines
366 B
Text
# Supabase
|
|
SUPABASE_URL=https://xxx.supabase.co
|
|
SUPABASE_SERVICE_ROLE_KEY=xxx
|
|
|
|
# APIs
|
|
DEEPSEEK_API_KEY=xxx
|
|
GEMINI_API_KEY=xxx
|
|
DEEPGRAM_API_KEY=xxx
|
|
|
|
# Stripe
|
|
STRIPE_SECRET_KEY=xxx
|
|
STRIPE_WEBHOOK_SECRET=xxx
|
|
STRIPE_PRICE_STANDARD=price_xxx
|
|
STRIPE_PRICE_PREMIUM=price_xxx
|
|
|
|
# Config
|
|
PORT=3000
|
|
APP_URL=https://expria.app
|
|
API_URL=https://api.expria.app
|
|
NODE_ENV=production
|