Completed Web Application

BRPFC — Racing Pigeon Club Platform

A national pigeon racing federation's races, results and auctions in one place, built to hold up when a hundred bidders arrive at once.

BRPFC — Racing Pigeon Club Platform
01 — THE PROBLEM

A racing pigeon club runs on events its members care about intensely and briefly. Race results arrive as PDFs and spreadsheets that then have to be published, indexed by distance and release point, and kept findable years later. Auctions are worse: everyone who wants a bird is on the site in the final minutes of a lot, all posting bids against the same row. Software that works fine in testing falls over exactly when it matters, and in an auction a race condition doesn't just produce an error — it produces two people who both believe they won.

02 — OUR SOLUTION

A Django platform covering the club's public face and its two live operations. The race side models the sport's real structure: races tied to release spots and distances, results sheets, trapping records, and a separate national race classification, with published result PDFs kept alongside the structured data. The auction side runs timed events with per-bird lots, bidding, and pigeon feature records describing each bird. Around them sit member records, executive committee listings, a media gallery of photos and videos, and site settings. Scheduled work runs through APScheduler rather than an external worker. The bidding path was load-tested with Locust rather than assumed correct, which is the right instinct for the one part of the system where concurrency failures are visible to users and expensive to unwind.

Outcome

Live at brpfc.org and maintained over two and a half years, grown from a club noticeboard into the federation's operational site. Covers race records and national races, a velocity calculator, top-fancier and top-pigeon leaderboards computed from results, timed auctions with public bidder profiles, member and executive listings, and a media gallery — 88 templates in all, developed through separate dev and live branches rather than pushed straight to production. Runs on ASGI with filesystem-backed caching and APScheduler for scheduled work, so it needs no external worker on its cPanel host. The bidding path was load-tested with a Locust harness kept in the repository rather than assumed correct, which is the right instinct for the one endpoint where a race condition produces two people who each believe they won the bird.

Key features

  • Race records tied to release spots and distances, with result sheets and trapping data
  • National race classification held separately from club races
  • Published race result PDFs alongside structured result records
  • Timed auction events with per-bird lots and bidding
  • Pigeon feature records describing each bird on offer
  • Member directory and executive committee listings
  • Photo and video gallery
  • Configurable site settings and admin accounts
  • Custom email-based authentication
  • Scheduled tasks via APScheduler, with no external worker required
  • Locust load-testing harness aimed at the bidding endpoints
  • cPanel Passenger deployment

Tech stack

Django Django REST Framework MySQL APScheduler Locust BeautifulSoup Passenger/cPanel Bootstrap

Build something similar?

Tell us about your project. We'll share how we'd approach it.

Start a project