diff --git a/data/testimonials.json b/data/testimonials.json
new file mode 100644
index 0000000..ee39972
--- /dev/null
+++ b/data/testimonials.json
@@ -0,0 +1,37 @@
+{
+ "testimonials": [
+ {
+ "id": 1,
+ "quote": "Excellent travail ! Le site a été livré dans les délais avec une qualité irréprochable. Communication fluide tout au long du projet.",
+ "author_name": "Marie Dupont",
+ "author_role": "Directrice Marketing",
+ "author_company": "Entreprise XYZ",
+ "author_photo": null,
+ "project_slug": "ecommerce-xyz",
+ "date": "2025-06-15",
+ "featured": true
+ },
+ {
+ "id": 2,
+ "quote": "Un développeur rigoureux et créatif. Il a su comprendre nos besoins et proposer des solutions adaptées à notre budget.",
+ "author_name": "Jean Martin",
+ "author_role": "CEO",
+ "author_company": "Startup ABC",
+ "author_photo": null,
+ "project_slug": "app-gestion",
+ "date": "2025-03-20",
+ "featured": true
+ },
+ {
+ "id": 3,
+ "quote": "Travail soigné et professionnel. Je recommande vivement pour tout projet web.",
+ "author_name": "Sophie Leroy",
+ "author_role": "Gérante",
+ "author_company": "Restaurant Le Bon Goût",
+ "author_photo": null,
+ "project_slug": null,
+ "date": "2024-11-10",
+ "featured": false
+ }
+ ]
+}
diff --git a/includes/functions.php b/includes/functions.php
index ae9b913..6c387a3 100644
--- a/includes/functions.php
+++ b/includes/functions.php
@@ -141,3 +141,86 @@ function projectImage(string $filename, string $alt, int $width, int $height, bo
HTML;
}
+
+/**
+ * Compte les projets par technologie
+ * @return array Tableau associatif [technologie => nombre]
+ */
+function getProjectCountByTech(): array
+{
+ $projects = getProjects();
+ $count = [];
+
+ foreach ($projects as $project) {
+ foreach ($project['technologies'] ?? [] as $tech) {
+ $count[$tech] = ($count[$tech] ?? 0) + 1;
+ }
+ }
+
+ return $count;
+}
+
+/**
+ * Récupère les projets utilisant une technologie
+ * @param string $tech Nom de la technologie
+ * @return array Projets filtrés
+ */
+function getProjectsByTech(string $tech): array
+{
+ return array_filter(getProjects(), function($project) use ($tech) {
+ return in_array($tech, $project['technologies'] ?? []);
+ });
+}
+
+/**
+ * Retourne l'icône SVG d'un outil
+ * @param string $icon Identifiant de l'outil
+ * @return string SVG de l'icône
+ */
+function getToolIcon(string $icon): string
+{
+ $icons = [
+ 'github' => '',
+ 'vscode' => '',
+ 'figma' => '',
+ 'notion' => '',
+ 'docker' => '',
+ 'linux' => '',
+ ];
+
+ return $icons[$icon] ?? '';
+}
+
+/**
+ * Récupère tous les témoignages
+ * @return array Liste des témoignages
+ */
+function getTestimonials(): array
+{
+ $data = loadJsonData('testimonials.json');
+ return $data['testimonials'] ?? [];
+}
+
+/**
+ * Récupère les témoignages mis en avant
+ * @return array Témoignages avec featured = true
+ */
+function getFeaturedTestimonials(): array
+{
+ return array_filter(getTestimonials(), fn($t) => ($t['featured'] ?? false) === true);
+}
+
+/**
+ * Récupère le témoignage lié à un projet
+ * @param string $projectSlug Slug du projet
+ * @return array|null Témoignage ou null si non trouvé
+ */
+function getTestimonialByProject(string $projectSlug): ?array
+{
+ foreach (getTestimonials() as $testimonial) {
+ if (($testimonial['project_slug'] ?? '') === $projectSlug) {
+ return $testimonial;
+ }
+ }
+ return null;
+}
diff --git a/pages/about.php b/pages/about.php
index d2dc536..a6253de 100644
--- a/pages/about.php
+++ b/pages/about.php
@@ -1,10 +1,10 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bonjour, je suis Célian
+
+
+
+ Développeur web passionné basé dans le Grand Est, France.
+ Je crée des expériences numériques qui allient performance,
+ accessibilité et design soigné.
+
+
+
+ Je transforme des idées en solutions web concrètes.
+ Mon approche : comprendre les besoins, proposer des solutions pragmatiques,
+ et livrer un travail dont je suis fier.
+
+
+
+
+
+
+
+
-
À propos
+
Mon Parcours
+
+
+
+
+
+
+
+
+ 1
+
+
+
Découverte du code
+
+ Mes premiers pas dans le développement, par curiosité et passion pour la technologie.
+ J'ai commencé par des projets personnels, apprenant HTML, CSS et JavaScript.
+
+
+
+
+
+
+
+ 2
+
+
+
Formation et spécialisation
+
+ Approfondissement des compétences à travers une formation dédiée.
+ Découverte du backend avec PHP, des bases de données et des bonnes pratiques de développement.
+
+
+
+
+
+
+
+ 3
+
+
+
Projets concrets
+
+ Réalisation de projets pour des clients et des projets personnels.
+ Chaque projet est une opportunité d'apprendre et de s'améliorer.
+
+
+
+
+
+
+
+ 4
+
+
+
Aujourd'hui
+
+ Je continue à me former et à explorer de nouvelles technologies.
+ Mon objectif : créer des sites web performants, accessibles et agréables à utiliser.
+
+
+
+
+
+
+
+
+
+
+
+
+
Pourquoi le Développement Web ?
+
+
+
+ Ce qui me passionne dans le développement, c'est la possibilité de
+ créer quelque chose à partir de rien.
+ Une idée, du code, et soudain un site web existe et aide des gens.
+
+
+
+ J'aime particulièrement le challenge de rendre les choses
+ simples pour l'utilisateur,
+ même quand elles sont complexes sous le capot.
+
+
+
+ Mon objectif : livrer un travail dont je suis fier, avec des solutions
+ qui durent dans le temps et qui sont agréables à utiliser.
+
+
+
+
+
+
+
+
+
+
+
En Dehors du Code
- Mon parcours et mes motivations
+ Parce qu'un développeur a aussi une vie en dehors de l'écran.
-
- Page en construction - Epic 4
+
+
+
+
+
+
+
+
Musique
+
+ Passionné par la création musicale et la MAO.
+ La musique développe la créativité et la rigueur, des qualités que j'applique aussi dans le code.
+
+
+
+
+
+
+
+
+
+
+
Jeux vidéo
+
+ Le gaming a éveillé ma curiosité pour l'informatique.
+ Aujourd'hui, c'est aussi une source d'inspiration pour l'UX et le game design.
+
+
+
+
+
+
+
+
+
+
+
Projets Open Source
+
+ Je développe des projets personnels et explore de nouvelles technologies sur mon temps libre.
+