Skip to content

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Mise (polyglot tool version manager) - Installation
  • uv (Python package manager) - Installed via mise
  • Buf (Protobuf tooling) - Installed via mise
  • Java 21 (Temurin distribution)
  • Bun (TypeScript runtime)

Local Setup

  1. Clone the repository
git clone https://github.com/CyprienKelma/dronefleet-optimizer.git
cd dronefleet-optimizer
  1. Install tool versions via mise
mise install
  1. Generate shared models from protobuf definitions
mise run //shared/proto:generate
  1. Start infrastructure with Docker Compose
cd infra/local
docker-compose up -d --build

This starts: - Pub/Sub emulator (port 8085) - Firestore emulator (port 8080)

  1. Create Pub/Sub topics
mise run //infra/local:create-topics
  1. Start services (in separate terminals)
# Ingestion API
cd services/ingestion
mise run dev

# State Manager
cd services/state_manager
./gradlew bootRun --args='--spring.profiles.active=local'

# Path Optimizer (manual trigger for testing)
cd services/path_optimizer
mise run start

# Simulator
cd services/simulators
mise run dev
  1. Verify system is running

Check Firestore emulator UI: http://localhost:4000 Check Ingestion API docs: http://localhost:8000/docs