Inspiration

Florida had 381,423 traffic crashes in 2024, about 1,799 every day. Miami-Dade County had 60,000 of them, more than any other county in the state. 111,252 drivers aged 15 to 24 were involved in crashes that year, about 300 a day. And 97,999 crashes, roughly one in four, were hit-and-runs, where the other driver is gone before anyone can ask what happened.

When something goes wrong on the highway, the hardest part of an insurance claim often comes first. You are shaken, the other driver may tell a different story, and there are no witnesses. A dashcam would help, but only about 30% of US drivers use one, and the rest often point to the price, the hassle of installing it, or privacy.

The State Farm challenge asked for something that makes auto insurance simpler for students and helps with the everyday risks of getting around. Florida already has traffic cameras watching I-95 around the clock. They show the road live but keep nothing for you. We built iWitness to turn them into a dashcam you never have to think about until you need it.

What it does

  • Pick one of five I-95 cameras in Miami-Dade County from a map or a list and watch it live. No account, no app to install, nothing to buy.
  • Each camera keeps a rolling recording that overwrites its oldest footage, like a dashcam, so the moments before an incident are already there.
  • If something happens, press Save recording. iWitness keeps the minute before your press and the 15 seconds after it.
  • Sign in with Google to keep it. If you pressed while signed out, the footage is held for 15 minutes while you sign in.
  • Your clips live in a private Library. Each one shows the camera, the exact time it covers, and when you saved it. You can play it, download it to share with your insurer, or delete it. Clips delete themselves after 30 days so old footage doesn't pile up.

How it makes insurance simpler for students

  • Prepared without planning ahead. There is no dashcam to buy, mount or charge. The footage is already being recorded before you need it.
  • Less "he said, she said". A clip of the road at the time of the incident gives your insurer context to work from. A fixed camera may not show your car, so we present it as context, never as proof of fault.
  • Accurate details when you're stressed. Each clip records the camera location, the real recording window and the moment you pressed, so you don't have to piece the times together from memory.
  • Private by default. Watching needs no account. Saved clips are visible only to you, playback links expire after a few minutes, and clips are deleted after 30 days.

How we built it

The frontend is React with TypeScript, Vite and Tailwind, with a Leaflet map and an hls.js player with our own scrubber. The backend is FastAPI in Python. It runs one FFmpeg process per camera that records the live FL511 stream into 10 second segments, and we record only the five cameras our FDOT permission covers, for educational use. Postgres on Supabase stores each segment with its real start and end time, and we build our own playlist from those rows so footage that belongs to a saved clip is never overwritten. When you press the button, the server keeps the earlier segments right away, records 15 more seconds, and joins them into one MP4. Google sign-in runs through Supabase Auth, and the server verifies every token itself instead of trusting the browser.

Challenges we ran into

  • Getting real video. Each FL511 stream needs a fresh short-lived token and the right request headers, and the service rate limits you. The recorder fetches a new token every time it starts and backs off when it is told to slow down.
  • Timestamps from the future. FFmpeg read the live stream's backlog too fast, so segments were stamped about 16 seconds ahead of real time. Reading at the stream's natural pace from the live edge fixed it.
  • Smooth rewinding. Scrubbing back first snapped to live, then took about 2 seconds per segment. Marking every segment boundary in the playlist and keeping its numbering small and stable made it smooth.
  • Saving before signing in. Google sign-in leaves the page, so anything kept only in memory is lost. We keep the footage on the server the moment you press, so signing in never costs you the clip.

Accomplishments that we're proud of

The moment the whole project is built around works. You press the button and immediately watch footage from before you pressed it. All 5 cameras record live through our own pipeline, and a saved clip plays back with its exact recording window and the moment of the press marked on the timeline. Along the way we merged 33 pull requests and wrote 81 automated server tests.

What we learned

We learned how live video streaming works under the hood and how to run FFmpeg reliably against a live source. We also learned what makes footage useful for a claim. It needs an exact time, a known location and honest labels, so we show the real recording window and say plainly that a clip gives context, not proof.

What's next

  • A claim-ready summary to go with each clip, with the location, the times and a map.
  • A short in-app guide on what to do in the first minutes after a crash.
  • More cameras on the roads students drive, with permission for each.

Sources

Built With

Share this project:

Updates

Submission history