// URBAN MISSION PLATFORM · v1.0.0

HEIST.EXE

Transform any neighbourhood into a
timed spy mission.

DAD CREATES  ·  SON PLAYS  ·  TÉTREAULTVILLE DISTRICT, MONTRÉAL

# One command. Full stack.

$ docker-compose up --build -d

✓ backend healthy

✓ frontend built — PWA ready

_

FastAPI 0.115 React 18 PWA Docker Ready 22/22 tests ✓ MIT License Zero Cloud

// WHY HEIST.EXE

The mission briefing

📡

Sovereign Stack

Zero cloud dependencies. OpenStreetMap for maps, SQLite for data, Docker for deployment. Runs completely offline on your hardware.

📱

Instant PWA

Players install the app directly from a URL — no App Store, no account. Works on every iPhone and Android device like a native app.

🧩

Real-World GPS

Missions use real GPS coordinates in your neighbourhood. Waypoints, radius detection, enigmas, QR codes — all in the real streets.

Live Countdown

WebSocket-powered mission timer. Every second counts. Dad watches the clock from the admin panel while son sprints across the district.

// HOW IT WORKS

1

Dad opens /admin and builds a mission

2

Son gets a link + PIN on his phone

3

He hunts waypoints, solves enigmas, earns the reward 🏆

// TECH STACK — 100% OPEN SOURCE

Built to last

🐍

FastAPI 0.115

Async · JWT · Swagger

⚛️

React 18 + Vite 5

PWA · Zustand · Tailwind

🗺️

Leaflet + OSM

Zero API key · Offline

🗄️

SQLite + aiosqlite

Async · Single file DB

📡

WebSocket

Live countdown timer

🐳

Docker + Nginx

One-command deploy

// QUICKSTART

Up in 60 seconds

bash

# Clone and configure

$ git clone https://github.com/portefolio/heist_exe

$ cp .env.example .env   # edit ADMIN_KEY


# Start the full stack

$ docker-compose up --build -d


# Seed the Tétreaultville demo mission

$ make seed


→ Player app: http://localhost

→ Admin panel: http://localhost/admin

→ Swagger API: http://localhost/api/docs