Scouting program for FRC First challenge Ultimate Ascent
Java
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/ScoutMojo
.gitignore
README.md
ScoutMate.jar

README.md

ScoutMojo--Ultimate-Ascent

ScoutMojo (2012): This was the program I had for my IB computer science dossier. The program was designed for the high school’s robotics team to scout other robotics during competitions. The scout would input rating and feedback on each team’s robot. The program is able to rank these robots, and provide input on possible alliance options. ScoutMojo has multiuser and multi-platform capabilities. Due to the unpredictability of networks and signals of where the team competes, the synchronization process is designed to work offline and without reliance on any type of network. It is designed to work off a flash drive, in which each user adds their sample to a pool. This pool is merged into one sample by comparing data values and considering user ranks. The synchronization process has only been tested with 3 samples, which was sufficient to our team’s needs. I open sourced ScoutMojo and allowed other teams to use it and modify it to their needs as well as provide feedback. I believe a few teams on the West Coast and East Coast used it during matches.

ScoutMojo was designed for the 2013 FRC FIRST Robotics Competition. I will have to modify the program when the 2014 game is released. I have several possibilities in mind for improvements. One of which is the ability to export the data as a spreadsheet file.

Synchronization

ScoutMojo is designed to work offline accross multiple clients. Each client can add their local data to the pool, the pool can be contained on a pen drive. Once the pool is built it can be merged. This will merge the samples and save the compiled version in the Out folder (../ScoutMojo/Out/...).

Program Folder

The setup window will state the location of the ScoutMojo folder and allow you to set user permissions.

User Ranks

  • 1 = Viewer, no editing rights
  • 2 = Pit Scout, can only edit robot specifications
  • 3 = Match Scout, can only edit robot performance
  • 4 = Scout, can edit both robot specs and performance
  • 5 = Admin

Class Overview

  • ScoutMojo.java
    • Main function
    • Contains global variables
    • Handles window management
  • ViewController.MainControl.java
    • Handles GUI logic for the primary window
  • ViewController.SetupControl.java
    • Handles GUI logic for the setup window
    • The setup window appears only when there is no ScoutMojo directory found
  • ViewController.NoteControl.java
    • Handles GUI logic for the note editor
  • ViewController.ErrorControl.java
    • Handles logic for the error window
  • Utility.TeamSorter.java
    • Manages logic for sorting, searching, and ranking teams
    • Utilizes binary search to search teams
  • IO.IOController.java
    • Manages IO logic for the main directory
    • Autosaves program data
    • Saves program data in Java binary format
  • DataModels.Masterdata.java
    • The class for all the program data
  • DataModels.User.java
    • The class for user data
  • DataModels.Teams.*
    • Classes pertaining to the team class.
    • The masterdata class contains a collection of the teams
  • Synchronization.PoolManager.java
    • Handles logic for making a pool
  • Synchronization.DataMerger.java
    • Handles logic for merging data for the PoolManager

Future Improvements

  • Create a view for the synchronization process
  • Conduct further testing on synchronization