Skip to content

Repository files navigation

DEMO

BasebaLLM — Defensive Baseball Scheduler

A web-based tool for generating and managing defensive baseball game schedules. Built with Vue 3 + Vuetify 3 + Vite.

Build your roster by setting up the players, which positions you like them in or don't. Then generate game lineups where you lock in a pitcher and catcher for a number of innings, the algorithm will figure everything else out. All players should sit in order without sitting twice, if it doesn't work out you can manually adjust the rotation by dragging and dropping players within a given inning and the algorithm will readjust the rotation automatically, or. In "MANUAL" mode indicated by the orange button, the algorithm will not continue to adjust, it will just take your inputs via drag/drop.

Features

  • Roster management — Add players with jersey numbers and position priorities (high / could / off) for 1B, 2B, 3B, SS, and OF
  • Automated schedule generation — Most-constrained-first position assignment with a seeded PRNG for variance across runs
  • Leniency slider (1–5) — Controls how strictly position priorities are enforced when filling slots
  • Manual P/C assignment — Assign pitchers and catchers per inning before generating; inning chips disable across slots to prevent double-booking
  • Absent players — Mark players unavailable for a given game; they are excluded from scheduling and P/C dropdowns
  • Fair sit rotation — Players sit in fewest-sits-first order; ties broken by who sat earliest
  • Drag & drop editing — Swap players between positions and innings directly on the schedule table
    • Algorithm mode — Pins the swap and regenerates forward from that inning to maintain fairness
    • Manual mode — Raw cell swaps with no regeneration
  • Sit fairness warnings — Alerts when the rotation violates the "no one sits twice before everyone sits once" rule
  • Save / Load / Delete schedules — Schedules are persisted to localStorage with full state including P/C assignments and absent players
  • Prev / Next navigation — Step through saved schedules from the schedule table toolbar
  • Saved Schedules page — List view with clickable name links and double-click to view

Stack

Framework Vue 3 (Options API)
UI Vuetify 3
Build Vite 4
Icons Material Design Icons (CDN)
Persistence localStorage

Getting Started

npm install
npm run dev

App runs at http://localhost:5173 (or next available port).

npm run build    # production build → dist/
npm run dev      # preview production build

Usage

  1. Roster — Add players and set their position priorities using the colored buttons on each card
  2. Home — Set the number of innings and leniency, mark any absent players, assign pitchers/catchers per inning, then click Generate Schedule
  3. Drag & drop — Rearrange the generated table; toggle Manual mode for raw swaps
  4. Save — Name and save the schedule; revisit it anytime from the Schedules page

Project Structure

src/
  App.vue       # Single-file component — all UI and logic
  main.js       # Vue + Vuetify bootstrap
public/
index.html
vite.config.js

About

Baseball scheduling application for creating equitable baseball lineups and game schedules.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages