Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/firstteam102/scoutradioz
Scoutradioz, a multi-team FRC scouting app developed by The Gearheads. Designed for and running on Amazon Web Services.
https://github.com/firstteam102/scoutradioz
aws-lambda first-robotics-competition frc frc-scouting nodejs
Last synced: 12 days ago
JSON representation
Scoutradioz, a multi-team FRC scouting app developed by The Gearheads. Designed for and running on Amazon Web Services.
- Host: GitHub
- URL: https://github.com/firstteam102/scoutradioz
- Owner: FIRSTTeam102
- License: other
- Created: 2019-03-30T18:26:32.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T01:38:32.000Z (19 days ago)
- Last Synced: 2024-10-26T14:53:27.713Z (17 days ago)
- Topics: aws-lambda, first-robotics-competition, frc, frc-scouting, nodejs
- Language: TypeScript
- Homepage: https://scoutradioz.com
- Size: 78.6 MB
- Stars: 24
- Watchers: 6
- Forks: 10
- Open Issues: 67
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Scoutradioz logo](https://scoutradioz.s3.amazonaws.com/prod/images/brand-logos/scoutradioz-black-border-md.png)
## [scoutradioz.com](https://scoutradioz.com)
Scoutradioz is a multi-year FRC scouting app developed by The Gearheads which runs on Amazon Web Services (AWS).Initially created in [2018](https://github.com/firstteam102/scoringapp-2018/), Scoutradioz has continually evolved as a platform. Here is a list of some of the features Scoutradioz offers:
- Modular and configurable pit & match scouting surveys, so your organization can pick exactly what info you want to record and show
- Automatic, individualized pit & match scouting assignments
- Advanced reports and metrics
- Event management tools such as auditing match assignments, swapping scouters in and out, and managing a list of members
- And of course, it's completely free!**[Please visit the wiki](https://github.com/FIRSTTeam102/scoutradioz/wiki) for documentation on how to use the app.**
## App structure
We use
[AWS **L**ambda](https://aws.amazon.com/lambda), [**E**xpress](https://npmjs.com/package/express),
[**Mo**ngoDB](https://www.mongodb.com/), and [**N**ode](https://nodejs.com) (LEMoN); as well as [Pug](https://npmjs.com/package/pug),
[Atlas](https://www.mongodb.com/atlas/database), [S3](https://aws.amazon.com/s3),
[The Blue Alliance API](https://www.thebluealliance.com/apidocs), and many other libraries and packages.### Primary
This is the primary Lambda function that serves most user requests. The https://scoutradioz.com website runs on the Primary function.### Upload
This Lambda function handles two things:
- Photo uploads to AWS S3
- Dynamic generation of [header images](https://upload.scoutradioz.com/prod/generate/upcomingmatch?match_number=6&comp_level=qm&blue1=5842&blue2=117&blue3=4780&red1=4547&red2=102&red3=2051&assigned=red2) for push notifications, notifying scouters of an upcoming match assignment_(The latter was introduced after upload.scoutradioz.com was created, but both routes require [image processing](https://www.npmjs.com/package/jimp) so we combined the two.)_
### Webhook
Scoutradioz is subscribed to [The Blue Alliance's Firehose](https://www.thebluealliance.com/apidocs/webhooks#firehose), which provides the site with up-to-date information on every supported match and event. This Lambda function handles data provided by the Firehose, and sends push notifications to scouters who are assigned to an upcoming match & have notifications enabled.### Helper packages
**NOTE:** Originally, the helper packages were published on NPM with the prefix `@firstteam102` - https://www.npmjs.com/org/firstteam102 - but to simplify the process of updating the code, they are no longer being published to NPM and instead are being linked internally. For example, in `primary`'s `package.json`, `"@firstteam102/scoutradioz-utilities": "1.0.2"` has been changed to `"scoutradioz-utilities": "../scoutradioz-utilities/"`. Most of the `@firstteam102` packages on NPM have been deprecated.
#### scoutradioz-utilities
A package that contains our database manager / caching wrapper.#### scoutradioz-helpers
A package that contains helper functions needed across multiple packages, such as parsing match data, calculating metrics, and listing team images.#### scoutradioz-http-errors
A small package that exposes a small handful of HTTP errors for use inside Express routes. We created this one instead of alternatives because it has no dependencies and only contains what we need.#### scoutradioz-eslint
ESLint plugin, to assist development, which enforces a title being provided any time a page is rendered.## Localization
[![Weblate](https://hosted.weblate.org/widgets/scoutradioz/-/287x66-black.png)](https://hosted.weblate.org/engage/scoutradioz)We're translating Scoutradioz so FIRST teams and their members, friends, and family from all over the globe can use it in their preferred languages. Translation contributions can be submitted using [Weblate](https://hosted.weblate.org/engage/scoutradioz).