Full-stack sports platform · League analytics · Operations

ND Wiffleball Analytics & Operations

I built the league's public data product and much of the operational infrastructure behind it: a multi-season statistics database, public analytics pages, commissioner tools, captain scheduling, data-ingestion workflows, and interactive league features.

Product

One system for the public league and the people running it

The project grew from a statistics site into a full league-management platform. The frontend is designed for players and fans; the backend handles the repetitive operational work that would otherwise live in spreadsheets, text threads, and manual edits.

Frontend

Public analytics and league history

Sortable standings and statistics, schedules and series results, team and player pages, awards tracking, power rankings, playoff probabilities, historical records, and the ND Wiffle Grid turn league data into a browsable public product.

Backend

Data, access, and league operations

A Cloudflare-hosted application backed by structured SQL data, API endpoints, validation logic, and authenticated operational tools. Commissioner and captain workflows sit on the same data model as the public site rather than relying on a parallel spreadsheet.

Interface views

Representative views of the product

These compact interface views show the kinds of interactions supported by the live site without reproducing every page of the application here.

ND WiffleballStandings
StandingsFull standingsPlayoff %
TeamW-LGBRecent
Storm——● ● ●
Midnight——● ○ ●
Twin Titans——○ ● ●
Stiff Wifflers——● ○ ○
Standings and projections. Sortable league tables, expanded context, recent form, games-back logic, and playoff probability views.
Series Center2026
MonTueWedThuFri
Stormaway
vs
Underdawgshome
Game 1Game 2Game 3
Silverbacksaway
vs
Dirty Dawgshome
Schedule and series presentation. Calendar-style scheduling, home/away context, three-game series summaries, scores, and historical results.
Captain PortalAuthenticated
Team availabilitySep 6-19
3:305:006:30 Mon Tue Wed Thu
Scheduled-series conflicts are rejected before availability is saved.
Authenticated operations. Captain access, team-specific availability, commissioner scheduling, and conflict-aware persistence.
Frontend

What the public site does

The frontend is intentionally broader than a leaderboard. It treats the league as a persistent sports data product with navigation, history, context, and interactive tools.

Standings & postseason context

Current standings, full-standing splits, games-back logic, close-game records, strength-of-opponent context, playoff probabilities, and power rankings.

Stats, teams & players

Sortable batting and pitching leaderboards, team filters, player-to-team mapping, player pages, and multi-season historical records.

Schedules & results

Calendar and series-centered views, home/away designation, completed game scores, pitcher records, recent-series presentation, and season-progress tracking.

Interactive league tools

Awards tracking, roster-aware eligibility rules, the historical ND Wiffle Grid, visual result components, and commissioner-facing graphics workflows.

Backend

What keeps the site operational

The backend is where the project became substantially more than a static portfolio exercise. The same database supports public analytics and internal league operations.

01Stat and schedule inputsCSV uploads, commissioner actions, captain availability
→
02Validation layerDuplicate checks, team/player mapping, schedule and data constraints
→
03D1 / SQL data modelPlayers, teams, series, stats, access, availability, scheduled series
→
04Public + private interfacesAnalytics pages, APIs, commissioner tools, captain portal

Cloudflare deployment

Public pages and server-side functions are deployed on Cloudflare, keeping the application close to its data and operational APIs.

Structured database

League records are stored as relational data rather than hard-coded page content, allowing current-season views and historical features to share the same source of truth.

Authenticated captain tools

The captain portal uses identity-aware access and team assignments so captains can manage only the availability associated with their team.

Conflict-aware scheduling

Availability and scheduled-series records are checked against one another before writes are accepted, reducing the manual scheduling errors common in spreadsheet workflows.

The value of the project is not one metric or one dashboard. It is that the league's public analytics and operational workflow run from the same underlying data system.

The result is a project that combines product design, database work, sports analytics, frontend development, access control, and day-to-day operational problem solving.