-
Notifications
You must be signed in to change notification settings - Fork 1
Announcement
Well I did it again. I made another scouting app. Does the FRC community need another scouting app? Probably not. But we here at WildStang have a history... to my knowledge there has been 2 Android apps, a failed iOS app, countless insane spreadsheets, and a Palm Pilot app.
As a student I co-developed the first two WildRank Scouting apps for Android. I'd say the apps were a success, but unfortunately they were run on Motorola Xooms. Luckily, the Xoom came out days after Motorola broke up so I'm not poo-pooing on my employer by saying those tablets were horrible new and even worse 5 years later when the team retired them. So due to the tablets age and lack of developers the team transitioned back to paper and spreadsheet scouting for 2017. 3 seasons later, when I rejoined the team as a mentor, iPads had been fully deployed across the school district and there was a small effort to develop an iOS app. Unfortunately, I was not much use in that department so I didn't take part. But, I could not keep the idea of developing an app out of my head and began sketching out interface elements for a web-based scouting app. Slowly, over the course of the 2020 build season these sketches turned into a functioning interface and design philosophy. Two years later we finally have a complete scouting app and are preparing to roll it out at competitions.
There are always discussions about whether teams should spend their time developing another scouting app vs use someone else's or using paper. My fundamental reason for developing an app is for fun. I enjoy working on these kind of projects and solving the challenging problems associated with digital scouting. Plus, an app just looks cooler.
Since each student has an iPad the goal was for first-class support there. But since I don't know Swift and some would prefer to use another platform the primary goal was to be cross-platform without writing an app for every platform (spoiler I kinda did anyway).
Many existing scouting apps use the web, but since we are using school-distributed iPads, most users will not have a cellular connection. The second goal was to limit the required data connection to as little as humanly possible.
Again, each student has an iPad; most users are going to poking the screen with their fingers. I wanted the interface to be as touch friendly as possible.
The goal with WildRank Android was to limit the need to write code to implement a new game every year. For an experienced programmer the work was trivial, but for others it was still code. This time I wanted a true zero-code experience.
WildRank is a web app, in my eyes this was the only solution. Apps were created for Android and iOS to host WildRank, but as you'll find out in the below paragraphs, those are already deprecated.
There are lots of scouting web apps, but not many are truly offline. WildRank's core expierence does not require an internet connection. Not for accessing the application, not for importing/exporting data, and not even for importing match and team data from The Blue Alliance. The original and still core element to this ability is WildRank's lack of server-side code. The application is written entirely in client-side HTML/CSS/JS. The app can be hosted with any-old webserver, but a modified Python webserver was built to improve the file handling experience. Applications were also built for Android and iOS to mimick this server and display the application, however, these applications have already been retired in favor of recently added PWA functionality. WildRank is now a fully offline PWA that can be installed on effectively any modern device. How does data transfer work? Well the man behind the curtain is zip archive exports of data. This means that data can be transfered with whatever means the user desires -flash drive, email, instant message, tcp, etc-. To make the experience a little more flashy there is also a network based data transfer option that requires one instance of the previously mentioned Python webserver be accessible. I experimented with many alternative data transfer techniques -including QR codes, NFC, and audio- but none of them worked as well as plain file transfer.
The very first effort in developing this application was developing a set of touch and mouse friendly interface elements that look consistent between platforms. This resulted in a series of inputs based on default HTML elements, but designed to be more modular and larger for touch inputs. These inputs include:
- Counters
- Sliders
- Checkboxes
- Dropdowns
- Selects
- Various Textboxes
- Multi-counters
- Buttons
- and more
The core configuration of WildRank is done using two JSON files. While very simple, JSON still has a learning curve and will feel like code to some. Therefore, interfaces were also developed to build and edit these files via the app.
Like all of my personal software work, WildRank is free and open source software. For this project I chose the Mozilla Public License 2.0 or MPL 2. In short, I chose the MPL because it a copy-left license that isn't as restrictive as versions of the GPL due to its file-based structure. If you have any questions about the MPL the official FAQ is the place to go, but I will provide a brief summary. If you just want to use WildRank you don't have to do anything special. If you make any changes to WildRank for your team you also don't have to do anything. If you decide to publish your modified app, please publish the source under the same or a compatible license.
As you can likely tell by now, I am very invested in and passionate about this project. But that doesn't mean I'm blind. WildRank has a lot of flaws that couldn't be solved before competition. The goal for the 2023 season is to rewrite data handling to be more efficient and support more features. All long term issues can be found here.
WildRank will see its first live matches when WildStang attends the Central Illinois Regional week 3. The combined WildStang and Plus One scouting team will also be using WildRank at the Midwest Regional during week 6. If you see us there feel free to stop by and check it out. You can run your own instance either via the included docker-compose file or python web server.