Dark Kitchen - BackEnd Suite
- POK
- 2024-2025
- temps 3
- BackEnd
- Node.js
- Express.js
- MongoDB
- API REST
- Dark Kitchen
- Thomas Merle
Codage du BackEnd du site de ma Dark Kitchen - Passage des commandes et Système de Paiement
Niveau : Très Technique Pré-requis:
- Connaissances de base en JavaScript.
- Familiarité avec Node.js et npm.
- Familiarités avec les bases de données et leur gestion avec MangoDB.
- Notions d’API REST et endpoints.
Quelques phrases permettant de connaître, sans jargon ni blabla, le contenu de ce POK. On oubliera pas de donner :
- le niveau et les prérequis nécessaires en utilisant la balise
prerequis
- les autres POK & MON en rapport en utilisant la balise
lien
POK3 - Dark Kitchen - BackEnd Suite
Codage en JS (NodeJS).
Ce POK décrit les étapes du développement du site web de notre Dark Kitchen de Fried Rice et de Noodles S&T Goreng. Il comprend la mise en place d'une API REST, la connexion à une base de données MongoDB et des fonctionnalités essentielles côté serveur. Ce POK est la suite logique du précédent. Nous ajoutons de nouevlles fonctionnalités comme la possibilité de passer des commandes et l'implémentation d'un système de paiement en ligne.
Objectifs principaux
- Conception des API: construire une API REST avec Node.js et Express.js pour gérer les produits, commandes et le panier. Création des endpoints et de l'architecture API.
- Modéliser les données : définir les modèles nécessaires avec MongoDB comme base de données pour stocker les informations de manière persistante.
- Refactoriser et structurer le code pour une meilleure maintenabilité.
- Rendre le backend fonctionnel pour intégration avec le frontend.
1. Initialisation du projet
- Tâches :
- Sofiane&Thomas Initialiser un projet Node.js avec
npm init
. - Sofiane&Thomas Installer les dépendances principales :
express
,mongoose
,dotenv
. - Sofiane&Thomas Configurer un fichier
.env
pour stocker les variables sensibles comme le port et l’URI MongoDB. - Sofiane&Thomas Créer un serveur Express.js fonctionnel qui écoute sur un port donné.
- Sofiane&Thomas Initialiser un projet Node.js avec
2. Connexion à MongoDB
-
Tâches :
- Thomas Créer un cluster MongoDB sur MongoDB Atlas.
- [Thomas Configurer la connexion entre le serveur Node.js et MongoDB à l’aide de
mongoose
. - Thomas Définir les schémas et modèles pour :
- Produits (nom, description, prix, image).
- Users (nom, eamil, passwords).
- Thomas Ajouter des données de test pour les produits.
3. Création des routes API REST
-
Tâches :
- Sofiane Implémenter les routes suivantes :
GET /api/products
: Liste tous les produits.GET /api/products/:id
: Détaille un produit spécifique.POST /api/products/
: Création un produit spécifique.PUT /api/products/:id
: Update un produit spécifique.DELETE /api/products/:id
: Suprimer un produit spécifique.POST /api/login
: Se connecterPOST /api/register
: Créaction d'un nouveau compte
- Structurer les routes pour qu'elles utilisent les méthodes CRUD associées.
- Sofiane Implémenter les routes suivantes :
4. Refactorisation et modularisation du code
- Tâches :
5. Ajout des données et validation simple
- Tâches :
6. Intégration du Backend avec le Frontend
- Tâches :
- Sofiane&Thomas Connecter le frontend en Vue.js avec l'API backend en utilisant Axios ou Fetch pour effectuer des appels API.
- Sofiane&Thomas Tester les appels aux différentes routes API (produits, panier, commandes) depuis le frontend pour vérifier que les données sont correctement affichées et manipulées.
- Sofiane&Thomas Implémenter des actions sur le frontend comme l'ajout de produits au panier via l'API
POST /api/cart
et l'affichage des produits depuisGET /api/products
. - Sofiane&Thomas Vérifier que les pages du frontend, comme le panier et le menu, interagissent correctement avec le backend pour mettre à jour les données de manière dynamique.
Sprints de développement
--
Sprint 1 : Initialisation et serveur Express
- Objectif : Créer un serveur Express.js fonctionnel.
- Tâches :
Sprint 2 : Connexion à MongoDB et création des modèles
- Objectif : Configurer MongoDB et définir les schémas des données.
- Tâches :
Sprint 3 : Développement des routes API
- Objectif : Implémenter les fonctionnalités principales de l’API.
- Tâches :
--
Sprint 4 : Refactorisation et modularisation
- Objectif : Organiser le projet pour faciliter la maintenance et les futures évolutions.
- Tâches :
Sprint 5 : Ajout des données et validation simple
- Objectif : Ajouter des données de test et vérifier le fonctionnement des routes API.
- Tâches :
Sprint 6 : Intégration du Backend avec le Frontend
- Objectif : Assurer la communication entre le frontend Vue.js et le backend Node.js via des API.
- Tâches :
- [x] Sofiane&Thomas Implémentation des appels API pour récupérer les produits et gérer le panier.
- [x] Sofiane Implémentation des appels API pour enregistrer des User.
- [x] Sofiane Mise à jour du FrontEnd avec les popups LogIn et SignIn.
- [x] Sofiane&Thomas Vérification de l'affichage dynamique des produits dans le frontend.
- [x] Sofiane&Thomas Tester connexion/l'enregistrement d'un user et ajout à la base de donnée.
--
Horodateur
Toutes les séances et le nombre d'heure que l'on y a passé.
Date | Heures passées | Indications |
---|---|---|