// URBAN MISSION PLATFORM · v1.0.0
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
▋_
// WHY HEIST.EXE
Zero cloud dependencies. OpenStreetMap for maps, SQLite for data, Docker for deployment. Runs completely offline on your hardware.
Players install the app directly from a URL — no App Store, no account. Works on every iPhone and Android device like a native app.
Missions use real GPS coordinates in your neighbourhood. Waypoints, radius detection, enigmas, QR codes — all in the real streets.
WebSocket-powered mission timer. Every second counts. Dad watches the clock from the admin panel while son sprints across the district.
Dad opens /admin
and builds a mission
Son gets a link + PIN on his phone
He hunts waypoints, solves enigmas, earns the reward 🏆
// TECH STACK — 100% OPEN SOURCE
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
# 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