DEV Community

Cover image for HomeMemory {Memo}
Laiba Ashfaq
Laiba Ashfaq

Posted on

HomeMemory {Memo}

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

HomeMemory is a private memory for the small things families keep forgetting. Mother,sister,father and I are always asking: where are the spare keys, what's the Wi-Fi password, where did the wallet go, which hospital receipt was that, when does this medicine expire.

You take a photo, add a short note ("wallet on the side table in my bedroom"), and a mascot called Memo remembers it. Later you ask in plain English, Urdu or Roman Urdu and get an answer with the source photo. A "Due soon" tab flags medicines and documents before they expire.

I built it for my Mother, who is not at the age to remember everything so 1 time she forget her credit card in some shop so we all are very concern i build this for her so she is in ease .

Demo

Code

GitHub logo laiba-Ashfaq / Home-Memory

A private memory assistant for the small things families keep forgetting.

HomeMemory

A private memory assistant for the small things families keep forgetting.

About

HomeMemory is a personal memory assistant designed to help families remember where important everyday things are and keep track of dates such as document or medicine expiry dates.

The idea came from a simple experience: my mother once left her credit card behind at a shop. It made me think about how often we forget small but important things at home — where we kept our wallet, keys, receipts, documents, or other belongings.

Instead of expecting someone to remember everything, HomeMemory lets them simply ask.

What It Does

With HomeMemory, you can:

  • Take or upload a photo of an item.
  • Add a short note about where it is.
  • Use an open model to analyze the photo and extract useful details.
  • Review and edit the information before saving it.
  • Ask questions about saved items in English, Urdu…

Live Deploy :
http://home-memorygit-an9izpjmre3yesgikuoybq.streamlit.app/

How I Built It

Gemma 4 runs locally through Ollama. It reads each photo and returns structured JSON (category, item, description, readable text, expiry date) and writes the final answers.
EmbeddingGemma turns each memory into a vector, so "extra chabi" can still find "spare keys".
MongoDB Atlas Vector Search stores the memories and finds the closest match to a question.
Streamlit powers the interface, including a dark mode and an animated mascot, Memo.

What I did to keep answers reliable:

  • Forced a fixed JSON schema and temperature 0, so the model can't invent categories.

  • Made your own note the source of truth for where something is.

  • Added a confirm-and-edit step before anything is saved.

  • Added a match threshold, so Memo says "I couldn't find that" instead of guessing.

  • Wrote a small test script: top-1 retrieval accuracy was [X/Y = 78%] on 10 real items.
    What went wrong: a real failure, my wallet was first labelled "document" because of the cards inside, and Then i add edit button and dropdown menue chnage into add also button for belongings .
    result: it takes 10-15 minutes to find these things before This chatbot ,after this it goes to 2-3 minutes maximum

Why Does Open Innovation Matter?

This ChatBot holds Wi-Fi passwords, ID documents, medical receipts and where the jewelry is kept. I didn't want to send those photos to a closed API.

Because Gemma is open-weight, the photo reading and answering run on my own laptop. The images never leave it, there are no per-request costs, and I could change the prompts, schema and model size freely.

One honest limit: the text records and their embeddings are stored in MongoDB Atlas, not locally. The same code also works against a local MongoDB.

My Agent Session

I built HomeMemory by working with Claude in a chat window, then running and testing
everything on my own laptop. I didn't use a coding-agent tool, so I have no agent-session
file to share. The main fixes I made along the way:

  • wallet was first labelled "document"; fixed with a new category and a stricter prompt
  • search threshold tuned so Memo says "not found" instead of guessing
  • UI fixes for dark mode and the upload button

Prize Categories

  • Best Use of Gemma: Gemma 4 runs locally through Ollama. It reads each photo and returns structured JSON, and it writes the answers. EmbeddingGemma creates the embeddings used for search.
  • Best Use of MongoDB Atlas: Atlas stores every memory and Atlas Vector Search finds the closest match to a question.
  • Best Use of ElevenLabs: I used ElevenLabs to generate the narration for my demo video.
  • Best Use of GitHub Copilot: I used Copilot in VS Code to fix errors i encounter like toggle button not working so i had to fix it using copilot ollama takes to much time so i also fixed this issue it now reads images quickly with better score.

Home-page

Top comments (0)