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