Why the data gap hurts racers
Every runner craves the instant thrill of seeing their name flash on a board, yet Southwell’s portal often leaves a void. The problem? Inconsistent timing uploads and a clunky interface that feels like a stone-age ledger. Look: you finish a 10K, you want the split, you click, you get a blank page. That’s a loss of trust, plain and simple.
Root causes in plain sight
First, the backend relies on an outdated CSV feed that stalls when more than 200 entries pour in. Second, the front-end renders results with a single-column table, forcing users to scroll endlessly. And here is why the mobile experience collapses — no responsive design, just a static dump that phones can’t parse.
Timing technology mismatch
Chip timing is the gold standard, but Southwell still mixes manual entry with RFID tags. The hybrid approach creates a data sync nightmare; manual logs lag by minutes, while chip reads flood the server. The result? Duplicate rows, missing athletes, and a chaotic leaderboard.
Search functionality that belongs in the past
Type a name, hit enter, get “no results” because the search algorithm only matches exact case-sensitive strings. Upper-case “Smith” won’t find “smith”. That’s a design flaw that slams the door on casual users.
What racers actually need
Speed. Accuracy. A tidy PDF or CSV they can download in seconds. No more “please wait” spinners that spin forever. By the way, the site’s URL https://southwellraceresults.com/ should become a one-stop hub, not a dead end.
Immediate fixes you can implement
Swap the CSV feed for a real-time API that pushes updates every 5 seconds. Refactor the front-end with a responsive grid — two columns on desktop, one on mobile. Upgrade the search to fuzzy matching, so “John D.” pulls “John Doe”. Finally, add a “Download Results” button that spits out a clean Excel sheet with timestamps, splits, and rankings.
Actionable step to start right now
Deploy a lightweight Node.js microservice that polls the timing hardware, sanitizes duplicates, and writes directly to a MySQL table. Hook the front-end to this table via AJAX; you’ll see results appear instantly, and the race community will finally get the data they deserve. No more excuses. Get coding.