Skip to content

Création d'un site E-Commerce en lien avec les animaux.

Notifications You must be signed in to change notification settings

Homie-s-Project/mercure

Repository files navigation

Mercure

Docker Debug Docker Production Mercure API Testing Mercure WEB Testing Cleanup caches for closed branches

Mercure la plateforme de e-commerce qui va vous changer votre façon de penser aux animaux.

Vous pouvez adopter ou même acheter des aliments pour votre meilleur ami.

Les labradors les plus choux de votre région sont sur notre plateforme, et vous attendent pour vivre une merveilleuse vie.

Installation

Se projet est fait pour fonctionner avec Docker.

Une fois docker installer est fonctionnel, il faudra clonner ce répository.

git clone https://github.com/Homie-s-Project/mercure.git

Une fois le répository clonner il faudra lancer docker pour qu'il installer tous les modules/packages nécessaires.

Avant de pouvoir lancer les commandes docker, il vous faut vous assurer que vous vous trouvez dans le ficher racines du projet.

Vous pouvez le lancer en mode debug (Mode de développement)

docker compose -f "docker-compose.debug.yml" up -d --build

Deployment

Se projet est fait pour fonctionner avec Docker.

Une fois docker installer est fonctionnel, il faudra clonner ce répository.

git clone https://github.com/Homie-s-Project/mercure.git

Une fois le répository clonner il faudra lancer docker pour qu'il installer tous les modules/packages nécessaires.

Avant de pouvoir lancer les commandes docker, il vous faut vous assurer que vous vous trouvez dans le ficher racines du projet.

Vous pouvez le lancer en mode de production

docker compose -f "docker-compose.yml" up -d --build

API Docs Tests

Il vous faudra vous rendre sur ce fichier, où les explications y sont. --> ICI <--

Pentest

Concernant les pentests, nous avons créé un script en python qui permet d'extraire toute notre API et d'écrire un fichier de résultat avec le résultat de chaque rôle sur l'API.

Il écrit aussi un fichier markdown, qui permet l'affichage sur GitHub avec une version plus simple à lire. Résultat Pentest.

Pour l'instant, le script n'arrive pas à tester toutes les requêtes qui nécessitent des paramètres. Mais en lisant le JSON de swagger il y a moyen de récupérer les paramètres et de pouvoir les simuler, ce qui pourrait être à faire dans le futur.

Test Credit Card

Selon la page de docs de Stripe, https://stripe.com/docs/testing#cards

Vous pouvez utiliser ces cartes pour tester leur service :

Numéro 	: 4242 4242 4242 4242
CCV 	: *3 chiffres aléatoires*
Date 	: *date après l'achat*

Nommage

Toutes les variables du projet s'écrivent en anglais selon les conventions du langage.

Branche

Pour les branches, nous avons décidé de les nommer en anglais et ayant 1-3 mots pour décrire ce qui est fait. Les espaces sont remplacés par des "_".

Exemples:

  • add_logs
  • add_localisation
  • edit_controller_auth

Routes

Les url et information comme les paramètres des routes sont disponible en consultant le fichier ROUTES.md, les données ont été extraite grâce à Widdershins.

Image Docker

Notre projet utilise Docker, pour des questions de simplicité et de temps. Grâce à Docker, nous pouvons transférer un environnement simplement et l'installer sur une autre machine grâce à une commande.

Nous utilisons 8 images dans notre projet dont 2 qui sont privé.

Image Docker Description URL
mercure-api* Cette image contient le code utile pour notre API. http://localhost:5000/swagger/index.html
mercure-web* Dans cette image, il se trouve tout notre code nécessaire pour avoir l'interface frontend avec Angular. http://localhost:4200/
redis Redis est l'image qui permet de gérer le cache de notre application.. localhost:6379**
postgres Postgres est l'image docker de notre base de données. localhost:5432**
dpage/pgadmin4 Cette image permet d'avoir une interface d'utilisation de notre base de données. http://localhost:5050/
grafana/grafana Ce container permet d'avoir une page de dashboard de nos services. http://localhost:30091/
ubuntu/prometheus Ce container permet de récupérer les informations d'un service. http://localhost:30090/
wrouesnel/postgres_exporter Ce container permet de récupérer les informations de PostgreSQL et de le convertire pour l'utiliser avec Prometheus. http://localhost:9187/

* C'est des images non-publiques nous appartenant.

**Ces URL ne peuvent pas être accédé depuis un navigateur web, ne sont pas utilisables à travers le protocole http.

Les connexions pour la base de données, si elles n'ont pas été modifiées dans les variables d'environnement reste celle par défaut.

Environment Variables

Pour exécuter ce projet, vous devrez ajouter les variables d'environnement suivantes à votre fichier .env*

*Le fichier avec les variables d'environnement est déjà prévu n'est pas encore utilisé par notre code.

Postgres

Environement name default
POSTGRES_DB mercure
POSTGRES_USER mercure_user
POSTGRES_PASSWORD mercure_password

pgAdmin4

(Site local qui permet de gérer la postgres)

Environement name default
PGADMIN_DEFAULT_EMAIL [email protected]
PGADMIN_DEFAULT_PASSWORD mercure

mercure-api

Environement name default
ASPNETCORE_ENVIRONMENT Development
ASPNETCORE_URLS http://+:5000

mercure-web

Environement name default
NODE_ENV development

mercure-grafana

Environement name default
GF_SECURITY_ADMIN_USER mercure
GF_SECURITY_ADMIN_PASSWORD mercure_password

Connect Database

Pour se connecter à la base de données, vous pouvez utiliser ce logiciel TablePlus. Il est simple et facile d'utilisation.

Lorsque vous l'aurez téléchargé, vous pourrez créer une connexion en vous basant sur les informations de connexion se trouvant juste au-dessus dans le tablea Postgres.

Color Reference

Couleur Hex
Couleur avec propriété non définie* #fff5cd #fff5cd
Couleur avec propriété non définie* #6f3e2d #6f3e2d
Couleur avec propriété non définie* #86965c #86965c
Couleur avec propriété non définie* #5d6c3b #5d6c3b
Couleur avec propriété non définie* #314d2d #314d2d
Couleur avec propriété non définie* #1a2c16 #1a2c16

* Les couleurs n'ont pas une utilisation définient.

Authors