<?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>OFFLINE: An AI Walking Companion That Gets Out of the Way</title>
      <dc:creator>Bhuvan_M_Acharya</dc:creator>
      <pubDate>Wed, 07 Oct 2026 19:22:29 +0000</pubDate>
      <link>https://dev.to/j4b321/offline-an-ai-walking-companion-that-gets-out-of-the-way-44ig</link>
      <guid>https://dev.to/j4b321/offline-an-ai-walking-companion-that-gets-out-of-the-way-44ig</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;OFFLINE is an offline-first AI walking companion designed around a simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The best AI outdoor experience is one where you stop using the app.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most AI applications are designed to maximize interaction: more messages, more notifications, more screen time, and more engagement.&lt;/p&gt;

&lt;p&gt;OFFLINE takes the opposite approach.&lt;/p&gt;

&lt;p&gt;The goal is to help people spend more time outside while requiring &lt;strong&gt;less attention from their phone&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You enter how much time you have and choose a walking mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quiet&lt;/strong&gt; — minimal intervention and a calmer walk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Curious&lt;/strong&gt; — encourages noticing the physical environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore New Area&lt;/strong&gt; — encourages discovering unfamiliar surroundings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OFFLINE then prepares a short walking experience containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A route&lt;/li&gt;
&lt;li&gt;Points of interest / landmarks&lt;/li&gt;
&lt;li&gt;Physical-world missions&lt;/li&gt;
&lt;li&gt;Walking objectives&lt;/li&gt;
&lt;li&gt;An attention budget&lt;/li&gt;
&lt;li&gt;Minimal guidance instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the walk starts, the phone becomes secondary.&lt;/p&gt;

&lt;p&gt;Instead of opening a chat interface or constantly looking at a map, OFFLINE provides occasional spoken cues and haptic feedback for meaningful moments such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turns&lt;/li&gt;
&lt;li&gt;Route recovery&lt;/li&gt;
&lt;li&gt;Landmarks&lt;/li&gt;
&lt;li&gt;Mission pacing&lt;/li&gt;
&lt;li&gt;Walking progress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The intention is for the user to &lt;strong&gt;look at the world rather than the screen&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  After the Walk
&lt;/h3&gt;

&lt;p&gt;When the walk finishes, OFFLINE creates a story-like session debrief containing metrics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outdoor time&lt;/li&gt;
&lt;li&gt;Uninterrupted walking time&lt;/li&gt;
&lt;li&gt;Route completion&lt;/li&gt;
&lt;li&gt;Missions noticed&lt;/li&gt;
&lt;li&gt;Digital Intrusion Score&lt;/li&gt;
&lt;li&gt;Physical Engagement Score&lt;/li&gt;
&lt;li&gt;AI Disappearance Rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are &lt;strong&gt;project-defined experimental metrics&lt;/strong&gt;, not clinically validated measurements.&lt;/p&gt;

&lt;p&gt;The project is intended for anyone who wants help exploring the outdoors without turning their walk into another screen-based activity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GitHub Repository
&lt;/h3&gt;

&lt;p&gt;The complete project is available here:&lt;/p&gt;

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

&lt;p&gt;The native application runs as an Expo development build.&lt;/p&gt;

&lt;p&gt;The iOS simulator build has been verified, and the repository contains instructions for running the native application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install
&lt;/span&gt;npx expo start
npm run ios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Live GPS navigation requires the native development build because it depends on device location capabilities.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The complete open-source code is available on GitHub:&lt;/p&gt;

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

&lt;p&gt;The repository is licensed under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The project is structured so that the AI/model layer is separated from deterministic navigation, route geometry, movement tracking, and safety logic.&lt;/p&gt;

&lt;p&gt;This means the application can continue functioning even when an AI model is unavailable.&lt;/p&gt;




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

&lt;p&gt;OFFLINE is built as a native React Native application using Expo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React Native&lt;/li&gt;
&lt;li&gt;Expo SDK 57&lt;/li&gt;
&lt;li&gt;Expo Router&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Expo Location&lt;/li&gt;
&lt;li&gt;Expo Speech&lt;/li&gt;
&lt;li&gt;Expo Haptics&lt;/li&gt;
&lt;li&gt;&lt;code&gt;llama.rn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;TinyLlama 1.1B Chat GGUF&lt;/li&gt;
&lt;li&gt;Vitest&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Local-First Architecture
&lt;/h3&gt;

&lt;p&gt;The project is designed around local execution and local data storage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    User
                      │
                      ▼
             Duration + Walk Mode
                      │
                      ▼
             Local Experience Planner
                      │
                      ▼
                Schema Validation
                      │
                      ▼
           Safety / Constraint Checks
                      │
                      ▼
        ┌──────────────────────────────┐
        │       Walking Experience     │
        │                              │
        │  • Route                     │
        │  • Landmarks                 │
        │  • Missions                  │
        │  • Attention Budget          │
        │  • Guidance                  │
        └──────────────────────────────┘
                      │
                      ▼
             Walking Session
                      │
          ┌───────────┴───────────┐
          ▼                       ▼
     GPS Tracking             Haptics
          │                       │
          └───────────┬───────────┘
                      ▼
                Voice Guidance
                      │
                      ▼
              Local Session Data
                      │
                      ▼
                Walk Debrief
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AI Abstraction
&lt;/h3&gt;

