/PRO_AMT

site d'e-commerce de vente de tapis (😉), développé en Spring boot

Primary LanguageJava

Silky Road 🐪

Silky Road

Dans le cadre de notre cours d'AMT, nous réalisons un site d'e-commerce de vente de tapis (😉). Avant de contribuer, nous vous recommandons de commencer par lire le Wiki (si vous êtes assistant, cliquez ici) qui vous donnera une bonne vision du produit, de comment contribuer ainsi que des détails technologiques et techniques utiles à une bonne collaboration 🔥

Structure

  • Le dossier src contient le code source du projet.
  • Le dossier docs contient tous les éléments utiles à la documentation (fichiers sources, images).
  • Le dossier docker contient les images Docker. Chaque image différente est dans un sous-dossier (exemple: une image Docker couchebase serait dans docker/docker-couchebase).

Commencer 🏁

Cette section a pour but de mettre en place un environnement de développement similaire à celui de l'équipe de développement. Pour en savoir plus sur la stack technologique, référez-vous à la section choix technologique du Wiki !

Prérequis

Installation

  1. Cloner le repository.
git clone git@github.com:EricB2A/PRO_AMT.git
  1. Ouvrir le projet avec IntelliJ
  2. Lancer le conteneur Docker
cd docker/docker-mysql && touch silkyRoad.sql && docker compose up
  1. Lancer Spring boot et le Tomcat Server (^R).
  2. Allez à l'adresse localhost:8080 et vous voilà prêt à contribuer 🆒.

Variables d'enrivonnement

Afin de pouvoir utiliser notre application en local, il faut ajouter plusieurs variables d'environnement :

  • AUTH_SERVICE_SECRET
  • AUTH_SERVICE_IP
  • STRIPE_API_KEY

Pour ajouter des variables d'environnement, aller sous Run->Edit Configuration

Dans la configuration Spring Boot correspondant à l'application, sous Environment -> environment variables, cliquez sur l'icône de bloc note et ajoutez les deux variables ci-dessus avec leur valeurs respectives

SGBD 🐋

Notre application utilise le SGBD relationnel mySQL, que nous avons Dockerisé via l'image mysql. Par défaut, le conteneur Docker sera accessible depuis l'hôte sur le port 3307 avec le mot de passe root. Les données sont stockées dans le fichier silkyRoad.sql.
Vous pouvez bien évidemment configurer ces paramètres en modifiant le docker compose.

Pour accéder à l'instance mySQL (en ayant un container up & running) :

docker exec -it docker-mysql_db_1 bash
mysql -uroot -proot

Modèle de domaine 💡

model

L'ORM Hibernate va faire un mapping 1-1 entre ce(s) classe(s) et ses(leurs) attributs et une table éponyme et ses champs associés en base de données. Veuillez noter que les méthodes de types setter et getter ne sont pas présents sur ce schéma afin de simplifier la lisibilité de ce dernier.

Authentification

Documentation du login se trouve ici.

Un service d'authentification a été implémenté et est disponible dans ce repo

Service de paiement 💵

Notre application intègre un moyen de paiement via Stripe. Les composants les plus pertinents de l'implémentation se trouvent dans :

Routes 👀

Verbe HTTP Route Contrôleur
GET /accueil HomeController
GET /admin/articles ArticleController
GET /admin/articles/add ArticleController
POST /admin/articles/add/post ArticleController
POST /admin/articles/edit/post ArticleController
GET /admin/articles/edit/{id} ArticleController
GET /admin/articles/delete/{id} ArticleController
GET /login LoginController
POST /login LoginController
POST /signup LoginController
GET /signup LoginController
POST /logout LoginController
GET /cart CartController
PUT /cart/{id} CartController
POST /cart/{id} CartController
DELETE /cart/{id} CartController
GET /payment/command PayementController
POST /payment/pay PayementController
POST /payment/create-payment-intent PayementController

L'équipe 🦍

Développeur Github
Eric Bousbaa EricB2A
Ilias Goujgali Double-i
Noah Fusi noahfusi
Dalia Maillefer AliceThunderWind
Stéfan Teofanovic OvichHeigVD

Discord

Vous êtes les bienvenus à nous rejoindre sur Discord où nous organisons des sessions de travail hebdomadaires.

Bonne contribution 😎