Inspiration
Finding a drop-in in Mississauga means opening the City’s calendar one community centre at a time. The City’s older drop-in schedule page still lists 2021 programs. So you either guess, or show up and find it full, cancelled or not on at all. Teens get hit hardest: Sauga At Play is free for ages 10 to 17, but it’s buried in the same calendars.
My friends and I often play sports like badminton, but we always end up splitting a payment for a court when we could've found a free alternative.
What it does
Shows every City of Mississauga drop-in that’s on now or in the next 2 hours, or any day in the next two weeks, across 21 community centres, pools and arenas. On Oct 21 that was 2,452 drop-ins, 149 of them free.
Filters by activity, by age (teens 10–17, adults, older adults, kids and families) and by free only, and sorts by what’s closest.
Each session shows “On now · ends 7 PM” or “Starts in 25 min”, walking directions, the City’s own listing, and a call button.
Works anywhere in North America. Search any city, address, or ZIP code (it opens on Washington, DC) to see nearby courts, pools, rinks, and gyms. Live times show wherever a city publishes them, starting with Mississauga. Times are always shown in Mississauga time, and it remembers your filters.
How we built it
A Python script reads the City of Mississauga’s Active Mississauga calendar (the same data behind the City’s site). It matches each session to its activity and age group, maps every centre with OpenStreetMap, and writes one JSON file.
A GitHub Action re-runs it every morning, and the site is served on GitHub Pages. The site is plain HTML, CSS and JavaScript with no framework and no tracking. On phones it’s a swipe strip, photo cards and slide-up sheets; on desktop it adds a filter sidebar and a card grid.
Outside Mississauga, places come from OpenStreetMap through the Photon search API, and location search uses Nominatim.
Challenges we ran into
The City’s old drop-in page reads from Google Sheets that still list 2021 programs. We had to find the live booking calendar behind Active Mississauga.
That calendar can’t be read straight from a browser, so we built the data on a server and refresh it daily. The calendar doesn’t mark Sauga At Play as free, so we flag it from the City’s own Sauga At Play page. Making “now” correct for anyone, anywhere, meant always working in Mississauga time.
Going North America-wide: the first map data service took over 20 seconds, so we switched to Photon and had to stay under its rate limits with fewer requests and caching.
Accomplishments that we're proud of
Real, live data straight from the City: no made-up times.
It works on any phone or computer with keyboard support, high contrast, and reduced-motion support.
We made a 60-second animated launch film in Blender to go with it.
What we learned
Public data is often there but hidden. The real problem was getting it out, not the app.
Small details decide whether people trust it: “ends in 20 min”, time zones, and saying plainly when we don’t have live times for an area.
What's next for DropInNow
A “this was cancelled” button so people can warn each other.
More cities with live times: Toronto and Brampton next, and other cities on the same booking system.
Alerts like “Youth basketball starts at Malton in 30 min”.
Log in or sign up for Devpost to join the conversation.