# 🎓 EduConnect Africa - Plateforme d'Apprentissage Collaborative > **DĂ©veloppĂ© par Marino ATOHOUN pour Hypee** Une plateforme moderne connectant Ă©tudiants et mentors Ă  travers l'Afrique, avec des outils d'IA, gamification et opportunitĂ©s acadĂ©miques. --- ## đŸ—ïž Architecture ### Stack Technologique **Frontend:** - ⚛ React 19 + TypeScript - ⚡ Vite (build tool) - 🎹 CSS personnalisĂ© - 🔄 React Router v7 - 📡 Axios pour les appels API **Backend:** - 🐍 Python 3.12 + Django 4.2 - 🔌 Django REST Framework - 🔐 JWT Authentication (Simple JWT) - 🔄 Django Channels (WebSockets) - 📊 PostgreSQL / SQLite --- ## 🚀 DĂ©marrage Rapide ### PrĂ©requis - Node.js 18+ (pour le frontend) - Python 3.12+ (pour le backend) - npm ou yarn ### Installation Backend ```bash cd backend # CrĂ©er l'environnement virtuel python3 -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows # Installer les dĂ©pendances pip install -r requirements.txt # Migrations python manage.py migrate # CrĂ©er un superutilisateur python manage.py createsuperuser # Lancer le serveur python manage.py runserver ``` Le backend sera accessible sur `http://127.0.0.1:8000` ### Installation Frontend ```bash cd frontend # Installer les dĂ©pendances npm install # Lancer le serveur de dĂ©veloppement npm run dev ``` Le frontend sera accessible sur `http://localhost:5173` --- ## 📁 Structure du Projet ``` educonnect/ ├── backend/ │ ├── apps/ │ │ ├── users/ # Gestion utilisateurs │ │ ├── mentors/ # Profils mentors │ │ ├── bookings/ # RĂ©servations sessions │ │ ├── forum/ # Questions/RĂ©ponses │ │ ├── gamification/ # Badges & Points │ │ ├── messaging/ # Chat temps rĂ©el │ │ ├── notifications/ # SystĂšme notifications │ │ ├── opportunities/ # Bourses & Stages │ │ ├── ai_tools/ # Tuteur IA │ │ ├── core/ # Mixins rĂ©utilisables │ │ └── analytics/ # Statistique │ ├── educonnect/ # Configuration Django │ ├── manage.py │ └── requirements.txt │ ├── frontend/ │ ├── pages/ # Pages React │ ├── components/ # Composants rĂ©utilisables │ ├── context/ # React Context (Auth, Theme, etc.) │ ├── services/ # Services API (axios) │ ├── types.ts # Types TypeScript │ ├── constants.ts # Constantes │ └── App.tsx # Point d'entrĂ©e │ ├── INTEGRATION_LOG.md # Journal d'intĂ©gration ├── test_api.sh # Script de test API └── README.md # Ce fichier ``` --- ## 🔌 APIs & Endpoints ### Documentation Interactive - **Swagger UI:** http://127.0.0.1:8000/api/docs/ - **ReDoc:** http://127.0.0.1:8000/api/redoc/ - **Schema OpenAPI:** http://127.0.0.1:8000/api/schema/ ### Endpoints Principaux | Module | Endpoint | Description | |--------|----------|-------------| | **Auth** | `/api/auth/` | Authentification JWT | | **Forum** | `/api/forum/` | Questions & RĂ©ponses | | **Mentors** | `/api/mentors/` | Profils mentors | | **Bookings** | `/api/bookings/` | RĂ©servations | | **Opportunities** | `/api/opportunities/` | Bourses & Stages | | **Notifications** | `/api/notifications/` | Notifications | | **Gamification** | `/api/gamification/` | Badges & Points | | **AI** | `/api/ai/` | Tuteur IA | Consultez `frontend/API_GUIDE.md` pour des exemples dĂ©taillĂ©s. --- ## ✹ FonctionnalitĂ©s ### 🔐 Authentification - ✅ Inscription Ă©tudiant/mentor - ✅ Connexion JWT - ✅ Refresh automatique des tokens - ✅ Gestion de profil ### 💬 Forum AcadĂ©mique - ✅ Poser des questions - ✅ RĂ©pondre aux questions - ✅ SystĂšme de votes (upvote/downvote) - ✅ Tags & catĂ©gories - ✅ Recherche avancĂ©e - ✅ Filtres (rĂ©solu/non rĂ©solu) ### đŸ‘šâ€đŸ« Mentorat - ✅ Recherche de mentors - ✅ Profils dĂ©taillĂ©s - ✅ SystĂšme de notation & avis - ✅ RĂ©servation de sessions - ✅ Calendrier de disponibilitĂ© ### 🎯 OpportunitĂ©s - ✅ Bourses d'Ă©tudes - ✅ Stages & internships - ✅ Concours acadĂ©miques - ✅ Formations ### 🏆 Gamification - ✅ SystĂšme de points - ✅ Badges de progression - ✅ Classements - ✅ RĂ©compenses ### đŸ€– Outils IA - ✅ Tuteur pĂ©dagogique (Gemini/GPT) - ✅ Sandbox de code - ✅ Atlas interactif gĂ©ographique - ✅ Atelier d'Ă©criture - ✅ Calculatrice scientifique ### 💬 Messagerie - ✅ Chat temps rĂ©el - ✅ WebSockets (Django Channels) - ✅ Conversations privĂ©es ### 🔔 Notifications - ✅ Temps rĂ©el - ✅ Notifications push - ✅ Historique --- ## đŸ§Ș Tests ### Test des endpoints backend ```bash ./test_api.sh ``` ### ScĂ©nario de test complet 1. **CrĂ©er un compte** ```bash curl -X POST http://127.0.0.1:8000/api/auth/register/ \ -H "Content-Type: application/json" \ -d '{ "email": "test@example.com", "password": "SecurePass123", "password_confirm": "SecurePass123", "name": "John Doe", "role": "STUDENT" }' ``` 2. **Se connecter** ```bash curl -X POST http://127.0.0.1:8000/api/auth/login/ \ -H "Content-Type: application/json" \ -d '{ "email": "test@example.com", "password": "SecurePass123" }' ``` 3. **RĂ©cupĂ©rer les questions (avec token)** ```bash curl -X GET http://127.0.0.1:8000/api/forum/questions/ \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" ``` --- ## đŸ› ïž DĂ©veloppement ### Variables d'environnement CrĂ©ez un fichier `.env` dans `backend/` : ```env SECRET_KEY=your-secret-key-here DEBUG=True ALLOWED_HOSTS=localhost,127.0.0.1 CORS_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000 # Database (optionnel, SQLite par dĂ©faut) DB_NAME=educonnect_db DB_USER=postgres DB_PASSWORD=yourpassword DB_HOST=localhost DB_PORT=5432 # APIs IA (optionnel) GEMINI_API_KEY=your-gemini-key OPENAI_API_KEY=your-openai-key # Email (optionnel) EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_HOST_USER=your-email@gmail.com EMAIL_HOST_PASSWORD=your-app-password ``` ### Commandes utiles ```bash # Backend python manage.py makemigrations # CrĂ©er migrations python manage.py migrate # Appliquer migrations python manage.py createsuperuser # CrĂ©er admin python manage.py collectstatic # Collecter fichiers statiques python manage.py test # Lancer les tests # Frontend npm run dev # Dev server npm run build # Build production npm run preview # Preview build ``` --- ## 📚 Documentation ComplĂšte - **[INTEGRATION_LOG.md](./INTEGRATION_LOG.md)** : Journal dĂ©taillĂ© de l'intĂ©gration frontend/backend - **[frontend/API_GUIDE.md](./frontend/API_GUIDE.md)** : Guide d'utilisation des services API - **[backend/STRUCTURE_FILE.MD](./backend/STRUCTURE_FILE.MD)** : Structure des modĂšles backend - **[backend/GUIDE_COMPLET.MD](./backend/GUIDE_COMPLET.MD)** : Guide complet backend --- ## đŸ€ Contribution Ce projet a Ă©tĂ© dĂ©veloppĂ© par **Marino ATOHOUN** pour **Hypee**. ### Workflow de contribution 1. Fork le projet 2. CrĂ©er une branche (`git checkout -b feature/AmazingFeature`) 3. Commit les changements (`git commit -m 'Add AmazingFeature'`) 4. Push vers la branche (`git push origin feature/AmazingFeature`) 5. Ouvrir une Pull Request --- ## 📝 Licence © 2025 Hypee - Marino ATOHOUN. Tous droits rĂ©servĂ©s. --- ## 📞 Support Pour toute question ou support : - 📧 Email: contact@hypee.africa - 🌐 Site: https://hypee.africa - đŸ“± Discord: [Lien Discord] --- **Fait avec ❀ en Afrique pour l'Afrique** 🌍