<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bhuvan_M_Acharya</title>
    <description>The latest articles on DEV Community by Bhuvan_M_Acharya (@j4b321).</description>
    <link>https://dev.to/j4b321</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4152416%2Fa75cda38-5a7f-4df6-b8f3-22b9c2923727.png</url>
      <title>DEV Community: Bhuvan_M_Acharya</title>
      <link>https://dev.to/j4b321</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/j4b321"/>
    <language>en</language>
    <item>
      <title>Memora: Personal Memory System</title>
      <dc:creator>Bhuvan_M_Acharya</dc:creator>
      <pubDate>Sun, 04 Oct 2026 13:00:30 +0000</pubDate>
      <link>https://dev.to/j4b321/memora-personal-memory-system-4g5l</link>
      <guid>https://dev.to/j4b321/memora-personal-memory-system-4g5l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Memora&lt;/strong&gt;, a personal memory system that turns unstructured information into an organized, connected memory.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't organize your memories. Just give them to Memora.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;People constantly receive information they may want to remember later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;conversations&lt;/li&gt;
&lt;li&gt;people&lt;/li&gt;
&lt;li&gt;relationships&lt;/li&gt;
&lt;li&gt;events&lt;/li&gt;
&lt;li&gt;plans&lt;/li&gt;
&lt;li&gt;photos&lt;/li&gt;
&lt;li&gt;places&lt;/li&gt;
&lt;li&gt;ideas&lt;/li&gt;
&lt;li&gt;important facts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional note-taking apps generally require the user to decide &lt;strong&gt;where and how to organize that information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI assistants such as Siri and Google Assistant are primarily designed to &lt;strong&gt;answer questions or perform actions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Memora focuses on something different:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;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.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;Instead of manually creating:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;People/
└── Rahul/
    ├── Birthday: October 12
    └── Works at: Google

Events/
└── October 12/
    └── Rahul's Birthday
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The user can simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Rahul's birthday is October 12. He works at Google and we met at the hackathon."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Memora can determine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Person
└── Rahul
    ├── Birthday → October 12
    └── Workplace → Google

Relationship
└── User → met → Rahul → Hackathon

Event
└── Rahul's Birthday → October 12
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The user doesn't have to decide where any of this belongs.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Difference
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Note-Taking App
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  ↓
Creates note
  ↓
Organizes note
  ↓
Searches note later
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AI Assistant
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  ↓
Asks a question
  ↓
AI answers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Memora
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The user provides information. Memora handles the organization.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  How I Built It
&lt;/h1&gt;

&lt;p&gt;Memora uses a two-part backend architecture.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         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     │
                   └───────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Backend
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Spring Boot&lt;/li&gt;
&lt;li&gt;Spring Data JPA&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Flyway&lt;/li&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;[ADD OTHER TECHNOLOGIES]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Spring Boot service acts as the ingestion layer.&lt;/p&gt;

&lt;p&gt;Initial input is temporarily stored with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unique ID&lt;/li&gt;
&lt;li&gt;timestamp&lt;/li&gt;
&lt;li&gt;input type&lt;/li&gt;
&lt;li&gt;raw content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is then passed to the AI service for analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Layer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;[ADD MODEL NAME]&lt;/li&gt;
&lt;li&gt;[ADD AI FRAMEWORK / AGENT HARNESS]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI service determines what the information represents instead of relying on predefined categories.&lt;/p&gt;

&lt;p&gt;Possible memory types include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Person
Event
Place
Task
Preference
Relationship
Fact
Conversation
Experience
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The structure is not limited to a fixed folder system created by the user.&lt;/p&gt;




&lt;h1&gt;
  
  
  Memory Processing
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Raw Input
   ↓
Temporary Storage
   ↓
AI Analysis
   ↓
Entity Extraction
   ↓
Relationship Detection
   ↓
Existing Memory Matching
   ↓
Memory Classification
   ↓
Create / Update Memory
   ↓
Remove Temporary Raw Input
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Rahul is moving to Bangalore next month"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;could become:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Person:
    Rahul

Event:
    Rahul moving to Bangalore

Location:
    Bangalore

Time:
    Next month

Relationship:
    User → knows → Rahul
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI decides how the information should be represented.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h1&gt;

&lt;p&gt;Personal memory is highly sensitive.&lt;/p&gt;

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

&lt;p&gt;Memora is designed around an open architecture where the AI layer can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;replaced&lt;/li&gt;
&lt;li&gt;self-hosted&lt;/li&gt;
&lt;li&gt;run locally&lt;/li&gt;
&lt;li&gt;upgraded independently&lt;/li&gt;
&lt;li&gt;experimented with using different open models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it possible to explore &lt;strong&gt;private, user-controlled AI memory&lt;/strong&gt; without locking the entire application to one AI provider.&lt;/p&gt;




&lt;h1&gt;
  
  
  What Makes Memora Different?
&lt;/h1&gt;

&lt;p&gt;Memora is &lt;strong&gt;not another chatbot&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is also not a traditional note-taking app with an AI button.&lt;/p&gt;

&lt;p&gt;The fundamental interaction is different:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Traditional App:

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

Memora:

"I have information.
You figure out what it means."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI is responsible for understanding information and deciding how it becomes part of the user's existing memory.&lt;/p&gt;

&lt;p&gt;A new memory can introduce:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;New Person
New Event
New Place
New Relationship
New Fact
New Category
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;without requiring the user to manually create the structure first.&lt;/p&gt;




&lt;h1&gt;
  
  
  My Agent Session
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;DevRelay Agent Session:&lt;/strong&gt; [ADD DEVRELAY SESSION LINK]&lt;/p&gt;

&lt;p&gt;The project was developed with an AI coding workflow involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture planning&lt;/li&gt;
&lt;li&gt;code generation&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;implementation&lt;/li&gt;
&lt;li&gt;refactoring&lt;/li&gt;
&lt;li&gt;testing&lt;/li&gt;
&lt;li&gt;documentation&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Prize Categories
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creator
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; Bhuvan M Acharya&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; j4b3-21&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEV:&lt;/strong&gt; j4b321&lt;/p&gt;




&lt;h1&gt;
  
  
  What's Next?
&lt;/h1&gt;

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

&lt;p&gt;The long-term goal is to create a system that becomes more useful as it learns the user's world.&lt;/p&gt;




&lt;h1&gt;
  
  
  Built for a Friend
&lt;/h1&gt;

&lt;p&gt;Memora was built for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Madhav (My roommaye)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem they faced was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The one man who forgets everything at the perfect time and calls himself the "Clutch Master" for doing the task at the last minute.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;messy, incomplete, contextual, and connected.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Try It
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/j4b3-21/Memora" rel="noopener noreferrer"&gt;https://github.com/j4b3-21/Memora&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Memora
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't organize your memories. Just give them to Memora.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
