# Exigences produit — Immbot AI ## Vision Immbot AI est l'environnement d'apprentissage intelligent des cours IMM1003-20 et IMM1033-20 (UQO). Il combine un assistant conversationnel multimodal fondé sur le contenu officiel des cours (RAG avec citations vérifiables), un centre d'apprentissage complet (flashcards, quiz adaptatifs, examens blancs, carte des concepts, plans d'étude) et un tableau de bord professeur. Qualité visée : plateforme commerciale haut de gamme, pas un chatbot universitaire générique. ## Personas - **Étudiante / étudiant** (BAA, concentration évaluation immobilière) : veut comprendre, pratiquer, se préparer aux intra/finaux, vérifier ses calculs, savoir *d'où vient* chaque réponse. - **Professeur / administrateur** (Simon-Pierre Boucher) : veut gérer le contenu, contrôler les coûts et les modèles, voir les notions mal comprises, configurer la politique pédagogique. ## Principes non négociables 1. Le contenu officiel des cours est la source de vérité pédagogique ; l'origine de chaque information est toujours identifiable (officiel / téléversé / connaissances générales / IA). 2. Citations précises et cliquables ; une citation ne peut référencer qu'un fragment réellement récupéré (validation stricte côté serveur). 3. Mode par défaut : **Cours uniquement**. Refus honnête quand le matériel ne suffit pas. 4. Isolation stricte entre les cours (croisement opt-in, signalé) et entre les espaces (officiel / étudiant / professeur). 5. La clé OpenRouter ne quitte jamais le serveur. Aucun secret en clair dans le code ou la BD. 6. Intégrité académique : la plateforme aide à apprendre ; politiques configurables par le professeur (indices d'abord, restrictions en période d'examen). 7. Accessible (clavier, contrastes, lecteurs d'écran), rapide, excellente sur mobile. ## Fonctionnalités (portée v1 — toutes implémentées) ### Chat Streaming SSE temps réel · Markdown + LaTeX (KaTeX) + tableaux · sélecteur de cours, de modèle (registre OpenRouter dynamique + préréglages), de mode de connaissances (Cours uniquement / Cours + général / Général) et de mode pédagogique (Demander au cours, Tuteur, Socratique, Explique simplement, Niveau professionnel, Corrige ma réponse, Préparation examen, Défi, Analyse multimodale, Révision ciblée) · citations cliquables avec panneau source (fichier, séance, diapositive, extrait, contexte voisin) · pièces jointes (images, PDF, DOCX, XLSX, CSV, TXT) selon capacités du modèle · historique, dossiers, renommage, recherche, favoris, archivage · régénération, édition d'une question, embranchement · copie/export · réactions 👍/👎 et signalement · raccourcis clavier · indication de coût (économique/modéré/coûteux) et compteur de jetons. ### Centre d'apprentissage 1. **Tableau de progression** : maîtrise par cours/thème/concept (score composite, présenté comme estimation), activité, série de jours, temps d'étude estimé. 2. **Carte des concepts** : graphe interactif par cours (nœuds = concepts, liens = préalable / approfondissement / relation), actions directes (expliquer, quiz, réviser). 3. **Flashcards** : répétition espacée SM-2 (documenté), types variés, génération IA + banque d'amorçage validée, filtres, statistiques. 4. **Quiz adaptatifs** : difficulté ajustée à la performance, ciblage des faiblesses, explications, distracteurs fondés sur les erreurs fréquentes du cours. 5. **Examens blancs** : intra/final/thématique, chronométré ou pratique, correction détaillée par compétence, comparaison entre tentatives, contenu original (jamais les examens officiels). 6. **Plan d'étude** : générateur personnalisé (date d'examen, disponibilités, niveau) qui s'adapte aux résultats. 7. **Cahier d'erreurs** : capture automatique depuis quiz/examens, statuts (comprise / à revoir / maîtrisée), exercices de consolidation. 8. **Résumés** : par séance/concept, fondés sur les sources avec citations, export Markdown. 9. **Recommandations** : « prochaine meilleure activité » avec justification. 10. **Bibliothèque personnelle** : éléments sauvegardés. ### Administration Vue générale (usage, coûts, santé) · gestion des cours et documents + relance d'ingestion + erreurs · registre de modèles (activer/désactiver, préréglages, budgets, modèle de secours) · pédagogie (notions difficiles, questions fréquentes, stats agrégées anonymisées) · prompts système versionnés · annonces ciblées par cours · sécurité (utilisateurs, rôles, sessions, tentatives) · politique d'intégrité académique · limites d'utilisation. ### Comptes Rôles `student` / `instructor` / `admin`. Compte initial `admin`/`admin123` créé par seed (hash bcrypt), changement forcé à la première connexion, bannière tant que non changé, désactivable en production. Auto-inscription étudiante avec code de cours (configurable). Architecture prête pour un SSO institutionnel ultérieur (voir security-model). ## Hors portée v1 (documenté) SSO Microsoft/Google réel (préparé, non branché) · notifications courriel · application native · export DOCX (PDF/Markdown livrés) · reranker neuronal (architecture prête, désactivé par défaut). ## Critères d'acceptation Ceux de la commande initiale (section 51 du mandat) : cours réellement analysés et isolés, RAG cité et vérifiable, multi-modèles OpenRouter fonctionnels, chat/flashcards/quiz/examens/progression/ carte/plans/admin fonctionnels, admin sécurisé avec changement forcé, aucune clé exposée, mobile excellent, projet documenté, build de production réussi, tests essentiels verts.