Skip to Content

Projet pluridisciplinaire · Chef d’équipe

Caremate

Plateforme microservices

Janvier → Juin 2024 · Mise en relation parents / AVS

  • Node.js / NestJS
  • TypeScript
  • API REST
  • Next.js
  • RabbitMQ
  • Socket.IO
  • MongoDB
  • Docker
  • Kubernetes (GKE)
  • CI/CD

Le projet

Caremate met en relation des parents d’enfants autistes avec des auxiliaires de vie scolaire qualifiés : recherche géolocalisée et filtrée, messagerie, réservation, notifications. J’ai dirigé l’équipe et conçu l’architecture, dans le cadre d’un projet pluridisciplinaire en école d’ingénieur.

L’architecture

Le domaine est découpé en services autonomes, chacun avec sa base. Un API Gateway centralise l’entrée et l’authentification, un registre de services (Eureka) évite de coder en dur les adresses, et RabbitMQ porte les échanges asynchrones.

Client
Next.js · TypeScript · Tailwind
Docker
Service registry
Eureka
(enregistrement automatique)
API Gateway
routage · authentification par token
ms-users
auth & profils
MongoDB
ms-search
recherche & filtres
MongoDB
ms-communication
messagerie (Socket.IO)
MongoDB
ms-booking
réservations
MongoDB
publie un événement (réservation confirmée…)
RabbitMQ
bus d'événements
s'abonne
ms-notifications
découplé des autres services

L’architecture du projet. RabbitMQ découple complètement les notifications : ms-booking publie un événement sans savoir qui l’écoute.

External Link Lire l’article technique sur Medium

Les services que j’ai conçus et développés

  • Authentification & profils : comptes, rôles (parent / auxiliaire), contrôle d’accès basé sur les rôles.
  • Recherche & filtrage : par localisation, compétences, expérience, disponibilité.
  • Communication : messagerie temps réel (Socket.IO).
  • Réservation : créneaux et gestion des conflits d’agenda.
  • Notifications : abonné aux événements RabbitMQ, découplé du reste.

Le produit

Le déploiement

Chaque push déclenche la construction des images Docker, puis une release qui progresse de dev à prod sur Google Kubernetes Engine, la mise en production restant conditionnée à une approbation manuelle.

Push
GitHub
Build
Cloud Build · image Docker
Registry
Artifact Registry
dev
GKE
staging
GKE
approbation manuelle
prod
GKE

Pipeline Cloud Build vers Cloud Deploy, promotion progressive entre environnements.

Ce que j’en retiens

Avec du recul. Les microservices étaient, honnêtement, plus lourds que ce que le produit exigeait. C’était un projet d’école, et l’objectif était d’affronter ces problèmes pour de vrai.

C’est justement ce qui m’a appris à évaluer le coût d’une architecture avant de la choisir, et à préférer la solution la plus simple qui tienne la charge.

Technologies

  • Node.js
  • NestJS
  • TypeScript
  • Next.js
  • RabbitMQ
  • Socket.IO
  • MongoDB
  • Spring Boot
  • Docker
  • Kubernetes (GKE)
  • Cloud Build
  • CI/CD