Flagship Project

RIHLA

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

Role

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

Context

Project overview

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

Problem

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.

Objectives

  • 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

What was built

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.

Why this approach

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

A structured view of the technical blocks and responsibilities planned in the project.

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.

Database

Database

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

Authentication

Authentication

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

Integrations

Integrations

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

Technical challenges

  • 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.

Engineering decisions

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.

Quality & testing

Quality is presented as a progressive engineering approach: targeted tests, readability, static analysis, and documented decisions.

Testing approach

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

Maintainability and analysis

  • Readable architecture and separated responsibilities

Results

  • 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.

Lessons learned

These takeaways turn the project into evidence of technical reasoning, not just a feature list.

  • Turn "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." into explicit technical decisions.
  • Present trade-offs clearly so an engineering team can review the reasoning.
  • Connect architecture, testing, and maintainability to a concrete problem.