TP4 - Post Hub (25%)
📝 Consignes
- 👥 Le TP est fait en équipe de deux imposée.
- 📦 Le projet client utilise le framework Angular et le projet serveur utilise le framework ASP.NET Core. (Projets de départ fournis)
- 👀 Attention au plagiat
- 🖥 Il faudra respecter la structure existante dans les deux projets.
- ⏰ Attention, il y a une remise partielle le 1 mai à 17h. (Parties A à C)
- 📬 La remise est le 17 mai à 23h59.
Pendant le TP, ne vous cassez jamais la tête à régler les conflits de merge pour les migrations. Faites simplement une nouvelle migration dans chaque nouvelle branche.
📦 Projets de départ
Les projets Angular + ASP.NET Core sont fournis pour ce TP.
Une application qui sert de multi-forums de discussion vous est fournie. Vous devrez ajouter des fonctionnalités à l'application, principalement pour la gestion d'images et de rôles.
En résumé, l'application contient des hubs
, des posts
et des commentaires
.
- Un
hub
contient desposts
sur un thème commun et unpost
contient descommentaires
. - On peut répondre à un
commentaire
avec des sous-commentaires
à l'infini.
Ci-dessous, on peut voir un post
avec plusieurs commentaires
:

📜 Résumé des fonctionnalités
👥 Chaque équipe aura un membre hot-dog 🌭 et un membre trottinette 🛴. Vous serez évalués séparément pour la plupart des fonctionnalités. Vous êtes obligés d'implémenter seulement vos propres fonctionnalités, telles que listées ci-dessous.
🔍 Ceci n'est qu'un résumé des fonctionnalités, vérifiez les énoncés par membre pour avoir tous les détails et indices.
Membre 🌭 | Membre 🛴 |
---|---|
Étape A-🌭🛴 | |
Étape B-🌭🛴
| |
Étape C-🌭 | Étape C-🛴 |
🛑 HALTE !
| |
Étape D-🌭 | Étape D-🛴 |
Étape E-🌭 | Étape E-🛴 |
Étape F-🌭 | Étape F-🛴 |
Étape G-🌭 | Étape G-🛴 |
Étape H-🌭 | Étape H-🛴 |
Étape I-🌭🛴 |
✅ Grille de correction
Membre 🌭 (30 pts)
Critère | Points |
---|---|
On peut ajouter des images lorsqu’on crée un commentaire et les voir ensuite. | 8 pts |
Les utilisateurs peuvent choisir un avatar (et le prévisualiser) et le modifier à volonté. | 4 pts |
Toute image (sauf les avatars) peut être cliquée pour être affichée en grand dans un nouvel onglet. | 2 pts |
Les images des posts et des commentaires peuvent être supprimées individuellement par l’auteur. | 6 pts |
Les posts / commentaires des autres utilisateurs peuvent être signalés si on est connecté. | 4 pts |
Le rôle de modérateur existe, permet de supprimer des commentaires signalés et présente un utilisateur avec le rôle dans le seed. | 6 pts |
Membre 🛴 (30 pts)
Critère | Points |
---|---|
On peut ajouter des images lorsqu’on crée un post et les voir ensuite. | 8 pts |
Les images d’un post sont affichées dans un carrousel à 5 images ou plus. | 4 pts |
La modification de post / commentaire permet d’ajouter des images. | 6 pts |
Supprimer un post ou un commentaire supprime ses images. | 3 pts |
La connexion fonctionne avec le nom d’utilisateur et le courriel. | 1 pt |
On peut modifier son mot de passe à volonté. | 2 pt |
Le rôle d’administrateur existe, permet de nommer des modérateurs et présente un utilisateur avec le rôle dans le seed. | 6 pts |
Commun (20 pts)
Critère | Points |
---|---|
Sécurité sur le serveur (Aucune action ne peut être exécutée par un utilisateur qui n’en a pas le droit) Ceci touche les objets qui ne peuvent être modifiés que par leur auteur et les opérations qui ne peuvent être utilisées que par les modérateurs / administrateurs. Cela touche aussi à des choses plus subtiles comme ne pas pouvoir signaler son propre commentaire. | 6 pts |
Fausse sécurité sur le client Angular. (Aucun bouton permettant de faire une action qu’on n’a pas le droit de faire ne doit être VISIBLE dans les pages Web.) | 3 pts |
L’architecture du projet serveur respecte les lignes directrices vues dans les notes de cours. (Les contrôleurs n’ont pas accès au DbContext, usage de Models et de DTOs au besoin, etc.) De plus, sur le serveur, évitez la répétition de code dans la mesure du raisonnable. | 3 pts |
Toute image supprimée / remplacée dans la BD doit être supprimée du disque également. | 1 pt |
L’architecture du projet client respecte les lignes directrices du cours. (Pas de requête avec HttpClient dans un composant, usage de Models, services, composants, etc.) | 2 pts |
Git a été utilisé de manière appropriée, c’est-à-dire :
| 5 pts |
Des fonctionnalités qui étaient déjà implémentées se sont mises à ne plus fonctionner. | -10 pts |
L'interface est déformée ou ne correspond pas grossièrement aux exemples illustrés dans l'énoncé. | -5 pts |
La présentation des étapes A à C n'a pas été faite. | -12.5 pts |
📶 Liste des requêtes pour référence

🔍 Composants mélangeants
PostComponent
PostComponent
est utilisé pour afficher un post en entier.

EditPostComponent
EditPostComponent
est utilisé pour créer un nouveau post. Il est accessible si on clique sur « Nouveau post » dans un hub.

CommentComponent
CommentComponent
est utilisé pour chaque commentaire qui ne soit pas le message principal d'un post.

👥 Équipes
Groupe 1010
Personne 1 | Personne 2 |
---|---|
⛰ | 💩 |
🧠 | 🤔 |
🦊 | 🕹 |
🎸 | 🎵 |
🖼 | 📝 |
👻 | 👻 |
🏍 | 🐠 |
❌ | 👀 |
✅ | 📚 |
🤿 | 🦥 |
👉 | 👈 |
Groupe 1020
Personne 1 | Personne 2 |
---|---|
🏕 | 😴 |
🐱👤 | 🌹 |
🤵 | 🔴 |
💾 | 👋 |
2️⃣ | 🌅 |
🎈 | 🔍 |
👁 | 🐥 |
🦆 | 😂 |
9️⃣ | 🔄 |
Mixte
Personne 1 | Personne 2 |
---|---|
🍟 | 🎨 |
🐇 | 🗣 |