About the Project

Traditional lost and found systems are fundamentally broken. They rely on manual spreadsheets, physical boxes, or public lists that compromise security. If you list a "Gold Rolex" on a public board, you invite false claims. If you don't list it, the owner may never find it. We built findIt to bridge this gap using a "blind matching" architecture that prioritizes privacy without sacrificing efficiency.

Inspiration

The inspiration came from the friction of campus life. When someone loses an item at a massive event like ConUHacks, the recovery process is often a manual game of telephone between organizers and attendees. We wanted to automate the "handshake" between a lost report and a found item using high-dimensional mathematics rather than manual searching.

How We Built It

The core of findIt is the integration of Google Gemini for multimodal understanding and MongoDB Atlas for vector storage.

  • The Embedding Pipeline: When a user uploads a photo or types a description, the data is sent to Gemini. Gemini converts the visual or textual features into a high-dimensional vector.
  • Vector Search: These vectors are stored in MongoDB. To find a match, the system performs a vector search by calculating the Cosine Similarity between the user's inquiry vector () and the inventory vectors ():

  • The Stack: We used Angular for a reactive frontend, FastAPI for a high-concurrency backend, and MongoDB as our primary source of truth.

Challenges Faced

The primary challenge was Multimodal Consistency. A user might describe a "worn leather wallet," while the assistant’s photo shows the same wallet from the back. We had to tune our embedding prompts to ensure Gemini focused on "invariant features" characteristics that remain the same regardless of the angle or the specific words used to describe them.

Additionally, we had to implement strict API-level security to ensure that the Angular frontend could never query the full inventory directly. The "Matching" logic happens entirely server-side, only returning the confidence rate to the assistant to prevent inventory leaks.

What We Learned

Building findIt taught us that the future of search isn't keywords; it is semantics. We learned how to manage the lifecycle of a vector embedding and how to leverage MongoDB's search indexes to perform complex math on thousands of items in milliseconds. Most importantly, we learned how to design software that solves a human problem like losing something valuable with empathy and security.


Would you like me to generate a technical breakdown of the MongoDB Search Index configuration we used?

Share this project:

Updates