&lt;p&gt;The AI layer is abstracted behind a &lt;code&gt;LocalModel&lt;/code&gt; interface.&lt;/p&gt;

&lt;p&gt;The interface provides operations such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;load()
generate()
stream()
unload()
metadata()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows the application to separate the model implementation from the rest of the walking experience.&lt;/p&gt;

&lt;p&gt;The current MVP uses a deterministic offline &lt;code&gt;MockModel&lt;/code&gt; as its default planner.&lt;/p&gt;

&lt;p&gt;The planner uses real inputs such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Walking duration&lt;/li&gt;
&lt;li&gt;Walking mode&lt;/li&gt;
&lt;li&gt;Random seed&lt;/li&gt;
&lt;li&gt;Starting location&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to generate the walking experience.&lt;/p&gt;

&lt;p&gt;This keeps the MVP usable without requiring a server, API key, or model download.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optional On-Device AI
&lt;/h3&gt;

&lt;p&gt;The project also supports optional local TinyLlama 1.1B Chat GGUF inference through &lt;code&gt;llama.rn&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The model can run directly on the device and is downloaded into the application's private storage.&lt;/p&gt;

&lt;p&gt;The model layer remains isolated from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigation&lt;/li&gt;
&lt;li&gt;GPS tracking&lt;/li&gt;
&lt;li&gt;Route geometry&lt;/li&gt;
&lt;li&gt;Movement detection&lt;/li&gt;
&lt;li&gt;Safety decisions&lt;/li&gt;
&lt;li&gt;Session storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it possible to experiment with different local models without rebuilding the entire application architecture around a single model.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deterministic Systems vs AI
&lt;/h2&gt;

&lt;p&gt;One of the most important architectural decisions in OFFLINE is that the AI is &lt;strong&gt;not the authority for safety-critical behavior&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The system separates generative responsibilities from deterministic responsibilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI / Generative Responsibilities
&lt;/h3&gt;

&lt;p&gt;The model can help with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Walking experience generation&lt;/li&gt;
&lt;li&gt;Mission generation&lt;/li&gt;
&lt;li&gt;Descriptions&lt;/li&gt;
&lt;li&gt;Interpretive content&lt;/li&gt;
&lt;li&gt;Session storytelling&lt;/li&gt;
&lt;li&gt;Personalized suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Deterministic Responsibilities
&lt;/h3&gt;

&lt;p&gt;The application itself handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Route geometry&lt;/li&gt;
&lt;li&gt;Distance calculations&lt;/li&gt;
&lt;li&gt;Position tracking&lt;/li&gt;
&lt;li&gt;Movement detection&lt;/li&gt;
&lt;li&gt;Route progress&lt;/li&gt;
&lt;li&gt;Constraint validation&lt;/li&gt;
&lt;li&gt;Safety checks&lt;/li&gt;
&lt;li&gt;Session persistence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              AI
               │
               ▼
      Experience Suggestions
               │
               ▼
       Schema Validation
               │
               ▼
      Deterministic Systems
               │
        ┌──────┴──────┐
        ▼             ▼
      Route         Safety
     Tracking       Logic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model is never treated as the authority for emergency or safety-critical decisions.&lt;/p&gt;




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

&lt;p&gt;A closed AI API would make it easy to build a conversational walking assistant.&lt;/p&gt;

&lt;p&gt;But that would work against the core purpose of OFFLINE.&lt;/p&gt;

&lt;p&gt;A conventional AI assistant could require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuous internet access&lt;/li&gt;
&lt;li&gt;Sending location-related context to a remote service&lt;/li&gt;
&lt;li&gt;API credentials&lt;/li&gt;
&lt;li&gt;Continuous interaction&lt;/li&gt;
&lt;li&gt;A large conversational interface&lt;/li&gt;
&lt;li&gt;A dependency on a third-party AI provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OFFLINE explores a different approach.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Models Make Local AI Possible
&lt;/h3&gt;

&lt;p&gt;With open-weight models and local inference, AI functionality can move closer to the device.&lt;/p&gt;

&lt;p&gt;That makes it possible to experiment with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Offline walking plans&lt;/li&gt;
&lt;li&gt;Local inference&lt;/li&gt;
&lt;li&gt;Private location context&lt;/li&gt;
&lt;li&gt;Local session data&lt;/li&gt;
&lt;li&gt;Replaceable AI models&lt;/li&gt;
&lt;li&gt;No mandatory cloud AI dependency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application can continue working even if the model is unavailable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Architecture Makes Experimentation Possible
&lt;/h3&gt;

