0% ont trouvé ce document utile (0 vote)
19 vues4 pages

Examen

Transféré par

Chamsidine Ckeldi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues4 pages

Examen

Transféré par

Chamsidine Ckeldi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

🔎 Analyse et discussion du code

1. Structure générale

 Le code est un site e-commerce simplifié nommé NovaTech .

 Deux pages principales gérées via JS :

o Produits → affichage dynamique des produits + recherche + tri + ajout au


panier.

o Inscription / Réservation → formulaire interactif avec validation.

👉 C’est une Single Page Application (SPA) basique car tout est géré en HTML/JS sur une
seule page.

2. Style et design (CSS)

 Utilisation de Google Fonts (Poppins) → typographie moderne.

 Dégradés linéaires pour le body et certains boutons → effet premium.

 Effets d’animation :

o @keyframes shine, pulse, slideIn, shake, successPulse → rendent le site plus


vivant.

 Responsive avec @media (max-width: 768px) → la page s’adapte aux écrans mobiles.

👉 Ton CSS est bien pensé, mais il pourrait être encore mieux séparé en fichier [Link] pour
plus de lisibilité.

3. Produits

 Tableau products[] → chaque produit a id, name, price, image, description.

 Affichage dynamique (renderProducts) :

o Recherche instantanée (input).

o Tri (select) : prix croissant/décroissant, nom A-Z, Z-A.

o Affichage carte produit avec effet visuel.

👉 Très bonne logique : tu appliques filtrage + tri sans recharger la page.

4. Panier
 Tableau cart[] pour stocker les produits.

 Badge dynamique (cartBadge) qui affiche le nombre d’articles.

 Bouton "Ajouter au panier" → devient "✅ Ajouté !" puis revient après 2s.

👉 Simple, mais fonctionnel.


❌ Limite : tu ne gères pas les doublons (si on clique plusieurs fois, ça ajoute plusieurs fois le
même produit).

5. Formulaire d’inscription

 Champs : nom, prenom, email, telephone, produit.

 Validation :

o Nom/prénom ≥ 3 lettres.

o Email regex.

o Téléphone format +221 XX XXX XX XX (très précis → uniquement Sénégal).

o Produit obligatoire.

 Erreurs affichées sous chaque champ avec animation (shake).

 Message de succès avec confirmation personnalisée (Merci Prénom Nom, votre


inscription pour Produit…).

👉 C’est du client-side validation. Pas de backend → donc pour l’instant, aucune sauvegarde
réelle.

✅ Réponses aux questions possibles

🔹 Comment ça marche la navigation ?

 showPage(pageId) masque toutes les pages (.page) puis affiche celle choisie (.active).

 Les boutons de navigation changent aussi d’état (active).

👉 Pas de rechargement de page → c’est fluide.

🔹 Comment ajouter un nouveau produit ?

Il suffit d’ajouter un objet dans products[] :

{
id: 9,

name: "Apple Vision Pro",

price: 3499,

image: "<img src='lien_image.jpg' width='359' height='359'>",

description: "Casque de réalité mixte révolutionnaire."

Puis il apparaîtra automatiquement dans la grille et dans le menu déroulant du formulaire.

🔹 Pourquoi utiliser filteredProducts ?

 products contient tous les produits.

 filteredProducts contient les résultats après recherche/tri.


👉 Ça évite de modifier la liste d’origine.

🔹 Que faire pour rendre le site plus professionnel ?

1. Séparer HTML / CSS / JS en fichiers distincts.

2. Sauvegarder le formulaire dans une base de données (PHP, [Link], etc.).

3. Améliorer le panier (supprimer produits, voir total, passer une commande).

4. Ajouter une vraie authentification (connexion/inscription utilisateur).

5. Rendre les images uniformes en taille pour plus de cohérence visuelle.

🔹 Améliorations simples possibles

 Limiter le panier à 1 exemplaire par produit (éviter les doublons).

 Ajouter un prix total du panier.

 Ajouter un filtre par catégorie (Ex : Mac, iPhone, Accessoires).

 Gérer la langue (français/anglais).

👉 Donc ton code est déjà propre, animé et moderne.


Il fonctionne comme une mini boutique en ligne, mais reste statique (sans backend).
Veux-tu que je te propose une version améliorée avec gestion du panier (quantité, total,
suppression) ou bien une connexion avec un backend en PHP/MySQL pour que les
inscriptions soient réellement sauvegardées ?

Vous aimerez peut-être aussi