Publié le

JIKI – Application de gestion de projets inspirée de JIRA

Auteurs

🚀 JIKI – Outil de gestion de projets inspiré de JIRA

JIKI est une application de gestion de projets inspirée de JIRA, développée dans un objectif avant tout pédagogique.
Ce projet full-stack permet d’explorer en profondeur les concepts modernes du frontend avec Angular et du backend avec Spring Boot.

Le projet est fonctionnel mais reste en évolution continue, avec des améliorations et montées de version prévues.


🎯 Objectifs du projet

  • Apprendre et maîtriser les concepts avancés d’Angular
  • Concevoir une API REST sécurisée avec Spring Boot
  • Implémenter une authentification JWT
  • Reproduire des workflows proches de JIRA (boards, sprints, backlogs)
  • Appliquer les bonnes pratiques de développement et de test

🖥️ Frontend – Application Angular

Le frontend est développé avec Angular 16.x et met l’accent sur la compréhension de l’architecture Angular et de son écosystème.

🔧 Concepts Angular abordés

  • TypeScript basé sur les classes et modules
  • Angular Material 16.x
  • Routage :
    • Routes classiques
    • Routes enfants
    • Modules lazy-loaded
  • Tests unitaires avec Jasmine et Karma
  • Composants personnalisés :
    • @Input et @Output
  • Directives personnalisées
  • Pipes personnalisés
  • Communication composants / directives :
    • Propriétés
    • Événements
  • Communication HTTP :
    • HttpClient
    • Observables RxJS
    • HTTP Interceptors
  • Services locaux et utilitaires
  • StorageService pour la persistance côté client
  • Data binding Angular
  • Formulaires :
    • Template-driven forms
    • Reactive forms
    • Validation des données

🔐 Authentification (Frontend)

  • Authentification basée sur JWT
  • Intercepteur HTTP pour la gestion des tokens
  • Utilisation du local storage pour :
    • Le token JWT
    • Les informations utilisateur

🛠️ Fonctionnalités Frontend

✅ Fonctionnalités principales

  • Authentification
  • Opérations CRUD
  • Création de sprints
  • Gestion des rôles (Admin / Utilisateur)

📋 Board (Sprint courant)

  • Affichage des stories du sprint en cours
  • Filtres :
    • Reporter
    • Assigné
  • Déplacement des stories :
    • Changement de statut
    • Déplacement du backlog vers un sprint via clic droit

📦 Backlog

  • Affichage des backlogs
  • Recherche de stories
  • Filtres :
    • Reporter
    • Assigné
    • Statut
  • Déplacement des stories :
    • Vers un sprint
    • Vers un autre backlog via clic droit

🏃 Sprints

  • Affichage des sprints
  • Recherche de stories
  • Filtres :
    • Reporter
    • Assigné
    • Statut

🧑‍💼 Administration

  • Gestion des :
    • Utilisateurs
    • Équipes
    • Projets
  • Opérations CRUD complètes

🎥 Démonstrations de l’application

  • 📹 Démo de la page d’administration
  • 📹 Démo de la page de gestion des utilisateurs

⚙️ Backend – API REST Spring Boot

Le backend est développé avec Spring Boot 2.5.6 et fournit une API REST sécurisée consommée par le frontend Angular.

🔧 Technologies et concepts utilisés

  • Java 21
  • Spring Boot 2.5.6
  • Spring Security
  • Spring Data JPA
  • Authentification JWT
  • Hazelcast 4.1.5 pour le cache
  • Lombok 1.18.22
  • Jasypt pour le chiffrement des données sensibles
  • Gestion globale des exceptions avec @ControllerAdvice
  • Logging avec Log4j2
  • Tests unitaires :
    • JUnit 5
    • Mockito

🗄️ Base de données

  • MySQL
  • Gestion locale via XAMPP 3.3.0

🔐 Sécurité & services backend

  • Authentification JWT
  • Sécurisation des endpoints REST
  • Autorisations basées sur les rôles
  • Couche service structurée pour l’accès aux données

📌 État du projet & évolutions prévues

JIKI est un projet d’apprentissage actif :

  • Montées de version Angular
  • Améliorations UI / UX
  • Optimisations des performances
  • Ajout de fonctionnalités inspirées de JIRA
  • Augmentation de la couverture de tests

🧠 Conclusion

JIKI est à la fois un terrain d’expérimentation technique et une application de gestion de projets réaliste, pensée pour reproduire des cas d’usage professionnels.

Ce projet illustre ma manière d’aborder :

  • L’architecture logicielle
  • La sécurité
  • L’évolutivité
  • L’apprentissage continu