Tourism Routing Platform

FlowPass.ca

Route Outcomes, Not Tickets

A routing engine + capacity exchange for tourism. Travelers describe intent. You build flowing routes. Plans adapt in real-time.

FlowPass Interface Preview

Tourism Is Broken

📅

Fixed Bookings

Travelers book weeks ahead, then plans change. Rigid itineraries break the moment something goes wrong.

🪑

Wasted Capacity

A 2pm tour with 3 empty seats is worthless at 2:01. Perishable inventory dies unsold every day.

🌧️

No Adaptation

Rain hits. Crowds spike. Delays cascade. Traditional systems can't respond in real-time.

Intent Routing + Capacity Exchange

1

Traveler Describes Intent

"I have 4 hours. Food and culture. Keep it chill. I hate lines."

60 seconds. Vibes, pace, mobility, constraints. No fixed times. No rigid plans.

2

Engine Builds Route

Scoring algorithm weighs intent fit, time feasibility, crowd avoidance, operator reliability, and perk value. Produces 3–6 stops that flow.

3

Atomic Holds Lock Spots

MongoDB atomic operations. If shown, it can be held. Holds expire automatically. Capacity never lies. No double-booking.

4

Plans Adapt Live

Rain? Swap to indoor. Crowded? Route around. Changed mind? Swap any stop. Safe swap acquires new hold before releasing old.

5 Screens, City-Agnostic

Start Flow
Time window
Vibes (multi-select)
Pace
Line tolerance
Start Flow →

Intent Capture

60 seconds to describe the perfect day

Your Route
Stop 1 Hold: 4:32
Stop 2 Hold: 4:32
Stop 3 Next
Confirm | Swap | Skip

Live Route

Hold timers, confirm, swap, skip

Swap Options
Alt A — closer, perk
Alt B — quieter
Alt C — indoor

Swap Engine

3–8 alternatives, atomic swap

Exchange
Slot — 2 left — Available
Slot — 1 left — Free
Slot — Perk available

Capacity Exchange

Live inventory market

Operator
Today's gaps: 3
Fill rate: 78%
Flash Perk

Operator Console

Publish slots, flash perks, auto-offers

Production-Ready Architecture

Stack

  • Flask 3.0 + MongoDB
  • Gunicorn + Nginx
  • 19 CSS themes

Payments

  • Stripe Connect (operators use own accounts)
  • Bitcoin Lightning via Strike
  • Connected operator accounts

Background Jobs

  • Hold expiry (60s)
  • Congestion updates
  • Auto-offers
  • Continuous routing

Core Collections

  • slots — inventory + GeoJSON
  • holds — TTL reservations
  • routes — live sessions
  • rules — demand shaping

The Routing System

🌐

FlowPass.ca Identity

Canadian project domain and visual system

💻

Complete Source

Every line, no obfuscation

📚

Full Documentation

Spec, API ref, deployment guides

🚀

Deploy Configs

Systemd + Nginx ready

🎨

19 Themes

Nordic Frost to Cyberpunk

♾️

Capacity Rules

Atomic holds, safe swaps, and live availability

Routes that adapt as the day changes

Explore the intent engine, atomic holds, live capacity, and operator workflows.

Ask About the Project