&lt;p&gt;The AI layer is deliberately abstracted behind a local model interface.&lt;/p&gt;

&lt;p&gt;That means the project isn't locked to one model.&lt;/p&gt;

&lt;p&gt;A developer can experiment with different local models while keeping the rest of the walking system unchanged.&lt;/p&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;                 LocalModel
                     │
          ┌──────────┼──────────┐
          │          │          │
          ▼          ▼          ▼
      MockModel   TinyLlama   Future Model
          │          │          │
          └──────────┼──────────┘
                     ▼
             OFFLINE Planner
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is important because the interesting question isn't simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can an AI generate a walking route?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The more interesting question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Can AI be useful while deliberately disappearing from the user's attention?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open innovation makes that experiment possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI That Measures Success by Disappearing
&lt;/h2&gt;

&lt;p&gt;Most AI products measure success through engagement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Messages sent&lt;/li&gt;
&lt;li&gt;Sessions started&lt;/li&gt;
&lt;li&gt;Time spent&lt;/li&gt;
&lt;li&gt;Interactions&lt;/li&gt;
&lt;li&gt;Retention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OFFLINE intentionally experiments with the opposite direction.&lt;/p&gt;

&lt;p&gt;The ideal session is one where the user spends &lt;strong&gt;less time interacting with the application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The phone should provide enough assistance to make the walk interesting and safe, and then get out of the way.&lt;/p&gt;

&lt;p&gt;This is why OFFLINE includes experimental concepts such as:&lt;/p&gt;

&lt;h3&gt;
  
  
  Digital Intrusion Score
&lt;/h3&gt;

&lt;p&gt;An experimental measure of how much the digital interface interrupts the walking experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Physical Engagement Score
&lt;/h3&gt;

&lt;p&gt;An experimental measure representing how much of the experience encourages attention toward the physical environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Disappearance Rate
&lt;/h3&gt;

&lt;p&gt;An experimental concept representing how often the AI can successfully provide useful assistance without requiring direct user interaction.&lt;/p&gt;

&lt;p&gt;These metrics are exploratory project concepts, not validated scientific or clinical measurements.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Makes OFFLINE Different?
&lt;/h2&gt;

&lt;p&gt;The project is intentionally not another AI chatbot with a map attached to it.&lt;/p&gt;

&lt;p&gt;It is designed around &lt;strong&gt;AI restraint&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How can I make the user interact with AI more?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OFFLINE asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"How can AI help the user and then disappear?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That changes the product architecture.&lt;/p&gt;

&lt;p&gt;There is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No continuous chat requirement&lt;/li&gt;
&lt;li&gt;No AI-generated feed&lt;/li&gt;
&lt;li&gt;No engagement-optimized notifications&lt;/li&gt;
&lt;li&gt;No requirement for constant screen interaction&lt;/li&gt;
&lt;li&gt;No dependency on a cloud AI API for the core MVP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI prepares the experience.&lt;/p&gt;

&lt;p&gt;The physical world becomes the interface.&lt;/p&gt;




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

&lt;p&gt;I used an AI coding workflow to design and implement the OFFLINE MVP, including its architecture, local model abstraction, walking experience planner, native Expo application structure, and testing workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevRelay Agent Session:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/agent_sessions/building-offline-for-hacktoberfest-an-ai-walking-companion-7tjxgv"&gt;https://dev.to/agent_sessions/building-offline-for-hacktoberfest-an-ai-walking-companion-7tjxgv&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am entering the overall:&lt;/p&gt;

&lt;h3&gt;
  
  
  Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass
&lt;/h3&gt;

&lt;p&gt;The project focuses on using open-source/local AI to encourage people to spend more time outdoors while reducing their dependence on the screen.&lt;/p&gt;

&lt;p&gt;I am &lt;strong&gt;not currently entering a partner category&lt;/strong&gt;, because the current implementation does not use one of the listed partner technologies as a qualifying integration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Project Goals
&lt;/h2&gt;

&lt;p&gt;OFFLINE is an experiment in a different kind of AI product.&lt;/p&gt;

&lt;p&gt;The goal isn't to make AI more visible.&lt;/p&gt;

&lt;p&gt;The goal is to make AI &lt;strong&gt;useful enough to become invisible&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The project explores whether local AI can help people:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Spend more time outdoors.&lt;/li&gt;
&lt;li&gt;Discover their surroundings.&lt;/li&gt;
&lt;li&gt;Walk without constantly looking at their phone.&lt;/li&gt;
&lt;li&gt;Keep location/session data local.&lt;/li&gt;
&lt;li&gt;Use AI without requiring a cloud API.&lt;/li&gt;
&lt;li&gt;Treat AI as an occasional tool rather than a constant companion.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Touch grass. Let the AI disappear.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;Built as an open-source project for the Hacktoberfest Open-Source AI Challenge.&lt;/p&gt;

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

&lt;p&gt;License: MIT&lt;/p&gt;




</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <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>
