After almost a year of development, Team 111 WildStang is proud to announce our electronic scouting system: WildRank.
The WildRank system is composed of two apps: an Android app and a desktop application. The Android app provides a means to collect match data, pit data, notes, as well as view all the collected data and the form a pick list. The desktop app creates configuration files for the tablets that contain the teams and matches for a given event. It also helps to compile notes collected by the different tablets and can output collected data in CSV form for more sophisticated analysis.
WildRank is a bit different than most scouting systems we’ve seen. Some of its key features are outlined below.
Functions totally offline:
after event data is initially downloaded to the desktop from The Blue Alliance, the system can function without any internet connection. Data is synced between the different tablets and the computer using a USB flash drive with an OTG adapter for the tablets. - Distributed, robust data:
each device in the system (desktop and tablets) maintains a complete copy of all the data, making it almost impossible to lose it. The desktop also backs up all its current data and the flash drive’s data before syncing, allowing you to restore any part of the system to a known good state should something go catastrophically wrong. - Easy to configure:
the system is designed to stay largely the same from year to year. The things that have to change (the forms for collecting match and pit data, as well as how that data is displayed in team summaries) are defined via XML layout files with custom attributes for the tablet app and a special “config” file for the desktop. - Easy to modify:
WildRank stores its data in JSON objects instead of something highly and rigidly structured, like an SQL database. Want to add a new piece of data to collect? Simply add a new view to the appropriate layout file, set its appropriate attributes, and update the desktop config file. Done! - Easy to extend:
if none of the existing widgets collect the kind of data you want, you can easily define your own widget to output your data via JSON (string, number, boolean, or arbitrary JSON object).
We hope that other teams will be able to use our code as the basis of their own scouting systems, or at least a model of how to design a scouting system. If you want to check out our work, the GitHub links for each application, which include the code and a brief overview of how it works, are below. Note that documentation is a work in progress.
Screenshots of the app in operation can be found in this imgur album.
Note: the Android app was only ever tested and run on Motorola Xooms running an AOSP 4.2.2 ROM. It should work on other devices, with one exception: the device must support USB OTG in order for syncing via the flash drive to work. Because OTG support is not a standardized feature, your device may mount the flash drive in a place other than the one that the app expects. In that case, you can modify the code to point to the right place; instructions for how to do that are provided in the Android repo’s readme.