Joshua Argent

PingElo

A free competitive ranking platform for groups of table tennis players, built around a custom Elo based system and designed for real world usage.

Tech Stack & Key Features

Frontend & Backend

  • Next.js + TypeScript
  • React, Tailwind CSS
  • Express + TypeScript API
  • Supabase PostgreSQL
  • Vercel (frontend), Render (backend)

Core Features

  • Custom Elo ranking (singles & doubles)
  • Flexible player system & claim codes
  • Match validation (win by 2, score formats, group checks)
  • Admin & manager dashboards for match & group management
  • Infinite scroll & paginated API responses

Overview

PingElo was built to solve a real problem in my college table tennis group: tracking rankings, determining relative skill levels, and running tournaments without spreadsheets or paid software.

The platform is actively used by my group and supports any collection of players who want a fair, automated, and competitive ranking system with minimal friction.

Problem & Solution

Problem

  • Manual ranking made tournaments and leaderboards unreliable.
  • Existing solutions were either paid or not flexible for small groups.

Solution

  • Custom Elo system with point margin & upset handling.
  • Validation & automation reduce manual errors.
  • Player claim system allows participation without accounts.
  • Admin & manager dashboards for flexible control.

Product Screenshot

PingElo Leaderboard Screenshot

Leaderboard - all data updates in real time with Elo calculations.

Validation, Permissions & Roles

Match Validation

  • Win by two enforcement
  • Score format checks
  • Group membership validation

Authentication

Authenticated users can create matches. Admins can submit and edit matches on behalf of players.

Roles

  • Players
  • Group Admins
  • Managers (multi-group control)

Custom Elo System

The Elo system adjusts ratings based on match outcomes, point differences, and relative player skill. Separate calculations exist for singles and doubles.

  • Higher gains for upsets
  • Lower changes for expected wins
  • Reduced impact for close matches
  • Historical tracking enables leaderboard analytics

Reflection & Future Work

Proudest Achievement

The Elo system and flexible player model that allows participation without mandatory accounts.

What I’d Change

I would design groups and tournaments first to avoid later scalability refactors.

Next Steps

  • Complete manager dashboard
  • Improve tournament tooling
  • Add automated tests for Elo calculations

Interested in working together? Get in touch