Ce projet est une application de gestion de tâches (To-Do List) développée avec une architecture microservices et entièrement intégrée dans une démarche DevOps.
Il illustre un projet complet Frontend – Backend – Base de données, containerisé avec Docker et automatisé via un pipeline CI/CD.
Le projet est divisé en 3 couches distinctes, chacune exécutée dans un conteneur Docker.
| Service | Technologie | Port Docker | Description |
|---|---|---|---|
| Frontend | HTML5 / CSS3 / JavaScript (Nginx) | 80 | Interface utilisateur (Dashboard) |
| Backend | Java 17 – Spring Boot | 8080 | API REST exposant les données |
| Database | MySQL 8 | 3306 | Persistance des tâches |
- Java 17
- Spring Boot
- Spring Web
- Spring Data JPA
- Spring Actuator
- HTML5
- CSS3
- JavaScript
- Nginx
- MySQL 8
- Git & GitHub
- Docker
- Docker Compose
- GitHub Actions (CI/CD)
- Maven
Chaque modification du code déclenche automatiquement :
- Build & Tests du Backend avec Maven
- Création des images Docker (Frontend & Backend)
- Vérification de la configuration Docker Compose
- Validation de l’intégrité du projet
🚀 Comment lancer le projet en local ?
✅ Pré-requis
Docker Desktop installé et lancé
Port 3306 libre (arrêter XAMPP / WAMP si nécessaire)
⚡ Installation rapide (Docker Compose)
1️⃣ Cloner le dépôt
git clone https://github.com/mohammedkehal/task-manager-devops.git cd task-manager-devops
2️⃣ Lancer l'environnement
docker-compose up --build
3️⃣ Accéder à l'application
💻 Dashboard Frontend : http://localhost
⚙️ API Backend : http://localhost:8080/api/tasks
🏥 Health Check : http://localhost:8080/actuator/health
Pour un environnement de production clusterisé :
-
Activer Kubernetes dans Docker Desktop.
-
Déployer les manifestes :
kubectl apply -f k8s/
- Vérifier les pods :
kubectl get pods
task-manager-devops/
├── .github/workflows/ # ⚙️ Pipeline CI/CD
├── backend/ # ☕ Code source API (Spring Boot)
│ ├── Dockerfile # 🐳 Multi-stage build
│ └── src/ # 📂 Code source Java
├── frontend/ # 🎨 Code source Interface Web
│ ├── Dockerfile # 🐳 Serveur Nginx
│ └── index.html # 📝 Page principale
├── k8s/ # ☸️ Manifestes Kubernetes
│ ├── mysql.yml # 🐬 Déploiement MySQL
│ ├── backend.yml # ☕ Déploiement backend
│ └── frontend.yml # 🎨 Déploiement frontend
└── docker-compose.yml # 🐙 Orchestrateur local
.github/workflows/: Contient les pipelines CI/CD GitHub Actions.backend/: Code source Spring Boot + Dockerfile pour construire l'image.frontend/: Code source de l'interface web + Dockerfile pour Nginx.k8s/: Manifeste Kubernetes pour déployer MySQL, backend et frontend.docker-compose.yml: Fichier pour exécuter l'application localement avec Docker Compose.
💡 Cette structure facilite la maintenance, le CI/CD, le déploiement en local et sur Kubernetes.
👤 Auteur : Mohammed Kehal – Projet Étudiant Master DevOps
