Assistant IA académique intelligent pour SUPINFO
Assistant IA alimenté par RAG (Retrieval-Augmented Generation) pour répondre aux questions académiques SUPINFO
🚀 Démarrage rapide • 📚 Documentation • 🏗️ Architecture • 🔧 Configuration
- 💬 Chat intelligent : Interface de conversation moderne avec support multi-thèmes
- 🔍 RAG avancé : Recherche sémantique dans 99+ documents SUPINFO
- 🎨 Design system SUPINFO : Interface respectant l'identité visuelle de l'école
- 👤 Gestion d'utilisateurs : Authentification OAuth (Google, GitHub, Microsoft) + inscription manuelle
- 📁 Organisation : Système de dossiers et bibliothèque de prompts
- 🤖 Avatars IA : Personnalités d'assistant configurables
- 📊 Dashboard admin : Interface d'administration complète
- 🔔 Notifications : Système de notifications pour les utilisateurs
- 📄 Parsing de fichiers : Support PDF, DOCX, TXT, MD, CSV
- 💾 Gestion de conversations : Archivage, duplication, fusion, export
- 🔐 Réinitialisation de mot de passe : Système complet avec tokens sécurisés
- 🌐 Mode invité : Accès limité sans authentification
- 📱 Responsive : Interface optimisée mobile et desktop
- 🌙 Thèmes multiples : Light, Dark, Pastel, Girl, Boy, Cyber
┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │
│ (Next.js) │◄───────►│ (FastAPI) │
│ Vercel │ API │ Railway │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ ChromaDB │
│ (Vectors) │
└─────────────────┘
│
▼
┌─────────────────┐
│ MySQL/SQLite │
│ (Database) │
└─────────────────┘
Frontend
- Framework : Next.js 14 (App Router)
- Language : TypeScript
- Styling : TailwindCSS + Design System SUPINFO
- State : Zustand
- Auth : NextAuth.js
- UI Components : Radix UI + Custom Components
Backend
- Framework : FastAPI
- Language : Python 3.10+
- RAG : LangChain + ChromaDB
- LLM : OpenAI GPT-4 / GPT-3.5
- Database : MySQL (production) / SQLite (dev)
- Auth : bcrypt + JWT
SUPINFO Mentor AI repose sur une architecture frontend/backend découplée, orientée scalabilité et sécurité.
- Analyse d’intention utilisateur
- Enrichissement du contexte académique
- Recherche sémantique (ChromaDB)
- Génération IA (OpenAI)
- Sauvegarde & réponse contextualisée
Le moteur RAG garantit :
- réponses fondées sur des sources SUPINFO
- réduction des hallucinations
- traçabilité documentaire
- OAuth : Google, GitHub, Microsoft
- Credentials : email / mot de passe
- Gestion des rôles : Guest, User, Admin
- Création de notifications globales ou ciblées
- Activation / désactivation
- Lecture utilisateur tracée
- Guest : accès limité
- User : fonctionnalités complètes
- Admin : gestion globale
- Frontend : Vercel (Next.js)
- Backend : Railway (FastAPI)
- Base vectorielle : ChromaDB
- DB : MySQL / SQLite
- 📘 Backend
- 📗 Frontend
- 📕 Documentation
- 📙 Images
- Node.js 18+ et npm/pnpm
- Python 3.10+
- Git
git clone https://github.com/....... # (cloner répertoire)
cd ......... # (répertoire dossier)cd backend
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
pip install -r requirements.txtCréer un fichier .env dans backend/ :
OPENAI_API_KEY=your_openai_api_key
DATABASE_URL=sqlite:///./supinfo_mentor.db
ALLOWED_ORIGINS=http://localhost:3000cd frontend
npm installCréer un fichier .env.local dans frontend/ :
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_secret_key_here
# OAuth (optionnel)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
AZURE_AD_CLIENT_ID=your_azure_client_id
AZURE_AD_CLIENT_SECRET=your_azure_client_secret
AZURE_AD_TENANT_ID=your_azure_tenant_idTerminal 1 - Backend :
cd backend
python main.pyTerminal 2 - Frontend :
cd frontend
npm run devL'application sera accessible sur :
- Frontend : http://localhost:3000
- Backend API : http://localhost:8000
- API Docs : http://localhost:8000/docs
- 📘 Documentation Backend : Architecture détaillée, API REST, services métier, moteur RAG et schéma de base de données.
- 📗 Documentation Frontend : Structure des composants, gestion d’état (stores), routing Next.js, authentification et design system SUPINFO.
- 📕 Documentation Projet : Présentation pédagogique et narrative du fonctionnement de l’application, expliquée sous forme d’histoire illustrée.
- 📙 Images : Ensemble des diagrammes d’architecture, flux fonctionnels, authentification, RAG, administration et déploiement.
- [🔐 Configuration OAuth] : Google, GitHub, Microsoft
- [🚢 Déploiement] : Vercel + Railway
- [🗄️ Configuration MySQL] : Migration SQLite → MySQL
| Variable | Description | Requis |
|---|---|---|
OPENAI_API_KEY |
Clé API OpenAI | ✅ |
DATABASE_URL |
URL de connexion DB | ✅ |
ALLOWED_ORIGINS |
Origines CORS autorisées | ✅ |
RAG_CHUNK_SIZE |
Taille des chunks RAG | ❌ |
RAG_CHUNK_OVERLAP |
Chevauchement des chunks | ❌ |
| Variable | Description | Requis |
|---|---|---|
NEXT_PUBLIC_API_URL |
URL du backend | ✅ |
NEXTAUTH_URL |
URL de l'application | ✅ |
NEXTAUTH_SECRET |
Secret NextAuth | ✅ |
GOOGLE_CLIENT_ID |
OAuth Google | ❌ |
GITHUB_CLIENT_ID |
OAuth GitHub | ❌ |
AZURE_AD_CLIENT_ID |
OAuth Microsoft | ❌ |
SUPINFO-Mentor-AI/
├── 📂 frontend/ # Application Next.js
│ ├── app/ # Pages et routes
│ ├── components/ # Composants React
│ │ ├── chat/ # Composants de chat
│ │ ├── auth/ # Authentification
│ │ ├── folders/ # Gestion de dossiers
│ │ └── ui/ # Composants UI
│ ├── lib/ # Utilitaires et API client
│ ├── store/ # State management (Zustand)
│ └── public/ # Assets statiques
│
├── 📂 backend/ # API FastAPI
│ ├── services/ # Services métier
│ │ ├── rag_service.py # Service RAG
│ │ ├── intent_analyzer.py
│ │ └── ...
│ ├── data/ # Documents SUPINFO
│ │ └── supinfo_docs/ # 99+ documents Markdown
│ ├── database.py # Modèles SQLAlchemy
│ └── main.py # Point d'entrée API
│
└── 📂 docs/ # Documentation
├── backend.md # Documentation backend
└── frontend.md # Documentation frontend
| Couleur | Hex | Usage |
|---|---|---|
| Primaire | #4B2E83 |
Boutons, liens, accents |
| Secondaire | #1E1B3A |
Textes importants |
| Fond | #F9FAFB |
Arrière-plans |
| Accent | #6D5BD0 |
Highlights |
- Light : Thème clair par défaut
- Dark : Thème sombre
- Pastel : Palette pastel douce
- Girl : Thème rose vif
- Boy : Thème bleu
- Cyber : Thème cyberpunk
- Connecter le repository GitHub à Vercel
- Configurer :
- Root Directory :
frontend - Build Command :
npm run build - Output Directory :
.next
- Root Directory :
- Ajouter les variables d'environnement
- Créer un nouveau projet Railway
- Connecter le repository
- Configurer :
- Root Directory :
backend - Start Command :
uvicorn main:app --host 0.0.0.0 --port $PORT
- Root Directory :
- Ajouter les variables d'environnement
cd backend
pytest tests/cd frontend
npm run testCe projet est développé dans le cadre d'un projet académique SUPINFO.
- Fork le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est un projet académique pour SUPINFO.
- MEVENGUE Franck - Développeur principal
- SUPINFO accès aux données académiques : https://www.supinfo.com/ecole-informatique-paris/
- La communauté open-source outils utilisés : @Indev : https://square.lndev.me/
Développé avec ❤️ pour SUPINFO


.png)

.png)


.png)





