Projet final 1
Objectif
Valider tous les acquis en créant un mini site web interactif complet. Mettre en pratique la logique, HTML, CSS et JavaScript dans un projet concret.
Théorie
Présentation du projet
Vous allez créer une application web complète qui démontre toutes les compétences acquises.
Objectif du projet : Créer un Gestionnaire de Projets Personnels - une application web qui permet de gérer des projets avec leurs tâches.
Spécifications fonctionnelles
Fonctionnalités principales :
-
Gestion de projets
- Créer un nouveau projet (nom, description, date)
- Afficher la liste des projets
- Supprimer un projet
- Marquer un projet comme terminé
-
Gestion de tâches
- Ajouter des tâches à un projet
- Afficher les tâches d'un projet
- Marquer une tâche comme terminée
- Supprimer une tâche
-
Interface utilisateur
- Design moderne et responsive
- Navigation intuitive
- Feedback visuel (messages de succès/erreur)
- Animations subtiles
-
Persistance des données
- Sauvegarder dans le localStorage du navigateur
- Charger les données au démarrage
- Gérer la synchronisation
Structure technique
Fichiers du projet :
mon-projet/
├── index.html # Structure principale
├── style.css # Styles (ou style.scss)
├── script.js # Logique JavaScript
└── README.md # Documentation
Technologies utilisées :
- HTML5 (structure sémantique)
- CSS3 (ou SCSS) (design moderne)
- JavaScript (logique et interactivité)
- Tailwind CSS (optionnel, pour accélérer)
Architecture du code
Organisation JavaScript :
// Structure de données
let projets = [];
// Classes
class Projet {
constructor(nom, description, date) {
this.id = Date.now();
this.nom = nom;
this.description = description;
this.date = date;
this.termine = false;
this.taches = [];
}
}
class Tache {
constructor(titre, description) {
this.id = Date.now();
this.titre = titre;
this.description = description;
this.termine = false;
}
}
// Fonctions de gestion
function creerProjet(nom, description, date) {
// Logique
}
function afficherProjets() {
// Affichage
}
function sauvegarderDonnees() {
// localStorage
}
function chargerDonnees() {
// localStorage
}
// Initialisation
document.addEventListener('DOMContentLoaded', function() {
chargerDonnees();
afficherProjets();
// Écouteurs d'événements
});
Fonctionnalités détaillées
1. Création de projet
- Formulaire avec validation
- Génération d'ID unique
- Ajout à la liste
- Sauvegarde automatique
2. Affichage des projets
- Liste avec cartes
- Informations : nom, description, date, statut
- Compteur de tâches
- Boutons d'action
3. Gestion des tâches
- Ajout de tâches à un projet
- Liste des tâches avec statut
- Checkbox pour marquer terminé
- Suppression
4. Persistance
- Sauvegarde dans localStorage
- Chargement au démarrage
- Synchronisation automatique
Design et UX
Principes de design :
- Clarté : Interface intuitive
- Cohérence : Style uniforme
- Feedback : Messages clairs
- Responsive : Fonctionne sur mobile
Éléments visuels :
- Cartes pour les projets
- Badges pour les statuts
- Icônes pour les actions
- Couleurs cohérentes
Exercice - Planification
Avant de coder, planifiez votre projet :
-
Wireframe
- Dessinez la structure de la page
- Identifiez les zones principales
- Placez les éléments clés
-
Structure de données
- Définissez la structure des projets
- Définissez la structure des tâches
- Planifiez le stockage
-
Fonctionnalités
- Listez toutes les fonctionnalités
- Priorisez-les (essentiel, important, optionnel)
- Estimez la complexité
-
Design
- Choisissez une palette de couleurs
- Définissez la typographie
- Planifiez les composants réutilisables
Guide de développement
Étape 1 : Structure HTML
Créez la structure de base avec :
- Header avec titre
- Zone de création de projet
- Liste des projets
- Modales pour les détails (optionnel)
Étape 2 : Styles CSS
Appliquez un design moderne :
- Layout responsive
- Cartes pour les projets
- Boutons stylisés
- Animations subtiles
Étape 3 : Logique JavaScript
Implémentez les fonctionnalités :
- Classes Projet et Tache
- Fonctions CRUD (Create, Read, Update, Delete)
- Gestion du localStorage
- Événements utilisateur
Étape 4 : Intégration
Assemblez tout :
- Connectez HTML, CSS, JS
- Testez chaque fonctionnalité
- Corrigez les bugs
- Améliorez l'UX
Étape 5 : Améliorations
Ajoutez des fonctionnalités avancées :
- Recherche de projets
- Filtres (tous, actifs, terminés)
- Statistiques (nombre de projets, tâches)
- Export des données (optionnel)
Critères d'évaluation
Fonctionnalité (40%) :
- Toutes les fonctionnalités de base implémentées
- Gestion complète des projets et tâches
- Persistance des données fonctionnelle
Code (30%) :
- Code organisé et structuré
- Utilisation appropriée des concepts appris
- Pas de code dupliqué
- Commentaires pertinents
Design (20%) :
- Interface claire et intuitive
- Design moderne et cohérent
- Responsive sur tous les écrans
Bonus (10%) :
- Fonctionnalités supplémentaires
- Animations et transitions
- Améliorations UX
Ressources et aide
Si vous êtes bloqué :
- Revisitez les modules précédents
- Consultez la documentation MDN (JavaScript, HTML, CSS)
- Testez étape par étape
- Utilisez console.log() pour déboguer
Bonnes pratiques :
- Commencez simple, ajoutez progressivement
- Testez régulièrement
- Sauvegardez votre travail
- Documentez votre code
Quiz de révision
Avant de commencer, vérifiez vos connaissances :
- Comment créer un élément HTML avec JavaScript ?
- Comment sauvegarder des données dans le localStorage ?
- Comment gérer les événements utilisateur ?
- Comment créer des classes en JavaScript ?
- Comment rendre une page responsive ?
Mini défi - Prototype rapide
Avant le projet complet, créez un prototype minimal :
Prototype :
- Un formulaire pour ajouter un projet
- Une liste qui affiche les projets
- Bouton pour supprimer
- Sauvegarde basique
Objectif : Valider l'approche avant de tout développer.
Développement du projet
Phase 1 : Setup (1-2 heures)
- Créez la structure de fichiers
- Configurez votre environnement
- Créez le HTML de base
- Ajoutez les styles de base
Phase 2 : Fonctionnalités de base (3-4 heures)
- Création de projets
- Affichage des projets
- Suppression de projets
- Sauvegarde localStorage
Phase 3 : Gestion des tâches (2-3 heures)
- Ajout de tâches
- Affichage des tâches
- Marquer comme terminé
- Suppression de tâches
Phase 4 : Améliorations (2-3 heures)
- Design et animations
- Validation des formulaires
- Messages de feedback
- Responsive design
Phase 5 : Finalisation (1-2 heures)
- Tests complets
- Correction des bugs
- Optimisations
- Documentation
Présentation finale
Préparez une présentation de votre projet :
À présenter :
- Démonstration : Montrez l'application fonctionnelle
- Architecture : Expliquez la structure du code
- Défis : Parlez des difficultés rencontrées
- Apprentissages : Ce que vous avez appris
Durée : 5-10 minutes
Support :
- Application fonctionnelle
- Code source commenté
- README avec instructions
Validation finale
Votre projet est validé si :
- ✅ Toutes les fonctionnalités de base fonctionnent
- ✅ Le code est organisé et commenté
- ✅ L'interface est claire et responsive
- ✅ Les données persistent correctement
- ✅ Pas d'erreurs majeures
Objectif : Créer une application web complète qui démontre toutes vos compétences acquises pendant la formation.
Félicitations ! Vous avez terminé toute la formation. Vous êtes maintenant capable de créer des applications web complètes de A à Z !