├── .browserslistrc ├── .editorconfig ├── .github └── workflows │ └── commitlint.yml ├── .gitignore ├── README.md ├── angular.json ├── firebase.json ├── firestore.indexes.json ├── firestore.rules ├── karma.conf.js ├── ngsw-config.json ├── package-lock.json ├── package.json ├── pnpm-lock.yaml ├── scripts ├── create.js └── firebase.js ├── src ├── app │ ├── app-routing.module.ts │ ├── app.component.html │ ├── app.component.scss │ ├── app.component.spec.ts │ ├── app.component.ts │ ├── app.module.ts │ ├── components │ │ └── form │ │ │ ├── counter │ │ │ ├── counter.component.html │ │ │ ├── counter.component.scss │ │ │ ├── counter.component.spec.ts │ │ │ └── counter.component.ts │ │ │ ├── form.component.html │ │ │ ├── form.component.scss │ │ │ ├── form.component.spec.ts │ │ │ ├── form.component.ts │ │ │ ├── text │ │ │ ├── text.component.html │ │ │ ├── text.component.scss │ │ │ ├── text.component.spec.ts │ │ │ └── text.component.ts │ │ │ ├── timer │ │ │ ├── timer.component.html │ │ │ ├── timer.component.scss │ │ │ ├── timer.component.spec.ts │ │ │ └── timer.component.ts │ │ │ ├── toggle │ │ │ ├── toggle.component.html │ │ │ ├── toggle.component.scss │ │ │ ├── toggle.component.spec.ts │ │ │ └── toggle.component.ts │ │ │ └── widget-row │ │ │ ├── widget-row.component.html │ │ │ ├── widget-row.component.scss │ │ │ ├── widget-row.component.spec.ts │ │ │ └── widget-row.component.ts │ ├── directives │ │ ├── long-press.directive.spec.ts │ │ └── long-press.directive.ts │ ├── models │ │ ├── schema.model.ts │ │ ├── scout.model.ts │ │ ├── stage.model.ts │ │ └── user.model.ts │ ├── pages │ │ ├── admin-panel │ │ │ ├── admin-panel.component.html │ │ │ ├── admin-panel.component.scss │ │ │ ├── admin-panel.component.spec.ts │ │ │ ├── admin-panel.component.ts │ │ │ ├── schema-editor │ │ │ │ ├── schema-editor.component.html │ │ │ │ ├── schema-editor.component.scss │ │ │ │ ├── schema-editor.component.spec.ts │ │ │ │ └── schema-editor.component.ts │ │ │ └── scout-overview │ │ │ │ ├── scout-overview.component.html │ │ │ │ ├── scout-overview.component.scss │ │ │ │ ├── scout-overview.component.spec.ts │ │ │ │ ├── scout-overview.component.ts │ │ │ │ └── team-scouts │ │ │ │ ├── team-scouts.component.html │ │ │ │ ├── team-scouts.component.scss │ │ │ │ ├── team-scouts.component.spec.ts │ │ │ │ └── team-scouts.component.ts │ │ └── fun-zone │ │ │ ├── fun-zone.component.html │ │ │ ├── fun-zone.component.scss │ │ │ ├── fun-zone.component.spec.ts │ │ │ ├── fun-zone.component.ts │ │ │ ├── leaderboard │ │ │ ├── leaderboard.component.html │ │ │ ├── leaderboard.component.scss │ │ │ ├── leaderboard.component.spec.ts │ │ │ └── leaderboard.component.ts │ │ │ ├── matches │ │ │ ├── matches.component.html │ │ │ ├── matches.component.scss │ │ │ ├── matches.component.spec.ts │ │ │ └── matches.component.ts │ │ │ └── simon │ │ │ ├── simon.component.html │ │ │ ├── simon.component.scss │ │ │ ├── simon.component.spec.ts │ │ │ └── simon.component.ts │ ├── services │ │ ├── admin.guard.spec.ts │ │ ├── admin.guard.ts │ │ ├── authentication.service.spec.ts │ │ ├── authentication.service.ts │ │ ├── backend.service.spec.ts │ │ ├── backend.service.ts │ │ ├── the-blue-alliance.service.spec.ts │ │ └── the-blue-alliance.service.ts │ └── utilities │ │ └── widget.ts ├── assets │ ├── .gitkeep │ ├── icons │ │ ├── icon-128x128.png │ │ ├── icon-144x144.png │ │ ├── icon-152x152.png │ │ ├── icon-192x192.png │ │ ├── icon-384x384.png │ │ ├── icon-512x512.png │ │ ├── icon-72x72.png │ │ ├── icon-96x96.png │ │ ├── icon-ios.png │ │ └── icon.png │ └── sounds │ │ ├── error.mp3 │ │ ├── simonSound1.mp3 │ │ ├── simonSound2.mp3 │ │ ├── simonSound3.mp3 │ │ └── simonSound4.mp3 ├── environments │ ├── Secrets.json │ ├── environment.prod.ts │ └── environment.ts ├── favicon.ico ├── index.html ├── main.ts ├── manifest.webmanifest ├── polyfills.ts ├── styles.scss └── test.ts ├── tsconfig.app.json ├── tsconfig.json └── tsconfig.spec.json /.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # For the full list of supported browsers by the Angular framework, please see: 6 | # https://angular.io/guide/browser-support 7 | 8 | # You can see what browsers were selected by your queries by running: 9 | # npx browserslist 10 | 11 | last 1 Chrome version 12 | last 1 Firefox version 13 | last 2 Edge major versions 14 | last 2 Safari major versions 15 | last 2 iOS major versions 16 | Firefox ESR 17 | not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. 18 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /.github/workflows/commitlint.yml: -------------------------------------------------------------------------------- 1 | name: Lint Commit Messages 2 | on: [push] 3 | 4 | jobs: 5 | commitlint: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v2 9 | with: 10 | fetch-depth: 0 11 | - uses: wagoid/commitlint-github-action@v4 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | # Only exists if Bazel was run 8 | /bazel-out 9 | 10 | # dependencies 11 | /node_modules 12 | 13 | # profiling files 14 | chrome-profiler-events*.json 15 | 16 | # IDEs and editors 17 | /.idea 18 | .project 19 | .classpath 20 | .c9/ 21 | *.launch 22 | .settings/ 23 | *.sublime-workspace 24 | 25 | # IDE - VSCode 26 | .vscode/* 27 | !.vscode/settings.json 28 | !.vscode/tasks.json 29 | !.vscode/launch.json 30 | !.vscode/extensions.json 31 | .history/* 32 | 33 | # misc 34 | /.sass-cache 35 | /connect.lock 36 | /coverage 37 | /libpeerconnection.log 38 | npm-debug.log 39 | yarn-error.log 40 | testem.log 41 | /typings 42 | /.firebaserc 43 | 44 | # System Files 45 | .DS_Store 46 | Thumbs.db 47 | 48 | /src/environments/firebase.json 49 | /.firebase 50 | /build 51 | /src/environments/secrets.json 52 | .angular -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
16 | 💡 Features 17 | · 18 | 🏃 Getting Started 19 | · 20 | 🚗 Roadmap 21 | · 22 | ⚠️ Common Issues 23 | · 24 | ❓ FAQ 25 |
26 | 27 | ## Features 28 | 29 | - Customizable Schema 30 | 31 | - Sections and widgets can be customized to fit your team's analysis criteria. 32 |
33 |
34 |
42 |
43 |
49 |
50 |
75 | Note: 76 | You cannot send your response until you are logged in! 77 |
78 | 87 |Admin | 23 |
24 | |
28 | Name | 32 |{{ element.name }} | 33 |
---|
48 | Missing Scouts 49 | | 50 |51 | {{ element.missing }} 52 | | 53 |57 | Incorrect Scouts 58 | | 59 |60 | {{ element.incorrect }} 61 | | 62 |
---|
8 | {{ property }} 9 | | 10 |11 | {{ scout[property] }} 12 | | 13 |
---|
Position | 8 |{{ element.position }} | 9 |Name | 13 |{{ element.name }} | 14 |Score | 18 |{{ element.score }} | 19 |
---|