Projet – Introduction à l’Internet (INF16107) Travail Pratique 2
CakeCraft est une application web basique, responsive et interactive permettant aux utilisateurs de personnaliser un gâteau, passer une commande, puis consulter l’historique des commandes. Les commandes sont enregistrées dans un fichier JSON à l’aide d’un serveur Node.js minimaliste, ce qui assure une persistance des données.
Ce projet a été réalisé dans le cadre du TP2 du cours INF16107.
Ce travail vise à nous familiariser avec :
- Les interactions dynamiques avec JavaScript
- La programmation côté serveur avec Node.js
- L'utilisation avancée d’un framework CSS : Bootstrap 5
- La communication client/serveur (GET, POST, DELETE)
- La gestion d’un fichier JSON pour stocker les commandes (sans base de données)
- HTML5
- CSS3
- JavaScript
- Bootstrap 5 (CDN)
- Font Awesome (CDN)
- Node.js (sans base de données)
- Gestion d’un fichier JSON
commandes.json
- Visual Studio Code
- Node.js Runtime
CakeCraft/
├─ index.html
├─ commander.html
├─ historique.html
├─ README.md
├─ assets/
│ └─ images/
├─ css/
│ ├─ history.css
│ └─ style.css
└─ js/
└─ history.js
- Accueil
- Commande en ligne
- Historique des commandes
- Icônes de réseaux sociaux (Font Awesome)
- Adresse du commerce
- Image de fond en plein écran
- Texte descriptif du commerce
- Bouton Commander en ligne menant à la page de commande
-
Base du gâteau :
- Vanille
- Chocolat
-
Glaçage :
- Vanille
- Chocolat
- Fraise
-
Suppléments :
- Crème fouettée
- Cerise
- Nom
- Adresse
- Commander → Envoi des données au backend (POST /commande)
- Annuler → Réinitialise le formulaire et vide la zone de personnalisation
- À chaque changement, une image est ajoutée/retirée
- Gestion via
onchangeetonclick - Construction visuelle du gâteau dans une zone dédiée
-
Récupère les commandes depuis
/commandes(GET) -
Affiche chaque commande dans une carte Bootstrap avec :
- Base
- Glaçage
- Suppléments
- Prix (si bonus activé)
- Nom
- Adresse
-
Bouton Supprimer → Envoie une requête DELETE vers
/commande/:id
Les routes obligatoires :
GET /commandes
POST /commande
- Génère un ID unique
- Ajoute la commande dans
commandes.json
DELETE /commande/:id
Le fichier JSON ressemble à :
[
{
"id": 1,
"base": "vanille",
"glacage": "chocolat",
"creme": "oui",
"cerise": "non",
"date": "2025-10-20T14:30:00.000Z",
"nom": "Pierre Martin",
"adresse": "1595 boulevard Alphonse-Desjardins, Lévis"
}
]Ajout d’un système de prix dynamique :
- Base vanille : 10$
- Base chocolat : 11$
- Glaçage : +3$
- Crème fouettée : +2$
- Cerise : +1$
Le prix total est ajouté à la commande dans commandes.json.
Une courte vidéo doit être fournie montrant :
- Navigation
- Personnalisation d’un gâteau
- Soumission d’une commande
- Affichage dans l’historique
- Suppression
Projet réalisé par :
- Loko Ismaël
- Ayassou Joseph Kossivi Loic
9 décembre 2025 – 23h59