Skip to content

napo/openvolleyscout

Repository files navigation

OpenVolleyScout

OpenVolleyScout Logo

Analyze. Scout. Improve.

OpenVolleyScout is a local-first web application for volleyball match setup, scouting, tactical-system editing, and early match reporting.

The application runs entirely in the browser. Match projects, team archives, rosters, and competition names are persisted on the device with IndexedDB. Locale and defense-system editor state are stored in localStorage.

Live demo: https://napo.github.io/openvolleyscout

The project is under active development. Some workflows are complete enough to use as foundations, while analysis and advanced tactical automation are still evolving.

Installation & Downloads

Desktop Application

Download the latest release for your platform:

Platform Download
Windows (64-bit) .exe installer
macOS (Intel) .dmg installer
macOS (Apple Silicon) .dmg installer
Linux (Ubuntu/Debian) .deb package
Linux (RedHat/Fedora) .rpm package
Linux (Universal) AppImage
Android .apk

Web Browser (No Installation)

No installation needed — use the live demo directly in any modern browser.

See all releases for older versions.

Current Capabilities

  • Create and manage archived teams and rosters.
  • Create match projects from competition metadata, selected teams, and match-specific rosters.
  • Configure match-level scouting settings such as set targets and tie-break targets.
  • Start sets from selected lineups and serving team.
  • Record rally events, touches, points, score corrections, set endings, and match endings through an event log.
  • Persist scouting progress back into the active MatchProject.
  • Generate live quick stats, set summaries, rally summaries, and DataVolley-like rally strings from recorded events.
  • Edit and persist a simple defense-system layout in the browser.

Technical Stack

  • React 18
  • TypeScript
  • Vite
  • React Router
  • Zustand
  • Dexie / IndexedDB

Local Development

Install dependencies:

npm install

Start the development server:

npm run dev

Build for production:

npm run build

Preview a production build:

npm run preview

Run the current validation script:

npm test

npm test currently runs scripts/validate-match-stats.mjs, which bundles and executes the match-statistics fixture validation.

Main Application Routes

The app uses hash routing, so routes are rendered under #/....

  • #/ - landing page
  • #/teams - archived team and roster management
  • #/match - match setup workflow
  • #/scouting - live scouting workflow
  • #/systems - defense-system editor
  • #/analysis - placeholder for future analysis views
  • #/load-data - saved match project loading
  • #/settings - locale and local-data actions
  • #/about - project information

Documentation

Start with docs/README.md.

Important entry points:

Project Status

Implemented foundations:

  • local match and archive persistence
  • match creation and readiness validation
  • event-sourced scouting session replay
  • scouting persistence into MatchProject.events and MatchProject.scoutingSession
  • match statistics builder and validation fixture
  • simple defense-system editor backed by localStorage
  • English and Italian UI translations with persisted locale choice

Still in progress:

  • full DataVolley export compatibility
  • advanced player suggestion from tactical systems
  • persistent tactical-system repository in IndexedDB
  • full analysis screens
  • broader automated test coverage

Preview

home
team
match
configurematch
roster
start
start_scouting
scouting
matchreporto
charts
systems