Case Study: Go Show Pro Web App
Mapping Canada’s Horse Show Landscape for Riders, Trainers, and Event Planners

Project Overview
The Canadian horse show circuit can be complex. It’s a big country! Equestrian Canada does a good job presenting all the data in text format, but it is not possible to get a bird’s-eye graphical view of the horse show scene across the country in one map. This project aimed to streamline access to show listings by transforming raw data into a dynamic, interactive map organized by discipline.
Go Show Pro is a free web-based tool that collects, cleans, and visualizes upcoming shows across Canada. It serves as both a personal portfolio piece and a practical utility for everyone in the equestrian world.
Challenge
The main challenge was to create a lightweight, responsive interface that could consolidate data and present it visually — with minimal server overhead.
The tool needed to:
- Aggregate public data from Equestrian Canada (the national equestrian governing body).
- Geocode location names into usable coordinates.
- Display shows on a live map, filtered by discipline (Dressage, Hunter/Jumper, Eventing).
- Be updated regularly through an automated process.
Solution
Backend Automation and Data Handling:
A custom Python script uses the requests
and geopy
libraries to:
- Retrieve and clean relevant data from public API
- Geocode location names using Nominatim with caching to reduce API usage. (This was eventually mostly deprecated. See Lessons Learned below.)
- Save the cleaned, enriched data to a local JSON file.
This script is run via a scheduled cron job, keeping the listings fresh with no manual intervention.
Frontend Display:
A simple static front-end (HTML, CSS, JavaScript) displays the show data as a heatmap:
- Uses the Leaflet.js library for map rendering.
- Events are colored and grouped by discipline.
- Clicking a pin reveals the full event name and location.
Minimal Infrastructure:
The project is fully client-hosted — no backend server or database is needed beyond the cron job that regenerates the JSON data file. This keeps deployment lightweight and portable.
Lesson Learned: Close Isn’t Good Enough
I started by geocoding locations using Nominatim via geopy
, which gave me rough coordinates. But many venues were plotted miles off — usually at the city centre instead of the actual site.
To fix this, I manually looked up and corrected every venue using Google Maps. I then disabled the auto-geocoding to preserve the accurate data.
Lesson: Geocoding tools are helpful for rough location mapping, but for precision, nothing beats human verification.
Outcome
GoShowPro has been used as a conversation starter with prospective clients and equestrian organizations. The app showcases full-stack capabilities — including data ingestion, automation, geospatial mapping, and front-end visualization — while solving a real-world problem in a niche domain.
It has already inspired ideas for spin-offs, including:
- A rider dashboard with personalized event tracking.
- Barn-specific calendars.
- Regional clinic finders for coaches and organizers.
Key Takeaways
- End-to-End Development: This project demonstrates fluency across the full stack — from Python scripting and data cleanup to interactive JavaScript and mapping.
- Real-World Relevance: By solving a known pain point in a niche market, the app highlights the power of custom tools tailored to specific communities.
- Automation-Ready: Using scheduled scripts and geocoding caching shows an ability to build systems that stay current with minimal human input.
Screenshot of HorseShowFinder Web App