| # 🧪 Guide de Test - Création de Questions | |
| **Développé par Marino ATOHOUN pour Hypee** | |
| ## ✅ Fonctionnalité Implémentée | |
| La création de questions est maintenant **100% fonctionnelle** et connectée à l'API Django ! | |
| --- | |
| ## 🚀 Comment Tester | |
| ### 1. **Vérifier que les serveurs tournent** | |
| ```bash | |
| # Terminal 1 - Backend | |
| cd backend | |
| python3 manage.py runserver | |
| # Serveur sur http://127.0.0.1:8000 | |
| # Terminal 2 - Frontend | |
| cd frontend | |
| npm run dev | |
| # Serveur sur http://localhost:5173 | |
| ``` | |
| ### 2. **Créer un compte** | |
| 1. Ouvrir http://localhost:5173 | |
| 2. Cliquer sur "S'inscrire" | |
| 3. Remplir le formulaire : | |
| - Nom: Votre nom | |
| - Email: votre@email.com | |
| - Mot de passe: minimum 8 caractères | |
| - Rôle: Étudiant ou Mentor | |
| 4. Soumettre | |
| ### 3. **Se connecter** | |
| Si vous avez déjà un compte : | |
| 1. Email: votre@email.com | |
| 2. Mot de passe: votre mot de passe | |
| 3. Connexion | |
| ### 4. **Créer une Question** | |
| 1. Aller sur l'onglet "Questions" | |
| 2. Cliquer sur le bouton **"Poser une question"** (en haut à droite) | |
| 3. Remplir le formulaire dans le modal : | |
| - **Titre** : "Comment intégrer React avec Django ?" | |
| - **Matière** : Informatique | |
| - **Niveau** : Licence | |
| - **Tags** : Taper "react" puis Espace, "django" puis Espace, "api" puis Espace | |
| - **Détails** : Expliquer votre problème en détail | |
| 4. Cliquer sur **"Publier"** | |
| 5. ✨ La question sera créée et la page rechargée automatiquement ! | |
| --- | |
| ## 🎯 Résultats Attendus | |
| ### Pendant la Création | |
| - ✅ Bouton "Publier" devient "Publication..." avec un spinner | |
| - ✅ Tous les champs sont désactivés pendant l'envoi | |
| - ✅ Si erreur : message d'erreur rouge s'affiche | |
| ### Après Création Réussie | |
| - ✅ Popup "✅ Votre question a été publiée avec succès !" | |
| - ✅ Modal se ferme automatiquement | |
| - ✅ Page se recharge pour afficher la nouvelle question | |
| - ✅ **+50 points** ajoutés à votre compte | |
| - ✅ Badge "Premier Pas" débloqué (si première question) | |
| ### Dans la Base de Données | |
| La question est stockée avec : | |
| - ✅ Titre | |
| - ✅ Contenu | |
| - ✅ Tags | |
| - ✅ Auteur (vous) | |
| - ✅ Date de création | |
| - ✅ Statut: Non résolu | |
| --- | |
| ## 🔍 Vérifier dans l'Admin Django | |
| 1. Ouvrir http://127.0.0.1:8000/admin/ | |
| 2. Se connecter (superutilisateur créé avec `createsuperuser`) | |
| 3. Aller dans **Forum > Questions** | |
| 4. Voir votre question enregistrée ! | |
| --- | |
| ## 📊 Test API Direct (Optionnel) | |
| ### Via cURL | |
| ```bash | |
| # 1. Se connecter | |
| curl -X POST http://127.0.0.1:8000/api/auth/login/ \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"email":"test@educonnect.com","password":"Test123456"}' | |
| # Copier le "access" token | |
| # 2. Créer une question | |
| curl -X POST http://127.0.0.1:8000/api/forum/questions/ \ | |
| -H "Authorization: Bearer VOTRE_ACCESS_TOKEN" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "title":"Ma nouvelle question", | |
| "content":"Détails de ma question...", | |
| "tags":["test","api"] | |
| }' | |
| ``` | |
| ### Réponse API Attendue | |
| ```json | |
| { | |
| "id": 1, | |
| "author": { | |
| "id": 1, | |
| "email": "test@educonnect.com", | |
| "role": "STUDENT", | |
| "points": 50, | |
| "profile": { | |
| "name": "Test User", | |
| "avatar": null, | |
| "country": null, | |
| "university": null | |
| } | |
| }, | |
| "title": "Ma nouvelle question", | |
| "content": "Détails de ma question...", | |
| "tags": ["test", "api"], | |
| "votes": 0, | |
| "is_solved": false, | |
| "views_count": 0, | |
| "answers_count": 0, | |
| "created_at": "2025-11-29T20:17:55..." | |
| } | |
| ``` | |
| --- | |
| ## ⚠️ Troubleshooting | |
| ### Problème : "Authentification requise" | |
| **Solution** : Assurez-vous d'être connecté | |
| ### Problème : "Données invalides" | |
| **Solution** : Vérifiez que tous les champs requis sont remplis | |
| ### Problème : "Erreur 500" | |
| **Solution** : Vérifiez la console du terminal backend pour voir l'erreur exacte | |
| ### Problème : La question ne s'affiche pas | |
| **Solution** : Actualisez la page manuellement (F5) | |
| --- | |
| ## 🎓 Prochains Tests Recommandés | |
| 1. ✅ Créer plusieurs questions | |
| 2. ✅ Filtrer par "Résolu/Non résolu" | |
| 3. ✅ Rechercher des questions | |
| 4. ✅ Voter pour une question (à implémenter) | |
| 5. ✅ Répondre à une question (à implémenter) | |
| --- | |
| ## 📝 Notes Importantes | |
| - **Authentification obligatoire** : Il faut être connecté pour créer une question | |
| - **Tags automatiques** : La catégorie et le niveau sont automatiquement ajoutés comme tags | |
| - **Points** : Chaque question rapporte 50 points | |
| - **Validation** : Titre, contenu et catégorie sont obligatoires | |
| --- | |
| **✅ La fonctionnalité est prête pour la production !** | |
| *Développé avec ❤️ par Marino ATOHOUN pour Hypee* | |