Beta tester guide
Welcome — thank you for testing RoadEye. This page covers everything you need to install the app, sign in, run a test survey, and report what you saw. Plain-language — if you hit anything not covered here, copy any error text you can see and reply to whoever sent you this link.
What you're testing
You're testing a fresh build of the RoadEye Android app — a survey app that drives along a road, runs computer-vision detection on the road and roadside, and uploads the findings to a web dashboard.
Three things matter most for this beta:
- Install + onboarding works smoothly on a fresh device.
- At least one detection provider produces detections during a short drive (real or simulated).
- The drive shows up correctly on the web dashboard at roadeye.iroads.dev after Stop Drive.
Anything else you notice — UI weirdness, slowness, crashes, confusing copy — is also useful feedback.
Before you start
You need:
- An Android phone (Android 7.0 / API 24 or newer).
- ~50 MB free for the APK + breathing room for the SQLite cache and video segments (~50 MB per ~3-minute drive).
- A network connection (WiFi or LTE) for sign-in and final upload. The app works offline during the drive and uploads when network comes back.
Permissions you'll grant during onboarding: camera, location (while using app), notifications. RoadEye does not access contacts, photos, microphone, or background location.
Step 1 — uninstall any prior RoadEye build (if present)
If you previously installed any version of RoadEye on this device, uninstall it first before installing the new APK:
- Long-press the RoadEye icon → Uninstall → confirm.
INSTALL_FAILED_UPDATE_INCOMPATIBLE. Fresh devices don't need this step.Step 2 — install the APK
- On your phone, open this URL in Chrome: roadeye.iroads.dev/install/apk. It redirects to the current EAS-hosted APK artifact.
- When Chrome asks "This type of file can harm your device" — that's the normal sideload warning for any APK not from the Play Store. Tap Download anyway → wait for the download to finish.
- Tap the downloaded file in Chrome's download bar. Android will show "For your security, your phone currently isn't allowed to install unknown apps from this source." Tap Settings → enable Allow from this source → back arrow.
- Android shows the standard install prompt. Tap Install. The install takes ~30 seconds (the APK is ~215 MB — bundled video model + on-device ML weights).
- Open the app from your launcher.
Don't see the install prompt? Pull down the notification shade — the download notification usually has an Install button that bypasses the file-manager step.
Step 3 — sign in
- First screen says "Sign in to RoadEye" with a single text field labelled "Access code".
- Type:
TRYME001(case-sensitive — eight characters, no spaces). - Tap Sign in.
- If it works: brief "Signing you in…" then the Drive screen (black screen, camera viewfinder, big green Start drive button).
- If it fails: tap the "Where do I get a code?" link for help text. Most likely cause: typo, or no network. Retry with WiFi if cellular is flaky.
TRYME001 is the public demo access code seeded into the demo organisation. Real-driver access codes use the same flow but with a real-driver org code.
Step 4 — onboarding (only happens once)
After the first sign-in, RoadEye walks you through a 7-step onboarding mini-tour. Tap Continue through each step. You'll grant camera + location permissions when prompted.
If the onboarding skips on you (because of a quick screen re-render), no problem — the same screens are available later via Settings → "Onboarding tour".
Permissions to grant when asked:
- Camera → Allow while using app.
- Location → While using the app (not "All the time").
- Notifications (Android 13+) → Allow.
Step 5 — try a short test drive (Test Survey Mode)
You can validate the full data path indoors using simulated GPS:
- Go to Settings (gear icon, bottom-right tab).
- Find the "Test Survey Mode" section.
- Toggle "Use simulated GPS (no driving needed)" to ON.
- Tap the Drive tab (bottom-left), then Start drive.
What you should see:
- Live camera viewfinder (point at anything — doesn't matter for this test, but framing a road sign or traffic light will trigger real detections).
- A route polyline shows the simulated GPS moving along a loop.
- Counters tick up at the bottom: "Points: 1, 2, 3, …" and "Detections: 0".
- After ~30 seconds, tap Stop drive.
A "Drive summary" card appears showing how many points + detections were captured. Tap Done to return to the Drive tab.
Step 6 — try each detection provider
This is the main thing the team wants you to test. Open Settings → Detection and you'll see five provider options:
| Provider | What it does | Expected during a 30s drive |
|---|---|---|
| Off | No auto-detection. Manual taps still work via the palette. | Detections: 0. |
| Demo (synthetic only — not real) | Fake detections for demos. Don't pick this for a real survey. | Detections: 4-8 (fake). |
| On-device — general (YOLOv8n) | Runs on your phone, no internet needed. Traffic signs, stop signs, traffic lights. | Detections: 0-many, depends on what's in front of the camera. |
| On-device — newest (YOLO26n, BETA) | Newer model on the phone. Same classes; smaller + faster on recent devices. NEW. | Detections: 0-many. Most important to test. |
| Cloud (recommended) | Sends each frame to the RoadEye cloud. Best quality, uses data. | Detections: depends on backend. |
For each provider you want to test:
- Stop any drive that's running.
- Settings → Detection → tap the provider you want.
- Drive tab → Start drive.
- Hold the camera up to something with a stop sign, traffic light, or printed road sign on a screen for ~30 seconds.
- Stop drive. Note the detection count from the summary card.
- Tap the latest drive in the History tab → see the detection list with timestamps and class labels.
Step 7 — cross-check on the web dashboard
After Stop drive, the drive uploads to Supabase in the background (usually <30 seconds on WiFi). To see your drive on the web:
- On a laptop, open roadeye.iroads.dev.
- The map shows recent drives as route polylines. Your drive should appear with the device-id from your phone.
- Click any detection marker — a side panel opens with the class, confidence, and a link to QA review.
- Open the drive replay: click your drive → video player synced to the GPS scrubber with live bbox overlays on the recorded footage.
- Did the AI miss something? While the video is playing (or paused at any frame), use the new "+ Add detection here" button in the detection panel. Pick a class + severity + optional note; the entry is saved as a manual detection tied to your drive at the current video timestamp + GPS position. Admin / inspector role required.
If you have admin/inspector access on the web, also visit /admin/ai-monitoring and see per-provider job counts + the "Provider readiness" panel. This is the cross-validation: if mobile shows "On-device YOLO26 → 5 detections" and the admin page shows those 5 jobs with detection_provider=yolo26n-coco-v0, the chain is end-to-end healthy.
Step 8 — diagnostics (when something looks wrong)
What to report back
For each provider you tested, please include:
- Provider name + your device model + Android version.
- Time of day + lighting (outdoor / indoor / dark room).
- What the camera was pointed at (printed sign, real road, TV, etc.).
- Detection count from the summary card.
- Did you see live bbox overlays on the viewfinder? yes / no / some.
- Any crash, freeze, or noticeable lag.
- Any UI text that was confusing or wrong.
If you can take a screenshot of the drive summary and the latest drive's History entry, that's gold.
Known issues (don't report these unless they look broken)
- Mobile route map is a placeholder card, not a real map. Intentional in this build. The web dashboard has the proper map.
- The 30-second simulated GPS loop is small, ~90 m around. Intentional — synthetic test track.
- Server provider may not respond if the Edge Function's primary backend is set to YOLO26 and the self-hosted endpoint isn't reachable. Fallback chain (YOLO26 → YOLOv8 via HF → stub) still produces some detections.
- Battery < 20% automatically drops GPS accuracy to "balanced" to save power. Plug in before a long drive for max-accuracy GPS.
- First start of a fresh app install can take 5-10 seconds while ML weights are loaded. Subsequent starts are instant.
Deliberate omissions in this build:
- Live route map on mobile (web map is the route-review path).
- iOS app (Android sideload only for now).
- Play Store distribution.
- Background drive (must keep the app foregrounded).
Where to find help
- App-internal help: tap the "?" icon for context-specific help.
- Field diagnostics: Settings → Field diagnostics → Share.
- Web help index: roadeye.iroads.dev/help.
- Demo walkthrough on web: roadeye.iroads.dev/demo.
Thank you again. Specific, descriptive reports are more useful than "it didn't work" — paste exact error text + the diagnostics blob and we'll be able to triage fast.