Enable build support by adding .onedev-buildspec.yml
frontend Loading last commit info...
server
.dockerignore
Dockerfile
README.md
demo-data.sql
docker-compose.yml
README.md

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 Angular
  • server/ : API Spring Boot
  • docker-compose.yml : Orchestration des services

Installation rapide

  1. Cloner le dépôt
  2. Configurer les variables d'environnement (base de données, mots de passe)
  3. Lancer les services avec Docker Compose :
docker compose up --build
  1. 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

  1. Se connecter à l'interface admin (/admin)
  2. Cliquer sur Password dans la barre latérale
  3. Renseigner l'ancien mot de passe, le nouveau, et confirmer
  4. 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.

Please wait...
Page is in error, reload to recover