Bubblotics Scouting
Offline-first match scouting, analytics, and alliance picklist.
Scouting data is only worth anything if it is complete and trustworthy, and both fail in the same place: a noisy venue with no usable wifi. Scouts miss matches, entries get lost on a dropped connection, and by alliance selection nobody knows which numbers to believe. This app is built so neither happens.
- The form never touches the network Entries are written straight to the phone’s own database, and a separate background module is the only code that ever uploads. A scout can work through an entire day fully offline and lose nothing.
- Retrying cannot create duplicates Every entry carries an ID generated on the phone, and uploads are an upsert against it. A sync interrupted halfway and retried updates the existing row instead of adding a second copy, which is the usual way offline apps quietly corrupt their own data.
- Scout accuracy is measured, not assumed Per-robot autonomous estimates are compared against the posted alliance scores to flag scouts whose numbers drift. Because alliance-scoped actions are excluded, every scout reads low by the same amount, so the comparison is against the median rather than against zero.
- Coverage gaps surface before they matter The manager view generates the scout rotation and then shows which matches and robots have no data, while there is still time to fix it rather than after the event.
- Next season is a one-line change Game-specific fields live in a single swappable module and answers are stored as a JSON blob, so moving from DECODE to next year’s game needs no database migration. The form, exports and analytics all follow automatically.