SuperScouter For FRC -- A Multiplatform, Extensible Scouting System

I mentioned over in a thread in the Programming forum that I was developing a multi-platform scouting system and I was asked to do a quick write-up on it. Now that I’ve gotten everything basically working (just needs some polishing and icon work), I’ve got some time to write about it:

What is SuperScouter?

SuperScouter is a scouting platform that supports iOS, Android, and Windows Phone. The server component currently is Windows only, but that may change in the future.

What makes SuperScouter “Super”?
Unlike every other scouting app, SuperScouter was designed from the ground up to support “customizable schemas”. That means that each team can create a “schema” using the Schema Designer on the server application that defines what data to collect. This makes SuperScouter unique in that it does not require a brand new app each year. This allows development to focus on adding new features instead of re-creating the same thing each year.

How do the apps communicate with the server?
Schema Downloading
Schema downloading is only supported over HTTP. The application has a built in HTTP server that you can start with the “Start HTTP Server” button. It will be available on all IP addresses the server computer has. In the app, go to “Manage Schemas > Add New” and type in the IP address of the computer as given on the server app. Your schemas should show up. Tap one and tap the download button to download it. You will now be able to enter data with this schema.
Sending Data
Sending data to the server is currently only supported over HTTP, but I am working on supporting file exporting and/or Bluetooth depending on the platform.

What types of data are supported?

  • Numbers (Integers)
  • Text boxes
  • Sliders (Integers between Min and Max values)
  • Yes/No switches
  • Multiple Choice (Multi or Single select)

More (such as images support) will come.

Technical Aspects
This platform is developed entirely in C#. I am utilizing Xamarin Forms to develop my UI for all three mobile platforms simultaneously. Communication is done with Protocol Buffers since they are compact and have a simple way to support inheritance within the serialization (because of shared code). Additionally, it allows me to program the deserialization just so that it matches contract.

Cool! When will this be available?
I plan to have a version available on the respective App Stores and for download/install from somewhere (probably GitHub or something) before Kickoff.

I have a question.
Awesome! Just reply here and I’ll try to get back to you as soon as I see it!

General Roadmap

  • Image data items
  • Auto-syncing with FMS API (if connectivity permits)
  • Cross-Platform Server Application

Looks cool!

Looks sweet! Any chance of beta testers? I’d love to try out some new scouting methods before the season starts.
EDIT: Another note, I just realized this was all over HTTP. At events, we aren’t permitted to have our own WiFI networks. DO you plan on having this run on just purely laptops networked with ethernet, or does it then work offline, and you only need to download the schema once? And another question; Does it work on phones too?

This is AMAZING! If you would like any testing done, just let me know. I would be more than willing to help you get it up and running by beta/alpha testing.

Very cool!

I would love to see someone develop one of these apps that uses cameras and QR-type codes displayed on the screens to share data instead bluetooth/wireless.

Any chance of making this compatible with Windows PCs? Our team has a lot of spare laptops sitting around but no mobile devices like tablets (save for a handful of students smartphones).

I’ve been working on such a system since I saw the idea mentioned in some other thread.
http://tanx.azurewebsites.net

The codes are decoded using a JavaScript program.

Rock on!

A schema only has to be downloaded once. The data collection is currently on phones only. I haven’t ported it to laptops (but that may happen). In the current dev version the data transfer is only over HTTP. There will be other ways to transfer data before competition season. HTTP was just the easiest to implement and test on all three platforms.

I’ll keep you guys in mind for beta testing! I don’t have an Android device so I’ll definitely need beta testers for that platform.

I’ll look at supporting transfer over QR code. Taking a quick look around, it shouldn’t be that hard to do. I’ll definitely put that on the list! Thanks for the suggestion!

Which version of Windows? I (think) can (relatively) easily add on a Windows 8.1+ Store app for data collection without a problem. Making it work for Windows 7 will be a lot more work. I can still do it, but it will take longer and probably be pushed down the priority list.

Awesome job! keep it up. Can’t wait to see the launch of this.

Currently we have Windows 7 and earlier machines, unfortunately. That said, it still wouldn’t hurt to have a Win 8.1+ version if it wasn’t to hard to set up.

Since all the data is being transferred via HTTP to a Host machine, would it be possible to just create a simple web interface that runs through the host?
Alternatively, we might just look into the practicality of running an Android emulator on our machines, as long as the system requirements aren’t too high.

Any chance it is open source?

It would be possible to create a simple web interface, but I’d have to give you a copy of the Protobuf interface files (which I still need to generate from my code). I’ll get those done soon. I’ve got a few possible (incompatible) changes that I might make to them before release so I don’t want to send them out just yet.

It is not open source at the moment.