Skip to content

OPPRSOpen Pinball Player Ranking System

A complete ranking system with REST API, web interface, and calculation engine for competitive pinball

Quick Overview

OPPRS is a complete ranking system for competitive pinball tournaments:

  • REST API - Fastify-based HTTP API with JWT auth, CRUD operations, leaderboards, and batch processing
  • Web Application - Next.js frontend for player registration, tournament management, and rankings display
  • Database - PostgreSQL with Prisma for persistent storage of players, tournaments, and results
  • Calculation Engine - Core TypeScript library for tournament scoring, player ratings, and point distribution
  • OpenAPI Docs - Interactive Swagger UI for API exploration and testing
  • Docker Ready - Multi-stage Dockerfiles and docker-compose for easy deployment

Getting Started

Run the full stack locally with Docker Compose:

bash
docker compose up

Or install and run services individually:

bash
pnpm install
pnpm --filter @opprs/db-prisma run db:generate
pnpm --filter rest-api dev    # API at http://localhost:3000
pnpm --filter frontend-next dev  # Frontend at http://localhost:3001

See the Getting Started guide for detailed setup instructions.

Released under the MIT License.