• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
max123

max123

screen

Public
Like
screen
Home
Code
4
backend
3
frontend
4
shared
1
README.md
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
Code
/
Search
index.ts
https://max123--012e69a237ff11f0bcab9e149126039e.web.val.run
README.md

Pickleball Scoring Web App

A comprehensive real-time pickleball scoring system for managing games across multiple courts and sites.

Features

  • Multi-Site Management: Support for 2 sites with 10 courts each
  • Real-Time Scoring: Live score updates with proper pickleball rules
  • Game Management: Create, start, and manage pickleball games
  • Point Logging: Detailed point-by-point history with popup view
  • Audience View: Public real-time score display for spectators
  • Responsive UI: Modern design that works on all devices

Pickleball Rules Implemented

  • Games to 11 points (win by 2)
  • Tournament games to 15 or 21 points
  • Proper serving rotation and side switching
  • Score calling format: "Server Score - Receiver Score - Server Number"

Project Structure

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ database/
β”‚   β”‚   β”œβ”€β”€ migrations.ts    # Database schema
β”‚   β”‚   └── queries.ts       # Database operations
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ games.ts         # Game management API
β”‚   β”‚   β”œβ”€β”€ scoring.ts       # Scoring operations API
β”‚   β”‚   └── static.ts        # Static file serving
β”‚   └── index.ts             # Main server entry point
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ App.tsx          # Main application
β”‚   β”‚   β”œβ”€β”€ GameBoard.tsx    # Court overview
β”‚   β”‚   β”œβ”€β”€ ScoreKeeper.tsx  # Scoring interface
β”‚   β”‚   β”œβ”€β”€ AudienceView.tsx # Public score display
β”‚   β”‚   └── PointLog.tsx     # Point history popup
β”‚   β”œβ”€β”€ index.html           # Main HTML template
β”‚   β”œβ”€β”€ index.tsx            # Frontend entry point
β”‚   └── style.css            # Custom styles
└── shared/
    └── types.ts             # Shared TypeScript types

Usage

  1. Admin Interface: Create and manage games across courts
  2. Scorer Interface: Real-time scoring with point logging
  3. Audience View: Public display for spectators
  4. Point History: Detailed game logs with popup view

API Endpoints

  • GET /api/games - List all active games
  • POST /api/games - Create new game
  • PUT /api/games/:id/score - Update game score
  • GET /api/games/:id/points - Get point history
  • GET /audience/:courtId - Public audience view

Real-Time Features

  • WebSocket connections for live score updates
  • Automatic score synchronization across all viewers
  • Real-time point logging and history
HTTP
  • index.ts
    max123--01…9e.web.val.run
Code
backendfrontendsharedREADME.md
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of usePrivacy policyAbuse contact
Β© 2025 Val Town, Inc.