Flagship Project

RIHLA

Intelligent bus station management platform connecting passengers, drivers, transport companies, and station administrators through a centralized web system.

Rôle

Full-Stack Software Engineer responsible for platform architecture, backend services, frontend workflows, security, real-time features, and distributed systems integration.

  • Java
  • Spring Boot
  • Spring Security
  • JWT
  • JPA
  • Hibernate
  • MySQL
  • Next.js
  • React
  • TypeScript
  • TailwindCSS
  • WebSocket
  • ActiveMQ
  • JMS
  • RMI
  • Resilience4j
  • OpenCV
  • YOLOv8
  • Docker
  • JUnit 5
  • Selenium
  • SonarQube
RIHLA cover screenshot

Contexte

Vue d'ensemble

RIHLA was designed as a large-scale intelligent bus station management platform to digitalize and automate operational activities inside a modern station.

Problème

Traditional bus station operations often rely on disconnected tools and manual processes, creating trip management issues, passenger confusion, platform assignment conflicts, limited visibility, and slow communication between actors.

Objectifs

  • Distributed systems concepts implemented through REST APIs, Java RMI, ActiveMQ/JMS, WebSockets, and Resilience4j.
  • OCR pipeline combines OpenCV preprocessing and YOLOv8 plate detection for bus identification and platform assignment.
  • Security and quality practices include JWT, RBAC, BCrypt, protected APIs, JUnit 5, Selenium, SonarQube, and Postman testing.

Solution

Ce qui a été construit

Designed and built a centralized platform with role-based modules, secure APIs, reservations, payments, driver workflows, company management, station administration, OCR-based bus identification, WebSocket notifications, and distributed communication patterns.

Pourquoi cette approche

The project separates frontend and backend responsibilities while integrating distributed systems concepts: synchronous APIs, asynchronous messaging, real-time notifications, resilience patterns, and OCR automation.

Architecture

Une lecture structurée des blocs techniques et des responsabilités prévues dans le projet.

Frontend

Frontend

Next.js, React, TypeScript, and TailwindCSS frontend separated from the backend, covering passenger, driver, company, and station administration workflows.

Backend

Backend

Spring Boot backend with Spring Security, REST APIs, JPA/Hibernate, modular service architecture, protected APIs, and role-based logic.

Base de données

Base de données

MySQL persistence for users, trips, reservations, companies, buses, routes, tickets, payments, messages, and station operations.

Authentification

Authentification

JWT authentication, RBAC, BCrypt password encryption, protected APIs, and secure session management.

Intégrations

Intégrations

ActiveMQ/JMS messaging, Java RMI, WebSockets, Resilience4j retry/circuit breaker/fallback patterns, Docker, OpenCV, YOLOv8, JUnit 5, Selenium, SonarQube, and Postman.

Défis techniques

  • Coordinating multiple actors with different responsibilities: passengers, drivers, companies, and station administrators.
  • Combining synchronous APIs, asynchronous messaging, real-time notifications, and resilience patterns without losing architectural clarity.
  • Designing an OCR workflow that turns image input into operational decisions such as company detection and platform assignment.
  • Securing role-based access while keeping passenger, driver, company, and admin workflows separated.

Décisions d'ingénierie

Distributed systems concepts implemented through REST APIs, Java RMI, ActiveMQ/JMS, WebSockets, and Resilience4j.

OCR pipeline combines OpenCV preprocessing and YOLOv8 plate detection for bus identification and platform assignment.

Security and quality practices include JWT, RBAC, BCrypt, protected APIs, JUnit 5, Selenium, SonarQube, and Postman testing.

Qualité & tests

La qualité est présentée comme une démarche progressive : tests ciblés, lisibilité, analyse statique et décisions documentées.

Approche de test

Quality practices include layered architecture, SOLID principles, JUnit 5, Selenium, SonarQube, Postman testing, and security controls around authentication and roles.

Maintenabilité et analyse

  • Architecture lisible et responsabilités séparées

Résultats

  • Flagship engineering project demonstrating distributed systems, full-stack development, security, real-time communication, OCR integration, and quality practices.
  • Repository documents the platform scope and technical architecture.
  • No production usage, station deployment, or operational metrics are claimed.

Leçons apprises

Ces apprentissages transforment le projet en preuve de raisonnement technique, pas seulement en liste de fonctionnalités.

  • Transformer "Traditional bus station operations often rely on disconnected tools and manual processes, creating trip management issues, passenger confusion, platform assignment conflicts, limited visibility, and slow communication between actors." en décisions techniques explicites.
  • Présenter les compromis de manière claire pour faciliter la revue par une équipe.
  • Relier l'architecture, les tests et la maintenabilité à un problème concret.