DEV Community

Cover image for Memora: Personal Memory System
Bhuvan_M_Acharya
Bhuvan_M_Acharya

Posted on

Memora: Personal Memory System

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

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

What I Built

I built Memora, a personal memory system that turns unstructured information into an organized, connected memory.

Don't organize your memories. Just give them to Memora.

People constantly receive information they may want to remember later:

  • conversations
  • people
  • relationships
  • events
  • plans
  • photos
  • places
  • ideas
  • important facts

Traditional note-taking apps generally require the user to decide where and how to organize that information.

AI assistants such as Siri and Google Assistant are primarily designed to answer questions or perform actions.

Memora focuses on something different:

Memora is a persistent memory layer that understands information, determines what it represents, connects it with existing memories, and stores it in the appropriate structure.

Example

Instead of manually creating:

People/
└── Rahul/
    ├── Birthday: October 12
    └── Works at: Google

Events/
└── October 12/
    └── Rahul's Birthday
Enter fullscreen mode Exit fullscreen mode

The user can simply say:

"Rahul's birthday is October 12. He works at Google and we met at the hackathon."

Memora can determine:

Person
└── Rahul
    ├── Birthday → October 12
    └── Workplace → Google

Relationship
└── User → met → Rahul → Hackathon

Event
└── Rahul's Birthday → October 12
Enter fullscreen mode Exit fullscreen mode

The user doesn't have to decide where any of this belongs.


The Core Difference

Note-Taking App

User
  ↓
Creates note
  ↓
Organizes note
  ↓
Searches note later
Enter fullscreen mode Exit fullscreen mode

AI Assistant

User
  ↓
Asks a question
  ↓
AI answers
Enter fullscreen mode Exit fullscreen mode

Memora

User
  ↓
Provides raw information
  ↓
AI understands it
  ↓
Extracts entities and facts
  ↓
Finds related existing memories
  ↓
Determines where the information belongs
  ↓
Creates / updates memories
  ↓
Builds a connected personal knowledge structure
Enter fullscreen mode Exit fullscreen mode

The user provides information. Memora handles the organization.


How I Built It

Memora uses a two-part backend architecture.

                         Mobile App
                             │
                    Text / Photo / Voice
                             │
                             ▼
                   ┌───────────────────┐
                   │    Spring Boot    │
                   │                   │
                   │    MainBoard      │
                   │    Ingestion      │
                   └─────────┬─────────┘
                             │
                             ▼
                   ┌───────────────────┐
                   │      SQLite       │
                   │                   │
                   │ Temporary Input   │
                   └─────────┬─────────┘
                             │
                             │ AI Analysis
                             ▼
                   ┌───────────────────┐
                   │      FastAPI      │
                   │                   │
                   │    AI Memory      │
                   │      Engine       │
                   └─────────┬─────────┘
                             │
                             ▼
                   ┌───────────────────┐
                   │ Structured Memory │
                   │                   │
                   │ People            │
                   │ Events            │
                   │ Places            │
                   │ Facts             │
                   │ Relationships     │
                   └───────────────────┘
Enter fullscreen mode Exit fullscreen mode

Backend

  • Java
  • Spring Boot
  • Spring Data JPA
  • SQLite
  • Flyway
  • REST APIs
  • [ADD OTHER TECHNOLOGIES]

The Spring Boot service acts as the ingestion layer.

Initial input is temporarily stored with:

  • unique ID
  • timestamp
  • input type
  • raw content

It is then passed to the AI service for analysis.

AI Layer

  • Python
  • FastAPI
  • [ADD MODEL NAME]
  • [ADD AI FRAMEWORK / AGENT HARNESS]

The AI service determines what the information represents instead of relying on predefined categories.

Possible memory types include:

Person
Event
Place
Task
Preference
Relationship
Fact
Conversation
Experience
Enter fullscreen mode Exit fullscreen mode

The structure is not limited to a fixed folder system created by the user.


Memory Processing

Raw Input
   ↓
Temporary Storage
   ↓
AI Analysis
   ↓
Entity Extraction
   ↓
Relationship Detection
   ↓
Existing Memory Matching
   ↓
Memory Classification
   ↓
Create / Update Memory
   ↓
Remove Temporary Raw Input
Enter fullscreen mode Exit fullscreen mode

For example:

"Rahul is moving to Bangalore next month"
Enter fullscreen mode Exit fullscreen mode

could become:

Person:
    Rahul

Event:
    Rahul moving to Bangalore

Location:
    Bangalore

Time:
    Next month

Relationship:
    User → knows → Rahul
Enter fullscreen mode Exit fullscreen mode

The AI decides how the information should be represented.


Why Does Open Innovation Matter?

Personal memory is highly sensitive.

A closed AI API can provide powerful intelligence, but it also means that the core intelligence and infrastructure are controlled by an external provider.

Memora is designed around an open architecture where the AI layer can be:

  • replaced
  • self-hosted
  • run locally
  • upgraded independently
  • experimented with using different open models

This makes it possible to explore private, user-controlled AI memory without locking the entire application to one AI provider.


What Makes Memora Different?

Memora is not another chatbot.

It is also not a traditional note-taking app with an AI button.

The fundamental interaction is different:

Traditional App:

"I have information.
Where should I put it?"

Memora:

"I have information.
You figure out what it means."
Enter fullscreen mode Exit fullscreen mode

The AI is responsible for understanding information and deciding how it becomes part of the user's existing memory.

A new memory can introduce:

New Person
New Event
New Place
New Relationship
New Fact
New Category
Enter fullscreen mode Exit fullscreen mode

without requiring the user to manually create the structure first.


My Agent Session

DevRelay Agent Session: [ADD DEVRELAY SESSION LINK]

The project was developed with an AI coding workflow involving:

  • architecture planning
  • code generation
  • debugging
  • implementation
  • refactoring
  • testing
  • documentation

Prize Categories

  • Best Use of Gemma

Creator

Name: Bhuvan M Acharya

GitHub: j4b3-21

DEV: j4b321


What's Next?

  • [ ] Voice input
  • [ ] Photo understanding
  • [ ] Automatic relationship extraction
  • [ ] Semantic memory search
  • [ ] Memory graph visualization
  • [ ] Better temporal reasoning
  • [ ] Local AI inference
  • [ ] Cross-device synchronization
  • [ ] User-controlled memory editing
  • [ ] Memory deletion and privacy controls
  • [ ] Memory confidence and provenance
  • [ ] Better conflict resolution between memories

The long-term goal is to create a system that becomes more useful as it learns the user's world.


Built for a Friend

Memora was built for:

Madhav (My roommaye)

The problem they faced was:

The one man who forgets everything at the perfect time and calls himself the "Clutch Master" for doing the task at the last minute.

Instead of asking them to change how they take notes or organize their life, I wanted to build something that works with the way people naturally remember things:

messy, incomplete, contextual, and connected.


Try It

GitHub: https://github.com/j4b3-21/Memora


Memora

Don't organize your memories. Just give them to Memora.

Top comments (0)