Inspiration
WatchDocks — a clever blend of “Watchdogs” and “bike docks” — was born out of a shared frustration: bike theft. Our team has personally encountered friends and family who experienced the pain of losing bikes, and we’re not alone. In 2024 alone, 2.4 million bikes were stolen across the U.S., according to a survey by Bike Index in collaboration with UC Davis (link).
For students, especially those on campuses, a stolen bike doesn’t just mean a ruined commute — it often means hundreds of dollars lost, missed classes, and hours wasted. WatchDocks aims to tackle this problem head-on.
What it does
WatchDocks is a smart surveillance system that detects bike theft in real-time, alerting users instantly when suspicious activity is observed at bike parking spots. Using motion detection, object tracking, and anomaly detection powered by computer vision, the system can identify patterns that resemble common theft behavior — such as lock tampering or prolonged loitering.
When suspicious activity is detected, a loud siren can be triggered to deter the thief, while an immediate notification is sent to the bike owner via the mobile app. The user can then verify their identity through facial recognition or passcode authentication. If verified, the alert is dismissed. If not, the incident is logged and escalated. This blend of active deterrence and smart verification provides a new layer of protection in public bike parking areas.
How we built it
We built WatchDocks using a React front-end for the user dashboard and alerts interface, powered by a Flask backend that runs computer vision models in real-time. Our detection models were trained using RoboFlow and YOLOv8 to recognize tampering, unauthorized access, and suspicious movement patterns. Mock camera feeds were used during development, and our architecture is modular enough to support real camera streams with minor adjustments. We use MongoDB to store alerts, leveraging its flexible document model and scalability for real-time data handling.
By using the Gemini API, we generated context-aware alerts and warnings based on detected activity patterns, which helps to prevent theft by proactively discouraging suspicious behavior. We integrated Auth0 for user authentication, enabling role-based access control that distinguishes between admins and regular users. Admins have additional privileges to review and manage the siren system.
Challenges we ran into
- Motion detection false positives: Getting our computer vision model to ignore normal foot traffic while detecting actual suspicious behavior was tricky. We had to fine-tune sensitivity thresholds and apply filtering logic.
- Latency in video processing: Real-time video processing required significant optimization to reduce lag between detection and response.
Accomplishments that we're proud of
- We created a clean and intuitive dashboard that makes it easy for users to manage alerts and view camera activity.
- Despite limited resources, we built a fully functional prototype that demonstrates the viability of AI-assisted theft prevention.
What we learned
- We deepened our understanding of how to apply computer vision techniques to real-world safety problems.
- We gained experience in optimizing real-time systems under performance constraints.
- We learned how important UX is when it comes to designing security tools — a well-timed notification or a clear interface can make all the difference.
What's next for WatchDocks
- For our alert and notification system, we will use WebSockets to enable low-latency real-time communication between the server and client. Additionally, we will integrate a basic facial recognition module using the face-api.js library to allow secure user verification.
- Improve detection accuracy: We plan to train the system on more diverse datasets and explore machine learning techniques for more nuanced behavior analysis.
- Partner with campuses and cities: Long-term, we envision WatchDocks being adopted by universities and municipalities as part of their smart infrastructure to promote safer cycling.
Log in or sign up for Devpost to join the conversation.