https://github.com/avgupta456/statbotics

📈 Modernizing Data Analytics for FRC Robotics

https://github.com/avgupta456/statbotics

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • â—‹
    CITATION.cff file
  • ✓
    codemeta.json file
    Found codemeta.json file
  • ✓
    .zenodo.json file
    Found .zenodo.json file
  • â—‹
    DOI references
  • â—‹
    Academic publication links
  • â—‹
    Committers with academic emails
  • â—‹
    Institutional organization owner
  • â—‹
    JOSS paper metadata
  • â—‹
    Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

analytics frc robotics statistics

Keywords from Contributors

projection interactive serializer measurement cycles packaging charts network-simulation archival shellcodes
Last synced: 5 months ago · JSON representation

Repository

📈 Modernizing Data Analytics for FRC Robotics

Basic Info
  • Host: GitHub
  • Owner: avgupta456
  • License: mit
  • Language: TypeScript
  • Default Branch: master
  • Homepage: https://statbotics.io/
  • Size: 50.9 MB
Statistics
  • Stars: 93
  • Watchers: 4
  • Forks: 17
  • Open Issues: 75
  • Releases: 0
Topics
analytics frc robotics statistics
Created over 5 years ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

Statbotics

Statbotics is an open-source data analytics platform for the FIRST Robotics Competition (FRC). We have created the Expected Points Added (EPA) rating system, which predicts a team's average scoring contribution to a match. EPA builds upon the Elo rating system, but is directly in point units, separates into additional components, and has additional modifications that improve accuracy and calibration. Statbotics computes both historical and realtime EPA results, and exposes data through a CSV export, REST API, Python package, and website (statbotics.io). The website includes interactive tables, visualizations, event simulation, and more. The major components are summarized below, with more detailed development documentation in each subdirectory.

EPA Model

The Expected Points Added (EPA) model builds upon the Elo rating system, but transforms ratings to point units and makes several modifications. The EPA model was developed to replace both Elo and OPR (Offensive Power Rating) with a single unified system. At a high level, the EPA model converts Elo into point contributions, and then makes several modifications to improve accuracy and interpretability. More details are available on the Statbotics blog. The table below shows the prediction accuracy improvements of EPA compared to existing approaches.

Server

A FastAPI Python server integrates with The Blue Alliance (TBA) to compute, store, and serve EPA ratings. Seven SQL tables are created to aggregate results: Teams, Years, TeamYears, Events, TeamEvents, Matches, and TeamMatches (on CockroachDB). An internal API serves the frontend, while the REST API and Python API are made available for public use. The REST API docs is accessible here.

Python API

The Python API makes Expected Points Added (EPA) statistics just a few Python lines away! Currently we support queries on teams, years, events, and matches. Here's a short example demonstrating the package:

Install via

bash pip install statbotics==3.0.0

Then run

```python import statbotics

sb = statbotics.Statbotics() print(sb.get_team(254))

{'team': 254, 'name': 'The Cheesy Poofs', 'country': 'USA', 'state': 'CA', 'district': None, 'rookieyear': 1999, 'active': True, 'record': {'wins': 808, 'losses': 160, 'ties': 8, 'count': 976, 'winrate': 0.832}, 'normepa': {'current': 1909.0, 'recent': 1904.0, 'mean': 1894.0, 'max': 2058.0}} ```

More details are available here.

Website

The website is written in NextJS, TypeScript, and TailwindCSS and aims to make EPA statistics accessible and actionable. The website includes EPA tables (with location filters, sortable columns), figures (Bubble charts, line graphs, bar graphs, etc.), live event simulation (including ranking points and tiebreakers), match breakdowns (with component predictions), and so much more. Check it out at statbotics.io!

Other

Feedback is always appreciated, either through GitHub issues or the Statbotics Canny.

If you are interested in contributing, please reach out to me directly through any platform (GitHub, Email, ChiefDelphi, etc.)

I (Abhijit Gupta) currently front the cloud hosting costs for Statbotics. If you are able and interested, feel free to pitch in using this link.

Thanks for your interest!

Owner

  • Name: Abhijit Gupta
  • Login: avgupta456
  • Kind: user

Yale CS '23

GitHub Events

