(S9) Itération 3 - Site web transactionnel
Au cours de cette itération, vous finaliserez le site Web transactionnel rendu serveur en implémentant les achats (sans paiement).
Vous aurez à remettre le code complet du site Web transactionnel
Votre mission
Développer et finaliser le site Web transactionnel rendu serveur d'achat de produits.
Assurez-vous de bien revisiter les maquettes de Steamy (pour les fonctionnalités), il ne s'agit pas d'une copie 1:1 de Snowfall.
Pour cette mission (en individuel), valant pour 40% de la session, vous devrez remettre le site Web transactionnel d'achat de jeux vidéos Steamy (sans paiement).
Les fonctionnalités suivantes sont demandées:
- Inscription et authentification d'utilisateurs (clients)
- Seul les utilisateurs ayant un compte peuvent acheter sur le site
- Les utilisateurs n'ayant pas de compte peuvent voir les produits, mais ne peuvent les ajouter à leur panier ou procéder à l'achat
- Afficher les produits disponibles pour achat sur la page d'accueil ou encore dans une page "produits".
- Un produit est associé à une catégorie
- Possibilité de filtrer les produits sur la page d'accueil par catégorie, en plus d'un filtre supplémentaire au choix (voir plus bas pour les filtres supplémentaires)
- Afficher le détail des produits dans une page de détails affichant les toutes informations pertinentes sur le produit
- Permettre aux utilisateurs connectés d'ajouter, modifier et supprimer une évaluation (qui leur appartient) pour un produit. Une évaluation comprends:
- Un texte
- Une note (soit binaire de type pouce en haut et pouce en bas, soit une note de 1 à 5)
- L'évaluation est bien entendue associée à l'utilisateur par la suite
- Afficher les évaluations d'un produit sur la page de détails du produit
- Ajouter un produit au panier (vous n'avez pas à gérer les quantités)
- Supprimer un produit du panier (vous n'avez pas à gérer les quantités)
- Acheter un ou des produits via le contenu du panier (sans gestion du paiement).
- Gestion simple de l'expédition:
- 9.99$ si le prix de la commande est de moins de 100$
- Gratuit si le prix de la commande est égal ou supérieur à 100$
- L'adresse d'expédition est automatiquement celle de l'utilisateur et donc la même que l'adresse de facturation
- Afficher la confirmation d'une commande avec le détail de la facture
Un choix parmis une des fonctionnalités supplémentaires suivantes
- Ajouter et supprimer un produit de sa liste de souhaits. Vous devez en plus ajouter un filtre des produits de sa liste de souhaits sur la page d'accueil
- Supporter les produits à venir. Les jeux à venir ne doivent pas avoir d'évaluation possible ainsi que des achats. Vous devez en plus ajouter un filtre des jeux à venir sur la page d'accueil.
- Supporter les rabais sur les produits. Le prix régulier doit être affiché, ainsi que le prix en rabais. De plus, le montant doit être ajusté au moment de l'achat pour prendre en considération le rabais. Vous devez en plus ajouter un filtre des produits en promotion sur la page d'accueil.
- Supporter une variation de style pour les produits (ex.: grandeur, couleur, etc.). Vous devez en plus ajouter un filtre permettant de filtrer par cette variation de style.
De plus, quelques critères sont à respecter:
- Votre projet doit être structuré selon une architecture en couche (N-Tier)
- Vous devez faire usage de migrations et seeders pour les données de la base de données
- Vous devez utiliser les fichiers ressources pour la gestion des messages d'erreur et des libellés
- Afin de ne pas alourdir le chargement de la page d'un produit, le chargement asynchrone des évaluations doit être mis en place. Idem pour la création d'évaluations.
Modalités de remise
- Remis via Léa et GitLab
- Déposer le code de votre projet sur un repo GitLab. Associez un tag, comme
iteration_3
, pour identifier le commit correspondant à votre remise. - Important: Inclure un export
pg_dump
(fichier.sql
) de votre BD à la racine du repo. Voir la procédure plus bas - Remettre un fichier
.txt
sur Léa avec l'URL de votre repo GitLab - Vous assurer que je sois
maintainer
oudeveloper
sur votre repo - Remis avant le 28 mars 2025 23:59
Grille d'évaluation
Critère | Points |
---|---|
Architecture en couches du projet (Application, Domain, Data, Shared, MVC) | 5% |
Migrations de base de données | 10% |
Inscription et authentification | 10% |
Liste de produits sur l'accueil et affichage de la page de détail d'un produit | 10% |
Filtre de produits par catégorie sur l'accueil et filtre supplémentaire | 5% |
Affichage des évaluations sur la page de détail d'un produit | 5% |
Ajout, modification et suppression d'une évaluation de produit | 15% |
Utilisation de htmx pour requêtes asynchrones liées aux évaluations | 5% |
Transaction: panier, achat d'un produit (sans paiement), expédition et confirmation | 20% |
Choix de fonctionnalité supplémentaire | 5% |
Documentation et qualité générale | 10% |
Export de votre BD avec pg_dump
Pour exporter le contenu et l'état de votre base de données, utilisez DataGrip
, conjointement avec pg_dump
.
Clic droit sur la BD
->Export with pg_dump
- Cliquez sur le dossier du champ
Path to pg_dump
pour localiser l'exécutablepg_dump
- Localisez le fichier
pg_dump.exe
qui devrait être dans le dossierProgram Files\PostgreSQL\15\bin
si vous avez la version 15 de PostgreSQL et avez conservé les paramètres par défaut du dossier d'installation. - Cliquer sur
OK
- Choisir le nom du fichier sous lequel sauvegarder l'export (dois être un fichier avec l'extension
.sql
) - Cliquer sur
Run
- Mettre le fichier
.sql
généré à la racine de votre repo