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