Total
  • Issues event: 14
  • Watch event: 27
  • Delete event: 5
  • Issue comment event: 18
  • Push event: 88
  • Pull request event: 18
  • Fork event: 7
  • Create event: 8
Last Year
  • Issues event: 14
  • Watch event: 27
  • Delete event: 5
  • Issue comment event: 18
  • Push event: 88
  • Pull request event: 18
  • Fork event: 7
  • Create event: 8

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,258
  • Total Committers: 5
  • Avg Commits per committer: 251.6
  • Development Distribution Score (DDS): 0.008
Past Year
  • Commits: 98
  • Committers: 2
  • Avg Commits per committer: 49.0
  • Development Distribution Score (DDS): 0.01
Top Committers
Name Email Commits
Abhijit Gupta a****6@g****m 1,248
dependabot[bot] 4****] 6
Jonah Snider j****h@j****m 2
Tyler Seiford 5****d 1
Nigel 5****V 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 89
  • Total pull requests: 93
  • Average time to close issues: 6 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 23
  • Total pull request authors: 7
  • Average comments per issue: 0.65
  • Average comments per pull request: 1.34
  • Merged pull requests: 79
  • Bot issues: 22
  • Bot pull requests: 0
Past Year
  • Issues: 8
  • Pull requests: 23
  • Average time to close issues: 7 days
  • Average time to close pull requests: about 5 hours
  • Issue authors: 8
  • Pull request authors: 4
  • Average comments per issue: 0.13
  • Average comments per pull request: 1.0
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • avgupta456 (40)
  • canny[bot] (21)
  • INeedCaffeine (3)
  • Sprink02 (2)
  • tervay (2)
  • Lyanthropos (1)
  • wkangg (1)
  • Cynosure-null (1)
  • prensing (1)
  • JonathanLindsey (1)
  • max-niederman (1)
  • Fl3xin1 (1)
  • bc3tech (1)
  • patfair (1)
  • karl-johnson (1)
