Projet Épreuve E5: BarberSaloon

Le projet "BarberSaloon" vise à fournir une plateforme en ligne pour un salon de coiffure, permettant aux utilisateurs de s'inscrire, de se connecter, de réserver des rendez-vous pour différents services comme la coupe de cheveux, la barbe et le shampooing, ainsi que de visualiser et gérer leurs rendez-vous.

Structure et Configuration du Projet

Le code présenté ici montre la structure de base du site web BarberSaloon.
Utilisant React.js, ce fragment illustre l'utilisation de react-router-dom pour la navigation entre différentes pages.
On peut voir que la Navbar est un composant constant à travers les différentes routes. Les routes définies incluent la page d'accueil (Home), le formulaire de connexion (LoginForm), et le formulaire d'inscription (RegisterForm). Cette structure de base sert à établir la navigation et la gestion des différentes parties de l'application.

Ce code établit la connexion à ma base de données MySQL et configure les tables nécessaires pour l'application BarberSaloon.
Il utilise le module mysql pour se connecter au serveur MySQL avec des paramètres tels que l'hôte et l'utilisateur.
Une fois la connexion réussie,le code va créer la base de données barber_saloon si elle n'existe pas encore, et bascule vers cette base de données.
Il utilise ensuite des fonctions spécifiques pour créer les tables User et RDV, qui stockent les utilisateurs et les rendez-vous.
Les étapes de connexion, de création de base de données, et de création des tables sont gérées avec des vérifications d'erreurs pour assurer que le processus se déroule sans problème.
Le module exporte la connexion pour permettre à d'autres parties de l'application de communiquer avec la base de données.

Ce code contient deux fonctions principales pour gérer les utilisateurs du BarberSaloon: l'enregistrement (register) et la connexion (login).
La fonction register est une API qui permet d'enregistrer de nouveaux utilisateurs dans le système.
Elle prend les données d'enregistrement du corps de la requête HTTP, y compris le nom, le prénom, le nom d'utilisateur, l'e-mail, le mot de passe, et le numéro de téléphone.
Elle vérifie que tous les champs requis sont remplis avant de hacher le mot de passe avec bcrypt.
Si l'enregistrement réussit, les informations de l'utilisateur sont stockées dans la base de données MySQL, et un message de succès est renvoyé au client.
En cas d'erreur, des messages sont renvoyés pour indiquer le problème.
La fonction login est une API qui permet aux utilisateurs de se connecter à l'application.
Elle prend l'e-mail et le mot de passe depuis le corps de la requête, vérifie leur validité, et compare le mot de passe avec la valeur hachée stockée dans la base de données.
Si le mot de passe correspond, un token JWT est généré pour identifier l'utilisateur et autoriser son accès.
Ce token peut ensuite être utilisé pour des requêtes authentifiées.

En plus des API d'enregistrement et de connexion, on la fonction rdvform qui est une API qui permet de créer des rendez-vous pour les clients de BarberSaloon.
Elle prend des détails tels que le nom, le prénom, le barbier, les services, la date, l'heure, le téléphone, et l'e-mail.
Les données sont insérées dans la base de données MySQL, permettant de suivre et de gérer les rendez-vous.
La fonction sendEmail est une API utilisée pour envoyer des e-mails avec nodemailer.
Elle prend des détails comme le destinataire, le sujet, et le message, puis utilise un transporteur configuré pour envoyer l'e-mail.
Cela peut être utilisé pour des confirmations de rendez-vous ou d'autres communications avec les clients.

Page d'accueil du salon:

Page d'inscription:

Page de connexion:

Page de réservation des RDV:

Page de profil de l'utilisateur:

Structure de la BDD et ses relations: