Contact
Travaillons ensemble
Plateforme Collaborative de Gestion de Projets

Plateforme Collaborative de Gestion de Projets

Application web full-stack de gestion de projets d'équipe avec authentification JWT, contrôle d'accès par rôles, tableaux de bord temps réel et pipeline CI/CD complet - 30 555 lignes de code, 12 user stories, 7 tables en base.

Septembre 2025
~2 semaines
Chef de Projet & Directeur Technique
Java 17Spring Boot 3.4Spring SecurityJWT (jjwt)Spring Data JPAHibernateMapStructLombokAngular 20TypeScript 5.9Angular MaterialRxJSPostgreSQL 15DockerDocker ComposeNginxGitHub ActionsDocker HubJUnit 5MockitoJaCoCoKarmaJasmineSwagger/OpenAPI

Lignes de Code

30,555

Java, TypeScript, HTML, SCSS, SQL

User Stories

12

Toutes implementees

Endpoints API

~55

Endpoints REST (CRUD)

Tables en BDD

7

PostgreSQL avec triggers et index

Présentation

Définition et périmètre du projet

La Plateforme Collaborative de Gestion de Projets est une application web full-stack conçue pour la planification, le suivi et la collaboration d'équipes sur des projets. La plateforme permet de créer des projets, d'inviter des membres avec des rôles differencies, de gérer des tâches avec priorités et statuts, et de suivre l'avancement via des tableaux de bord.

Développée dans le cadre d'une étude de cas pour le Bloc 3 du titre RNCP Niveau 7 "Expert en Ingenierie du Logiciel" delivré par le Groupe ESIEA INTECH, le projet couvre trois compétences clés : Développement (C.10), Automatisation (C.12) et Industrialisation (C.13).

L'application implémenté un système d'authentification complet avec tokens JWT, un modèle de permissions par rôles (Administrateur, Membre, Observateur), des notifications email via MailHog, et un audit trail complet tracant chaque modification sur les tâches grace à des triggers en base de données.

Domaine

Gestion de projet, collaboration d'équipe - comparable à des outils comme Jira, Trello ou Asana, adapte à un contexte professionnel et pedagogique.

Utilisateurs Cibles

Équipes de développement (B2B), chefs de projet et Product Owners pour le suivi d'avancement, observateurs (clients, stakeholders) en lecture seule.

Périmètre Fonctionnel
Authentification JWT (inscription, connexion)
Gestion de Projets (CRUD, statuts)
Invitation de Membres par Email (tokens)
Permissions par Rôles (Admin, Membre, Observateur)
Gestion de Tâches (priorité, statut, assignation)
Tableau de Bord avec Vues par Statut
Notifications Email à l'Assignation
Audit Trail Complet (historique des tâches)
Recherche Globale Multi-Entites
Architecture (3-Tier SPA)

Objectifs, Contexte, Enjeux et Risques

Vision stratégique et contraintes

Objectifs
  • Développer une application fonctionnelle implémentant les 12 user stories du cahier des charges
  • Atteindre une couverture de tests >= 60% en instructions et branches, frontend et backend
  • Dockeriser l'ensemble de l'application (frontend, backend, base de données)
  • Mettre en place un pipeline CI/CD automatisant les tests et le déploiement des docs Docker
  • Documenter le processus de déploiement dans un README complet
Contexte

Le projet a été développé dans le cadre de la certification RNCP Niveau 7, avec des technologies imposees : Angular (frontend), Spring Boot + Java (backend), PostgreSQL ou MySQL (BDD), Docker, Git et CI/CD.

L'approche recommandee par la formation était un développement par fonctionnalité (feature-driven), de bout en bout (front + back). Le projet s'inscrit dans un scénario fictif ou le développeur est employe chez Code Solutions, une entreprise de développement logiciel. Le CEO (John D.) confie le projet PMT, les user stories viennent de Nicolas (Product Owner) et les guidelines techniques de Mariana (Tech Lead).

Enjeux

Validation des Compétences

Validation des compétences C.10, C.12 et C.13 du bloc de certification

Maîtrise Full-Stack

Demonstration de la maîtrise complete, de la conception BDD au déploiement Docker Hub

Qualité Logicielle

Couverture de tests, architecture en couches, documentation API (Swagger)

Risques Identifies

Intégration Angular + Spring Boot

