Skip to content

L'As des dĂ©s! ​

Votre passion pour les jeux de société vous pousse à créer une application Vue pour visualiser et gérer votre collection de jeux de société.

L'application Vue devra permettre d'effectuer différentes actions en lien avec la gestion de votre collection.

Vous devrez Ă©galement utiliser l'API suivante pour la gestion des donnĂ©es. Vous devez ĂȘtre connectĂ© au VPN ou ĂȘtre sur le rĂ©seau du cĂ©gep pour utiliser l'API.

PondĂ©ration ​

Le Projet Vue vaut pour 35% de la note finale du cours.

Lors de la quatorziÚme semaine, il y aura la remise d'avancement qui se fera en classe. Je passerais voir chaque personne/équipe afin de voir l'avancement du projet et de vous donner une note sur 5% (voir plan de cour).

Structure du projet ​

Vous devrez obligatoirement utiliser le template de projet Vue suivant : Template vue - 2W1

Composition des Ă©quipes ​

Le projet peut se faire seul ou en équipe de 2 personnes. Les gens en équipe devront effectuer des fonctionnalités supplémentaires.

L'utilisation de git est fortement recommandĂ©e si vous ĂȘtes en Ă©quipe. Vous devez me confirmer la composition de votre Ă©quipe avant de commencer le projet, et ce le plus tĂŽt possible.

Fonctionnement du projet ​

Si vous ĂȘtes seul :

  • Vous devez implĂ©menter les fonctionnalitĂ©s obligatoires de bases.
  • Vous devez implĂ©menter 2 fonctionnalitĂ©s supplĂ©mentaires.

Si vous ĂȘtes en Ă©quipe de 2 personnes :

  • Vous devez implĂ©menter les fonctionnalitĂ©s obligatoires de bases et avancĂ©es.
  • Vous devez implĂ©menter les 3 fonctionnalitĂ©s supplĂ©mentaires.

FonctionnalitĂ©s obligatoires ​

Application de base ​

  • Navbar
    • Les diffĂ©rents liens de navigation devront ĂȘtre prĂ©sents.
    • Une icĂŽne reprĂ©sentant le logo de l'application devra ĂȘtre prĂ©sente dans la navbar. Cette image ne doit pas excĂ©der la taille de la navbar. Ajuster le scss au besoin.
  • Footer
    • Il devra contenir le nom de l'application, votre nom ou celui de votre Ă©quipe et l'annĂ©e en cours (de maniĂšre dynamique).
  • Page d'Accueil
    • Bouton consultation de la collection
  • Page de consultation de la collection
    • Affichage de tous les jeux de sociĂ©tĂ© dans la collection avec tous leurs dĂ©tails (nom, description, nombre de joueurs, etc.). Seuls les champs id, createdAt et updatedAt ne sont pas obligatoires Ă  afficher.
    • Pour chaque jeu, un bouton "Supprimer" pour supprimer le jeu de la collection. Un modal devra ĂȘtre affichĂ© avec les tous les dĂ©tails du jeu et un bouton pour confirmer la suppression du jeu. Le modal devra se fermer automatiquement aprĂšs la suppression du jeu et un toast devra ĂȘtre affichĂ© pour confirmer que le jeu a Ă©tĂ© supprimĂ© de la collection. Le nom du jeu et la date/heure de suppression doivent se trouver dans le toast.
    • Pour chaque jeu, un bouton "Modifier" pour modifier les dĂ©tails du jeu. Ce bouton devra nous amener vers la page de modification de jeu.
    • Pour chaque jeu, un bouton 'Extensions' pour voir les extensions du jeu. Ce bouton devra nous amener vers la page d'affichage des extensions du jeu.
  • Page de modification de jeu
    • Un formulaire prĂ©rempli avec les dĂ©tails du jeu sĂ©lectionnĂ©, permettant Ă  l'utilisateur de modifier les informations du jeu (toutes les informations, sauf les champs id, createdAt).
    • À l'aide de vee-validate, des validations devront ĂȘtre effectuĂ©es afin de respecter la documentation de l'api quant aux valeurs des champs.
    • Un toast devra ĂȘtre affichĂ© pour confirmer que le jeu a Ă©tĂ© modifiĂ© avec succĂšs. Le nom et la date/heure doivent se trouver dans le toast.
    • Ajouter un bouton "Retour Ă  la collection" pour retourner Ă  la page de consultation de la collection.
  • Page d'ajout de jeu
    • Un formulaire pour ajouter un nouveau jeu Ă  la collection. Le formulaire devra avoir 2 sections distinctes : Les champs obligatoires et les champs optionnels. Se rĂ©fĂ©rer a l'API pour les champs obligatoires et optionnels.
    • À l'aide de vee-validate, des validations devront ĂȘtre effectuĂ©es afin de respecter la documentation de l'api quant aux valeurs des champs.
    • Un toast devra ĂȘtre affichĂ© pour confirmer que le jeu a Ă©tĂ© créé avec succĂšs. Le nom et la date/heure doivent se trouver dans le toast.
    • Ajouter un bouton "Retour Ă  la collection" pour retourner Ă  la page de consultation de la collection.
  • Page d'affichage des extensions du jeu
    • Affichage de toutes les extensions du jeu sĂ©lectionnĂ© avec tous leurs dĂ©tails (nom, description, nombre de joueurs, etc.). Seuls les champs id, createdAt et updatedAt ne sont pas obligatoires Ă  afficher.
    • Ajouter un bouton "Retour Ă  la collection" pour retourner Ă  la page de consultation de la collection.

