EduLab / documentation /TEST_QUESTIONS.md
rinogeek's picture
Initial deploy to Hugging Face
062d102

🧪 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

# 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

# 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

{
  "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