Probabilite moyenne, impact eleve. Mitigation par architecture en couches, DTOs et configuration CORS.

Couverture de Tests Insuffisante

Probabilite moyenne, impact eleve. Mitigation par JaCoCo (backend) et Karma/Jest (frontend) avec seuils configures.

Configuration Docker Complexe

Probabilite faible, impact moyen. Mitigation par Docker Compose avec healthchecks et multi-stage builds.

Les Étapes - Ce que J'ai Fait

Phases chronologiques et contributions personnelles

Chronologie des Phases du Projet
Phase 1
Phase 1 - Conception
12-21 sept. 2025
  • Analyse du cahier des charges et des 12 user stories
  • Conception du schema de base de données (7 tables, triggers, index)
  • Rapports de conformité détaillés par user story
  • Création du diagramme de schema BDD (Draw.io)
Phase 2
Phase 2 - Développement
15-24 sept. 2025
  • Implémentation du backend Spring Boot (81 fichiers Java)
  • Implémentation du frontend Angular (69 fichiers TypeScript)
  • Intégration frontend-backend avec intercepteurs HTTP et CORS
  • Données de seed completes (20 utilisateurs, 28 projets, 120+ tâches)
Phase 3
Phase 3 - Tests
20-24 sept. 2025
  • Tests unitaires backend (JUnit/Mockito) : 20 fichiers de test
  • Tests frontend (Karma/Jasmine) : 11 fichiers spec
  • Tests d'intégration : SpringWebTesting, UserStory, RôleBasedPermissions
  • Configuration couverture JaCoCo (backend) et Karma (frontend)
Phase 4
Phase 4 - Industrialisation
22-24 sept. 2025
  • Dockerfiles multi-stage pour frontend et backend
  • Configuration Docker Compose (dev + prod)
  • Pipeline GitHub Actions (5 jobs)
  • Configuration Docker Hub pour la publication des docs
Entity-Relationship Diagram (7 tables)
Database Objects
CI/CD Pipeline (GitHub Actions - 5 jobs)

Les Acteurs - Les Interactions

Structure d'équipe et dynamique de collaboration

Le projet a été réalisé par Jose DA COSTA en tant que chef de projet et directeur technique, avec l'assistance de Claude Code (IA Anthropic) comme outil de développement.

Le développement a suivi une approche itérative de prompt-driven development avec environ 220 cycles instruction-génération-validation-correction. Jose a fourni les spécifications, les décisions architecturales, les choix UI/UX, et a réalisé l'assurance qualité par des tests manuels dans le navigateur. Claude Code a pris en charge la génération de code, l'écriture des tests, la configuration DevOps et la documentation.

Le fichier `PROMPTS.md` (3 516 lignes, ~220 instructions distinctes) retrace l'historique complet de cette collaboration, couvrant toutes les phases de la conception au déploiement.

Composition de l'Équipe
J

Jose DA COSTA

Chef de Projet & Directeur Technique

Chef de Projet & Directeur Technique - Spécifications, décisions architecturales, design UI/UX, assurance qualité, tests manuels

C

Claude Code (IA)

Development Tool

Outil de Développement - Génération de code, tests, configuration DevOps, documentation, corrections de bugs

N

Nicolas (fictif)

Product Owner

Product Owner - Fournit les 12 user stories (scénario pedagogique)

Fictional scenario
M

Mariana (fictif)

Tech Lead

Tech Lead - Fournit les guidelines techniques (scénario pedagogique)

Fictional scenario
Répartition des Contributions

Les Résultats

Résultats mesurables et valeur livree

Completion des User Stories

Les 12 user stories implementees

Fonctionnalités Bonus (hors cahier des charges)
Mode sombre avec persistance localStorage
Recherche globale multi-entites
Panel d'administration (utilisateurs, parametrès)
Gestion du profil utilisateur
Rapports et vues analytiques
Dialog de confirmation réutilisable
Multiples profils Spring (dev, local, docker, prod)
Métriques de Code par Langage
Backend Architecture
Frontend Architecture
Volumes de Données de Seed
Pour Moi

Ce projet a renforcé mes compétences en développement full-stack sur la stack Java/Angular. C'était ma première expérience combinant Spring Security avec JWT dans un contexte proche de la production, et l'implémentation de triggers BDD pour l'audit trail automatique est un pattern que j'applique désormais dans d'autres projets.

