Skip to content

Repository files navigation

Urban Transport Platform - Microservices Project

Students' Names

  • EL BOUZIYANI Anas
  • LAHMADI Ahmed
  • ASRI Wassila
  • EL ANNASI Nada

Summary

This project implements a microservice-based urban transport platform. It provides services for managing users, tickets, subscriptions, geolocation, notifications, and routes/schedules. Each service is implemented as a Spring Boot microservice, communicating via REST APIs and Kafka for event-driven interactions. Security is handled with JWT and role-based access control (RBAC). Cassandra is used as a scalable, distributed database, accessed via Spring Data JPA.

Directory Structure

Working directory
.
├── api.yaml # Swagger API description
├── c4 diagram # Folder containing C4 diagrams
├── class diagram # Folder containing UML class diagrams
├── Implementation # Folder containing source code
├── README.md
└── use case diagram # Folder containing UML use case diagrams

Tools and Technologies

  • Languages & Frameworks: Java (Spring Boot), TypeScript (Angular)
  • Databases & Messaging: Cassandra, Kafka
  • Deployment & Containerization: Docker, Docker-Compose
  • Front-end: Angular
  • API Specification: Swagger/OpenAPI

Security Mechanisms

  • Authentication & Authorization: JWT, RBAC
  • Encryption: Sensitive data encrypted where applicable
  • Framework Integration: Spring Security integrated in microservices

Service Interactions

Microservices interact via:

  • REST APIs for synchronous communication
  • Kafka for asynchronous event-driven internal communication and notifications
  • See the C4 diagram in the c4 diagram folder for a full overview

Database Design

  • JPA-based data access: Each microservice manages its entities via Spring Data JPA
  • Cassandra is used for persistence, with tables mapped to entities through JPA annotations

About

Nassar Project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages