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. +

+ + Voir sur GitHub + + + + +
+
+
+
+
+ + + + +
+
+
+

Ce Qu'ils Disent

+

+ Retours de clients et collaborateurs. +

+
+ +
+ + $testimonial, 'showProjectLink' => true]); ?> + +
+
+
+ + + +
+
+

Envie d'en savoir plus ?

+

+ Découvrez mes réalisations ou contactez-moi directement.

+
diff --git a/pages/home.php b/pages/home.php index 48f951c..e57fb3a 100644 --- a/pages/home.php +++ b/pages/home.php @@ -106,6 +106,36 @@ include_template('navbar', compact('currentPage')); + + + + +
+
+
+

Ce Qu'ils Disent

+

+ Retours de clients et collaborateurs. +

+
+ +
+ + $testimonial, 'showProjectLink' => false]); ?> + +
+ + +
+
+ diff --git a/pages/skills.php b/pages/skills.php index 5ff9afb..a2e69ef 100644 --- a/pages/skills.php +++ b/pages/skills.php @@ -1,12 +1,35 @@ [ + 'icon' => '', + 'techs' => ['HTML', 'CSS', 'JavaScript', 'TypeScript', 'React', 'Vue.js', 'Tailwind CSS', 'Bootstrap', 'SASS'] + ], + 'Backend' => [ + 'icon' => '', + 'techs' => ['PHP', 'Node.js', 'Python', 'Laravel', 'Express', 'Symfony'] + ], + 'Base de données' => [ + 'icon' => '', + 'techs' => ['MySQL', 'PostgreSQL', 'MongoDB', 'SQLite', 'Redis'] + ], + 'DevOps & Outils' => [ + 'icon' => '', + 'techs' => ['Git', 'Docker', 'Linux', 'Nginx', 'Apache', 'CI/CD'] + ], +]; + include_template('header', compact('pageTitle', 'pageDescription')); include_template('navbar', compact('currentPage')); ?> @@ -17,13 +40,174 @@ include_template('navbar', compact('currentPage'));

Compétences

- Technologies et outils maîtrisés + Technologies que j'utilise au quotidien, liées à mes projets réels.

-

- Page en construction - Epic 4 -

+ +
+ $data): ?> +
+
+
+
+ + + +
+

+
+ +
+ + + 0): ?> + + + + + + + + + + + + + + +
+
+
+ +
+ + + + + '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, visible dans le code source' + ], + [ + 'name' => 'Figma', + 'icon' => 'figma', + 'url' => null, + 'description' => 'Maquettes et prototypes de projets' + ], + [ + 'name' => 'Docker', + 'icon' => 'docker', + 'url' => null, + 'description' => 'Conteneurisation des environnements' + ], + [ + 'name' => 'Linux', + 'icon' => 'linux', + 'url' => null, + 'description' => 'Administration serveur et développement' + ], + ]; + + // Autres outils utilisés régulièrement + $otherTools = [ + ['name' => 'Photoshop', 'context' => 'Retouche d\'images et création graphique'], + ['name' => 'Insomnia', 'context' => 'Test d\'APIs REST et GraphQL'], + ['name' => 'DBeaver', 'context' => 'Administration de bases de données'], + ['name' => 'FileZilla', 'context' => 'Transfert FTP/SFTP'], + ['name' => 'Notion', 'context' => 'Organisation et documentation'], + ['name' => 'Trello', 'context' => 'Gestion de projet Kanban'], + ]; + ?> + +
+
+
+

Outils Démontrables

+

+ Outils accompagnés de preuves vérifiables ou visibles dans mes projets. +

+
+ +
+ + + +
+
+ +
+
+

+ + + + +

+

+ +

+
+
+
+ +
+
+
+ +
+
+

+ +

+

+ +

+
+
+
+ + +
+
+
+ + +
+
+
+

Autres Outils

+

+ Outils utilisés régulièrement dans mes projets. +

+
+ +
+ + + + + + + + + +
diff --git a/templates/testimonial.php b/templates/testimonial.php new file mode 100644 index 0000000..fddc52f --- /dev/null +++ b/templates/testimonial.php @@ -0,0 +1,67 @@ + + +
+
+ + + + + + +

+ "" +

+ + +
+ + <?= htmlspecialchars($authorName) ?> + +
+ + + +
+ + +
+

+

+ + + + +

+
+
+ + + + + Voir le projet + + + + + +
+