| frontend | Loading last commit info... | |
| server | ||
| .dockerignore | ||
| Dockerfile | ||
| README.md | ||
| demo-data.sql | ||
| docker-compose.yml |
Portfolio
Portfolio
Ce projet est une application web moderne permettant de présenter et gérer un portfolio de projets. Il se compose de deux parties principales :
- Backend : API REST développée avec Spring Boot, permettant d'ajouter, mettre à jour, supprimer et lister les projets. La gestion des accès est sécurisée par une authentification par mot de passe. Les données sont stockées dans une base PostgreSQL.
- Frontend : Interface utilisateur réalisée avec Angular, offrant une expérience moderne et responsive pour consulter et administrer les projets.
Fonctionnalités principales
- Affichage de la liste des projets du portfolio
- Ajout, modification et suppression de projets (accès protégé)
- Authentification pour l'administration (mode visiteur/admin)
- Association de chaque projet à des éléments techniques (technologies, outils, compétences) avec un niveau de maîtrise de 1 à 5
- Visualisation détaillée d'un projet (titre, description, date, éléments techniques, etc.)
- Gestion des liens entre compétences, projets et expériences professionnelles (affichage croisé, filtres dynamiques)
- Moteur de recherche avancé (par mots-clés, technologies, période, entreprise)
- Système de tags ou catégories pour les projets et expériences
- Export du CV/portfolio en PDF ou partage via un lien public (avec sélection des expériences, projets, compétences et informations personnelles à inclure) #TODO
- Ajout de recommandations ou témoignages (clients, collègues) avec validation par l'admin
- Timeline interactive pour visualiser le parcours professionnel et les projets #TODO
- Interface multilingue (français/anglais) #TODO: UI pour les autres langues
Structure d'un projet
Un projet contient :
- Un titre
- Une description
- Une date de réalisation (début, fin, durée estimée de temps effectif)
- Une liste d'éléments techniques (ex : Java, Angular, Docker, etc.)
- Chaque élément technique est associé à un niveau de maîtrise (1 à 5)
- (Optionnel) Un lien vers le projet ou une démo
- (Optionnel) Des images ou captures d'écran
Éléments classiques d'un CV
L'application permet également d'afficher et de gérer les informations classiques d'un CV :
-
Expériences professionnelles :
- Intitulé du poste
- Entreprise/organisation
- Dates de début et de fin
- Description des missions et réalisations
- compétences et elements techniques mis en oeuvre
-
Compétences :
- Liste de compétences techniques et transversales
- Niveau de maîtrise (1 à 5)
- Les compétences peuvent être organisées en categories et il est possible d'afficher les projets/experiences pro en lien
-
Diplômes, études et certifications :
- Intitulé du diplôme ou certification
- Établissement
- Année d'obtention
- (Optionnel) Description ou détails complémentaires
Ces informations enrichissent le portfolio et permettent de présenter un profil complet, à la fois professionnel et technique.
Technologies utilisées
- Backend : Spring Boot, PostgreSQL, Spring Security
- Frontend : Angular, SCSS
- Déploiement : Docker, docker-compose
Structure du projet
frontend/: Application Angularserver/: API Spring Bootdocker-compose.yml: Orchestration des services
Installation rapide
- Cloner le dépôt
- Configurer les variables d'environnement (base de données, mots de passe)
- Lancer les services avec Docker Compose :
docker compose up --build
- Accéder à l'application via
http://localhost:8181(le frontend est servi par le backend Spring Boot, l'API reste disponible sous/api)
Démo data
Après avoir lancer le serveur vous pouvez importer les données de démo avec la commande :
docker compose exec -T db psql -U portfolio -d portfolio < demo-data.sql
Changer le mot de passe admin
Via l'interface admin
- Se connecter à l'interface admin (
/admin) - Cliquer sur Password dans la barre latérale
- Renseigner l'ancien mot de passe, le nouveau, et confirmer
- Après validation, vous serez automatiquement déconnecté et redirigé vers la page de login
Via une commande (maintenance / mot de passe perdu)
Si vous n'avez plus accès au compte admin, vous pouvez réinitialiser le mot de passe en lançant le serveur avec la variable d'environnement APP_ADMIN_RESET_PASSWORD :
# Docker Compose
docker compose run --rm -e APP_ADMIN_RESET_PASSWORD='nouveaumotdepasse' server
# Sans Docker
APP_ADMIN_RESET_PASSWORD='nouveaumotdepasse' java -jar app.jar
Le serveur mettra à jour le mot de passe, invalidera tous les JWT existants, puis s'arrêtera automatiquement. Relancez ensuite normalement.