{"id":15149153,"url":"https://github.com/pwnagerobotics/scoutingpass","last_synced_at":"2025-05-15T12:05:41.229Z","repository":{"id":42621961,"uuid":"445945736","full_name":"PWNAGERobotics/ScoutingPASS","owner":"PWNAGERobotics","description":"A FRC Competition Scouting Application","archived":false,"fork":false,"pushed_at":"2025-01-22T06:14:24.000Z","size":35162,"stargazers_count":74,"open_issues_count":13,"forks_count":546,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-15T12:05:35.530Z","etag":null,"topics":["first","first-robotics-competition","frc","frc-scouting","pwnage","scouting"],"latest_commit_sha":null,"homepage":"https://pwnagerobotics.github.io/ScoutingPASS/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PWNAGERobotics.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":"2022-01-08T22:51:08.000Z","updated_at":"2025-05-07T20:16:36.000Z","dependencies_parsed_at":"2023-02-14T04:45:58.270Z","dependency_job_id":"5d77215a-d8fa-4f9a-aa9e-311d006a951e","html_url":"https://github.com/PWNAGERobotics/ScoutingPASS","commit_stats":{"total_commits":383,"total_committers":12,"mean_commits":"31.916666666666668","dds":0.3263707571801566,"last_synced_commit":"9e5672b60196fcd57868174088146c884aa9b98a"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PWNAGERobotics%2FScoutingPASS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PWNAGERobotics%2FScoutingPASS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PWNAGERobotics%2FScoutingPASS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PWNAGERobotics%2FScoutingPASS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PWNAGERobotics","download_url":"https://codeload.github.com/PWNAGERobotics/ScoutingPASS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254337613,"owners_count":22054253,"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":["first","first-robotics-competition","frc","frc-scouting","pwnage","scouting"],"created_at":"2024-09-26T13:42:17.248Z","updated_at":"2025-05-15T12:05:36.214Z","avatar_url":"https://github.com/PWNAGERobotics.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n# Scouting P.A.S.S.\n\n#### A scouting system for FIRST FRC competitions developed by [PWNAGE - Team #2451](https://pwnagerobotics.org).\n\n\u003ca href=\"https://PWNAGERobotics.github.io/ScoutingPASS\"\u003eLive Demo\u003c/a\u003e . \u003ca href=\"https://PWNAGERobotics.github.io/ScoutingPASS/pit.html\"\u003ePit Scouting\u003c/a\u003e . \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e . \u003ca href=\"#faq\"\u003eFAQ\u003c/a\u003e\n\n![Stars](https://img.shields.io/github/stars/PWNAGERobotics/ScoutingPASS?style=plastic) ![Forks](https://img.shields.io/github/forks/PWNAGERobotics/ScoutingPASS?style=plastic) ![watchers](https://img.shields.io/github/watchers/PWNAGERobotics/ScoutingPASS?style=plastic)\n\u003ch1\u003e\u003c/h1\u003e\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#live-app\"\u003eLive Application\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#description\"\u003eDescription\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#pit-scouting\"\u003ePit Scouting\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#how-we-scout\"\u003eHow We Scout\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#faq\"\u003eFAQ\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#things-to-add\"\u003eThings To Add Someday\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#2025-changes\"\u003e2025 Changes\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#2024-changes\"\u003e2024 Changes\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#2023-changes\"\u003e2023 Changes\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003cdiv id=\"features\"\u003e\u003c/div\u003e\n\n# Features:\n### **Configurable**\n  * A JSON configuration file controls the elements of the game to track.  Create a new configuration file each year for the new game, or tweak it week to week to refine your scouting.  No additional coding is needed.  See the [Configuration Docs](docs/Configuration.md) for details.\n### **Universal**\n  * Works on any device that has a web browser that runs JavaScript.  Apple, Android, phones, tablets, laptops, it works on them all.\n### **Low/No Bandwidth**\n  * Neither WiFi nor Cellular is required at the event.  The web page can be downloaded before the event and doesn't need to be reloaded.\n### **Easy hosting**\n  * Self-hosting via GitHub. (See directions below)\n### [The Blue Alliance Integration](https://thebluealliance.com)\n  * Pull data for the event from The Blue Alliance.  Team #s, Team Names and Schedules\n### [Google Sheets Integration](docs/GoogleSheets.md)\n  * Details on how to use ScoutingPASS with Google Sheets spreadsheet\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"live-app\"\u003e\u003c/div\u003e\n\n## Live Application\nThis repository is hosted on GitHub Pages.  You can view a live version of it here: https://PWNAGERobotics.github.io/ScoutingPASS.  (You can host your version of the ScoutingPASS application on GitHub Pages as well.)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"description\"\u003e\u003c/div\u003e\n\n## Description:\nScouting PASS is a web page displayed in a browser.  It consists of 5 \"swipeable\" pages each representing a specific aspect of a FRC match: Pre-Match, Autonomous, Teleop, End Game and Post-Match.  A configuration file allows the screens to be easily modified to collect any metrics that are important for your scouting needs.  The scouter can use the \"Next\" or \"Prev\" buttons or a swiping motion on touchscreens to move between pages.  A QR code is dynamically generated on the last page.  This QR code can be scanned to transfer the data to your data repository.  The QR code can also be stored for processing later using a screenshot or camera.  Once the data has been transferred, the scout hits the clear button and the form is cleared out and ready for the next match.\n\nConfiguration is as easy as creating a JSON file with the fields that your scouting team wants to track.  Some fields are common to all teams and years.  The basic fields are:\n* Scouter - who is scouting this robot\n* Event - the event that is being scouted\n* Level - The level of competition (Qualifications, Double Elimination, Finals, etc)\n* Match - the match number that is being scouted\n* Robot - Which robot is being scouted (Red-1, Blue-1, etc.)\n* Team # - What team is being scouted\n\nUser defined fields can be of several different types:\n* Text - A freeform text field\n* Number - Like text, but restricted to numbers\n* Counter - A counter that can be increased or decreased with a click or touch\n* Radio Buttons - A single choice between several options (Ball pick up: ()Ground ()Loading Bay ()Both ()None)\n* Checkbox - A single on/off or yes/no check box (Exit Start Line?  []Yes if checked)\n* Timer - A time counter to count the number of seconds it takes to do something (How long did it take to climb?)\n* Cycle Timer - Start the timer and with 1 click track cycle times of robots.  \n* Field Image - Using an image of the field, select positions on the field. (Use to record starting point or shooting locations)\n\nThese should cover most of your scouting team's data collection needs.  PWNAGE's 2020 Infinite Recharge configuration file is included as an example.  The import of the configuration file is in index.html and would need to be updated to import a different configuration file. Only import one configuration file.\n\nSince this is an HTML/JavaScript web page, scouters can use almost any device that has a web browser.  If the device has a touchscreen the screen can be used to swipe back and forth between pages and interact with the data elements.  The webpage only needs to be loaded once.  Once loaded the functionality and data is stored locally in the webpage and doesn't need to be reloaded.  The QR code generation and clear button only resets the form and does not cause the page to reload.  This means that a cellular or WiFi connection is not needed at the competition as long as the webpage is loaded before the event.\n\nIf your team has a The Blue Alliance API access token (See https://www.thebluealliance.com/apidocs) the web page will pull team and schedule information from The Blue Alliance.  Put your access token in the authKey variable in resources/js/TBAInterface.js and when the web page is loaded it will load the data (for the event code in the Event field).  This enables some features on the PreMatch Screen.  With the team information the team name will populate just below the Team # field when the team # field is filled in.  If the schedule information is available when the web page is loaded then when the match and robot fields are populated it will automatically populate the team number and team name for the scouter.  This reduces typo errors when entering the team numbers manually.  (Schedules are usually published before the event a day or two before matches start.  However, it may be delayed for various reasons and may only be published hours or minutes before the start of a competition.)\n\nThe QR code can be read by a web camera or hand scanner to import the data into the Excel scouting database.  The hand scanner used reads the QR code and inputs the data as if it is typed in from a keyboard.  Included in this repository is the Excel code to pop up an input window and parse the QR data into a row in Excel. (see the [Excel directory](Excel))\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"getting-started\"\u003e\u003c/div\u003e\n\n## Getting Started:\nIt's really simple to get started:\n* Fork GitHub project (as public if you want to host on GitHub Pages)\n* Change configuration file (REEFSCAPE example in [2025](2025) folder)\n  * Change the data elements to capture (OPTIONAL: only if desired)\n* Enable GitHub Pages in your repository settings ([GitHub Pages Instructions](https://pages.github.com/))\n* Load page via GitHub pages (https://\u003cyour_username\u003e.github.io/ScoutingPASS)\n\u003cp\u003e\nTo enable The Blue Alliance API:\n\n* Put your API token in the authKey variable in resources/js/TBAInterface.js.  (line 4)\n* Reload your page.\n\nNote: For this to work, the schedule has to be posted to The Blue Alliance.  That usually doesn't happen until just before the event. (a few days to a few hours)  To test this you can point it to a past event.   Set the event to 2020ilch.   Reload the page to load the schedule for that event. Select Match 6 and Blue-2.  You should see it populate the Team # to 2451, and the next line will show the team name, PWNAGE.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"pit-scouting\"\u003e\u003c/div\u003e\n\n## Pit Scouting:\n\nScountingPASS now supports Pit Scouting\n\nTo access the pit scouting page, add '/pit.html' to the end of your URL.  (i.e. http://pwnagerobotics.github.io/ScoutingPASS/pit.html)\n\nIt works almost exactly like the main scouting pages, except there is only one page of input.   Once your scouters have filled out the information, swipe left to display the QR code.   That QR code can be scanned to push the data to Excel.\n\nThe default configuration file is 2025/reefscape_pit_config.js.   You can modify that configuration to meet your needs.\n\nWe realize that you may not want to lug your computer around the pits to scan each QR code.  Our recommendation is to have your scouters take screenshots of the QR codes.   Then when they are back to the scouting computer, just go through the photos to scan each QR code.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"how-we-scout\"\u003e\u003c/div\u003e\n\n## How We Scout\n\nWe have 6 scouts per match.  One for each robot.  Each scout has this website pre-loaded on their phone or a team tablet.\n\nThe lead scout has a laptop with Excel and a wired handheld scanner in the stands with the scouts.  ([Nadomoo Bur3072 - ~$55](https://www.amazon.com/NADAMOO-Wireless-Barcode-Cordless-Computer/dp/B06Y2RMM51?th=1))\n\nAt the end of each match, the lead scout kicks off an Excel macro that pops up an input box. (See an example Excel spreadsheet in the Excel directory)  The scouts show their QR code to the lead scout, one by one, who scans the QR code.  The data from the QR code is parsed and a row is added to the Scouting Data Table in Excel.   If the table doesn't exist, it will create it.\n\nWe use custom Excel screens and graphs to determine a strategy for each of our matches.\n\nThe night before Eliminations we load the Excel data into Tableau where we use the data mining/graphing capabilities to make a pick list.\n\nThe pick list can be modified up to Alliance Selection based on the data that is continued to be collected up to the last match.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"contributing\"\u003e\u003c/div\u003e\n\n## Contributing\n\nContributions are what makes the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply [open an issue](https://github.com/PWNAGERobotics/ScoutingPASS/issues/new) if anything is missing or unclear in this\n  documentation. to let us know what you'd like changed.\n\nDon't forget to give the project a star!\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"faq\"\u003e\u003c/div\u003e\n\n## Frequently Asked Questions:\n\n\u003cdetails\u003e\u003csummary\u003eWhy hardcode and disable the event field?\u003c/summary\u003e\n\u003cbr /\u003e\n\u003cstrike\u003eThe biggest reason is so it doesn't get changed during the event.  If it's changed and you're using the TBA features they will not work correctly.  There is no reason to change it during the event and easy to change for your next event.  One more way to reduce mistakes during the event.\u003c/strike\u003e\n\nIn past years the event has been protected and can only be changed with a GitHub commit.  As the popularity of ScoutingPASS grows more teams want to use the default ScoutingPASS site.  We've unprotected the event field so that teams can use it for any event.\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eWhy doesn't my configuration file load?\u003c/summary\u003e\n\u003cbr /\u003e\nJSON is a stickler for commas and brackets.  If you see JSON errors check your JSON for missing or extra commas or brackets when adding or removing elements\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eWhat does P.A.S.S. stand for?\u003c/summary\u003e\n\u003cbr /\u003e\nPWNAGE Analytical Strategy System\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eHow does the Field Image element work?\u003c/summary\u003e\n\u003cbr /\u003e\nThe Field Image element allows tracking of the location of a robot.  It does this by dividing the field into 72 different boxes, 12 boxes (across the longest side of a field) by 6 boxes (across the shortest side of the field).   A box represents a 4.5' x 4.5' square on the field.  Each box is numbered from 1 to 72 per the diagram below.\n\u003cbr /\u003e\n\u003cbr /\u003e\nField Location Key:\n\n![Field Location Key](resources/images/field_location_key.png)\n\nWhen a scouter clicks on the image the coordinates of the click location are translated into a box and that number is stored into an array.   The array is passed as the data for the field element.  \n\nThe scouter can click as many times as they want and duplicate clicks (boxes) are recorded.  \n\nThis could be used (as in our demo) to collect shooting information and create heat maps for each robot.\n\nNote: The Auto Start (as) element is special in that it will only keep track of one location.  There can only be one starting location.  Therefore if you click more than once it will only record the last location.\n\u003c/details\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"things-to-add\"\u003e\u003c/div\u003e\n\n## Things we might want to add someday:\n* Add images to Pit Scouting\n* More options for processing the QR code\n* Mac version of Excel spreadsheet\n* Drag and Drop configuration editing (Avoid JSON editing)\n* Better Google Sheets integration/instructions\n* Improve look and feel\n* Create videos to illustrate how to setup, configure, and use the application\n* Better error messages\n* Pre-parse JSON for validity to avoid cryptic errors when parsing\n* Incorporate [Statbotics.io](http://statbotics.io/) data\n* See [issues](https://github.com/PWNAGERobotics/ScoutingPASS/issues) for more\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"license\"\u003e\u003c/div\u003e\n\n## License\nDistributed under the GNU GPL v3.0 License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"2025-changes\"\u003e\u003c/div\u003e\n\n## 2025 Season Updates\n\n\u003cdetails open\u003e\n  \u003csummary\u003e2025 Season Updates\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eNew configurations added for match and pit scouting as well as the new field image\u003c/li\u003e\n    \u003cli\u003eClean up files structure which was getting cluttered with all the years in the top folder.  See old configuration files in the archive folder.\u003c/li\u003e\n    \u003cli\u003eWarning: Default dataFormat continues to be tab delimited (tsv)\u003cbr\u003eThis allows for easier Excel input.  No Excel macro needed.  Just put the cursor in Column A of a blank row and scan the QR code.  To switch back change the dataFormat configuration item from tsv to ksv.\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"2024-changes\"\u003e\u003c/div\u003e\n\n## 2024 Season Updates\n\n\u003cdetails\u003e\n  \u003csummary\u003e2024 Season Updates\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eNew configurations added for match and pit scouting as well as the new field image\u003c/li\u003e\n    \u003cli\u003eWarning: Default dataFormat has been switched from semicolon delimited (ksv) to tab delimited (tsv)\u003cbr\u003eThis allows for easier Excel input.  No macro needed.  Just put the cursor in the Column A and scan the QR code.  To switch back change the dataFormat configuration from tsv to ksv.\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv id=\"2023-changes\"\u003e\u003c/div\u003e\n\n## 2023 Season Updates\n\n\u003cdetails\u003e\n  \u003csummary\u003e2023 Season Updates\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eAdded [configuration documentation](docs/Configuration.md)\u003c/li\u003e\n    \u003cli\u003eNew Timer component - Start/Stop and Clear Buttons\u003c/li\u003e\n    \u003cli\u003eNew Cycle component - Keep track of cycle times\u003c/li\u003e\n    \u003cli\u003eImproved Clickable Field component - Now you can configure the number of boxes and tie it to a Cycle Timer\u003c/li\u003e\n    \u003cli\u003e[Excel VBA functions](Excel/VBA_FUNCTIONS_2023.bas) and [examples](Excel/2023_grid_and_cycle_time_example.xlsm) to parse and calculate the Grid field clickable image output\u003c/li\u003e\n    \u003cli\u003e[Excel VBA function](Excel/VBA_FUNCTIONS_2023.bas) and [examples](Excel/2023_grid_and_cycle_time_example.xlsm) to parse and calculate the average cycle time\u003c/li\u003e\n    \u003cli\u003eJSON simplification - The JSON structure has been simplified to make it a little easier to maintain.  The previous year's configuration files have been updated to use the new structure.\u003c/li\u003e\n    \u003cli\u003eAdd \"Flip Image\" button to the Field Image component\u003c/li\u003e\n    \u003cli\u003eAdd \"tooltip\" option for components - Tooltips will appear when hovering over the name of the component\u003c/li\u003e\n    \u003cli\u003eBug Fix: Two field image elements on the same page will now render correctly\u003c/li\u003e\n    \u003cli\u003eGoogle Sheets integration (See the [Google Sheets](docs/GoogleSheets.md) page for more details)\u003c/li\u003e\n    \u003cli\u003eConfigurable checkbox values in the configuration file.  Defaults to Y/N.  Can be set to T/F or 1/0.  See line 5 of 2022/RR_config.js for an example\n      \u003cul\u003e\n        \u003cli\u003e\"YN\" - for Y/N output\u003c/li\u003e\n        \u003cli\u003e\"TF\" - for T/F output\u003c/li\u003e\n        \u003cli\u003e\"10\" - for 1/0 output\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003eBug fix: Google Sheets fix by using buttons instead of checkboxes for the buttons which caused a \"submit\" to Google Sheets (Thanks [jckwik](https://github.com/jckwik)!!)\u003c/li\u003e\n    \u003cli\u003eDon't allow the cycle timer to add a Zero time. (Thanks [jckwik](https://github.com/jckwik)!!)\u003c/li\u003e\n    \u003cli\u003eAdded Display Data and Copy Data buttons on QR screen (Thanks [tails618](https://github.com/tails618)!!)\u003c/li\u003e\n    \u003cli\u003eBug fixes to clickable images (Thanks [jacob6838](https://github.com/jacob6838)!!)\u003c/li\u003e\n    \u003cli\u003eAllow ability link Cycle Timer with Counter (Thanks DaBushinator!!)\u003c/li\u003e\n    \u003cli\u003eAdd pit scouting functionality\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwnagerobotics%2Fscoutingpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpwnagerobotics%2Fscoutingpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwnagerobotics%2Fscoutingpass/lists"}