Portfolio moderne, dynamique et responsive pour Ibrahima SECK - Cybersecurity Junior Analyst & Développeur Web.
- Design moderne : Interface élégante avec animations fluides
- Responsive : Compatible mobile, tablette et desktop
- Mode sombre/clair : Basculement automatique du thème
- Animations : Transitions et effets visuels avancés
- Performance optimisée : Chargement rapide et SEO-friendly
- Sécurisé : Protection contre les vulnérabilités courantes
- Python 3.11+ : Langage principal
- Flask 2.3.3 : Framework web léger et flexible
- HTML5 : Structure sémantique
- CSS3 : Styles modernes avec variables CSS
- JavaScript ES6+ : Interactions dynamiques
- Font Awesome : Icônes vectorielles
- Google Fonts : Typographie optimisée
- Python 3.11 ou supérieur
- pip (gestionnaire de paquets Python)
-
Cloner le repository
git clone <votre-repo-url> cd Portfolio
-
Créer un environnement virtuel
python -m venv venv
-
Activer l'environnement virtuel
Windows :
venv\Scripts\activate
macOS/Linux :
source venv/bin/activate -
Installer les dépendances
pip install -r requirements.txt
-
Lancer l'application
python app.py
-
Accéder au portfolio Ouvrez votre navigateur et allez sur :
http://localhost:5000
Portfolio/
├── app.py # Application Flask principale
├── requirements.txt # Dépendances Python
├── README.md # Documentation
├── assets/ # Images et ressources
│ └── avatar.jpg # Photo de profil
├── static/ # Fichiers statiques
│ ├── css/
│ │ └── style.css # Styles CSS
│ └── js/
│ └── main.js # JavaScript principal
└── templates/ # Templates HTML
└── index.html # Page principale
Éditez le dictionnaire portfolio_data dans app.py :
portfolio_data = {
"personal_info": {
"name": "Votre Nom",
"title": "Votre Titre",
"email": "votre@email.com",
# ... autres informations
},
# ... autres sections
}Modifiez les variables CSS dans static/css/style.css :
:root {
--primary-color: #votre-couleur;
--secondary-color: #votre-couleur;
--accent-color: #votre-couleur;
}Ajoutez vos projets dans la section projects du portfolio_data :
"projects": [
{
"name": "Nom du projet",
"description": "Description du projet",
"technologies": ["Tech1", "Tech2"],
"image": "assets/project-image.jpg"
}
]-
Désactiver le mode debug
app.config['DEBUG'] = False
-
Utiliser un serveur WSGI
pip install gunicorn gunicorn -w 4 -b 0.0.0.0:5000 app:app
-
Créer un fichier
Procfileweb: gunicorn app:app -
Ajouter gunicorn aux dépendances
gunicorn==21.2.0 -
Déployer sur Heroku
heroku create votre-app-name git push heroku main
- Créer un fichier
vercel.json{ "version": 2, "builds": [ { "src": "app.py", "use": "@vercel/python" } ], "routes": [ { "src": "/(.*)", "dest": "app.py" } ] }
Créez un fichier .env pour les variables sensibles :
SECRET_KEY=votre-clé-secrète
DEBUG=False
DATABASE_URL=votre-url-base-de-données- Changez la
SECRET_KEYpar défaut - Activez HTTPS en production
- Configurez les en-têtes de sécurité
- Limitez les requêtes (rate limiting)
- Optimisez les images
- Activez la compression gzip
- Utilisez un CDN pour les assets statiques
- Mettez en cache les ressources
Le portfolio est optimisé pour :
- Mobile : 320px - 768px
- Tablette : 768px - 1024px
- Desktop : 1024px+
Le portfolio inclut :
- Meta tags optimisés
- Open Graph pour les réseaux sociaux
- Structure HTML sémantique
- URLs propres
- Performance optimisée
- Fork le projet
- Créez une branche feature (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- Email : hibouseck10@gmail.com
- LinkedIn : Ibrahima SECK
- GitHub : Xvlil69
- Flask - Framework web
- Font Awesome - Icônes
- Google Fonts - Typographie
- Unsplash - Images de qualité
⭐ N'hésitez pas à donner une étoile si ce portfolio vous a été utile !