Application avancĂ©e (Ă©quipe) ​

Si vous ĂȘtes en Ă©quipe, vous devez en plus des fonctionnalitĂ©s de base, vous devez implĂ©menter la fonctionnalitĂ© de favoris (whislist).

  • Page d'Accueil
    • Ajouter un bouton pour accĂ©der Ă  la page de favoris.
  • Page de favoris
    • Affichage des jeux de sociĂ©tĂ© marquĂ©s comme favoris (whislist). Il devra y avoir pour chaque jeu dans la liste des favoris, un formulaire permettant de modifier la note et la prioritĂ© du jeu. Je vous conseille d'utiliser une table.
    • Bouton pour supprimer un jeu de la liste des favoris. Un modal devra ĂȘtre affichĂ© avec les tous les dĂ©tails du jeu et un bouton pour confirmer la suppression du jeu de la liste des favoris. Le modal devra se fermer automatiquement aprĂšs la suppression du jeu et un toast devra ĂȘtre affichĂ© pour confirmer que le jeu a Ă©tĂ© supprimĂ© de la liste des favoris. Le nom du jeu et la date/heure de suppression doivent se trouver dans le toast.
  • Page de consultation de la collection
    • Ajouter un bouton "Ajouter aux favoris" pour chaque jeu, permettant Ă  l'utilisateur de marquer un jeu comme favori. Un modal s'ouvrira avec 2 champs pour pouvoir spĂ©cifier la note et la prioritĂ©. Assurez-vous de faire les validations avec vee-valdiate pour que les champs soient dans les valeurs acceptables selon la documentation de l'API.
    • Le modal devra se fermer automatiquement aprĂšs l'ajout du jeu aux favoris et un toast devra ĂȘtre affichĂ© pour confirmer que le jeu a Ă©tĂ© ajoutĂ© Ă  la liste des favoris. Le nom du jeu et la date/heure d'ajout doivent se trouver dans le toast.

FonctionnalitĂ©s supplĂ©mentaires au choix ​

Choix 1 : Ajout de catĂ©gories de jeu ​

Ajouter la fonctionnalité de gestion des catégories de jeu. Les éléments à implémenter sont les suivants :

  • Page d'accueil
    • Ajouter un bouton pour accĂ©der Ă  la page de gestion des catĂ©gories de jeu.
  • Page de gestion des catĂ©gories de jeu
    • Affichage de toutes les catĂ©gories de jeu existantes.
    • Ajouter un bouton pour crĂ©er une nouvelle catĂ©gorie de jeu. Ce bouton devra nous amener vers la page de crĂ©ation de catĂ©gories de jeu.
  • Page de crĂ©ation de catĂ©gories de jeu
    • Un formulaire pour crĂ©er une nouvelle catĂ©gorie de jeu (ex.: Deck-building, enchĂšre, etc.) avec un champ pour le nom de la catĂ©gorie.
    • À l'aide de vee-validate, des validations devront ĂȘtre effectuĂ©es afin de respecter la documentation de l'api quant a la valeur du champ.
    • Un toast devra ĂȘtre affichĂ© pour confirmer que la catĂ©gorie a Ă©tĂ© créée avec succĂšs. Le nom et la date/heure doivent se trouver dans le toast.
    • Vous devrez rediriger l'utilisateur vers la page de gestion des catĂ©gories de jeu aprĂšs la crĂ©ation de la catĂ©gorie.

Choix 2 : Tri par note BGG, durĂ©e maximum du jeu et nombre minimum de joueurs ​

Ajouter une fonctionnalité de tri des jeux de société. Les éléments sur lesquels trier seront les suivantes :

  • Note BGG
  • DurĂ©e maximum du jeu
  • Nombre minimum de joueurs
  • Les tris devront pouvoir se faire en ordre croissant et dĂ©croissant.

Vous devez ajouter une liste dĂ©roulante pour sĂ©lectionner le critĂšre de tri ainsi qu'un bouton de tri dans la page de consultation. Selon la valeur de la liste dĂ©roulante, la liste de jeu de sociĂ©tĂ© devra ĂȘtre triĂ©e en consĂ©quence.

