Skip to content

SciSpike/aiexample-ruter

Repository files navigation

Ruter - Public Transport Real-Time Tracking and Ticketing System

Event-sourced, CQRS-based architecture for real-time vehicle tracking and ticketing.

Tech Stack

  • Event Store: InfluxDB
  • Command/Query Services: Python + FastAPI
  • Event Bus: Kafka
  • Real-Time Bus: NATS
  • Graph Database: Neo4j
  • Relational Database: PostgreSQL

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Python 3.10+

Setup

  1. Clone the repository
  2. Copy .env.example to .env and adjust if needed
  3. Start infrastructure:
    docker-compose up -d
  4. Install Python dependencies:
    pip install -r requirements.txt
  5. Run database migrations:
    alembic upgrade head
  6. Start services (each in separate terminal):
    # Command Service
    uvicorn services.command_service.main:app --reload --port 8000
    
    # Query Service
    uvicorn services.query_service.main:app --reload --port 8001
    
    # Vehicle Tracker Service
    uvicorn services.vehicle_tracker_service.main:app --reload --port 8002
    
    # Vehicle Projection Service
    python -m services.vehicle_projection_service.main
    
    # Ticket Service
    uvicorn services.ticket_service.main:app --reload --port 8003
    
    # Ticket Projection Service
    python -m services.ticket_projection_service.main
    
    # Validation Service
    uvicorn services.validation_service.main:app --reload --port 8004
    
    # Neo4j Graph Updater
    python -m services.neo4j_graph_updater.main
    
    # Route Graph Service
    uvicorn services.route_graph_service.main:app --reload --port 8005
    
    # Replay Service
    uvicorn services.replay_service.main:app --reload --port 8006

Running Tests

pytest tests/

Architecture

The system follows Event Sourcing and CQRS patterns:

  • Commands → Command Services → Events → Kafka → InfluxDB (Event Store)
  • Events → Projection Services → Read Models → PostgreSQL
  • Real-Time Updates → NATS → UI Clients

Project Structure

See the implementation plan for detailed structure.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published