Ce projet est une architecture de microservices permettant la gestion des tâches, des utilisateurs, et des rappels. Il
est composé de trois services distincts, chacun dédié à une responsabilité spécifique, une API passerelle, un frontend,
et d'un fichier docker-compose facilitant leur orchestration.
- Langage : Python (Django)
- Rôle : Gestion des tâches (création, modification, suppression, récupération).
- Port :
8000 - Documentation : Consultez le README de Tasks Service.
- Langage : JavaScript (Node.js)
- Rôle : Gestion des utilisateurs et authentification.
- Port :
3000 - Documentation : Consultez le README de Users Service.
- Langage : PHP (Symfony)
- Rôle : Gestion des rappels automatisés.
- Port :
8001 - Documentation : Consultez le README de Reminders Service.
- Langage : JavaScript (Node.js)
- Rôle : Centralisation des appels et redirection vers les Services.
- Port :
3001 - Documentation : Consultez le README de l'API Gateway.
- Langage : JavaScript (Next.js)
- Rôle : Interface utilisateur.
- Port :
3002 - Documentation : Consultez le README de l'API Gateway.
- Docker : Version récente
- Docker Compose : Version récente
git clone https://github.com/nicolasvauche/microservices-project.git
cd microservices-project
docker-compose up -d --build
- Frontend : http://localhost:3002
/microservices-project
├── docker-compose.yaml
├── api_gateway/
├── frontend/
├── reminders_service/
├── tasks_service/
└── users_service/
-
Chaque service possède ses propres tests. Consultez les README spécifiques pour les instructions.
-
Pour effectuer les tests dans l'environnement Docker entrez d'abord dans le conteneur du service que vous souhaitez tester :
docker-compose exec [NOM_DU_SERVICE] /bash
-
Orchestration avec Docker Compose : Tous les services sont conteneurisés et connectés via un réseau Docker commun.
-
Indépendance des services : Chaque service utilise ses propres outils, bases de données et environnements de développement.
-
Communication interservices : Les services communiquent via des requêtes HTTP en utilisant les noms des conteneurs comme hôtes.