Choix 3 : Barre de recherche ​

Implémenter la fonctionnalité de recherche pour permettre à l'utilisateur de rechercher des jeux de société dans la collection en fonction d'un critÚre de recherche. Vous devrez ajouter à la liste de jeux :

  • Un champ de recherche pour permettre Ă  l'utilisateur de saisir un critĂšre de recherche.
  • Un champ permettant de saisir une valeur de recherche (ex.: "Catan" pour le nom du jeu, "jeu de stratĂ©gie" pour la catĂ©gorie, etc.)
  • Un bouton de recherche pour lancer la recherche.
  • Selon le critĂšre de recherche sĂ©lectionnĂ©, la liste de jeux de sociĂ©tĂ© devra ĂȘtre filtrĂ©e pour n'afficher que les jeux correspondant au critĂšre de recherche.

Style ​

Le site devra ĂȘtre responsive et ĂȘtre utilisable sur les appareils suivants :

  • Ordinateur de bureau
  • Tablette
  • TĂ©lĂ©phone mobile

Vous devrez utiliser une palette de couleurs contenant au moins 3 couleurs différentes pour le style de votre site. Assurez-vous que le choix de vos couleurs soit harmonieux et que le contraste soit suffisant pour assurer une bonne lisibilité du site.

Vous devrez modifier les variables de bootstrap avec le SCSS afin que vos couleurs soient prises en compte.

Également, je vous demande d'utiliser un minimum de 5 classes scss afin de personnaliser le style de votre site et d'Ă©viter la rĂ©pĂ©tition de code.

Truc 💡

Au besoin, utiliser l'outil WAVE (Web Accessibility Evaluation Tool) pour vous aider avec le contraste de couleur.

Documentation ​

Toutes les fonctions de vos services devront ĂȘtre documentĂ©es comme vu en classe. Il devra ĂȘtre de mĂȘme pour vos diffĂ©rents modĂšles de donnĂ©es (classe dans @typings) et toutes les fonctions créé dans les composants.

ESLint ​

Assurez-vous d'effectuer rĂ©guliĂšrement des vĂ©rifications avec ESLint afin de corriger les erreurs de linting. Tout est dĂ©jĂ  configurĂ© dans le template, prĂȘt Ă  l'emploi.

Appropriation du code ​

Je tiens Ă  vous rappeler que vous devez faire le projet par vous-mĂȘme. En aucun temps, vous ne devriez jamais copier tel quel le code d'internet ou d'une autre personne.

Pour ceux qui sont en équipe, il est de votre devoir de vous assurer que vous comprenez ce qui a été fait par vous, mais aussi par votre coéquipier.

Remise ​

Vous devrez me remettre sur LÉA votre projet sous forme d'un fichier zip contenant tous les fichiers de votre projet.

Si vous dĂ©sirez me remettre le projet via git, vous devrez m'inviter sur votre repos git. Le cas Ă©chĂ©ant, aucune remise ne sera Ă  faire sur LÉA, je vais prendre le dernier push avant la date de remise comme Ă©tant la version finale du projet. Assurez-vous de me donner accĂšs Ă  votre repo git avant la date de remise.

Date de remise ​

La remise d'avancement doit se faire en présence en classe lors de la 14e semaine du cours (8 mai 2026).

La remise finale doit ĂȘtre remise au plus tard avant 23h55 le 20 mai 2026. Tout projet remis aprĂšs cette date sera considĂ©rĂ© comme en retard et une pĂ©nalitĂ© s'appliquera.

Critùre de correction - Remise d'avancement (5%) ​

La remise d'avancement se fait en classe et sera évaluée de la maniÚre suivante :

  • QualitĂ© du travail rĂ©alisĂ© Ă  la mi-projet.

Critùre de correction Projet final (35%) ​

  • QualitĂ© gĂ©nĂ©rale (20%)
    • Respect des consignes.
    • QualitĂ© gĂ©nĂ©rale du code.
    • Une pĂ©nalitĂ© de 0.25% par faute sera appliquĂ©e pour l'interface utilisateur et les commentaires, jusqu'Ă  concurrence de 10% de la note finale du travail.
  • FonctionnalitĂ© (40%)
    • Respect des Ă©lĂ©ments demandĂ©s.
    • QualitĂ© de l'intĂ©gration des fonctionnalitĂ©s.
  • Choix de fonctionnalitĂ©s (20%)
    • Respect des Ă©lĂ©ments demandĂ©s.
    • QualitĂ© de l'intĂ©gration des fonctionnalitĂ©s.
  • Style et aspect responsive (10%)
    • Respect des Ă©lĂ©ments demandĂ©s.
    • QualitĂ© de l'interface visuelle.
  • Documentation (10%)
    • QualitĂ© et pertinence de la documentation produite.

420-2W1-DM - Développement d'applications web 2