Ce projet est construit avec Next.js, un framework JavaScript basé sur React, qui permet de développer des applications web performantes avec des fonctionnalités comme le rendu côté serveur (SSR), le rendu statique (SSG) et une prise en charge complète du routage.
Next.js est un framework minimaliste pour les applications React qui permet de :
- Rendre des pages côté serveur (Server-Side Rendering).
- Générer des pages statiques (Static Site Generation).
- Gérer le routage des pages de manière automatique.
- Optimiser les performances avec une gestion intelligente des ressources.
Next.js est souvent utilisé pour des applications web qui nécessitent de la rapidité, du SEO, ou des fonctionnalités avancées comme l'authentification et les API intégrées.
-
app/ :
- api/ : Ce dossier contient les fonctions API de votre projet. Next.js permet de créer facilement des API directement dans l'application sans nécessiter un serveur séparé.
- component/ : Ce dossier contient tous les composants React utilisés dans l'application. Un composant est une partie réutilisable de l'interface utilisateur.
-
public/ :
- Ce dossier contient des ressources statiques telles que des images, des fichiers CSS, et d'autres fichiers accessibles publiquement.
- global.css : Ce fichier contient les styles globaux de votre projet, appliqués à l'ensemble de l'application.
- layout.tsx : Ce fichier définit le layout général de votre application, c'est-à-dire la structure commune à toutes les pages.
- page.tsx : Ce fichier est la page principale ou la page d'accueil de votre application.
- providers.tsx : Ce fichier contient les composants ou contextes globaux qui doivent être disponibles dans toute l'application.
Pour lancer le projet en mode développement, utilisez l'une des commandes suivantes selon le gestionnaire de packages que vous utilisez :
-
Avec Yarn :
yarn dev
-
Avec npm :
npm run dev
Ces commandes démarrent le serveur de développement de Next.js, accessible par défaut sur http://localhost:3000.
Le déploiement se fait automatiquement après chaque commit :
- Le code est poussé sur GitHub.
- Vercel, la plateforme d'hébergement de votre projet, récupère le dernier commit.
- Vercel déploie automatiquement le projet en ligne.
Voici quelques commandes Git de base pour la gestion des versions et des branches :
git clone <url-du-depot>git statusgit add .git commit -m "Message du commit"git push origin traingit checkout <nom-de-la-branche>- train : C'est la branche de développement sur laquelle vous travaillez activement.
- main : C'est la branche principale, représentant la version stable du projet.
Ce projet utilise Chakra UI, une bibliothèque de composants React simple et modulable. Elle offre des composants prêts à l'emploi, accessibles, et personnalisables pour construire des interfaces utilisateur modernes et réactives.
Le projet inclut une API unique, appelée sendMail, qui se trouve dans le fichier app/api/sendGrid/route.js. Cette API est utilisée pour envoyer des e-mails via le service SMTP de Gmail. Elle est particulièrement utile pour des fonctionnalités comme l'envoi d'e-mails de confirmation, de notifications, ou d'autres types de communication automatisée à vos utilisateurs.
L'API sendMail est une route POST qui prend les paramètres suivants dans le corps de la requête :
- email : L'adresse e-mail du destinataire.
- subject : L'objet de l'e-mail.
- message : Le contenu du message à envoyer.
Une requête POST typique à cette API pourrait ressembler à ceci :
{
"email": "destinataire@example.com",
"subject": "Votre sujet ici",
"message": "Votre message ici"
}Voici un aperçu du fonctionnement de l'API :
-
Extraction des données de la requête :
- L'API attend une requête JSON contenant les champs
email,subject, etmessage.
- L'API attend une requête JSON contenant les champs
-
Configuration du transporteur :
- L'API utilise la bibliothèque
nodemailerpour configurer un transporteur SMTP via Gmail. - Les informations d'authentification (
useretpass) sont récupérées à partir des variables d'environnementGMAIL_USERetGMAIL_PASS.
- L'API utilise la bibliothèque
-
Définition des options de l'e-mail :
- L'e-mail est configuré avec l'adresse d'envoi (
from), l'adresse de destination (to), l'objet (subject), et le corps du message (textethtml).
- L'e-mail est configuré avec l'adresse d'envoi (
-
Envoi de l'e-mail :
- L'e-mail est envoyé en utilisant la méthode
sendMaildenodemailer. - En cas de succès, l'API retourne une réponse JSON avec
{ success: true }et un code de statut200. - En cas d'échec, l'API capture l'erreur, la log, et retourne une réponse JSON avec le message d'erreur et un code de statut
500.
- L'e-mail est envoyé en utilisant la méthode
Vous pouvez maintenant copier-coller ce contenu dans votre fichier README.md.