File size: 4,552 Bytes
fafd0bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# 🧪 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*