Inspiration

Leaving your belongings unattended in a library, even for a quick break, can be stressful. Many people feel uneasy asking strangers to watch over their things, and there’s always uncertainty about whether items have been stolen or tampered with. This everyday anxiety inspired us to create a solution that provides peace of mind when you need to step away.

What it does

WatchMyStuff is a monitoring platform designed to take the stress of theft off students’ shoulders. Users start a monitoring session by entering their email and receiving a unique passkey, which is later used to securely end the session. They can then step away for a quick snack break or a trip to the restroom with confidence, knowing their belongings are being watched. If any item is moved or taken, the user is immediately notified via email, and an alarm sounds on the laptop, drawing attention and discouraging further theft.

How we built it

We built WatchMyStuff as a full-stack web application using Python and Flask as the backend framework, which handles session management, email alerts, and communication between the frontend and the computer vision system. For data storage, we used MongoDB to securely store session information such as user emails, passkeys, and monitoring status.

The frontend was developed with HTML, CSS, and JavaScript, providing a simple and intuitive interface where users can start and end monitoring sessions and receive real-time feedback.

The core monitoring feature was implemented using OpenCV in Python. A webcam continuously tracks the user’s belongings, and when an object moves out of the frame, the system detects the change and triggers an alert. Once triggered, the backend sends an email notification to the user and activates an on-device alarm to discourage theft.

All components are connected through Flask routes and APIs, allowing the vision system, database, and frontend to work together seamlessly in real time.

Challenges we ran into

One of the main challenges that we faced was making sure that the object detection was reliable. Computer vision models tend to fluctuate frame to frame, which can occur due to camera noise or lighting changes, which can cause false alerts, or the objects not being detected the right way. We addressed this issue by making sure the frames were smoother and adding a baseline that counts the initial number of objects. This helps to distinguish between fluctuations and reality.

Accomplishments that we're proud of

  • Successfully integrating computer vision (OpenCV) with a web application to detect when belongings are moved or removed in real time.
  • Building a full-stack system from scratch using Python, Flask, HTML/CSS/JavaScript, and MongoDB.
  • Implementing instant email alerts and an on-device alarm to both notify users and actively deter theft.
  • Designing a simple, user-friendly interface that allows users to start and end monitoring sessions quickly.
  • Delivering a practical, real-world solution that addresses a common problem faced by students.

What we learned

  • How to integrate computer vision (OpenCV) with a web application to trigger real-world actions.
  • Building and connecting a full-stack system, including frontend interfaces, backend APIs, and database management.
  • Managing real-time events and alerts, such as sending emails and triggering alarms based on vision-based detections.
  • Working with Flask and MongoDB to handle session state, user data, and secure access through passkeys.
  • Debugging and coordinating multiple technologies under tight time constraints, improving our teamwork and problem-solving skills.

What's next for WatchMyStuff

  • Improve object detection accuracy by supporting multiple items and reducing false positives.
  • Add a live feed, so that users can track their belongings remotely.
  • Deploy WatchMyStuff as a cloud-hosted service so users don’t need to run it locally.
  • Introduce user authentication and session history, allowing users to review past alerts.
Share this project:

Updates