FRCScout

FRCScout

A Flutter match-scouting app for FRC Team 2473 in the 2023 Charged Up season

December 2022 - April 2023
Completed

Project Overview

I built FRCScout for my FIRST Robotics Competition team, FRC 2473 Cupertino Robotics, during the 2023 Charged Up season. Scouts sit in the stands and track one robot per match, and the team uses that data to plan strategy and pick alliance partners. Our scouting form was far too long, and scrolling through a long form on a phone is slow; in a 3-minute match, scouts kept losing their place. I wanted an app built for fast entry on a phone.

A scout enters their name, the team and match numbers, picks the alliance color and station, and taps the robot's starting position on a field map. The report is then split into Autonomous, Teleop, Endgame, and Post-Game tabs, and every change is saved as it happens, so a dropped tablet or an app crash doesn't lose a report.

I designed it in Figma, then wrote it solo in Dart with Flutter's Cupertino widgets. The public repo holds the early beta, which saves reports to local files. The version we used in competition moved reports into Cloud Firestore behind Firebase sign-in, with Firebase Hosting, and 30+ scouts used it on their phones across 200+ matches at the 2023 Silicon Valley and Central Valley Regionals. Since Flutter builds for iOS from the same code, iPhone scouts installed it through TestFlight instead of the App Store.

Designed in Figma first

Figma prototype screens: FRCScout home, main menu with Match Scout, Pit Scout and Admin, and the new report form

The Figma prototype I designed before building it: home, the main menu, and the new-report setup screen.

Picking a starting position

The 2023 Charged Up field map with numbered starting positions 1 to 8

The 2023 Charged Up field map FRCScout shows on its match setup screen, with numbered starting positions 1 to 8 that the scout picks from.

One report, four phases

After setup the report opens as four tabs that follow the match: Autonomous (preloaded game piece, leaving the community, charge station), Teleop (ground, single, and double substation pickups, shuttling, tipped cone pickup, charge station), Endgame (result, alliance and opponent score, links, cycle time, coopertition and activation bonuses), and Post-Game (0 to 10 ratings for auto, teleop, and defense, special circumstances, and notes).

The four match phases

Figma prototype screens for Autonomous, Teleoperated, Endgame, and Post-Game

The prototype's Autonomous, Teleop, Endgame, and Post-Game tabs, with the phase switcher along the bottom.

Saved as you go

In the beta, each report is a JSON file named by team, match, and scout. The app creates it with defaults the moment a scout starts, rewrites it on every change, and marks it submitted at the end. The competition version replaced those files with Cloud Firestore, so reports from every scout landed in one shared database as matches finished.

Skills & Technologies

FlutterDartCloud FirestoreFirebase AuthFirebase HostingTestFlightFigma

Links

Project Info

Duration:

December 2022 - April 2023

Status:

Completed