- Welland Canal lift bridges open for ship traffic with little warning, stranding cars for 20–60 minutes at a stretch.
- The official Seaway website shows plain text lists with no map context — useless on a phone while you're driving.
- There was no way to check whether the bridge near you was currently open before you drove there — forcing a frustrating, avoidable wait.
- Tourists and visitors had it even worse: road names meant nothing without a map to orientate them.
- Real-time map: Colour-coded markers on an interactive Google Map — open at a glance and you know exactly which bridges are clear.
- Live status: Data scraped from the Seaway every 20 seconds and pushed to your browser every 30 seconds — always current.
- Historical stats: Average closure times, time-to-close histograms, and 95% confidence intervals so you can plan your timing.
- Personalisation: Favourite bridges, hide regions you never use, sort by proximity to you, and choose your preferred colour scheme.
- Ships on the map: See exactly which vessels are approaching, so you know if a closure is imminent even before the status updates.
1. Data collection
A Node.js scraper polls the official St. Lawrence Seaway website every 20 seconds using Cheerio. It parses bridge status for St. Catharines / Thorold and Port Colborne regions, normalises the data, and caches it in memory to avoid hammering the source.
2. REST API
An Express server exposes /api/bridges and /api/bridges/:name/stats. The stats endpoint queries a PostgreSQL database that records every status transition — powering the duration histograms and CI ranges you see in the app.
3. React frontend
A React 19 + Vite app fetches bridge data every 30 seconds and renders markers on a Google Map. Colours update smoothly as statuses change:
Frontend
React 19, Vite, Tailwind CSS v4, Google Maps API
Backend
Node.js, Express, Cheerio, PostgreSQL
Architecture
Service layer pattern, OOP managers, REST API
Deployment
Vercel (frontend), Oracle VM (backend + AIS)
- Push notifications when a bridge near you starts raising
- Native iOS and Android apps
- Predicted re-opening times using ship AIS data
- Coverage expansion to more lift bridges across Canada
I'm Saqib Khan, a software engineering student at McMaster University and a St. Catharines resident. Growing up here, I experienced firsthand the frustration of bridge delays, whether commuting to my high school of Laura Secord Secondary School or heading to work across the canal. After my second year of university, I decided to do something about it and built this as a side project. I'm still actively working on it, and knowing it's now helped over 10,000 people plan their commutes is something I'm genuinely proud of.
Have questions, suggestions, or want to collaborate? I'd love to hear from you.
GitHub: github.com/saqib-21/WellandCanalStatus
LinkedIn: linkedin.com/in/saqib-khan-aa127b275
Email: saqibmominkhan@gmail.com
