My 4th Year Project at University: Advanced Microservices Architecture

I thoroughly enjoyed working on this project, where I had the opportunity to acquire a wealth of knowledge. Throughout the process, I engaged in extensive research and put into practice the valuable insights I gained from our dedicated instructor and supervisor, Abdelhamid Malki, over the course of two semesters, encompassing Advanced Databases and Microservices modules.

Supervisor: Abdelhamid Malki

Team:

  • Sidali Assoul - Backend Developer, Project Manager
  • Manaa Anouar - UI/UX Designer
  • Ilyes Alili - Frontend Developer
  • Beloufa Soufiane - Backend Developer
  • University: ECOLE SUPERIEURE EN INFORMATIQUE 08 MAI 1945, SIDI BEL ABBES

Microservices Architecture

  1. Auth Microservice: Acts as an identity provider, handling authorization and authentication.

  2. API Gateway Microservice: Manages request routing, client-side load balancing, and calls the "auth microservice." It injects necessary headers after validating the JWT payload.

  3. Eureka Server Microservice: Functions as a discovery service, allowing microservice instances to self-register.

  4. Worker Microservice: Manages data within the worker bounded context.

  5. Company Microservice: Manages data within the company bounded context.

  6. Interaction Microservice: Collects statistics about company interactions with workers, including click events, impressions, and views.

  7. Storage Microservice: Stores media in storage buckets.

  8. Recommendation Microservice: This FastAPI microservice utilizes data collected by the "interaction microservice" to generate recommendations for clients (companies) using a matrix factorization strategy (items: workers, users: companies).

  9. Payment Microservice: Manages payment-related functionalities within the company payments bounded context.

  10. Hiring Microservice: Manages the workers hiring process.

  11. Chat Microservice: Manages real-time messages between companies and their hired workers.

Kafka Integration Message Broker: Acts as a message broker, facilitating asynchronous communication between microservices and managing transactions between them.

My 4th Year Project at University: Advanced Microservices Architecture