Ce projet est un portfolio dynamique permettant d’héberger et afficher des projets web (HTML/CSS/JS) directement via des iframes.
Il dispose d’un système d’administration sécurisé permettant de gérer facilement les projets (ajout / suppression).
- Frontend : React.js
- Backend : Node.js + Express.js
- Base de données : MySQL 2
- Auth : Session
- Rendering projets : iframe
- Affiche les 3 meilleurs projets
- Mise en avant visuelle (cards)
- Accès rapide aux projets
- Liste complète de tous les projets
- Affichage sous forme de grille
- Triéé par data de création
- Affichage du projet dans une iframe
- Informations :
- Nom
- Description
- Technologies
- Bouton retour
Accès restreint (admin uniquement)
-
➕ Ajouter un projet :
- Nom
- Description
- Fichiers (.ZIP)
- Thumbnail (optionnel)
-
🗑️ Supprimer un projet
-
📊 Voir la liste des projets existants
- Presentation
- Snake Git Contributions
- Easter eggs custom
- Système de login sécurisé
- Protection des routes admin (
/panel) - Gestion des sessions
/client → Frontend React
/src
/assets → Images / Videos
/components → Composents reutilisables
/pages → Pages du site
/utils → Fichiers utiles
/api → Backend Express
/middleware → Auth
/projects → Fichiers des projets
/utils → Fichiers utiles
Voir TREE.md
git clone https://github.com/FireDroX/dynamic-portfolio.git
cd dynamic-portfolio./build.sh
# Ce fichier est fait pour MON utilisation (a modifier)npm install
npm run startcd client
npm install
npm run startCopier le fichier .env.example vers .env, puis remplacer les valeurs
d'exemple :
NODE_ENV=development
PORT=3000
SITE_URL=http://localhost:3000
SITE_HOSTNAMES=localhost,127.0.0.1
PANEL_PASSWORD=change_me
SESSION_SECRET=change_me_with_a_long_random_value
SQL_SERVER=localhost
SQL_PORT=3306
SQL_USER=user
SQL_PASSWORD=password
SQL_DBNAME=portfolioSITE_URL sert de repli pour les requêtes dont le domaine n’est pas reconnu.
Pour les domaines listés dans SITE_HOSTNAMES, les canonicales, images Open
Graph, fichiers robots.txt et sitemaps utilisent automatiquement le domaine
depuis lequel le site est consulté.
| Champ | Type | Description |
|---|---|---|
| id | INTEGER | ID unique |
| name | TEXT | Nom du projet |
| descriptionFr | TEXT | Description française |
| descriptionEn | TEXT | Description anglaise |
| fileName | TEXT | Nom du ZIP |
| image | TEXT | Image Base64 |
| createdAt | DATE | Date |
GET /api/projectsGET /api/projects/:projectPOST /api/panel/add(auth)POST /api/panel/modify(auth)DELETE /api/panel/delete(auth)
POST /api/panel/loginPOST /api/panel/login/logoutPOST /api/panel/login/me
Créer une plateforme simple pour :
- exposer ses projets
- tester des interfaces directement
- gérer facilement un portfolio évolutif
- Fork
- Feature branch
- Pull request
Projet développé par FireDroX.
Ce projet est distribué sous licence MIT. Voir le fichier LICENSE pour les conditions complètes et la mention de copyright.