<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The fab-dev Blog]]></title><description><![CDATA[This is a developer's brain dump blog... Here most of the time i will post what goes in my mind while i code everyday and what makes me do it every day... 
Chee]]></description><link>https://blog.fabxdev.me</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 15:29:11 GMT</lastBuildDate><atom:link href="https://blog.fabxdev.me/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Introducing ThynkerAI - Reinventing Student Life]]></title><description><![CDATA[Previously on the Blog: The Broken Student Experience
Last time, I talked about something that’s been on my mind for a while — how college students today are drowning. Not in textbooks… but in to-do lists, scattered notes, 18 different apps, and cons...]]></description><link>https://blog.fabxdev.me/introducing-thynkerai-reinventing-student-life</link><guid isPermaLink="true">https://blog.fabxdev.me/introducing-thynkerai-reinventing-student-life</guid><category><![CDATA[AI]]></category><category><![CDATA[Mathematics]]></category><category><![CDATA[ai agents]]></category><category><![CDATA[education]]></category><category><![CDATA[edtech]]></category><dc:creator><![CDATA[Vansh Khanna]]></dc:creator><pubDate>Sat, 31 May 2025 17:33:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Oaqk7qqNh_c/upload/17553a2167b16c6f21b45db0a5ad87bd.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-previously-on-the-blog-the-broken-student-experience"><strong>Previously on the Blog: The Broken Student Experience</strong></h2>
<p>Last time, I talked about something that’s been on my mind for a while — how college students today are <em>drowning</em>. Not in textbooks… but in to-do lists, scattered notes, 18 different apps, and constant context switching.</p>
<p>I asked one question:</p>
<blockquote>
<p><em>What if students had a system — not just another app — that actually understood their academic life and helped them navigate it better?</em></p>
</blockquote>
<p>That question? It kicked off something bigger.</p>
<h2 id="heading-today-im-introducing-thynkerai"><strong>Today, I’m introducing ThynkerAI</strong></h2>
<p>Let me get straight to the point.</p>
<p>College life is a mess. Notes are everywhere. Assignments slip through the cracks. You’re juggling everything — lectures, clubs, exams, side projects — and somehow, you’re still expected to stay on top of it all.</p>
<p>So here’s what I built.</p>
<p><strong>ThynkerAI</strong> — one app to rule your entire academic life.</p>
<p>Not just a to-do app. Not just another AI chatbot. It’s a full-on <strong>AI-powered ecosystem</strong> that helps you study smarter, stay organized, and actually enjoy learning again.</p>
<p>At the center of it are two assistants:</p>
<ul>
<li><p><strong>Euler</strong> — your AI tutor. Ask it anything. It teaches you.</p>
</li>
<li><p><strong>Thynker Agent</strong> — your academic sidekick. It gets things done.</p>
</li>
</ul>
<p>Let me show you what this looks like.</p>
<h2 id="heading-this-isnt-a-tool-its-an-ecosystem-and-heres-how-it-works"><strong>This isn’t a tool. It’s an ecosystem. And here’s how it works.</strong></h2>
<p>Imagine you’re in college.</p>
<p>You open the app. You plug in your schedule, your syllabus, your assignments, your exam dates, maybe even your project ideas.</p>
<p>From that moment, ThynkerAI starts working with you. <strong>Not for students in general. For you. Personally.</strong></p>
<p>It learns how you work, how you study, what you need help with — and then? It just starts helping.</p>
<p>Let’s break it down.</p>
<h2 id="heading-1-notebooks-but-actually-useful"><strong>1. Notebooks — But Actually Useful</strong></h2>
<p>Most students in India still store their notes in all the wrong places — physical books, WhatsApp messages, random PDFs, screenshots, Google Docs that never get opened again.</p>
<p>So I fixed that.</p>
<p>Thynker Notebooks are your second brain. They’re smart, structured, and deeply connected to everything you do inside the app.</p>
<p>Anytime you solve a doubt, upload a file, get an AI explanation, or even generate a graph — just tap <strong>“Add to Notebook.”</strong> Boom. It’s there. No copy-pasting. No tab-switching. No mess.</p>
<p>And later? It’s searchable. Context-aware. Ready to help you revise.</p>
<h2 id="heading-2-learn-anything-any-time-just-ask-euler"><strong>2. Learn Anything, Any Time — Just Ask Euler</strong></h2>
<p>This is your personal tutor — built right into the app.</p>
<p>Want to learn a topic? Pick your subject, education level, chapter, and topic. Euler takes over.</p>
<p>It explains things clearly. Step-by-step. Graphs, diagrams, derivations, formulas, examples, even YouTube videos when it helps.</p>
<p>You don’t have to juggle YouTube, ChatGPT, and Google. You just ask.</p>
<p>And if something clicks? Tap “Add to Notebook.” That’s it.</p>
<h2 id="heading-3-the-thynker-agent-this-is-where-the-magic-happens"><strong>3. The Thynker Agent — This Is Where the Magic Happens</strong></h2>
<p>This one’s special.The Thynker Agent — This Is Where the Magic Happens</p>
<p>The <strong>Thynker Agent</strong> is not here to just <em>answer</em> questions. It’s here to take action.</p>
<p>You can literally say:</p>
<ul>
<li><p>“Track my attendance.”</p>
</li>
<li><p>“Remind me of my assignment on Monday.”</p>
</li>
<li><p>“Build a study plan for my math exam.”</p>
</li>
<li><p>“Help me brainstorm 10 project ideas.”</p>
</li>
<li><p>“Make a roadmap to learn C++ in 3 weeks.”</p>
</li>
</ul>
<p>Even if you don’t know where to start, that’s okay. Just talk to it. That’s the point.</p>
<p>You talk. It thinks. It acts.</p>
<h2 id="heading-why-im-building-this"><strong>Why I’m Building This</strong></h2>
<p>Because the truth is — students today aren’t failing because they’re lazy.</p>
<p>They’re failing because the system makes them juggle 50 different things that have nothing to do with learning.</p>
<p>You shouldn’t need 6 apps, 3 browsers, and 14 open tabs just to understand a topic or manage your week.</p>
<p><strong>ThynkerAI changes that.</strong></p>
<p>It lets you focus. Get into flow. Stay in control. Actually learn.</p>
<p>This is about reclaiming your time — and your brain.</p>
<h2 id="heading-whats-next-the-future-of-thynkerai"><strong>What’s Next: The Future of ThynkerAI</strong></h2>
<p>I’m not stopping here. Here’s what’s already in the works:</p>
<h3 id="heading-mobile-a-voice-activated-learning-assistant">Mobile: A Voice-Activated Learning Assistant</h3>
<p>Think Google Assistant — but made <em>just</em> for students.</p>
<p>You’ll be able to say:</p>
<ul>
<li><p>“Add this to my reading list.”</p>
</li>
<li><p>“Mark today’s classes as done.”</p>
</li>
<li><p>“Remind me to revise thermodynamics at 8 PM.”</p>
</li>
</ul>
<p>No typing. Just talk and learn.</p>
<h2 id="heading-web-the-smartest-browser-extension-for-students">Web: The Smartest Browser Extension for Students</h2>
<p>Because a lot of learning happens outside the app too.</p>
<p>With the extension, you’ll be able to:</p>
<ul>
<li><p>Auto-save notes from any YouTube video.</p>
</li>
<li><p>Highlight text from blogs or PDFs and ask questions about it.</p>
</li>
<li><p>Add articles to your Notebook with one click.</p>
</li>
<li><p>Chat with your saved content — literally talk to your notes.</p>
</li>
</ul>
<p>Seamless, simple, everywhere you study.</p>
<h1 id="heading-the-vision"><strong>The Vision</strong></h1>
<p>This isn’t just an app. I’m building a <strong>student operating system</strong> — powered by AI, designed for clarity, built to grow with you.</p>
<p>One app to study. To plan. To track. To learn. To <em>think</em>.</p>
<p>The way I see it — education should feel like a flow state, not a fight.</p>
<p>And ThynkerAI is here to make that happen.</p>
<p>So yeah, this is just the beginning.</p>
<p>Cheers</p>
]]></content:encoded></item><item><title><![CDATA[Why ChatGPT and Perplexity Aren’t Enough for Indian Students]]></title><description><![CDATA[There’s something I’ve been thinking about for a very long time, and today finally feels like the right moment to say it out loud.
We’ve all talked about the problems in India’s education system — the inefficiencies, the outdated methods, the backwar...]]></description><link>https://blog.fabxdev.me/why-chatgpt-and-perplexity-arent-enough-for-indian-students</link><guid isPermaLink="true">https://blog.fabxdev.me/why-chatgpt-and-perplexity-arent-enough-for-indian-students</guid><category><![CDATA[nootino]]></category><category><![CDATA[AI]]></category><category><![CDATA[#AI and ML]]></category><category><![CDATA[chatgpt]]></category><category><![CDATA[notion]]></category><dc:creator><![CDATA[Vansh Khanna]]></dc:creator><pubDate>Sat, 31 May 2025 11:50:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1748692105084/6f88e93e-9449-4e94-be46-21f599f63ac1.avif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There’s something I’ve been thinking about for a very long time, and today finally feels like the right moment to say it out loud.</p>
<p>We’ve all talked about the problems in India’s education system — the inefficiencies, the outdated methods, the backwardness in classrooms, and the limited access to good technology. But we rarely dig into what this <em>actually means</em> for the average student.</p>
<p>Even today, students in India are required to maintain multiple <strong>paper notebooks</strong> — one for formulas, one for theory, another for rough practice. They have to memorize everything, write it all down again in exams, and even solve practice problems on paper. If they forget or lose their notes, they’re stuck. There’s no easy way to access what they’ve written — no search, no cloud, no backup.</p>
<p>It’s painfully inefficient.</p>
<p>You can’t scale your learning if your knowledge is locked inside physical notebooks. If you don’t carry them with you, you can’t review. If they get lost, it’s gone. You can’t build upon your knowledge unless you have access to it, anytime, anywhere.</p>
<p>That’s why tools like <strong>Notion</strong> or <strong>Obsidian</strong> started making sense to me. They give you digital access, searchable notes, and freedom from physical boundaries. But even those tools are only <em>pieces</em> of the puzzle. They’re not built specifically for students. They don’t understand your syllabus, your learning style, or your goals.</p>
<p>There’s no <strong>single ecosystem</strong> — no Apple-like end-to-end experience for learning.</p>
<p>Apple’s strength is that it controls the entire experience: from cables to laptops to cloud. Education in India needs something similar. Students are storing some notes in Notion, some in their heads, some on paper. They don’t remember where anything is. This is chaos — and it’s killing productivity.</p>
<p><strong>For those of you who don’t know, let me tell you a story.</strong></p>
<p>Back in the early days of computing, there were no personal computers. Just giant machines that filled entire rooms. They were complex, intimidating, and only experts could operate them. You had to remember a series of strange commands just to make something run. The interface was so terrifying that a regular person wouldn’t even <em>think</em> about using a computer.</p>
<p>Then came Steve Jobs.</p>
<p>He didn’t just want to build another computer. He had a vision—a world where <em>everyone</em> could use a computer, not just engineers. He created the first personal computer with a TV-like screen where you could see what you were doing. You didn’t need to memorize commands anymore. You could just <strong>click</strong>.</p>
<p>But here’s the best part: Steve Jobs insisted that the computer should say <strong>“Hello.”</strong> Why? Because he wanted people to feel like the computer was friendly, approachable—not something scary or out of reach. That small “hello” was a powerful symbol. It meant: <em>This machine is for you. You belong here.</em></p>
<p>And that’s exactly the kind of vision I believe we need. The same curiosity. The same creativity. The same bold thinking. That’s what’s missing—and that’s where AI can step in.</p>
<h2 id="heading-why-this-hits-harder-in-india"><strong>Why This Hits Harder in India</strong></h2>
<p>India, honestly, needs this kind of solution <em>more than most countries</em>.</p>
<p>Learning here is extremely inefficient:</p>
<ul>
<li><p>Outdated curriculums.</p>
</li>
<li><p>Students spending hours writing instead of understanding.</p>
</li>
<li><p>Zero exposure to digital tools in many regions.</p>
</li>
<li><p>Faculty that is undertrained in modern, industrial skills.</p>
</li>
</ul>
<p>Students aren’t unmotivated — they’re <em>underserved</em>. They’re doing what they’re told: copying notes, attending coaching, preparing for exams. But they’re not learning how to <em>think</em>, how to <em>build</em>, how to <em>work in real-world environments</em>.</p>
<p>That’s why India has so many educated yet unemployable graduates. They don't know <em>how</em> to work, even if they know <em>what</em> to study. It’s not their fault — the system never equipped them for this world.</p>
<p>And that’s exactly the gap I want to solve.</p>
<h2 id="heading-why-chatgpt-perplexity-amp-merlin-fall-short"><strong>Why ChatGPT, Perplexity &amp; Merlin Fall Short</strong></h2>
<p>You might wonder — isn't ChatGPT, Perplexity, or even tools like Merlin already good enough?</p>
<p>Yes — they’re powerful. But they are <strong>general-purpose tools</strong>. They're built for <em>everyone</em> — not just for students, and definitely not specifically for <em>Indian students</em>.</p>
<p>If you ask ChatGPT to derive a math formula, but don’t tell it your background or syllabus, it might give you an answer that’s <em>technically right</em>, but irrelevant. It might use methods you haven’t studied yet. It assumes too much or too little — because it doesn’t know <em>you</em>.</p>
<p>So, unless every student becomes a prompt engineering expert (which is unrealistic), these tools will always fall short.</p>
<p>That’s why apps like <a target="_blank" href="http://v0.dev"><strong>v0.dev</strong></a>, <strong>Vercel</strong>, or <a target="_blank" href="http://Lovo.ai"><strong>Lovable.dev</strong></a> work — because they act like <em>AI wrappers</em>. They take your raw input, shape it with the right prompts, and send it to ChatGPT to return a more relevant answer. These wrappers act as translators between you and the AI.</p>
<h2 id="heading-what-indian-students-really-need"><strong>What Indian Students Really Need</strong></h2>
<p>What we need isn’t another app.</p>
<p>We need an <strong>ecosystem</strong>.<br />We need a <strong>personal mentor</strong> — a 24/7 guide that:</p>
<ul>
<li><p>Knows your syllabus.</p>
</li>
<li><p>Understands your goals.</p>
</li>
<li><p>Tracks your progress.</p>
</li>
<li><p>Answers your doubts.</p>
</li>
<li><p>Helps you take notes.</p>
</li>
<li><p>Organizes your tasks.</p>
</li>
<li><p>Prepares you for exams.</p>
</li>
<li><p>Teaches you industry-level skills.</p>
</li>
<li><p>And does all of this <strong>automatically</strong>.</p>
</li>
</ul>
<p>The AI shouldn’t just be smart — it should be <strong>tailored</strong>. Personalized. Human-like. Accessible even to the weakest student in the classroom. Because <em>those</em> are the ones who need it the most.</p>
<p>If we can build that — a tool that combines the intelligence of ChatGPT with the structure of Notion, the clarity of a mentor, and the empathy of a human teacher — then we can truly revolutionize learning in India.</p>
<h2 id="heading-the-vision"><strong>The Vision</strong></h2>
<p>The idea is simple, but powerful:</p>
<blockquote>
<p>Make AI so accessible that even the student at the very bottom of the pyramid can rise to the top.</p>
</blockquote>
<p>Not by memorizing. Not by working harder.<br />But by working <em>smarter</em>. With the right guide. With the right tools.</p>
<p>That’s what I want to build.<br />And that’s what I’ll talk about in the next blog.</p>
<p>Cheers</p>
]]></content:encoded></item><item><title><![CDATA[Building DreamWeaver: My AI-Powered Dream Journal for Mental Health]]></title><description><![CDATA[So, I’ve been diving into the intersection of AI and mental health lately. And, honestly, it’s been a wild ride. I’ve always been intrigued by how technology can help us better understand ourselves — and, well, what better way to do that than through...]]></description><link>https://blog.fabxdev.me/building-dreamweaver-my-ai-powered-dream-journal-for-mental-health</link><guid isPermaLink="true">https://blog.fabxdev.me/building-dreamweaver-my-ai-powered-dream-journal-for-mental-health</guid><category><![CDATA[DreamJournal]]></category><category><![CDATA[AI]]></category><category><![CDATA[Mental Health]]></category><category><![CDATA[EmotionalWellBeing]]></category><category><![CDATA[AI Art]]></category><category><![CDATA[ai companion]]></category><dc:creator><![CDATA[Vansh Khanna]]></dc:creator><pubDate>Sun, 11 May 2025 06:49:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/v9X4-ACaPUs/upload/090aede722ba1aa08270eaa8695140ea.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So, I’ve been diving into the intersection of AI and mental health lately. And, honestly, it’s been a wild ride. I’ve always been intrigued by how technology can help us better understand ourselves — and, well, <strong>what better way to do that than through our dreams?</strong></p>
<p>That’s when the idea for <strong>DreamWeaver</strong> was born.</p>
<h3 id="heading-the-problem-understanding-ourselves-through-our-dreams"><strong>The Problem: Understanding Ourselves Through Our Dreams</strong></h3>
<p>If you’ve ever woken up from a crazy dream and wondered, <em>"What the heck was that all about?"</em>, you’re not alone. We’ve all had those weird dreams that just don’t make sense. But what if they actually did? And what if we could <strong>understand our subconscious mind better</strong>?</p>
<p>A lot of us use journals for self-reflection. But let’s be honest — remembering our dreams can be tough, and even harder is interpreting what they actually mean. That’s where I thought AI could come in and make things interesting.</p>
<h3 id="heading-enter-dreamweaver"><strong>Enter: DreamWeaver</strong></h3>
<p>DreamWeaver is <strong>my AI-driven dream analysis and emotional journaling companion</strong>. Here’s how it works:</p>
<ol>
<li><p><strong>Dream Journaling</strong><br /> After you wake up and jot down your dream, DreamWeaver’s AI takes over. It helps you write out your dream by asking reflective questions like, <em>“How did you feel in the dream?”</em> or <em>“What stood out the most?”</em></p>
</li>
<li><p><strong>AI Dream Interpretation</strong><br /> Once your dream is written, DreamWeaver uses GPT-4 to analyze it. The AI pulls out themes, emotions, and even symbolism — like, <em>“water symbolizes emotions,”</em> or <em>“flying usually represents freedom.”</em> It’s like having a mini-therapist in your pocket, helping you make sense of your nightly adventures.</p>
</li>
<li><p><strong>Surreal Dream Art</strong><br /> But wait, it gets cooler. DreamWeaver can generate <strong>dream-inspired artwork</strong> using AI (like DALL·E or Stability AI). So, imagine this: You describe a dream about flying over the ocean, and DreamWeaver turns that into a surreal piece of art that visually represents your dream.</p>
</li>
<li><p><strong>Self-Talk Journaling</strong><br /> After the AI analysis, DreamWeaver invites you to reflect further with open-ended journaling prompts like:</p>
<ul>
<li><p><em>“What do you think the dream was trying to tell you?”</em></p>
</li>
<li><p><em>“How did that dream make you feel in real life?”</em><br />  These reflections aren’t just for the sake of journaling — they help you process emotions and track your mental state over time.</p>
</li>
</ul>
</li>
<li><p><strong>Sharing with a Therapist</strong><br /> One of the features I’m most excited about is the <strong>therapist sharing</strong>. If you want, you can share your dream and emotional journey with a therapist. They can view your entries and offer insights or help guide your reflection. This adds a layer of accountability and professional support, which is key to mental health.</p>
</li>
</ol>
<h3 id="heading-why-generate-ai-art-of-my-dream"><strong>Why Generate AI Art of My Dream?</strong></h3>
<p>You might be wondering, <em>"Why do I need a picture of my dream? What’s the point of seeing AI art based on something I’ve experienced?"</em></p>
<p>The idea behind generating AI art from your dream is to <strong>visualize the abstract</strong>. Dreams are often fragmented, surreal, and hard to grasp. They don’t always have clear meanings, and trying to make sense of them can sometimes feel like putting together a puzzle without all the pieces.</p>
<p>The AI-generated art helps make the <strong>invisible visible</strong>. It’s not just about having a cool picture to look at — it’s about creating a representation of something that’s hard to express in words. This visual representation serves several purposes:</p>
<ul>
<li><p><strong>Clarifying the emotional essence</strong>: Seeing your dream come to life in a visual form can trigger deeper reflection. You might see your emotions or symbolic themes in a new light, leading to personal insights.</p>
</li>
<li><p><strong>Processing your subconscious</strong>: Sometimes, emotions and experiences are hard to articulate. Having a visual cue can make it easier to <strong>process</strong> and understand your feelings or even come to terms with unresolved emotions.</p>
</li>
<li><p><strong>Reconnecting with the dream</strong>: Often, dreams fade from our memory by midday. But a piece of art can serve as a <strong>visual anchor</strong>, helping you reconnect with that dream experience and its underlying message or emotion days later.</p>
</li>
<li><p><strong>Creative expression</strong>: Sometimes, dreams are inherently creative and surreal. By turning them into art, it’s a way to <strong>express the creativity</strong> of your subconscious and give it space in your waking life.</p>
</li>
</ul>
<p>Ultimately, it’s about <strong>finding meaning</strong> in what seems like randomness and offering a more profound way of interacting with your inner world.</p>
<h3 id="heading-why-build-this"><strong>Why Build This?</strong></h3>
<p>I wanted to create something that wasn’t just <strong>"cool AI"</strong> but had <strong>real mental health benefits</strong>. AI is at a point where it can do more than just <strong>chat</strong> or generate text — it can <strong>help</strong>. And in a world where mental health is becoming a bigger focus, why not leverage AI to help people better understand their emotional well-being?</p>
<p>DreamWeaver aims to give users a way to <strong>connect with themselves</strong> through dreams, self-talk, and art. Plus, AI-powered reflection can spark those "Aha!" moments that can lead to <strong>personal growth</strong>.</p>
<h3 id="heading-tech-stack-breakdown"><strong>Tech Stack Breakdown</strong></h3>
<p>So, what’s the magic behind DreamWeaver?</p>
<ul>
<li><p><strong>Frontend</strong>: NEXTjs (for building the chat-style interface)</p>
</li>
<li><p><strong>AI</strong>: GPT-4 (for dream analysis), DALL·E or Stability AI (for dream imagery generation)</p>
</li>
<li><p><strong>Backend</strong>: Appwrite (for data storage and real-time updates)</p>
</li>
</ul>
<h3 id="heading-challenges-and-lessons-learned"><strong>Challenges and Lessons Learned</strong></h3>
<p>Building DreamWeaver hasn’t been all smooth sailing, though. Some of the challenges I faced included:</p>
<ol>
<li><p><strong>Making AI Feel Personal</strong>: It’s tough getting AI to be both insightful and empathetic. I had to fine-tune the prompts to make the analysis feel more like a conversation than just a cold, mechanical response.</p>
</li>
<li><p><strong>User Experience</strong>: I wanted DreamWeaver to feel easy and approachable, but also powerful. Getting the right balance of simplicity with AI power was tricky.</p>
</li>
<li><p><strong>Ethical Considerations</strong>: This project deals with sensitive emotional data. I had to think carefully about privacy, especially when it comes to the therapist-sharing feature. Ensuring that users felt safe and in control of their data was a priority.</p>
</li>
</ol>
<h3 id="heading-whats-next-for-dreamweaver"><strong>What’s Next for DreamWeaver?</strong></h3>
<p>Right now, DreamWeaver is still in its early stages, but I’ve got some big ideas for the future:</p>
<ul>
<li><p><strong>Adding a Sleep Sensor</strong>: Imagine integrating a sleep sensor (maybe an EEG headband?) to track your sleep patterns and correlate them with the dreams you report. This could give deeper insights into your mental health.</p>
</li>
<li><p><strong>Mood Timeline</strong>: I want to implement a feature that tracks your mood over time based on your dreams and self-reflection, helping you spot trends and emotional shifts.</p>
</li>
<li><p><strong>AI-Driven Dream Trends</strong>: Down the road, DreamWeaver could recognize recurring dream themes and offer suggestions for deeper introspection or potential lifestyle changes.</p>
</li>
</ul>
<h3 id="heading-wrapping-up"><strong>Wrapping Up</strong></h3>
<p>Building DreamWeaver has been one of those projects that blends <strong>technology with something deeply personal</strong>. It’s been a lot of trial and error, but I’m excited about where it’s going. The ultimate goal is to give people a new tool for self-awareness and reflection — helping them understand their emotional state, one dream at a time.</p>
<p>Here’s the github repositiry for the project - https://github.com/0xfabb/dreamweaver</p>
<p>If you’re interested in following the journey, feel free to check out the GitHub repo, and if you’re a developer or mental health advocate, I’d love to hear your thoughts on how this can be improved or expanded.</p>
<p>Cheers</p>
]]></content:encoded></item><item><title><![CDATA[Building a Scalable System for Real-Time Waste Verification]]></title><description><![CDATA[Hell i need to finish this up real quick, my github repo is still having that old boiler plate code i wrote for this project. Today i was sitting and working on this project and wanted to finish it up and then i realised oh i need to know how things ...]]></description><link>https://blog.fabxdev.me/building-a-scalable-system-for-real-time-waste-verification</link><guid isPermaLink="true">https://blog.fabxdev.me/building-a-scalable-system-for-real-time-waste-verification</guid><category><![CDATA[System Design]]></category><category><![CDATA[System Architecture]]></category><category><![CDATA[software development]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[Full Stack Development]]></category><category><![CDATA[full stack]]></category><dc:creator><![CDATA[Vansh Khanna]]></dc:creator><pubDate>Fri, 11 Apr 2025 20:24:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1744402784197/ffdc5b56-8507-42c1-96f9-a679b709ab60.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hell i need to finish this up real quick, my github repo is still having that old boiler plate code i wrote for this project. Today i was sitting and working on this project and wanted to finish it up and then i realised oh i need to know how things would work in production so i went on to start by designing the system for Regen…</p>
<p>For your intro and my recap let’s revisit the initial project idea and know what i was building,</p>
<p>Recap -</p>
<blockquote>
<p>This will work with the help of AI. We could utilize the image processing capability of AI and train it in such a way to detect what kind of waste is in the picture and what kind of waste pictures to approve and what not to. This would help to keep track of places with over-smart people.</p>
<p>Also, since the collectors now need to mark the attendance at each house, this would help keep track of which houses are done, ensuring no area is left and that everyone sends the waste properly. The system records <strong>segregation accuracy</strong> and <strong>collection timestamps</strong>. Waste is categorized as <strong>wet, dry, hazardous</strong> and stored in a <strong>database</strong>.</p>
</blockquote>
<p>So this part of the project was to build a portal where users will upload a picture of their waste and then then this picture will be send to the backend for verification…</p>
<h1 id="heading-designing-the-system">Designing the System</h1>
<p>First thing we need to figure out is <strong>how the client (user) will stay connected to the backend.</strong> One way is to use a POST request to send the image and then a GET request to fetch the result. That’s the good old <strong>REST API</strong> way.</p>
<p>But it’s painfully slow and inefficient for this use case. You really don’t want your user staring at the screen, refreshing it again and again just to see if the result came in. And if the response logic crashes somewhere? I’ll have to write <strong>tons of code just to explain</strong> that something went wrong while my server was trying to look at your garbage… lol.</p>
<p>Or we could do what <strong>LeetCode</strong> does when you submit a problem—<strong>polling</strong>. It sends your submission to the backend and then makes a bunch of GET requests every X milliseconds:</p>
<p>“Is it ready? Is it ready now? How about now?”</p>
<p>Since this verification process is asynchronous, those early polls just return pending promises until—finally—the result is ready.</p>
<p>But yeah, this is <strong>super time-consuming and resource-hungry</strong>. I’d be loading my server with a ton of useless GET requests for no reason. Not worth it.</p>
<p>The better solution? <strong>WebSocket</strong>—a persistent, two-way connection between the client and the server.</p>
<p>This way, the user sends the image once, the process kicks off on the backend, and when the result is ready, the server <strong>pushes</strong> it back through the same connection.</p>
<p>No refreshing. No polling. No unnecessary traffic.</p>
<p>Minimal resources. Clean AF.</p>
<h2 id="heading-scaling-this-thought">Scaling this thought…</h2>
<p>This is the high level overview of what the connection architecture might look like in the future… and on the basis of the needs of the product, the best one is ofcourse the websockets one… But this was also one single user centric plan, and now we need to think big and how will the connection scale and for that i thought that -</p>
<p>See, not a single WebSocket connection can handle all these users, nor should it ideally. So, what we need to do is create multiple WS servers and then connect different users to different ones. This can be done on the basis of location… people from one city might end up getting into a single connection, or people from 10 different societies share a connection. Each user has their own user or connection ID, which can be used to verify, out of thousands of people in this connection, which one actually sent something.</p>
<p>Now there is the image handling and verification logic… Ideally, any logic should not be run on the main backend. It should only support the website’s uptime… because if anything goes wrong with this, the entire website goes down. So I think assigning this work to temporary worker CPUs is a better option—they handle these tasks.</p>
<p>Now, since multiple people send some data simultaneously, we could maintain a single or multiple queues, like pub-sub systems. Let’s say multiple people send work to the backend, then it starts pushing this work into a stack or a queue, and the worker handling this task picks up work one at a time from the queue and then performs the desired action.</p>
<h2 id="heading-queue-system-and-pubsubs">Queue System and PubSubs…</h2>
<p>Now this desired action will have two outcomes—either the verification is true or it is false. Now, whatever the response is, instead of directly sending it to the WebSocket server, it sends the response along with the connection ID, WS server ID, and task ID to the main server, which then finds the server ID and routes this to that particular WS server, and then the user finds out the result. In case of failure, the main server receives something which makes it clear that it failed due to an internal error, so it pushes it back to the end of the queue… and the process continues. But we also need to take care that if some task fails X number of times, it should be discarded. Let’s call this the <strong>fail rate</strong>—the number of times we’ll retry verification before giving up.</p>
<p>Now let’s talk about what the server will get and how this will be managed. The user needs to upload a picture of waste, which means the server will receive an image. One option is to upload this picture to the backend using Multer temporarily, but this is not feasible here since people across the country would be uploading pics. So one option is to run an S3 bucket for temporary storage of pics, and then send this image for AI verification from there. Then, this verification returns yes or no. If it is <em>yes</em>, then move it to a permanent bucket, and if it’s <em>no</em>, keep it there until the fail rate is hit. This way, we don’t flood our buckets with unwanted images.</p>
<p>So people upload a pic, which gets uploaded to S3, and the metadata is extracted by the worker and stored in Redis. Then the worker continues with verification, and if the result is <em>yes</em>, the worker follows its path and sends it to the backend and then to the WS connection. Redis also sends the metadata to Postgres, which fills up the entry of waste collected for this house, and the driver gets to know that this house’s waste has been collected.</p>
<h2 id="heading-heres-how-the-system-design-looks">Here’s how the System Design Looks</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744402759452/372c2410-c628-46dc-84b8-24efef6ca35c.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-the-awesome-user-flow">The Awesome User flow</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744402773548/1fd749d9-4f0f-4e21-a0ba-92263cf54301.png" alt class="image--center mx-auto" /></p>
<p>AI Generated - Eraser</p>
<h2 id="heading-ending-and-final-thoughts">Ending and Final Thoughts -</h2>
<p>Now although the system has started to look complex and that it seems theoretically ready to handle production level hits… It has a lot to be taken care of, but that’s just a story for another blog, i’ll keep sharing whatever goes and however it goes…</p>
<p>Thanks…</p>
]]></content:encoded></item></channel></rss>