---
title: "Collaborative Project Management Platform"
description: "Full-stack web application for team project management with JWT authentication, role-based access, real-time dashboards, and complete CI/CD pipeline - 30,555 lines of code, 12 user stories, 7 database tables."
locale: "en"
canonical: "https://portfolio.josedacosta.info/en/achievements/plateforme-gestion-projets-collaboratif"
source: "https://portfolio.josedacosta.info/en/achievements/plateforme-gestion-projets-collaboratif.md"
html_source: "https://portfolio.josedacosta.info/en/achievements/plateforme-gestion-projets-collaboratif"
author: "José DA COSTA"
date: "2025"
type: "achievement"
slug: "plateforme-gestion-projets-collaboratif"
tags: ["Java 17", "Spring Boot 3.4", "Angular 20", "TypeScript 5.9", "PostgreSQL 15", "Docker", "GitHub Actions", "JWT", "Spring Security", "Swagger/OpenAPI"]
generated_at: "2026-04-23T15:47:49.167Z"
---

# Collaborative Project Management Platform

Full-stack web application for team project management with JWT authentication, role-based access, real-time dashboards, and complete CI/CD pipeline - 30,555 lines of code, 12 user stories, 7 database tables.

**Date:** September 2025  
**Duration:** ~2 weeks  
**Role:** Project Lead & Technical Director  
**Technologies:** Java 17, Spring Boot 3.4, Angular 20, TypeScript 5.9, PostgreSQL 15, Docker, GitHub Actions, JWT, Spring Security, Swagger/OpenAPI

### Key Metrics

- Lines of Code: **-** - Java, TypeScript, HTML, SCSS, SQL
- User Stories: **-** - All implemented
- API Endpoints: **-** - REST endpoints (CRUD)
- Database Tables: **-** - PostgreSQL with triggers & indexes

## Presentation

_Project definition and scope_

### Domain

Project management, team collaboration - comparable to tools like Jira, Trello, or Asana, adapted to a professional and educational context.

### Target Users

Development teams (B2B), project managers and Product Owners for progress tracking, observers (clients, stakeholders) in read-only mode.

**Content:** The **Collaborative Project Management Platform** is a full-stack web application designed for team-based project planning, tracking, and collaboration. The platform allows teams to create projects, invite members with differentiated roles, manage tasks with priorities and statuses, and monitor progress through dashboards.

Built as a **case study for Block 3** of the RNCP Level 7 title "Expert in Software Engineering" delivered by the **ESIEA INTECH Group**, the project covers three key competencies: Development (C.10), Automation (C.12), and Industrialization (C.13).

The application implements a **complete authentication system** with JWT tokens, a **role-based permission model** (Administrator, Member, Observer), **email notifications** via MailHog, and a **full audit trail** tracking every modification made to tasks through database triggers.

**Domain:** Domain

**Target Users:** Target Users

**Functional Scope:** Functional Scope

**Scope Auth:** JWT Authentication (registration, login)

**Scope Projects:** Project Management (CRUD, statuses)

**Scope Members:** Member Invitation by Email (tokens)

**Scope Roles:** Role-Based Permissions (Admin, Member, Observer)

**Scope Tasks:** Task Management (priority, status, assignment)

**Scope Dashboard:** Dashboard with Status Views

**Scope Notifications:** Email Notifications on Assignment

**Scope Audit:** Complete Audit Trail (task history)

**Scope Search:** Global Multi-Entity Search

## Objectives, Context, Stakes & Risks

_Strategic vision and constraints_

### Context

The project was developed within the RNCP Level 7 certification framework, with **imposed technologies**: Angular (frontend), Spring Boot + Java (backend), PostgreSQL or MySQL (database), Docker, Git, and CI/CD.

The approach recommended by the course was **feature-driven development**, building each feature end-to-end (front + back). The project follows a fictional scenario where the developer works at **Code Solutions**, a software development company. The CEO (John D.) assigns the PMT project, with user stories provided by Nicolas (Product Owner) and technical guidelines by Mariana (Tech Lead).

### Stake Validation

Validation of competencies C.10, C.12, and C.13 of the certification block

### Stake Full Stack

Demonstration of complete mastery from database design to Docker Hub deployment

### Stake Quality

Test coverage, layered architecture, API documentation (Swagger)

- Develop a functional application implementing all 12 user stories defined in the specification
- Achieve test coverage >= 60% in statements and branches, both frontend and backend
- Dockerize the complete application (frontend, backend, database)
- Set up a CI/CD pipeline automating tests and Docker image deployment to Docker Hub
- Document the deployment process in a complete README

**Objectives:** Objectives

**Context:** Context

**Stakes:** Business Stakes

**Stake Validation:** Competency Validation

**Stake Full Stack:** Full-Stack Mastery

**Stake Quality:** Software Quality

**Risks:** Identified Risks

**Risk1 Title:** Angular + Spring Boot Integration

**Risk1 Desc:** Medium probability, high impact. Mitigated by layered architecture, DTOs, and proper CORS configuration.

**Risk2 Title:** Insufficient Test Coverage

**Risk2 Desc:** Medium probability, high impact. Mitigated by JaCoCo (backend) and Karma/Jest (frontend) with configured thresholds.

**Risk3 Title:** Complex Docker Configuration

**Risk3 Desc:** Low probability, medium impact. Mitigated by Docker Compose with healthchecks and multi-stage builds.

## The Steps - What I Did

_Chronological phases and personal contributions_

