https://github.com/avgupta456/statbotics
📈 Modernizing Data Analytics for FRC Robotics
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
Keywords from Contributors
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
Metadata Files
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
- Website: abhijitgupta.io
- Repositories: 9
- Profile: https://github.com/avgupta456
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
Top Committers
| Name | 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
- Homepage: https://statbotics.io
- Documentation: https://statbotics.readthedocs.io/
- License: MIT
-
Latest release: 3.0.0
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- @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
- 576 dependencies
- 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
- 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
- cachecontrol ^0.12.11
- python ^3.8
- requests ^2.28.2
- cachecontrol ==0.12.11
- requests ==2.28.2
- 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
- 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
- matplotlib ^3.6.2
- notebook ^6.4.6
- pandas ^1.5.2
- python ^3.8
- scikit-learn ^1.2.0
- statbotics ^2.0.1