Portfolio

Début: 15 Jan 2023 Fin: 01 Mar 2023
Ce projet n'est pas un simple site vitrine, mais une application web de portfolio entièrement dynamique et administrable, conçue pour être réutilisable et configurable par n'importe quel développeur. L'objectif était de créer une base solide et professionnelle, où l'ensemble du contenu (projets, compétences, articles, etc.) peut être géré via une interface d'administration puissante, sans avoir à toucher une seule ligne de code.

  • Stack Technique Principale
    • Backend: Symfony 7
    • Frontend: Twig, Stimulus, Vue.js, Tailwind CSS, DaisyUI
    • Administration: EasyAdmin 4
    • Base de données: MySQL (avec Doctrine ORM)
    • Environnement de développement: Docker

  • Fonctionnalités Clés
Le projet s'articule autour de deux axes majeurs : une interface d'administration complète et un front-office moderne et interactif.

1. Back-Office sous EasyAdmin : Le Cerveau du Portfolio
Le cœur du projet réside dans son panneau d'administration, qui a été profondément personnalisé pour offrir une expérience utilisateur optimale et une gestion de contenu exhaustive :
  • Gestion CRUD Complète: Administration des Projets, Articles de blog, Compétences et Technologies.
  • Champs et Actions Personnalisés: Utilisation avancée d'EasyAdmin avec des templates Twig sur mesure pour afficher des aperçus d'icônes (Symfony UX Icons), des niveaux de compétence sous forme d'étoiles, et des actions conditionnelles (par exemple, empêcher la suppression d'une catégorie si des technologies y sont encore liées).
  • Filtres et Recherche Avancés: Des filtres multi-critères et des barres de recherche intelligentes ont été mis en place pour naviguer facilement parmi les données.
  • Gestion des Médias: Intégration de VichUploaderBundle
  •  pour une gestion simple des uploads d'images (photos de projet, images d'articles).

2. Front-Office : Une Vitrine Moderne et Performante
La partie visible du portfolio a été conçue pour être à la fois esthétique et rapide, en mettant l'accent sur l'expérience utilisateur :

  • Design Responsive et Moderne: Grâce à Tailwind CSS et DaisyUI, le design est épuré, s'adapte à tous les écrans et supporte les thèmes (clair/sombre).
  • Composants Interactifs: Utilisation de Vue.js pour des éléments dynamiques comme l'affichage des compétences, offrant une navigation fluide sans rechargement de page.
  • Animations Subtiles: Intégration de la librairie AOS pour des animations au scroll qui rendent la découverte du contenu plus agréable.
  • Performance: Le rendu côté serveur avec Twig assure un chargement initial rapide, essentiel pour le référencement et la rétention des visiteurs.

3. Qualité et DevOps
La qualité du code et la maintenabilité ont été des priorités tout au long du développement :
  • Environnement Conteneurisé: Le projet est entièrement "dockerisé", garantissant une mise en place rapide et une cohérence entre les environnements de développement et de production.
  • Qualité de Code Automatisée: Utilisation d'outils comme 
    • phpcs
    • phpcsfixer
    • phpstan
    • phpmd
    • twigcsfixer
    • eslint
Le tout intégré dans un workflow GrumPHP pour assurer le respect des standards de codage avant chaque commit.
  • Makefile et Scripts:
    •  Des commandes  simplifient les tâches courantes (lancer le projet, vider le cache, exécuter les tests, etc.).

En résumé, ce projet est une démonstration complète de compétences full-stack, alliant la robustesse de Symfony pour le backend, la puissance d'EasyAdmin pour l'administration, et la modernité de Vue.js/Tailwind pour le frontend. Il représente une solution de portfolio à la fois élégante, performante et incroyablement flexible.

Technologies Utilisées

Docker Docker MySQL MySQL Symfony Symfony Tailwind CSS Tailwind CSS Vue.js Vue.js