Project Overview
ACME Mobility is the final project for the Microservices Software Architecture course (A.Y. 2025/2026). It implements a short-term urban electric mobility platform for electric cars, scooters, and e-mopeds across stations in Bologna.
Academic Context
Course: Microservices Software Architecture (A.Y. 2025/2026)
Objective: Design and implement a realistic distributed platform integrating BPMN process orchestration, formal choreography projections, SOA modeling (TinySOA), and heterogeneous microservice communication protocols (REST, SOAP, gRPC, Redis Pub/Sub).
Business Domain
ACME Mobility operates a fleet of electric vehicles across 7 designated stations in Bologna. Each station hosts electric cars, e-scooters, and electric mopeds. The system delivers a seamless end-to-end user experience:
- User registration with automatic Jolie bank account creation
- Interactive map with real-time station vehicle availability
- Instant rental via QR Code scan simulation
- Short-term reservation (30-minute window)
- Live ride telemetry streaming (position and battery) over Server-Sent Events (SSE)
- Automated settlement and money unlock upon ride completion
- Damage reporting and automated daily vehicle maintenance cycle
Core Technical Goals
Rental lifecycle executed by Camunda 8 (Zeebe). Backend state drives Angular UI navigation via the canonical `/resume` endpoint.
Complete formal global specification and role projections for all 8 system participants (RS, User, Bank, Station, FM, TS, BMS, LS).
Full SOA modeling using Eclipse Sirius: capabilities, service interfaces, domain entities, and utility components.
Seamless integration of Spring Boot, Jolie, Angular 21, gRPC, SOAP, PostgreSQL, Redis, and Docker Compose.