Group Studio - A Simplified Data Analysis Tool for Android

Group Studio - A Simplified Data Analysis Tool for Android

Hello all, I am the Captain of Software Development on St Helens FRC Team 5450. Last year being my team’s rookie year in FRC, we saw the need to have an organized structure when it comes to scouting. The solution we came up with was to build an application on Android that would make the collecting and centralizing of scouting information simple and efficient. Group Studio is the fruit of such project.

See www.brandontrabucco.com/groupstudio for the official app website

What is Group Studio

Group Studio is a data analysis tool built for the latest version of Android. This app allows for Robotics Teams to be given different unique inheritable attributes and to be ranked based on the values given to such attributes, as to find which team is the most ideal to ally with. Calculations can also be derived from all teams for statistic purposes–to find the average robot weight or team size for example. This app also supports connecting to either a localhost server on a windows computer or an existing web server configured to receive the JSON data sent from the app. See the given website for specific information on setting up the server.

The App Structure

Group Studio, much like its name, is an app for organizing data within groups. From the app home screen, a group can be created. By clicking on the group, the user can add members to it, members which inherit attributes from a chosen user-created type–schema per se. To create a type, the user must go into the app settings and select ‘Expert’ under User Environment.

By adding attributes to a type, any member set to that type will inherit those attributes. The user can also set a target value (high or low/true or false) for attributes that are either numeric or boolean. This target will determine how members of the respective type will be ranked. members whose attribute values are closer to the target will be given a higher ranking index than other members.

Inside of a type, a user can also create a calculation, which determines a value from the data set of all members in a group of the given type using any of the following statistic functions: average, median, range, sum, maximum, minimum.

The way an attribute functions in this app is much like a cell in Microsoft Excel. An attribute can be either text, numeric, a list of numbers, or a boolean. For numeric attributes, the use of math expressions and the given statistic functions is fully acceptable. This is especially useful in the case of a numeric list attribute–let’s call it ‘Scores’–and another attribute that includes a reference to the list–let’s give it a value of ‘average( @Scores )’. By using the @ symbol, we have injected the value of the given attribute into the current one. After parsing, this returns the average score of this Robotics team. If this attribute was given a high target, then teams with higher average scores would be ranked higher than others without.

Extra Features

This app, as given in the introduction, allows for the user to connect with a server hosted either on the users personal computer and accessed over LAN, or a server hosted on the web that accepts the Group Studio JSON schematic. Note that this app can be configured to send a password to the server, preventing unauthorized users from accessing data. This feature shouldn’t be used, however, for the transmission of sensitive information as it is sent via HTTP and not HTTPS.

Once communication is set up with a server is configured, the user’s ability to interact with said server is given by 4 actions. The user can delete a group from the server, pull a group from the server and either create a new group on their device or merge with an existing one, push a group to the server, overwriting an existing group or creating a new one, or merging a group with an existing cloud group–this is a combination of the push and pull actions.

Group Studio also gives the user the ability to export a group–which includes all members, attributes, types, and calculations used within it–to a JSON file in the phone’s Documents folder. The user can also import a JSON file containing Group Studio Data and choose to either create a new group with the information, or merge with an existing group, much like the server methods.

Release Details

This app is built in Java for android 5.0 and later, though it should work on version 4.0 and up. If you are interested in using the app, check out the website given at the top of this post. Any feedback and suggestions is much appreciated.

We have also developed a localhost server that can be downloaded from the same link. This server operates within a LAN and no farther. It is tested and working on Windows 7 and up. It should also work on Windows Vista, but a complete test is pending.

If you have an existing web server, check the app website for details on how to implement the Group Studio Web Methods.

Contact Details

Interested in contacting the developer? You us can send an email directly at [email protected] or make a comment on this thread.

Your android applications seems interesting but what my main question is how do you generate game specific data such as for last year’s game with number of totes in a stack, how would one go about that. Also you mentioned a server, is that connected via USB or LAN?

The app uses user defined schemas to organize properties. You could create a Type named ‘FRC Robot 2015’ or something of the sort in the Manage Types tab from the home screen of the app and create a bunch of numeric properties such as ‘Totes Able To Stack’ or ‘Time For Making A Stack’. You could set the first to have a high target and the latter to have a low target, and thus different Robotics Teams that inherit from this type would be ranked based on the size of a stack they can make and the time it takes to do so. You can do this with any number of attributes.

The server used by the app is a LAN server. The next version of the app to be released will include a Bluetooth server as well.