Skip to content

mohammedkehal/task-manager-devops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 Task Manager – DevOps Project

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.


🏗️ Architecture Technique

Le projet est divisé en 3 couches distinctes, chacune exécutée dans un conteneur Docker.

Architecture du projet

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

🛠️ Technologies utilisées

🔹 Backend

  • Java 17
  • Spring Boot
  • Spring Web
  • Spring Data JPA
  • Spring Actuator

🔹 Frontend

  • HTML5
  • CSS3
  • JavaScript
  • Nginx

🔹 Base de données

  • MySQL 8

🔹 DevOps

  • Git & GitHub
  • Docker
  • Docker Compose
  • GitHub Actions (CI/CD)
  • Maven

🔁 Pipeline CI/CD (GitHub Actions)

Chaque modification du code déclenche automatiquement :

  1. Build & Tests du Backend avec Maven
  2. Création des images Docker (Frontend & Backend)
  3. Vérification de la configuration Docker Compose
  4. 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

☸️ Déploiement Kubernetes (K8s)

Pour un environnement de production clusterisé :

  1. Activer Kubernetes dans Docker Desktop.

  2. Déployer les manifestes :

kubectl apply -f k8s/

  1. Vérifier les pods :

kubectl get pods

🗂 Structure du Projet

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

🔹 Description rapide

  • .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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors