- EL BOUZIYANI Anas
- LAHMADI Ahmed
- ASRI Wassila
- EL ANNASI Nada
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.
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
- Languages & Frameworks: Java (Spring Boot), TypeScript (Angular)
- Databases & Messaging: Cassandra, Kafka
- Deployment & Containerization: Docker, Docker-Compose
- Front-end: Angular
- API Specification: Swagger/OpenAPI
- Authentication & Authorization: JWT, RBAC
- Encryption: Sensitive data encrypted where applicable
- Framework Integration: Spring Security integrated in microservices
Microservices interact via:
- REST APIs for synchronous communication
- Kafka for asynchronous event-driven internal communication and notifications
- See the C4 diagram in the
c4 diagramfolder for a full overview
- 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