diff --git a/assets/img/projects/default-project.svg b/assets/img/projects/default-project.svg new file mode 100644 index 0000000..7235179 --- /dev/null +++ b/assets/img/projects/default-project.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/docs/stories/3.3.page-liste-projets.md b/docs/stories/3.3.page-liste-projets.md index 998143b..c172651 100644 --- a/docs/stories/3.3.page-liste-projets.md +++ b/docs/stories/3.3.page-liste-projets.md @@ -2,7 +2,7 @@ ## Status -Ready for Dev +review ## Story @@ -21,31 +21,31 @@ Ready for Dev ## Tasks / Subtasks -- [] **Task 1 : Créer la page projects.php** (AC: 1) - - [] Créer `pages/projects.php` - - [] Récupérer les projets vedettes avec `getProjectsByCategory('vedette')` - - [] Inclure header, navbar, footer +- [x] **Task 1 : Créer la page projects.php** (AC: 1) + - [x] Créer `pages/projects.php` + - [x] Récupérer les projets vedettes avec `getProjectsByCategory('vedette')` + - [x] Inclure header, navbar, footer -- [] **Task 2 : Créer le template project-card.php** (AC: 2, 6) - - [] Créer `templates/project-card.php` - - [] Afficher le thumbnail avec lazy loading - - [] Afficher le titre - - [] Afficher les badges technologies (max 4) - - [] Rendre le composant réutilisable +- [x] **Task 2 : Créer le template project-card.php** (AC: 2, 6) + - [x] Créer `templates/project-card.php` + - [x] Afficher le thumbnail avec lazy loading + - [x] Afficher le titre + - [x] Afficher les badges technologies (max 4) + - [x] Rendre le composant réutilisable -- [] **Task 3 : Implémenter la grille responsive** (AC: 4) - - [] 1 colonne sur mobile - - [] 2 colonnes sur tablette (sm:) - - [] 3 colonnes sur desktop (lg:) +- [x] **Task 3 : Implémenter la grille responsive** (AC: 4) + - [x] 1 colonne sur mobile + - [x] 2 colonnes sur tablette (sm:) + - [x] 3 colonnes sur desktop (lg:) -- [] **Task 4 : Ajouter les interactions** (AC: 3, 5) - - [] Carte entière cliquable (lien vers /projet/{slug}) - - [] Effet hover avec card-interactive - - [] Transition smooth +- [x] **Task 4 : Ajouter les interactions** (AC: 3, 5) + - [x] Carte entière cliquable (lien vers /projet/{slug}) + - [x] Effet hover avec card-interactive + - [x] Transition smooth -- [] **Task 5 : Gérer les cas limites** - - [] Aucun projet → message "Projets à venir" - - [] Image manquante → placeholder (onerror fallback) +- [x] **Task 5 : Gérer les cas limites** + - [x] Aucun projet → message "Projets à venir" + - [x] Image manquante → placeholder (onerror fallback) ## Dev Notes @@ -184,7 +184,7 @@ $maxTechs = 4; ## Dev Agent Record ### Agent Model Used -Claude Opus 4.5 (claude-opus-4-5-20251101) +GPT-5 Codex ### File List | File | Action | Description | @@ -192,6 +192,8 @@ Claude Opus 4.5 (claude-opus-4-5-20251101) | `pages/projects.php` | Modified | Page liste projets vedettes | | `templates/project-card.php` | Created | Template carte projet réutilisable | | `assets/img/projects/default-project.svg` | Created | Placeholder image par défaut | +| `tests/projects-list.test.php` | Created | Tests page projets | +| `tests/run.ps1` | Modified | Ajout tests projets | ### Completion Notes - Grille responsive: 1 col (mobile) → 2 cols (sm) → 3 cols (lg) @@ -199,7 +201,7 @@ Claude Opus 4.5 (claude-opus-4-5-20251101) - Lazy loading natif sur les images - Fallback onerror pour images manquantes - Message "Projets à venir" si aucun projet -- 2 projets vedettes affichés correctement +- Tests: `powershell -ExecutionPolicy Bypass -File tests/run.ps1` ### Debug Log References Aucun problème rencontré. @@ -209,4 +211,4 @@ Aucun problème rencontré. | Date | Version | Description | Author | |------|---------|-------------|--------| | 2026-01-22 | 0.1 | Création initiale | Sarah (PO) | -| 2026-01-23 | 1.0 | Implémentation complète | James (Dev) | +| 2026-02-04 | 1.0 | Implémentation complète | Amelia | diff --git a/pages/projects.php b/pages/projects.php index 9fc2183..ff02ca4 100644 --- a/pages/projects.php +++ b/pages/projects.php @@ -1,16 +1,37 @@  -
-
-

Projets

-

La liste des projets arrive bientôt.

-
+
+
+
+
+

Mes Projets

+

+ Découvrez les réalisations qui illustrent mon travail et mes compétences. +

+
+ + +
+ + $project]); ?> + +
+ +

+ Projets à venir... +

+ +
+
\ No newline at end of file diff --git a/templates/project-card.php b/templates/project-card.php new file mode 100644 index 0000000..e343c2d --- /dev/null +++ b/templates/project-card.php @@ -0,0 +1,50 @@ + + +
+ +
+ + + Aperçu du projet <?= htmlspecialchars($title, ENT_QUOTES, 'UTF-8') ?> + +
+ +
+

+ +

+ +
+ + + + + $maxTechs): ?> + + + +
+
+
+
\ No newline at end of file diff --git a/tests/projects-list.test.php b/tests/projects-list.test.php new file mode 100644 index 0000000..9ed5e78 --- /dev/null +++ b/tests/projects-list.test.php @@ -0,0 +1,23 @@ +