{"id":15149229,"url":"https://github.com/q-frc/scouter","last_synced_at":"2026-01-21T10:35:53.532Z","repository":{"id":216163446,"uuid":"740317016","full_name":"Q-FRC/Scouter","owner":"Q-FRC","description":"A scouting application for use in the FRC","archived":false,"fork":false,"pushed_at":"2025-03-28T12:31:54.000Z","size":2774,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T13:34:41.567Z","etag":null,"topics":["frc","scout","scouting"],"latest_commit_sha":null,"homepage":"https://q-frc.github.io/Scouter/","language":"QML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Q-FRC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-08T05:08:01.000Z","updated_at":"2025-03-28T12:31:58.000Z","dependencies_parsed_at":"2024-03-21T01:24:12.111Z","dependency_job_id":"af987882-f842-4639-b2b6-3d79ae4ef426","html_url":"https://github.com/Q-FRC/Scouter","commit_stats":{"total_commits":34,"total_committers":1,"mean_commits":34.0,"dds":0.0,"last_synced_commit":"bc03248a92b2dbba4ba1db49519253744ee45dc4"},"previous_names":["binex-dsk/qfrcscouter","crueter/qfrcscouter","q-frc/scouter"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q-FRC%2FScouter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q-FRC%2FScouter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q-FRC%2FScouter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q-FRC%2FScouter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Q-FRC","download_url":"https://codeload.github.com/Q-FRC/Scouter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601496,"owners_count":20964863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["frc","scout","scouting"],"created_at":"2024-09-26T13:43:14.177Z","updated_at":"2026-01-21T10:35:53.524Z","avatar_url":"https://github.com/Q-FRC.png","language":"QML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QFRCScouter\nA powerful, cross-platform, QR-based, configurable scouting app for FRC, designed to be simple-to-use for scouters and modular for developers and hosters.\n\n## Usage\n\n### Team Info\nUsage of QFRCScouter begins on the \"Team Info\" page. If not on the web app, the user needs to have the schedule downloaded; see \"Schedule\" below.\n\nThe match number is next, which can be incremented and decremented with the plus and minus buttons.\n\nFinally, if the schedule is set up properly, the scouter can set the alliance station they plan to scout. The scouting app will automatically set the team number for each match. The selected station \u0026 team number will always be displayed at the bottom.\n\n![TeamInfo](./img/TeamInfo.png)\n\n### Auto Data\nScouting for autonomous data begins. Press the plus and minus buttons on each of the relevant fields as needed, and select the checkboxes at the end of the autonomous period as needed.\n\n![Auto](./img/Auto.png)\n\n### Teleop Data\nScouting for teleop \u0026 endgame data begins. Operation here is identical to Auto scouting.\n\n![Tele](./img/Tele.png)\n\n### QR Code\nYou're done! Present your QR code to the scanner to be put into the spreadsheet. Once done, press \"Next\". This will bring you to the beginning, and increment the match number, selecting the correct team for your alliance station.\n\n![QRCode](./img/QRCode.png)\n\nIf the scan failed and you already pressed \"Next\", OR if you wish to change some data, press \"Back to QR Code\" on the first page.\n\n![Welcome](./img/Welcome.png)\n\n### Input Data\nOn a computer with the SPAMalytics sheet open, plug in a USB QR scanner. Hover your mouse over a blank \"Team Number\" section.\n\n![Blank](./img/Blank.png)\n\nScan the QR code from the scouting device and all the data will be automatically input.\n\n![Filled](./img/Filled.png)\n\n## Self-Hosting\n\n### Start\nFirst, fork the repo.\n\nNext, you'll need to enable GitHub Pages -- go to your repo Settings -\u003e Pages -\u003e Branch, and select the master branch.\n\nNext, go to Secrets and Variables -\u003e Actions -\u003e Repository Secrets.\n\nNow, add a secret named `TBA_AUTH_KEY`. Go to https://thebluealliance.com, then to your account settings. Create or log into an account. Scroll down to \"Read API Keys\", and add a new key. Copy this key, and put it into the `TBA_AUTH_KEY` secret.\n\nIf you plan to put out release builds, then you will need to set up an Android Keystore \u0026 the secrets for it. See https://github.com/r0adkll/sign-android-release for info on each of the variables.\n\nYour final secrets should look like this:\n\n![Secrets](./img/Secrets.png)\n\nPush any desired changes (config, schedule, etc) and your page will be hosted at https://\\\u003cyourName\\\u003e.github.io/Scouter. You can access native builds in the Actions tab of your repository.\n\n### Schedule\nThe match schedule can be downloaded at any time and kept offline for native platforms, by entering the relevant event code into the \"Event Code\" box on the \"Team Info\" page and pressing Download. Once downloaded once, it doesn't need to be downloaded again on future runs unless it's a different event.\n\nFor the web app, the included match schedule is used. This schedule can be updated with the `getSchedule.sh` script. Syntax:\n\n```\n./getSchedule.sh \u003ceventCode\u003e \u003cTBA auth key\u003e\n```\n\nThen push these changes to your fork and your GitHub pages will have the match schedule built-in.\n\nOnce the schedule is all set, scouters can select an alliance station to use. The scouter will automatically select the proper team number for each match depending on your selected station.\n\n### Multi-platform\nQFRCScouter has several platforms it can run on:\n\n- Windows\n- Linux\n- Android\n- Web\n\nThe web app is available directly through this repo's GitHub pages. If you wish to provide your own config, you can fork this repository, update the config.json (according to the Configuration section below), and GitHub actions will take care of the rest--ensure to enable Pages in the repository settings.\n\nFurthermore, the web app can be downloaded and run locally; go the the [latest actions run](https://github.com/Q-FRC/Scouter/actions), download the `github-pages` artifact, and open `index.html` in your browser. This is completely offline!\n\nLinux, Android, and Windows users are encouraged to use the native options, however.\n\n### Configuration\nQFRCScouter is configurable through a simple JSON file. The format is described below.\n\n- `welcome` (str): The welcome notice that shows up on the first page of the app.\n- `button` (color): The accent color of most of the buttons present in the app.\n- `buttonPressed` (color): What color most of the buttons will be when pressed down.\n- `buttonText` (color): The text color of most of the buttons present in the app.\n- `backgroundColor` (color): The color of the background of the application.\n- `accent` (color): The accent of some small parts of the application.\n- `qmlAccent` (color): The QML accent used for certain UI elements. See the table at the bottom for options.\n- `textColor` (color): The color of most of the text of the application.\n- `pages` (obj): Describes the data present in the auto, teleop, and scale pages.\n    * `auto` (obj) \u0026 `tele` (obj): Contains data present in the auto and teleop data pages.\n        - `columns` (int): The number of columns on the page (default 2).\n        - `data` (arr): The actual data to use.\n            - `type` (str): either `\"bool\"`, `\"int\"`, or `\"string\"` for a checkbox, spin box, or list of checkboxes, respectively.\n            - `text` (str): The text shown next to the spinbox or checkbox.\n            - `columns` (int): How many columns this should take up.\n            - `int` fields:\n                * `color` (color): The accent color of the button, useful for quick differentiation for scouters.\n                * `textColor` (color): The color of the text of the button.\n                * `min` (int): The minimum value.\n                * `max` (int): The maximum value.\n            - `string` fields:\n                * `choices` (string list): What choices to present in the list.\n\nAvailable QML accents:\n\n![accents](https://github.com/user-attachments/assets/489e6851-612b-4d41-805a-3872617eb0f6)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fq-frc%2Fscouter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fq-frc%2Fscouter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fq-frc%2Fscouter/lists"}