Skip to content

A cross-platform viewer/sorter for USPSA match results, because Practiscore's filtering isn't great. Now with 80% more Elo rating!

License

Notifications You must be signed in to change notification settings

jslater89/shooting-sports-analyst

Repository files navigation

Shooting Sports Analyst

Support me on Patreon

A line and bar chart on top of a USPSA target.

Shooting Sports Analyst is a desktop application for viewing, analyzing, and predicting practical shooting match results.

The result viewer can be used online at github.io.

Rating Engine

The rating engine uses match results to generate ratings for shooters based on their performances, which can be used to generate predictions for future matches. The rating engine uses multiplayer Elo by default, with options for an experimental Bayesian rating system and a scoring engine for club or section points series.

For more information on the rating engine, see README-Elo.md.

Result Viewer

The result viewer includes a number of features Practiscore lacks:

  • Combining results for multiple divisions (e.g., all four locap divisions)
  • Removing stages from the match: "Who would have won if we only shot stages 1 to 3 today?"
  • Complex querying: e.g. ?revolver and gm or production or "bill duda" to search for Production shooters, Revolver grandmasters, and Bill Duda
  • Optionally scoring DQed shooters on stages they completed
  • Optionally filtering second entries from the results

Linking

For the version at github.io, URLs to results downloaded from Practiscore can be shared, e.g.

https://jslater89.github.io/uspsa-result-viewer/#/web/d7b9c599-9387-4faf-b3ff-545965947e99

Embedding

See this example file.

If embedding, it's best to host your own results file and link to that, rather than linking to the Practiscore page.

Visiting the link generated by the embedded URL will create a friendly link in your browser's URL bar.

Building

This is a pretty standard Flutter desktop/web application. I use fvm to lock it to version 3.0.5, because of some unsolved bugs in later Flutter versions, and some breaking changes to scrollbars on desktop platforms I haven't solved yet.

Before building, use flutter pub run flutter_launcher_icons:main to generate icons, and flutter pub run build_runner build to do any code generation steps required by whatever I happen to be hacking on at the moment.

Windows and Linux

Run the appropriate script for your platform.

On Linux, run the linux-install.sh script from within the assets directory in this repository to install a GNOME application entry for the debug version, or run linux-install.sh from an unzipped release to install a GNOME application entry for that version.

MacOS

An unsigned MacOS release is available, if I seem like the trustworthy sort to you. Download the release zip file, unzip it, right-click on the unzipped folder and select "New Terminal at Folder", and enter ./install.sh. This will copy Shooting Sports Analyst to your Applications folder, and prompt you for your password or Touch ID to grant permission to run Shooting Sports Analyst.

After installing, Analyst should be available in Launchpad and Spotlight.

Web

Copy web/index-template.html to web/index.html, then use flutter build web.

Contributions

For result viewer issues, or Elo rater UI issues, open a pull request.

For Elo rater algorithm issues, please open an issue and attach an exported rater project that demonstrates the issue first, and be prepared to discuss and/or justify any proposed changes to the math.