L'approche prompt-driven development avec ~220 iterations m'a appris a formuler des spécifications techniques précises et a valider systématiquement le code généré par IA - un workflow qui a significativement augmente ma productivité sur les projets suivants.

Pour l'Organisation

Le projet démontré la maîtrise complète du cycle de vie logiciel, de la conception de base de données au déploiement Docker Hub. Les données de seed realistes (20 utilisateurs, 28 projets, 120+ tâches couvrant tous les statuts et priorités) permettent une démonstration live convaincante.

La documentation complète (README, 12 rapports de conformité par user story, Swagger auto-généré, Makefile avec 25+ commandes) etablit un standard professionnel pour la qualité des livrables.

Les Lendemains du Projet

Évolution post-livraison et statut actuel

Juste après la livraison, le projet a été soumis comme étude de cas pour le Bloc 3 de la certification RNCP Niveau 7. Le livrable complet inclut le code source, les images Docker sur Docker Hub, 12 rapports de conformité détaillés et une documentation complete.

Statut actuel : Le projet est archive comme étude de cas terminee. Le code source resté disponible sur GitHub, et les images Docker peuvent toujours être recuperees depuis Docker Hub. Le domaine de production (`pmt.codesolutions.com`) n'a jamais été configuré car il faisait partie du scénario fictif.

Impact durable : Plusieurs patterns architecturaux de ce projet ont été reutilisés dans des travaux ultérieurs - notamment l'approche par triggers pour l'audit trail, le flux d'authentification JWT, et la stratégie de build Docker multi-stage. Le pattern Makefile avec 25+ commandes organisees est devenu un modèle pour les projets suivants.

Mon Regard Critique

Rétrospective honnete et leçons apprises

Ce qui a Bien Fonctionne
  • Complétude fonctionnelle : les 12 user stories intégralement implementees, plus 7 fonctionnalités bonus
  • Architecture solide : séparation claire des responsabilites (Controller/Service/Repository), gestion centralisee des exceptions, intercepteurs HTTP
  • Base de données bien conçue : audit trail automatique via triggers, index partiels pour la performance, contraintes CHECK pour l'intégrité
  • Industrialisation complète : Docker Compose dev et prod, multi-stage builds, Makefile complet, pipeline CI/CD
  • Données de seed realistes : 20 utilisateurs, 28 projets avec tous les statuts, 120+ tâches - démonstration convaincante
Points d'Amélioration
  • Historique Git minimaliste : seulement 3 commits, tous le même jour. Un historique plus granulaire avec feature branches et commits atomiques aurait mieux démontré la maîtrise Git.
  • Tests E2E non implementes : le pipeline CI/CD prévoit des tests Playwright, mais ils sont desactives avec des commandes echo de remplacement.
  • Checks de couverture desactives en CI : les seuils JaCoCo et Karma existent en configuration mais sont contournes dans le pipeline.
  • Pas de linting configuré : le script lint du frontend renvoie un placeholder. Pas d'ESLint ni de Prettier.
  • Déploiement production non opérationnel : le job de déploiement est desactive. Aucun hébergement réel configure.
Ce que J'aurais Fait Différemment
  • Adopter une stratégie Git mature avec feature branches, PRs et conventional commits pour mieux démontrer la compétence C.12
  • Appliquer le TDD pour garantir naturellement la couverture et démontrer une approche plus rigoureuse
  • Déployer sur une plateforme gratuite (Railway, Fly.io, Render) pour rendre la compétence C.13 plus convaincante
  • Ajouter du monitoring et de l'observabilité (Sentry ou similaire) pour renforcer l'aspect production-ready
Leçons Durables
1

L'industrialisation est un investissement initial qui rapporte : le temps passe sur Docker, Makefile et CI/CD se rembourse rapidement en fiabilité et reproductibilite.

2

Les triggers SQL pour l'audit trail sont puissants : la journalisation automatique via triggers PostgreSQL est une approche élégante indépendante du code applicatif.

3

L'architecture en couches facilité les tests : la séparation nette Controller/Service/Repository permet de tester chaque couche independamment.

4

Les données de seed realistes sont essentielles : des données de démonstration riches rendent la présentation d'un projet beaucoup plus convaincante.

Parcours associe

Experience professionnelle liee a cette realisation

Competences mobilisees

Competences techniques et humaines appliquees

Galerie d'images

Captures et visuels du projet