https://github.com/florent-v/portfolio
This a portfolio in php symfony to build your own portfolio easily with easy admin.
https://github.com/florent-v/portfolio
boilerplate easyadmin easyadminbundle php portfolio portfolio-website symfony template
Last synced: 6 months ago
JSON representation
This a portfolio in php symfony to build your own portfolio easily with easy admin.
- Host: GitHub
- URL: https://github.com/florent-v/portfolio
- Owner: Florent-V
- Created: 2025-06-23T13:10:08.000Z (9 months ago)
- Default Branch: prod
- Last Pushed: 2025-08-15T14:04:51.000Z (7 months ago)
- Last Synced: 2025-08-15T16:19:10.404Z (7 months ago)
- Topics: boilerplate, easyadmin, easyadminbundle, php, portfolio, portfolio-website, symfony, template
- Language: PHP
- Homepage: https://www.f5t.fr
- Size: 1.68 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🎨 Portfolio Template Symfony
Un template de portfolio professionnel moderne et entièrement configurable, basé sur Symfony 7.2 avec une interface d'administration EasyAdmin intuitive.
## ✨ Fonctionnalités
### 🎯 Portfolio Complet
- **Page d'accueil moderne** : Section Hero/About fusionnée avec animations AOS
- **Projets** : Galerie de projets avec technologies, images et descriptions détaillées
- **Articles/Blog** : Section blog intégrée pour partager vos connaissances
- **Parcours professionnel** : Gestion complète de l'éducation et de l'expérience
- **Compétences** : Affichage dynamique des technologies et soft skills
- **Contact** : Formulaire de contact fonctionnel avec envoi d'emails
### ⚙️ Administration Facile
- **Interface EasyAdmin** : Administration complète via `/admin`
- **Gestion des médias** : Upload d'images avec VichUploader
- **Liens sociaux dynamiques** : Configuration des réseaux sociaux
- **Système de rôles** : USER, ADMIN, SUPER_ADMIN
- **CRUD complet** : Interface intuitive pour tous les contenus
### 🎨 Design Moderne
- **Responsive Design** : Compatible mobile, tablette et desktop
- **Tailwind CSS + DaisyUI** : Framework CSS moderne et customisable
- **Animations** : Transitions et animations AOS
- **Thèmes** : Support des thèmes clairs/sombres
- **Iconographie** : Intégration Symfony UX Icons
## 🛠️ Technologies Utilisées
### Backend
- **Symfony 7.2** (PHP 8.3+)
- **Doctrine ORM** avec migrations
- **EasyAdmin 4.24** pour l'administration
- **VichUploader** pour la gestion des fichiers
- **Gedmo Extensions** (Timestamps, Blameable, SoftDelete)
- **Symfony Mailer** pour les emails
### Frontend
- **Webpack Encore** pour l'asset management
- **Vue.js 3** pour les composants interactifs
- **Tailwind CSS + DaisyUI** pour le styling
- **Symfony UX** (Live Components, Turbo, Icons)
- **AOS** pour les animations
### DevOps
- **Docker** avec Docker Compose
- **Makefile** pour l'automatisation
- **ESLint + Prettier** pour la qualité du code
- **PHPStan + PHP-CS-Fixer** pour l'analyse statique
## 🚀 Installation Rapide
### Prérequis
- PHP 8.3 ou supérieur
- Composer
- Node.js & NPM
- Docker & Docker Compose
### 1. Cloner le projet
```bash
git clone mon-portfolio
cd mon-portfolio
```
### 2. Installation automatique
```bash
make setup
```
Cette commande exécute automatiquement :
- Installation des dépendances PHP et NPM
- Configuration de l'environnement
- Création de la base de données
- Exécution des migrations
- Build des assets
### 3. Créer un utilisateur administrateur
```bash
php bin/console security:hash-password
```
Entrez votre mot de passe et copiez le hash généré.
Ensuite, créez manuellement un utilisateur en base avec les rôles `ROLE_ADMIN` et `ROLE_SUPER_ADMIN`.
### 4. Démarrer le serveur
```bash
make start
```
Votre portfolio sera accessible sur `http://localhost:8000` et l'administration sur `http://localhost:8000/admin`.
## 📁 Structure du Projet
### Entités Principales
#### 📄 **AboutMe**
Profil principal du portfolio avec informations personnelles et liens sociaux intégrés.
#### 🚀 **Project**
Gestion des projets avec :
- Technologies utilisées
- Images multiples
- Dates de début/fin
- Descriptions détaillées
- Statut de publication
#### 📝 **Article**
Système de blog intégré avec :
- Éditeur de contenu riche
- Tags et catégories
- Images principales
- Gestion des brouillons
#### 💻 **Technology & SkillCategory**
Système de compétences avec :
- Catégorisation des technologies
- Niveaux de maîtrise (1-5 étoiles)
- Icônes personnalisables
- Images ou icônes Symfony UX
#### 🔗 **Social**
Liens sociaux dynamiques avec :
- Icônes personnalisables
- Ordre d'affichage configurable
- Activation/désactivation
#### 🎓 **Education & Experience**
Parcours professionnel avec :
- Timeline automatique
- Descriptions riches
- Dates flexibles
## 🎨 Personnalisation
### 1. Configuration du Profil
1. Connectez-vous à `/admin`
2. Remplissez la section "À Propos"
3. Ajoutez vos liens sociaux
4. Configurez vos informations de contact
### 2. Ajout de Projets
1. Aller dans "Projets" → "Projets"
2. Créer un nouveau projet
3. Ajouter les technologies utilisées
4. Uploader les images
5. Publier le projet
### 3. Gestion des Compétences
1. Créer des catégories de compétences
2. Ajouter les technologies avec niveaux
3. Configurer les soft skills
4. Utiliser les icônes Symfony UX recommandées
### 4. Personnalisation Visuelle
- Modifier les couleurs dans `tailwind.config.js`
- Personnaliser les thèmes DaisyUI
- Ajuster les animations AOS
## 🔧 Commandes Utiles
```bash
# Développement
make start # Démarrer tous les services
make stop # Arrêter tous les services
make install # Installer les dépendances
make build # Build de production
# Base de données
make db-reset # Réinitialiser la base
make db-migrate # Exécuter les migrations
# Qualité du code
make test # Lancer les tests
make cs-fix # Fixer le style de code
make stan # Analyse statique
```
## 📊 Icônes Recommandées
Pour une cohérence visuelle, utilisez ces icônes Symfony UX :
### Technologies
- `skill-icons:javascript`
- `skill-icons:php-dark`
- `skill-icons:symfony-dark`
- `skill-icons:react-dark`
- `skill-icons:vue-dark`
### Réseaux Sociaux
- `skill-icons:github-dark`
- `skill-icons:linkedin`
- `skill-icons:twitter`
- `logos:youtube-icon`
- `skill-icons:instagram`
### Catégories
- `la:tools` (Outils)
- `hugeicons:developer` (Développement)
- `ph:devices` (Appareils)
## 🌍 Internationalisation
Le projet supporte le français et l'anglais :
- Fichiers de traduction dans `/translations`
- Interface d'administration en français
- Frontend adaptable selon la locale
## 🔒 Sécurité
- Authentification Symfony Security
- Protection CSRF sur les formulaires
- Validation des données d'entrée
- Upload de fichiers sécurisé
- Système de rôles granulaire
## 📈 Performance
- Assets optimisés avec Webpack Encore
- Images redimensionnées automatiquement
- Lazy loading des images
- Cache Symfony activé en production
- Progressive Web App ready
## 🤝 Contribution
Ce template est conçu pour être facilement personnalisable. N'hésitez pas à :
- Forker le projet
- Adapter le design à vos besoins
- Ajouter de nouvelles fonctionnalités
- Partager vos améliorations
## 📄 Licence
Ce projet est sous licence propriétaire. Vous êtes libre de l'utiliser pour créer votre portfolio personnel.
## 🆘 Support
Pour toute question ou problème :
1. Vérifiez la documentation
2. Consultez les logs d'erreur
3. Utilisez les commandes de debug Symfony
---
**Créé avec ❤️ et Symfony**
*Un template portfolio moderne pour développeurs exigeants*