Black Hawks Scouting: An Advanced, Configurable Scouting App by Team 2834

Team 2834 (Bionic Black Hawks) is excited to present Black Hawks Scouting, a modern web-based scouting app.

During the previous season, we couldn’t find an app that could suit our needs - we prioritized cross-platform support, offline usage, and ease of use for our scouters. In addition, our strategy team had a specific set of requirements of what to keep track of while scouting, which meant basing our scouting system on an app that was easy to modify and extend - not just by adding a few extra inputs and textboxes, but also by being able to reuse the same app in future seasons with minimal code changes.

In the end, we decided to create our own scouting app to solve these problems, and it proved to be a massive success in our competitions. Now, we’re sharing it with the community in the hope that it can benefit other teams as well.

Black Hawks Scouting was created with the following concepts in mind:

Black Hawks Scouting is based around configuration files, allowing you to quickly create forms including: match scouting, pit scouting, forms for various seasons, or even something else (surveys, checklists, etc.) You can have multiple configurations side-by-side without them interfering with each other.

Black Hawks Scouting exports in a standard format called Comma-Separated Values (CSV). Your team has the option to use anything from custom Python scripts to professional-grade tools like Tableau and Excel.

Ease of Use
Black Hawks Scouting is designed to be easily approachable by your team’s scouters. You can quickly navigate within scouting forms with a navigation menu at the bottom of each form.

Offline Usage
Black Hawks Scouting has the capability to work fully offline by making use of special browser features. Once you load it with an internet connection, it remains available on your device with the same URL, even without an internet connection or download.

Black Hawks Scouting uses standard obfuscation techniques to make your TBA key more difficult to find by others. The app also supports the security features of your browser, working even with HTTPS, tracking protection, and cookie blocking.

This is just a sample of what Black Hawks Scouting has to offer. There’s a lot more, like The Blue Alliance support and a built-in Data Inspector. For more information, check out the GitHub repository:

You can visit a live demo here.

View introductory videos (I’ll upload more in the coming weeks)

Please let us know your thoughts and questions - we’d like to continue improving Black Hawks Scouting and make it an app that everyone can use.

Aidan Sun
FRC Team 2834


poking at the demo, it seems the qual match selection moves around depending on the team name length:

Looks super cool otherwise, great job.

1 Like

Thanks for reporting this. I agree this can be inconvenient to use, so I’ve added a maximum width to the dropdown to prevent it from shifting things too much.


didnt mean to delete woops (Reposting it but its working now)
One thing I’m confused about is how you get other devices to run the scouting app, When I run it through Visual Studio on a different device it can’t connect to the server. and if I run it through the website link it doesn’t recognize the API code. Also thank you for the scouting app. It is really nice to use. Can’t wait to ditch paper scouting and switch to this. See you at Kettering Kickoff

When you’re using Black Hawks Scouting, there’s essentially two copies of the app you’re working with - the online deployed version, and the local version. Your confusion likely comes from this.

The deployed version is what you’ll visit on your scouting devices - it is publicly accessible and the URL starts with [YourName] The local version is what you run in VSCode - its URL is usually or “localhost”. The online deployed version can be visited by anyone, while the local version can only be accessed by your own computer, so make sure you’re using the correct one on your different devices.

For The Blue Alliance API key, it needs to be entered in your repository’s Secrets (which is only for your deployed app), and also in a .env.local file (which is only for your local copy). If you need to update the key in your deployed app, you’ll need to re-deploy it (I cover this process in my getting started video).

As a side note, Visual Studio and Visual Studio Code (VSCode) are two completely different applications - VSCode is much simpler to use and I recommend it over Visual Studio for Black Hawks Scouting. This is a bad naming scheme from Microsoft, so I’d just like you to know about it.

Thank you and the video was very helpful

1 Like

I review the live demo and I think this is a great App to use, my question is can we change your logo to our team logo in our copy?
Thanks advanced if you can let us know.
Great job by the way!

Here’s a brief overview of how to change the team logo image (you’ll need to set up your local environment and download the app):

I plan to upload my next video in a few days that briefly goes over configuration files (and includes how to change the logo) so you can also view that when it comes out.


Thank you so much for your quick response, the video will give us a lot of help, I am looking forward your next video to show us how to set up the configuration, and that will be much easy to follow. This is a good architecture from design point of view.
Good Job!

1 Like

Awesome application - Thank you

Really like this. One of the many things I love about FRC and that has kept me coming back for 11 years as a mentor. How teams share and help each other out.

Forked the repo, and going to make some mods to Raptorize a flavor for my team. But will make sure that 2834 gets all the credit. And who knows, maybe we can come up with some improvement and push it back up to you.

Thanks again
Russ aka Dr-Wasabi FRC Team 1711 - The Raptors


Can’t wait for the next video to drop. Keep up the great work.

1 Like

Oh and to add a bit more… The Raptors 1711 are doing an off-season event @ kettering this coming weekend. So I’m hoping to get this setup on some devices so we can test it out. I’ll report back my findings on the repo.

Thanks again

The second video is out! (Configuration Files)

This video explains how to create your own scouting form and change the heading and logo.


Hey! I just wanted to see what your experience at competition was (or anyone elses). Heavily considering migrating to this system using our team tablets and want to know if there’s any unexpected issues that might come up.

1 Like

We’re really impressed so far! However, we need to collate all the data (from all six scouts) in relative real time. Is there a plan to add any type of wireless data transfer, like QR codes or the like?

Thanks for expressing your interest in Black Hawks Scouting!

The app doesn’t enforce any specific way to transfer data. Once you hit the Download button, the app will merge the scouted data into a file that is downloaded; you can use this file however you’d like.

Our team uses Android tablets to scout, and when we need to transfer data (roughly every hour), we use Android’s built-in Bluetooth features to send each file to our master device wirelessly. We generally have a few people involved in this process, so it only takes us a minute for all six tablets combined.

Depending on your exact needs, this may work well for you, though implementing another transfer method, such as QR code generation or automatic file sending, should be feasible using external tools.

Still really liking this solution! However, two questions.

  1. Can you make a field mandatory?

  2. How does being offline effect the TBA integration/team selection?

1 Like
  1. I’ve added widget validation which allows a widget to be required, as well as more advanced checks. There are docs and a demo video.
  2. TBA data is cached on the first download so you can continue to use it offline. Details are given in the repo’s readme:

Tip: You can use The Blue Alliance data offline too! Once you load match information online from a form’s Team Selection page, Black Hawks Scouting caches it in local storage. On subsequent scouting sessions, you can leave the Event Key field blank and press the Load button to use the cached data. This is faster than an online load and doesn’t require internet.


Thanks for the information! Apologize, I missed the explanation of how to use TBA offline.

I looked through the validation docs - we’re trying to make a dropdown with our scout’s names. We want the default selection to be empty, which we were going to accomplish just by making “” an option. We want to validate that the scout has chosen a real name from the dropdown. Is there any way to do something like this? We want it to be a dropdown because in years past they’ve entered random things in the name field if it’s just a text box.

I think you could accomplish this just as easily with “No Selection” or “Select…” as the first entry. An empty string is almost certainly an edge case for the software which may or may not work, and it’s less clear for scouters anyway. I don’t think that there’s a way to have an option which may not be used in a select-one–type widget.

You could use a select-multi checkbox widget, with a validation of =1 selections. But I think the tradeoff of misleading UI and scouter confusion is probably not worth the guaranteed scouter name.

Perhaps we’ll see a “invalid select-one default” in a future update.