- Phase 1 - Design
- Phase 2 - Development
- Phase 3 - Testing
- Phase 4 - Industrialization

**Phase1 Period:** Sept 12-21, 2025

**Phase2 Period:** Sept 15-24, 2025

**Phase3 Period:** Sept 20-24, 2025

**Phase4 Period:** Sept 22-24, 2025

## The Actors - Interactions

_Team structure and collaboration dynamics_

### Role Jose

Project Lead & Technical Director - Specifications, architectural decisions, UI/UX design, quality assurance, manual testing

### Role A I

Development Tool - Code generation, tests, DevOps configuration, documentation, bug fixes

### Role P O

Product Owner - Provides the 12 user stories (course scenario)

### Role T L

Tech Lead - Provides technical guidelines (course scenario)

**Content:** The project was carried out by **José DA COSTA** as project lead and technical director, with the assistance of **Claude Code** (Anthropic AI) as a development tool.

The development followed an iterative **prompt-driven development** approach with approximately 220 instruction-generation-validation-correction cycles. José provided the specifications, architectural decisions, UI/UX design choices, and performed quality assurance through manual testing in the browser. Claude Code handled code generation, test writing, DevOps configuration, and documentation.

The file `PROMPTS.md` (3,516 lines, ~220 distinct instructions) traces the complete history of this collaboration, covering all phases from design to deployment.

**Team:** Team Composition

**Role Jose:** José DA COSTA

**Role A I:** Claude Code (AI)

**Role P O:** Nicolas (fictional)

**Role T L:** Mariana (fictional)

## The Results

_Measurable outcomes and delivered value_

### For Me

This project reinforced my full-stack development skills across the Java/Angular stack. It was my first time combining Spring Security with JWT in a production-like setup, and implementing database triggers for automatic audit trails was a particularly valuable pattern I now apply in other projects.

The prompt-driven development approach with ~220 iterations taught me to formulate precise technical specifications and validate AI-generated code systematically - a workflow that significantly increased my productivity on subsequent projects.

### For Company

The project demonstrates complete mastery of the software lifecycle, from database design to Docker Hub deployment. The realistic seed data (20 users, 28 projects, 120+ tasks covering all statuses and priorities) provides a convincing live demonstration.

The complete documentation (README, 12 conformity reports per user story, auto-generated Swagger, Makefile with 25+ commands) sets a professional standard for deliverable quality.

- Dark mode with localStorage persistence
- Global multi-entity search
- Administration panel (users, settings)
- User profile management
- Reports and analytical views
- Reusable confirmation dialog
- Multiple Spring profiles (dev, local, docker, prod)

**All Completed:** All 12 user stories implemented

**For Me:** For Me

**For Company:** For the Organization

## The Aftermath

_Post-delivery evolution and current status_

**Content:** **Immediately after delivery**, the project was submitted as a case study for Block 3 of the RNCP Level 7 certification. The complete deliverable includes source code, Docker images on Docker Hub, 12 detailed conformity reports, and comprehensive documentation.

**Current status**: The project is archived as a completed case study. The source code remains available on GitHub, and Docker images can still be pulled from Docker Hub. The production domain (`pmt.codesolutions.com`) was never configured as it was part of the fictional scenario.

**Lasting impact**: Several architectural patterns from this project were reused in later work - particularly the database trigger approach for audit trails, the JWT authentication flow, and the Docker multi-stage build strategy. The Makefile pattern with 25+ organized commands became a template for subsequent projects.

## Critical Reflection

_Honest retrospective and lessons learned_

- Functional completeness: all 12 user stories fully implemented, plus 7 bonus features
- Solid architecture: clear separation of concerns (Controller/Service/Repository), centralized exception handling, HTTP interceptors
- Well-designed database: automatic audit trail via triggers, partial indexes for performance, CHECK constraints for data integrity
- Complete industrialization: Docker Compose for dev and prod, multi-stage builds, comprehensive Makefile, CI/CD pipeline
- Realistic seed data: 20 users, 28 projects with all statuses, 120+ tasks with varied priorities - enabling a convincing demonstration
- Minimal Git history: only 3 commits, all on the same day. A more granular history with feature branches and atomic commits would better demonstrate Git mastery.
- E2E tests not implemented: the CI/CD pipeline includes Playwright E2E tests, but they are disabled with placeholder echo commands.
- Coverage checks disabled in CI: JaCoCo and Karma coverage thresholds exist in config but are bypassed in the pipeline.
- No linting configured: the frontend lint script returns a placeholder. No ESLint or Prettier setup.
- Production deployment not operational: the deploy job is disabled. No real hosting was configured.
- Adopt a mature Git strategy with feature branches, PRs, and conventional commits to better demonstrate C.12 competency
- Apply TDD (Test-Driven Development) to naturally guarantee coverage and demonstrate a more rigorous approach
- Deploy on a free platform (Railway, Fly.io, Render) to make C.13 more convincing with a live demo
- Add monitoring and observability (Sentry or similar) to reinforce the production-ready aspect
- Industrialization is an upfront investment that pays off: time spent on Docker, Makefile, and CI/CD is quickly recovered in reliability and reproducibility.
- SQL triggers for audit trails are powerful: automatic change logging via PostgreSQL triggers is an elegant approach independent of application code.
- Layered architecture facilitates testing: clean Controller/Service/Repository separation allows independent testing of each layer with mocks.
- Realistic seed data is essential: rich and varied demo data makes a project presentation significantly more convincing.