Pull Request Authors
  • avgupta456 (97)
  • oh-yes-0-fps (4)
  • jonahsnider (4)
  • shuklabhay (2)
  • Nigel-V (2)
  • TylerSeiford (1)
  • amillh (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 376 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 18
  • Total maintainers: 1
pypi.org: statbotics

Modernizing FRC Data Analytics

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 376 Last month
Rankings
Stargazers count: 9.4%
Dependent packages count: 10.0%
Forks count: 13.3%
Average: 19.2%
Dependent repos count: 21.7%
Downloads: 41.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

frontend/package.json npm
  • @tailwindcss/typography ^0.5.8 development
  • @trivago/prettier-plugin-sort-imports ^4.0.0 development
  • autoprefixer ^10.4.13 development
  • eslint 8.30.0 development
  • eslint-config-next 13.0.6 development
  • postcss ^8.4.20 development
  • prettier ^2.8.1 development
  • tailwindcss ^3.2.4 development
  • @nivo/bar ^0.80.0
  • @nivo/core ^0.80.0
  • @nivo/line ^0.80.0
  • @nivo/pie ^0.80.0
  • @nivo/tooltip ^0.80.0
  • @tanstack/react-table 8.7.0
  • @types/node 18.11.17
  • @types/react 18.0.26
  • @types/react-dom 18.0.9
  • daisyui ^2.46.1
  • highcharts ^10.3.2
  • highcharts-more ^0.1.7
  • highcharts-react-official ^3.1.0
  • next 13.0.6
  • prop-types ^15.8.1
  • react ^18.2.0
  • react-csv ^2.2.2
  • react-debounce-input ^3.3.0
  • react-dom ^18.2.0
  • react-icons ^4.7.1
  • react-markdown ^8.0.4
  • react-range ^1.8.14
  • react-select ^5.7.0
  • react-windowed-select ^5.1.0
  • rehype-katex ^6.0.2
  • remark-math ^5.1.1
  • sharp ^0.31.3
  • typescript 4.9.4
frontend/yarn.lock npm
  • 576 dependencies
api/docs/requirements.txt pypi
  • Babel ==2.8.0
  • CacheControl ==0.12.6
  • Jinja2 ==2.11.2
  • MarkupSafe ==1.1.1
  • PyYAML ==5.3.1
  • Pygments ==2.6.1
  • Sphinx ==3.1.2
  • alabaster ==0.7.12
  • appdirs ==1.4.4
  • atomicwrites ==1.4.0
  • attrs ==19.3.0
  • bleach ==3.1.5
  • certifi ==2020.6.20
  • cfgv ==3.1.0
  • chardet ==3.0.4
  • colorama ==0.4.3
  • distlib ==0.3.1
  • docutils ==0.16
  • filelock ==3.0.12
  • identify ==1.4.24
  • idna ==2.10
  • imagesize ==1.2.0
  • importlib-metadata ==1.7.0
  • keyring ==21.2.1
  • libcst ==0.3.7
  • more-itertools ==8.4.0
  • msgpack ==1.0.0
  • mypy ==0.782
  • mypy-extensions ==0.4.3
  • nodeenv ==1.4.0
  • packaging ==20.4
  • pkginfo ==1.5.0.1
  • pluggy ==0.13.1
  • pre-commit ==2.6.0
  • psutil ==5.7.2
  • py ==1.9.0
  • pyparsing ==2.4.7
  • pyre-extensions ==0.0.18
  • pytest ==5.4.3
  • pytz ==2020.1
  • pywin32-ctypes ==0.2.0
  • readme-renderer ==26.0
  • requests ==2.24.0
  • requests-toolbelt ==0.9.1
  • rfc3986 ==1.4.0
  • six ==1.15.0
  • snowballstemmer ==2.0.0
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==1.0.3
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.4
  • toml ==0.10.1
  • tqdm ==4.48.0
  • twine ==3.2.0
  • typed-ast ==1.4.1
  • typing-extensions ==3.7.4.2
  • typing-inspect ==0.6.0
  • urllib3 ==1.25.9
  • virtualenv ==20.0.27
  • wcwidth ==0.2.5
  • webencodings ==0.5.1
  • zipp ==3.1.0
api/poetry.lock pypi
  • CacheControl 0.12.11
  • certifi 2022.12.7
  • charset-normalizer 3.0.1
  • idna 3.4
  • msgpack 1.0.4
  • requests 2.28.2
  • urllib3 1.26.14
api/pyproject.toml pypi
  • cachecontrol ^0.12.11
  • python ^3.8
  • requests ^2.28.2
api/requirements.txt pypi
  • cachecontrol ==0.12.11
  • requests ==2.28.2
backend/pyproject.toml pypi
  • black ^22.6.0 develop
  • flake8 ^5.0.4 develop
  • isort ^5.10.1 develop
  • CacheControl ^0.12.11
  • SQLAlchemy ^1.4.40
  • attrs ^22.1.0
  • fastapi ^0.79.0
  • gunicorn ^20.1.0
  • psycopg2 ^2.9.3
  • python >=3.8,<3.12
  • python-dotenv ^0.20.0
  • requests ^2.28.1
  • scipy ^1.9.1
  • sqlalchemy-cockroachdb ^1.4.3
  • uvicorn ^0.18.2
backend/requirements.txt pypi
  • anyio ==3.6.2
  • attrs ==22.2.0
  • cachecontrol ==0.12.11
  • certifi ==2022.12.7
  • charset-normalizer ==3.0.1
  • click ==8.1.3
  • colorama ==0.4.6
  • fastapi ==0.79.1
  • greenlet ==2.0.1
  • gunicorn ==20.1.0
  • h11 ==0.14.0
  • idna ==3.4
  • msgpack ==1.0.4
  • numpy ==1.24.1
  • psycopg2 ==2.9.5
  • pydantic ==1.10.4
  • python-dotenv ==0.20.0
  • requests ==2.28.2
  • scipy ==1.10.0
  • setuptools ==65.7.0
  • sniffio ==1.3.0
  • sqlalchemy ==1.4.46
  • sqlalchemy-cockroachdb ==1.4.4
  • starlette ==0.19.1
  • typing-extensions ==4.4.0
  • urllib3 ==1.26.14
  • uvicorn ==0.18.3
scripts/pyproject.toml pypi
  • matplotlib ^3.6.2
  • notebook ^6.4.6
  • pandas ^1.5.2
  • python ^3.8
  • scikit-learn ^1.2.0
  • statbotics ^2.0.1