diff --git a/docs/stories/4.2.page-competences-outils.md b/docs/stories/4.2.page-competences-outils.md index ab5a725..55abc42 100644 --- a/docs/stories/4.2.page-competences-outils.md +++ b/docs/stories/4.2.page-competences-outils.md @@ -2,7 +2,7 @@ ## Status -Ready for Dev +review ## Story @@ -20,23 +20,23 @@ Ready for Dev ## Tasks / Subtasks -- [] **Task 1 : Définir la structure des outils** - - [] Créer un tableau d'outils démontrables avec liens - - [] Créer un tableau d'autres outils avec contexte +- [x] **Task 1 : Définir la structure des outils** + - [x] Créer un tableau d'outils démontrables avec liens + - [x] Créer un tableau d'autres outils avec contexte -- [] **Task 2 : Ajouter la section "Outils démontrables"** (AC: 1, 2) - - [] Titre de section - - [] Grille d'outils avec icône et lien - - [] Effet hover +- [x] **Task 2 : Ajouter la section "Outils démontrables"** (AC: 1, 2) + - [x] Titre de section + - [x] Grille d'outils avec icône et lien + - [x] Effet hover -- [] **Task 3 : Ajouter la section "Autres outils"** (AC: 3) - - [] Titre de section - - [] Liste avec description du contexte - - [] Style différent (moins mis en avant) +- [x] **Task 3 : Ajouter la section "Autres outils"** (AC: 3) + - [x] Titre de section + - [x] Liste avec description du contexte + - [x] Style différent (moins mis en avant) -- [] **Task 4 : Implémenter les liens externes** (AC: 4, 5) - - [] `target="_blank"` et `rel="noopener"` - - [] Icône "lien externe" visuelle +- [x] **Task 4 : Implémenter les liens externes** (AC: 4, 5) + - [x] `target="_blank"` et `rel="noopener"` + - [x] Icône "lien externe" visuelle ## Dev Notes @@ -187,21 +187,24 @@ function getToolIcon(string $icon): string ## Dev Agent Record ### Agent Model Used -Claude Opus 4.5 (claude-opus-4-5-20251101) +GPT-5 Codex ### File List | File | Action | Description | |------|--------|-------------| | `includes/functions.php` | Modified | Ajout fonction getToolIcon() avec SVG | | `pages/skills.php` | Modified | Ajout sections outils démontrables et autres outils | +| `tests/tools.test.php` | Created | Tests sections outils | +| `tests/run.ps1` | Modified | Ajout tests outils | ### Completion Notes -- Fonction `getToolIcon()` avec icônes SVG pour GitHub, VS Code, Figma, Docker, Linux +- Fonction `getToolIcon()` avec icônes SVG pour GitHub, VS Code, Figma, Notion, Docker - Section "Outils Démontrables" avec grille responsive (1→2→3 colonnes) - Liens externes avec `target="_blank"` et `rel="noopener"` - Icône lien externe SVG sur les outils avec URL - Section "Autres Outils" avec badges et tooltips au hover - Design distinct entre les deux sections (cartes vs badges) +- Tests: `powershell -ExecutionPolicy Bypass -File tests/run.ps1` ### Debug Log References Aucun problème rencontré. @@ -211,4 +214,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/includes/functions.php b/includes/functions.php index 7687ba9..095881a 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -134,4 +134,20 @@ function getProjectsByTech(string $tech): array return array_values(array_filter(getProjects(), function ($project) use ($tech) { return in_array($tech, $project['technologies'] ?? [], true); })); +} + +/** + * Icônes d'outils + */ +function getToolIcon(string $icon): string +{ + $icons = [ + 'github' => '', + 'vscode' => '', + 'figma' => '', + 'notion' => '', + 'docker' => '', + ]; + + return $icons[$icon] ?? '🛠'; } \ No newline at end of file diff --git a/pages/skills.php b/pages/skills.php index f58e9ef..ecdbf27 100644 --- a/pages/skills.php +++ b/pages/skills.php @@ -16,6 +16,47 @@ $categories = [ 'DevOps & Outils' => ['Git', 'Docker', 'Linux', 'Nginx', 'Apache', 'CI/CD'], ]; +$demonstrableTools = [ + [ + 'name' => 'Git / GitHub', + 'icon' => 'github', + 'url' => 'https://github.com/skycel', + 'description' => 'Historique de commits et projets publics' + ], + [ + 'name' => 'VS Code', + 'icon' => 'vscode', + 'url' => null, + 'description' => 'Éditeur principal, configuration partagée' + ], + [ + 'name' => 'Figma', + 'icon' => 'figma', + 'url' => 'https://figma.com', + 'description' => 'Maquettes et prototypes' + ], + [ + 'name' => 'Notion', + 'icon' => 'notion', + 'url' => 'https://notion.so', + 'description' => 'Organisation et documentation' + ], + [ + 'name' => 'Docker', + 'icon' => 'docker', + 'url' => 'https://hub.docker.com', + 'description' => 'Images et configurations' + ], +]; + +$otherTools = [ + ['name' => 'Photoshop', 'context' => 'Retouche d\'images et création graphique'], + ['name' => 'Insomnia', 'context' => 'Test d\'APIs REST'], + ['name' => 'DBeaver', 'context' => 'Administration de bases de données'], + ['name' => 'FileZilla', 'context' => 'Transfert FTP/SFTP'], + ['name' => 'Trello', 'context' => 'Gestion de projet Kanban'], +]; + include_template('header', compact('pageTitle', 'pageDescription')); include_template('navbar', compact('currentPage')); ?> @@ -63,6 +104,76 @@ include_template('navbar', compact('currentPage')); + + + + Outils Démontrables + + Ces outils sont accompagnés de preuves vérifiables. + + + + + + + + + + + + + = getToolIcon($tool['icon']) ?> + + + + + + = htmlspecialchars($tool['name'], ENT_QUOTES, 'UTF-8') ?> + + + + + + + + = htmlspecialchars($tool['description'], ENT_QUOTES, 'UTF-8') ?> + + + + + + + + + + + + + + + + Autres Outils + + Outils utilisés régulièrement dans mes projets. + + + + + + + = htmlspecialchars($tool['name'], ENT_QUOTES, 'UTF-8') ?> + + + = htmlspecialchars($tool['context'], ENT_QUOTES, 'UTF-8') ?> + + + + + + \ No newline at end of file diff --git a/tests/run.ps1 b/tests/run.ps1 index 0177662..b9b96a3 100644 --- a/tests/run.ps1 +++ b/tests/run.ps1 @@ -16,4 +16,5 @@ php (Join-Path $here 'project-single.test.php') php (Join-Path $here 'projects-secondary.test.php') php (Join-Path $here 'images.test.php') php (Join-Path $here 'skills.test.php') +php (Join-Path $here 'tools.test.php') 'OK' \ No newline at end of file diff --git a/tests/tools.test.php b/tests/tools.test.php new file mode 100644 index 0000000..83708e1 --- /dev/null +++ b/tests/tools.test.php @@ -0,0 +1,19 @@ +
+ Ces outils sont accompagnés de preuves vérifiables. +
+ = htmlspecialchars($tool['description'], ENT_QUOTES, 'UTF-8') ?> +
+ Outils utilisés régulièrement dans mes projets. +