<?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: Abhishek Jha</title>
    <description>The latest articles on DEV Community by Abhishek Jha (@abhishek_jha_db6eaa98a2af).</description>
    <link>https://dev.to/abhishek_jha_db6eaa98a2af</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%2F4161282%2Ff788a69c-b99d-4416-9a47-01a1421e1296.png</url>
      <title>DEV Community: Abhishek Jha</title>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishek_jha_db6eaa98a2af"/>
    <language>en</language>
    <item>
      <title>ExamMate AI: When an Open-Weight AI Becomes Your Personal Study Buddy</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Wed, 28 Oct 2026 18:44:20 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/exammate-ai-when-an-open-weight-ai-becomes-your-personal-study-buddy-7j9</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/exammate-ai-when-an-open-weight-ai-becomes-your-personal-study-buddy-7j9</guid>
      <description>&lt;p&gt;What I Built&lt;br&gt;
ExamMate AI is an AI-powered study assistant designed to help students understand difficult concepts, revise topics, and prepare for exams.&lt;br&gt;
The idea behind this project is simple: what if every student had a personal AI study partner available whenever they needed help?&lt;br&gt;
Inspired by the theme Ghost in the Machine, this project explores how an AI system can feel like an invisible companion living inside a computer—ready to explain concepts, answer questions, and help students learn at their own pace.&lt;br&gt;
Rather than replacing teachers, ExamMate AI aims to make learning more accessible, interactive, and less intimidating.&lt;br&gt;
Demo&lt;br&gt;
Try the live demo:&lt;br&gt;
&lt;a href="https://exammate-ai.vercel.app/%E2%81%A0%EF%BF%BD" rel="noopener noreferrer"&gt;https://exammate-ai.vercel.app/⁠�&lt;/a&gt;&lt;br&gt;
Code&lt;br&gt;
Explore the source code on GitHub:&lt;br&gt;
&lt;a href="https://github.com/YOUR_USERNAME/exammate-ai%E2%81%A0%EF%BF%BD" rel="noopener noreferrer"&gt;https://github.com/YOUR_USERNAME/exammate-ai⁠�&lt;/a&gt;&lt;br&gt;
Note: Replace this repository link with your actual public GitHub repository. The demo URL is the previously proposed address, so verify that it works before submitting.&lt;br&gt;
How I Built It&lt;br&gt;
I planned ExamMate AI around an open-weight language model, Google Gemma 2 2B IT, using Hugging Face for model inference.&lt;br&gt;
The proposed technology stack includes:&lt;br&gt;
HTML, CSS, and JavaScript: For the user interface and interactive experience.&lt;br&gt;
Google Gemma 2 2B IT: For generating AI-powered study responses.&lt;br&gt;
Hugging Face: For accessing the model through inference.&lt;br&gt;
Vercel Functions: For handling backend requests.&lt;br&gt;
Vercel: For deployment.&lt;br&gt;
The goal is to make the application simple to use while exploring how open-weight AI models can power practical educational tools.&lt;br&gt;
Why Does Open Innovation Matter?&lt;br&gt;
Open innovation makes AI experimentation more accessible to students and independent developers.&lt;br&gt;
Open-weight models give developers more opportunities to understand how AI works, experiment with different applications, and build tools tailored to specific needs.&lt;br&gt;
For students like me, this is especially valuable. We can move beyond simply using AI applications and start building our own.&lt;br&gt;
Projects like ExamMate AI demonstrate how open-source tools, accessible development platforms, and open-weight models can help turn an idea into a practical application.&lt;br&gt;
My Agent Session&lt;br&gt;
This project was developed as an exploration of building a useful AI-powered application.&lt;br&gt;
I don't have a verified DevRelay agent-session link to share, so I'm leaving this optional section out.&lt;br&gt;
The Spirit of It 👻&lt;br&gt;
The most interesting part of AI is that you cannot see the intelligence itself. You interact with a screen, type a question, and receive a response that can help you understand something you struggled with moments earlier.&lt;br&gt;
For a student preparing for exams, that invisible companion can make learning feel less lonely.&lt;br&gt;
That is my interpretation of Ghost in the Machine: intelligence operating inside a machine, creating experiences that feel surprisingly human.&lt;br&gt;
Prize Categories&lt;br&gt;
This project explores educational AI built around an open-weight language model.&lt;br&gt;
Important: Select the actual partner categories listed on the official challenge page that your implementation qualifies for.&lt;br&gt;
Before you publish — three important checks&lt;br&gt;
Verify your GitHub repository. The repository link above is a placeholder, not a confirmed public repository.&lt;br&gt;
Verify the demo. Make sure the application is deployed and its AI functionality works.&lt;br&gt;
Confirm the Week 4 requirements. Your project must genuinely meet the challenge's open-source AI requirements. Don't claim that Gemma 2 or Hugging Face was used unless they are actually integrated into your working implementation.&lt;br&gt;
One final tip: Simply publishing a post may not be enough to qualify for a challenge-specific badge. Check the official challenge rules and required tags.&lt;br&gt;
I recommend submitting a genuine, working project rather than relying on a template alone.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>FreelancerAI: I Built a Private, Local-First AI Expense Sorter for Freelancers 💸</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Wed, 14 Oct 2026 09:35:08 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/freelancerai-i-built-a-private-local-first-ai-expense-sorter-for-freelancers-25lh</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/freelancerai-i-built-a-private-local-first-ai-expense-sorter-for-freelancers-25lh</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle⁠�&lt;br&gt;
What I Built&lt;br&gt;
Meet FreelancerAI — a local-first invoice and receipt sorter designed for freelancers, solopreneurs, and small business owners who want to organize their expenses without uploading sensitive financial documents to third-party servers.&lt;br&gt;
Freelancers have enough to worry about: finding clients, meeting deadlines, managing projects, and getting paid. Organizing receipts and preparing expense reports shouldn't consume hours of their time.&lt;br&gt;
That's the problem I wanted to tackle.&lt;br&gt;
With FreelancerAI, you can upload a receipt, extract its important details, categorize the expense, track your spending, and export your records for further analysis.&lt;br&gt;
And the best part? Your financial data stays in your browser.&lt;br&gt;
✨ What can FreelancerAI do?&lt;br&gt;
🧾 1. Extract receipt information&lt;br&gt;
Upload a receipt or invoice image and use browser-based OCR to extract text, including information such as the vendor, date, and amount.&lt;br&gt;
🏷️ 2. Automatically categorize expenses&lt;br&gt;
The built-in parser uses keyword matching and regular expressions to classify expenses into business categories.&lt;br&gt;
📊 3. Track your spending&lt;br&gt;
View your expenses through a dashboard with category breakdowns, spending statistics, and a monthly timeline.&lt;br&gt;
📁 4. Export your records&lt;br&gt;
Download expense data as CSV or JSON, or generate a formatted expense summary for your records.&lt;br&gt;
🔒 5. Keep your financial data private&lt;br&gt;
FreelancerAI processes receipt images in the browser instead of uploading them to a backend server. Extracted data is stored locally in the browser.&lt;br&gt;
There are no accounts to create and no cloud AI API keys to configure.&lt;br&gt;
🎯 Who would use it?&lt;br&gt;
I built FreelancerAI with people in mind who need a straightforward way to manage business expenses:&lt;br&gt;
Freelancers: Organize receipts from client projects and track work-related spending.&lt;br&gt;
Solopreneurs: Maintain expense records without paying for a complicated accounting platform.&lt;br&gt;
Small business owners: Categorize everyday expenses and export records for bookkeeping.&lt;br&gt;
Independent consultants: Keep financial documents under their own control.&lt;br&gt;
The goal is simple: make expense organization less tedious and give people more control over their financial data.&lt;br&gt;
Demo&lt;br&gt;
🚀 Try FreelancerAI here:&lt;br&gt;
&lt;a href="https://freelancerai-six.vercel.app/%E2%81%A0%EF%BF%BD" rel="noopener noreferrer"&gt;https://freelancerai-six.vercel.app/⁠�&lt;/a&gt;&lt;br&gt;
Open the application, upload a sample receipt, and explore its expense extraction, categorization, dashboard, and export features.&lt;br&gt;
Tip: Try the included sample receipt if you don't want to upload a personal financial document.&lt;br&gt;
Code&lt;br&gt;
💻 GitHub Repository:&lt;br&gt;
&lt;a href="https://github.com/ahanghosh77/FreelancerAI%E2%81%A0%EF%BF%BD" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/FreelancerAI⁠�&lt;/a&gt;&lt;br&gt;
The project is released under the MIT license. You can explore the implementation, run it locally, modify it, or build your own version.&lt;br&gt;
How I Built It&lt;br&gt;
I wanted to keep the application lightweight and accessible instead of introducing a complicated backend or relying on paid AI APIs.&lt;br&gt;
Here's the technology behind FreelancerAI:&lt;br&gt;
HTML: Structures the application interface.&lt;br&gt;
CSS: Provides the responsive layout and visual design.&lt;br&gt;
JavaScript: Handles receipt processing, expense extraction, categorization, dashboard updates, and exports.&lt;br&gt;
Tesseract.js: Performs optical character recognition (OCR) directly in the browser.&lt;br&gt;
Custom rule-based parser: Uses keywords and regular expressions to identify and categorize expense information.&lt;br&gt;
Browser local storage: Stores expense records locally.&lt;br&gt;
Vercel: Hosts the web application.&lt;br&gt;
The architecture avoids a traditional backend for receipt processing. This helps keep the application simple, reduces infrastructure requirements, and gives users greater control over their information.&lt;br&gt;
One important technical distinction: FreelancerAI uses browser-based OCR and a custom rule-based NLP parser rather than a large language model. I chose this lightweight approach to avoid cloud inference costs and keep the processing local.&lt;br&gt;
What Makes It Different?&lt;br&gt;
Many expense-management tools are designed around accounts, subscriptions, cloud storage, or external services.&lt;br&gt;
FreelancerAI takes a different approach.&lt;br&gt;
Local-first by design.&lt;br&gt;
Instead of sending financial documents to a remote server for processing, the application performs its main receipt-processing tasks in the browser.&lt;br&gt;
No cloud AI API bills.&lt;br&gt;
The OCR and categorization pipeline doesn't depend on a paid cloud AI inference API.&lt;br&gt;
Lightweight and accessible.&lt;br&gt;
The application uses standard web technologies and doesn't require a complicated installation or backend setup.&lt;br&gt;
Your data remains under your control.&lt;br&gt;
Users can export their records instead of being locked into a proprietary data format.&lt;br&gt;
These choices make FreelancerAI a practical starting point for people who want expense-management functionality without unnecessary infrastructure.&lt;br&gt;
💸 The Side Hustle Angle&lt;br&gt;
A side hustle doesn't always need to be another marketplace or a complicated business platform. Sometimes, it's a small tool that solves a repetitive problem for people who already run their own businesses.&lt;br&gt;
Freelancers regularly handle receipts for software subscriptions, travel, equipment, internet bills, and other business expenses.&lt;br&gt;
Manually organizing those documents can become frustrating, especially when it's time to prepare expense reports or share records with an accountant.&lt;br&gt;
FreelancerAI aims to make that process easier.&lt;br&gt;
Who might pay for it?&lt;br&gt;
Potential customers include:&lt;br&gt;
Freelancers who need simple expense tracking.&lt;br&gt;
Consultants who want an organized record of business purchases.&lt;br&gt;
Small business owners who need lightweight expense reporting.&lt;br&gt;
Bookkeepers looking for a simple starting point for collecting expense records.&lt;br&gt;
The current application is free to use. Possible future business models include optional paid features, customizable expense categories, batch receipt processing, and additional reporting tools.&lt;br&gt;
I haven't assumed that potential customers will automatically pay for it. Validating that demand through real user feedback is an important next step.&lt;br&gt;
🌍 Why Open Innovation Matters&lt;br&gt;
For me, open innovation is about giving developers and users the freedom to understand, modify, and improve the tools they depend on.&lt;br&gt;
FreelancerAI demonstrates this through its use of open-source browser technology and its MIT-licensed codebase.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Privacy should not require an expensive subscription
Financial documents can contain sensitive information about a person's business and clients.
Keeping receipt processing in the browser reduces the need to send those documents to external processing services.&lt;/li&gt;
&lt;li&gt;Lower operating costs make small tools viable
A traditional cloud-based AI application may require ongoing inference and hosting expenses.
FreelancerAI's local processing approach avoids paid cloud inference for its core workflow. That makes it easier to experiment with the project without accumulating API bills.&lt;/li&gt;
&lt;li&gt;Developers can build on the work
The MIT license allows other developers to study the code, adapt the application, and create their own improvements.
Someone could add regional expense categories, improve date extraction, introduce more export formats, or build integrations for a specific freelance workflow.&lt;/li&gt;
&lt;li&gt;Users retain control over their records
CSV and JSON exports help users move their data into other tools without depending entirely on one platform.
I believe useful software should give people more control, not create another dependency. Open-source tools make that philosophy easier to put into practice.
🧠 Challenges and Lessons Learned
One of the interesting parts of this project was working with receipt images.
Receipt layouts are inconsistent. Vendors use different formats, dates can appear in multiple styles, and the final amount isn't always the easiest number to identify.
OCR can extract text, but extracting text isn't the same as understanding a receipt perfectly.
That is why the parsing and categorization logic matters. Keyword matching and regular expressions can handle common cases, but unusual layouts may require users to review or correct the extracted information.
This project reinforced an important lesson for me: building a useful AI-assisted application isn't just about adding an AI model. Sometimes, a carefully designed processing pipeline can solve a specific problem more efficiently.
There is still room to improve extraction accuracy, support more receipt formats, and test the application against a broader collection of real-world examples.
🔮 What's Next?
I would like to explore several improvements:
Batch processing for multiple receipts.
Better handling of different date and currency formats.
Improved detection of totals, taxes, and line items.
Custom categories for different professions.
More detailed monthly and yearly reports.
Optional integrations with accounting tools.
User testing to understand which features people would actually pay for.
The priority is to improve reliability and usefulness before adding unnecessary complexity.
Final Thoughts
FreelancerAI started with a simple idea: expense management should be easier, more accessible, and more respectful of user privacy.
By combining browser-based OCR, lightweight parsing, local storage, and open-source web technologies, I built a working starting point for a tool that could help freelancers spend less time organizing receipts.
This is an ongoing project, and I would love feedback from freelancers, developers, and anyone interested in privacy-friendly applications.
If you try FreelancerAI, I'd love to know: What's the most frustrating part of managing your business expenses, and what would make this tool genuinely useful to you?
Thanks for reading! 🚀&lt;/li&gt;
&lt;li&gt;Tags to add on DEV
Add these four tags to your article:
#devchallenge #hf26challenge #hacktoberfest #opensource
These match the challenge's required tags and the project's theme. �
DEV Community&lt;/li&gt;
&lt;li&gt;How to submit it
Open the official Hacktoberfest Week 2 challenge page⁠�.
Sign in to your DEV Community account.
Create a new post.
Copy the title and article body above into the editor.
Add the four tags listed above.
Check that the demo opens and the GitHub repository is accessible.
Preview the article to make sure the headings, links, and formatting look correct.
Publish the article before the deadline.
The Week 2 submission window ends October 18, 2026, at 11:59 PM PDT. �
DEV Community&lt;/li&gt;
&lt;li&gt;Important checks before publishing
I have intentionally avoided claiming that you already have paying customers or that the application has achieved a particular accuracy rate.
Before publishing, please verify these three things:
Demo: Open the live application and confirm that its core features work.
Privacy: Test the application with your browser's developer tools if you want to make a strong zero-network-requests claim. Browser storage and cached libraries should also be considered when evaluating privacy.
Open-source AI eligibility: The project README identifies Tesseract.js and a custom rule-based parser as its processing components. The contest requires open-source AI or open-weight models to be central to the project. Whether this particular implementation qualifies may depend on the judges' interpretation, so check the official rules carefully before submitting. �
DEV Community +1
My recommendation: Publish only after confirming that your implementation satisfies the challenge's open-source AI requirement. The article is ready to use as a draft, but no article can guarantee contest eligibility or a prize.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>FoliageStride AI — Scenic Autumn Run &amp; Park Route Explorer</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Thu, 08 Oct 2026 05:26:20 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/foliagestride-ai-scenic-autumn-run-park-route-explorer-56ja</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/foliagestride-ai-scenic-autumn-run-park-route-explorer-56ja</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;&lt;strong&gt;FoliageStride AI&lt;/strong&gt; is a scenic autumn run &amp;amp; park route builder built to solve a modern fitness irony: runners going outdoors just to stare at GPS screens, pace charts, and turn-by-turn prompts every 30 seconds.&lt;/p&gt;

&lt;p&gt;Instead of keeping runners glued to their devices, FoliageStride AI uses &lt;strong&gt;Google Gemma 2&lt;/strong&gt; to synthesize autumn running routes based on distance (2 km, 5 km, 8 km), terrain preference (Maple &amp;amp; Oak canopies, riverbank reflections, historic park perimeters, or hilltop ridges), and pacing style.&lt;/p&gt;

&lt;p&gt;In under 30 seconds:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You select your distance and desired autumn scenery.&lt;/li&gt;
&lt;li&gt;Google Gemma 2 synthesizes the route and extracts &lt;strong&gt;3 to 4 distinct physical visual landmarks&lt;/strong&gt; such as &lt;em&gt;The Century Red Oak Grove&lt;/em&gt;, &lt;em&gt;Heron Creek Footbridge&lt;/em&gt;, or &lt;em&gt;Old Stone Wall&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;You commit the visual landmarks to memory, hit &lt;strong&gt;Start Run&lt;/strong&gt;, and &lt;strong&gt;pocket your phone&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A hands-free Web Audio synthesizer produces split cadence chimes at kilometer milestones so you know your checkpoints through your headphones without taking your phone out of your running belt.&lt;/li&gt;
&lt;li&gt;Upon returning, you log your session and outdoor streak into the offline Stride Journal.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Web App:&lt;/strong&gt; &lt;a href="https://foliagestride-ai.vercel.app/" rel="noopener noreferrer"&gt;https://foliagestride-ai.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/ahanghosh77/foliagestride-ai" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/foliagestride-ai&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application runs in modern browsers and includes a fallback route-generation engine when the local AI model is unavailable.&lt;/p&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;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/ahanghosh77/foliagestride-ai" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/foliagestride-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;index.html&lt;/code&gt; — Main application interface with distance selection, route visualization, elevation profile, visual waypoints, stopwatch, and Stride Journal.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;style.css&lt;/code&gt; — Responsive autumn-themed UI with glassmorphism styling.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;app.js&lt;/code&gt; — Gemma 2 integration through Ollama, fallback route generation, Web Audio API cadence chimes, and localStorage-based journal tracking.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;FoliageStride AI is designed with an offline-first architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Gemma 2
&lt;/h3&gt;

&lt;p&gt;The core AI component uses &lt;strong&gt;Google Gemma 2 (&lt;code&gt;gemma2:2b&lt;/code&gt;)&lt;/strong&gt; through Ollama.&lt;/p&gt;

&lt;p&gt;The model receives the runner's preferences, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running distance&lt;/li&gt;
&lt;li&gt;Autumn scenery preference&lt;/li&gt;
&lt;li&gt;Terrain preference&lt;/li&gt;
&lt;li&gt;Pacing style&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It then generates structured route information and memorable physical landmarks that the runner can remember before starting the run.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hands-Free Audio
&lt;/h3&gt;

&lt;p&gt;The application uses the browser's native &lt;strong&gt;Web Audio API&lt;/strong&gt; with &lt;code&gt;OscillatorNode&lt;/code&gt; and &lt;code&gt;GainNode&lt;/code&gt; to generate cadence chimes at kilometer milestones.&lt;/p&gt;

&lt;p&gt;This means the runner does not need to continuously look at the phone during the run.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dynamic Route Visualization
&lt;/h3&gt;

&lt;p&gt;The application uses SVG-based graphics to display the route and elevation profile, together with visual markers representing foliage and important landmarks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Offline Fallback
&lt;/h3&gt;

&lt;p&gt;If the local Gemma 2 model is unavailable, the application uses a deterministic fallback route-generation engine.&lt;/p&gt;

&lt;p&gt;This allows the application to remain usable even without a running local AI model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local Journal
&lt;/h3&gt;

&lt;p&gt;The Stride Journal uses browser &lt;code&gt;localStorage&lt;/code&gt; to keep track of completed sessions and outdoor streaks without requiring a cloud database.&lt;/p&gt;

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

&lt;p&gt;Open innovation and open-weight models like &lt;strong&gt;Google Gemma 2&lt;/strong&gt; are especially useful for outdoor and fitness applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Trail Readiness With Limited Connectivity
&lt;/h3&gt;

&lt;p&gt;Outdoor runners can lose cellular reception inside parks, ravines, mountain trails, and nature reserves.&lt;/p&gt;

&lt;p&gt;A local AI model reduces dependence on a continuously available cloud API.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Privacy of Physical Location &amp;amp; Movement
&lt;/h3&gt;

&lt;p&gt;Running applications can involve sensitive information such as routes, workout frequency, and frequently visited locations.&lt;/p&gt;

&lt;p&gt;FoliageStride AI is designed around local processing and local journal storage rather than sending this information to a third-party fitness server.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. No Per-Request Cloud AI Cost
&lt;/h3&gt;

&lt;p&gt;Running an open-weight model locally avoids paying for every AI request through a hosted API.&lt;/p&gt;

&lt;p&gt;This makes experimentation more accessible to students, developers, and open-source communities.&lt;/p&gt;

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

&lt;p&gt;This project was built through pair-programming with &lt;strong&gt;Google Antigravity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The agent helped with the responsive UI layout, autumn visual design, SVG course elevation profile, structured JSON schema for Google Gemma 2 prompting, hands-free Web Audio API split-chime synthesizer, and overall project structure.&lt;/p&gt;

&lt;p&gt;The final project was refined around the core idea of helping runners &lt;strong&gt;touch grass instead of constantly checking a screen&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best Use of Gemma — $200 USD&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FoliageStride AI uses &lt;strong&gt;Google Gemma 2 (&lt;code&gt;gemma2:2b&lt;/code&gt;)&lt;/strong&gt; as the local route-synthesis engine, converting a runner's distance, scenery preference, and pacing style into structured scenic route information with memorable physical landmarks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;FoliageStride AI turns an ordinary run into a more screen-free outdoor experience.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plan with AI → Remember the landmarks → Pocket the phone → Run → Touch Grass.&lt;/strong&gt; landmarks.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>DebugPal AI: An Offline-First Visual Socratic Pointer &amp; Memory Tutor Built for my Classmate</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 16:37:31 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/debugpal-ai-an-offline-first-visual-socratic-pointer-memory-tutor-built-for-my-classmate-282f</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/debugpal-ai-an-offline-first-visual-socratic-pointer-memory-tutor-built-for-my-classmate-282f</guid>
      <description>&lt;h1&gt;
  
  
  I Built an AI Debugging Tutor for My Friend Who Was Terrified of Segmentation Faults
&lt;/h1&gt;

&lt;p&gt;I didn't build DebugPal AI because I wanted to make another coding chatbot.&lt;/p&gt;

&lt;p&gt;I built it because my friend &lt;strong&gt;Rohan kept getting &lt;code&gt;Segmentation fault (core dumped)&lt;/code&gt; in our Data Structures lab—and every time an AI fixed his code, he understood the bug a little less.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built him something different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DebugPal AI&lt;/strong&gt; is a visual, Socratic C/C++ debugging tutor that helps students understand &lt;em&gt;why&lt;/em&gt; pointer and memory bugs happen instead of simply handing them corrected code.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://debug-pal.vercel.app/" rel="noopener noreferrer"&gt;https://debug-pal.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ahanghosh77/debug-pal" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/debug-pal&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍💻 The Friend I Built It For
&lt;/h2&gt;

&lt;p&gt;Rohan is my classmate and lab partner.&lt;/p&gt;

&lt;p&gt;We're working through university Data Structures labs where we use &lt;strong&gt;C and C++&lt;/strong&gt;, including pointers, linked lists, dynamic memory allocation, and manual memory management.&lt;/p&gt;

&lt;p&gt;For someone coming from a higher-level language such as Python, the hardest part isn't always writing the algorithm.&lt;/p&gt;

&lt;p&gt;It's understanding what is actually happening in memory.&lt;/p&gt;

&lt;p&gt;Rohan's recurring enemy was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Segmentation fault (core dumped)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The compiler would tell him that the program crashed.&lt;/p&gt;

&lt;p&gt;But it didn't give him the mental model he needed to understand &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And when he asked cloud AI tools for help, the usual experience was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here's the corrected code."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The code worked.&lt;/p&gt;

&lt;p&gt;The understanding didn't.&lt;/p&gt;

&lt;p&gt;That was especially frustrating because our university exams aren't just about getting a program to run. We also have to explain the concepts on paper.&lt;/p&gt;

&lt;p&gt;So I wanted to build something that would make him &lt;strong&gt;think through the bug instead of simply copying the fix.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 Meet DebugPal AI
&lt;/h1&gt;

&lt;p&gt;DebugPal AI takes a C/C++ memory bug and turns it into a visual debugging lesson.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your program crashed.
Here is the corrected code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the experience is closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What does this pointer currently contain?

        ↓

Where is that address pointing?

        ↓

Is that memory actually valid?

        ↓

What invariant did your program violate?

        ↓

Now... how would you fix it?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is to create the &lt;strong&gt;"Ohhh, that's why!"&lt;/strong&gt; moment.&lt;/p&gt;




&lt;h1&gt;
  
  
  🥞 1. Visual Memory Map
&lt;/h1&gt;

&lt;p&gt;Pointers are difficult to understand when they're represented only as text.&lt;/p&gt;

&lt;p&gt;DebugPal visualizes the simulated memory state with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Call Stack frames&lt;/li&gt;
&lt;li&gt;Stack variables&lt;/li&gt;
&lt;li&gt;Heap allocations&lt;/li&gt;
&lt;li&gt;Hex-style memory addresses&lt;/li&gt;
&lt;li&gt;Pointer targets&lt;/li&gt;
&lt;li&gt;Invalid memory destinations&lt;/li&gt;
&lt;li&gt;Dangerous memory blocks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, instead of simply seeing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the student can see the pointer chain and where the final arrow ends up.&lt;/p&gt;

&lt;p&gt;When the destination is invalid, DebugPal makes the crash point visually obvious.&lt;/p&gt;

&lt;p&gt;This is particularly useful for beginners who have learned the syntax of pointers but haven't yet developed a mental model of memory.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 2. It Teaches the Invariant Behind the Crash
&lt;/h1&gt;

&lt;p&gt;A segmentation fault is only the symptom.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;What rule did my program violate?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DebugPal tries to make that rule explicit.&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;head
  ↓
node
  ↓
NULL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of immediately revealing the corrected code, DebugPal asks the student to reason about the next pointer and whether the next dereference is valid.&lt;/p&gt;

&lt;p&gt;This turns debugging into a small reasoning exercise.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤔 3. Three Levels of Socratic Guidance
&lt;/h1&gt;

&lt;p&gt;DebugPal deliberately doesn't reveal everything immediately.&lt;/p&gt;

&lt;p&gt;The guidance is split into three levels:&lt;/p&gt;

&lt;h3&gt;
  
  
  Level 1 — Observation
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;What does this pointer contain right now?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Level 2 — Invariant Check
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Is the memory address you're about to dereference guaranteed to contain a valid object?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Level 3 — Root Cause
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;What exact operation caused the invalid memory access?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only after thinking through the first two stages does the student get the root-cause explanation.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't remove the student's debugging problem. Teach them how to debug it.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 4. Everyday Mental Models
&lt;/h1&gt;

&lt;p&gt;Low-level memory concepts can feel extremely abstract.&lt;/p&gt;

&lt;p&gt;So DebugPal also explains them using everyday situations.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Dangling pointer
&lt;/h3&gt;

&lt;p&gt;Imagine checking out of a hotel but continuing to use the room key.&lt;/p&gt;

&lt;p&gt;The key still exists.&lt;/p&gt;

&lt;p&gt;The room doesn't belong to you anymore.&lt;/p&gt;

&lt;p&gt;That's roughly the mental model of a dangling pointer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory leak
&lt;/h3&gt;

&lt;p&gt;Imagine borrowing books from a library and never returning them.&lt;/p&gt;

&lt;p&gt;You may still be able to use the books, but the library's available resources keep shrinking.&lt;/p&gt;

&lt;p&gt;That's the intuition behind a memory leak.&lt;/p&gt;

&lt;h3&gt;
  
  
  NULL dereference
&lt;/h3&gt;

&lt;p&gt;You're following an address to find a destination, but the address effectively says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;There is nothing here.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then your program tries to use it anyway.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛡️ 5. From Bug → Safe Code
&lt;/h1&gt;

&lt;p&gt;DebugPal also provides a defensive code view.&lt;/p&gt;

&lt;p&gt;Instead of only showing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;❌ This is wrong.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it shows the vulnerable version and a safer version side by side, followed by a checklist of the programming rule involved.&lt;/p&gt;

&lt;p&gt;The objective is to connect:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;bug → memory state → violated invariant → defensive programming practice&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;rather than treating each compiler error as an isolated problem.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤖 Why Open-Weight AI?
&lt;/h1&gt;

&lt;p&gt;This is the part of the project that mattered especially for this Hacktoberfest challenge.&lt;/p&gt;

&lt;p&gt;The challenge asks participants to build something with &lt;strong&gt;open-source/open-weight AI at its core&lt;/strong&gt;, including local inference with open-weight models.&lt;/p&gt;

&lt;p&gt;DebugPal is designed around that idea.&lt;/p&gt;

&lt;p&gt;For custom C/C++ code, the application can connect directly to a locally running &lt;strong&gt;Ollama&lt;/strong&gt; instance.&lt;/p&gt;

&lt;p&gt;The browser sends the code to the local Ollama API and asks the selected open-weight model to return a structured debugging analysis.&lt;/p&gt;

&lt;p&gt;The model is instructed to produce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug classification&lt;/li&gt;
&lt;li&gt;Crash location&lt;/li&gt;
&lt;li&gt;Stack state&lt;/li&gt;
&lt;li&gt;Heap state&lt;/li&gt;
&lt;li&gt;Pointer relationships&lt;/li&gt;
&lt;li&gt;Execution timeline&lt;/li&gt;
&lt;li&gt;Three Socratic hints&lt;/li&gt;
&lt;li&gt;An everyday analogy&lt;/li&gt;
&lt;li&gt;Before/after defensive code&lt;/li&gt;
&lt;li&gt;A debugging checklist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The response is structured as JSON so the frontend can turn the model's reasoning into the visual debugging interface.&lt;/p&gt;

&lt;p&gt;The relevant implementation is in &lt;code&gt;app.js&lt;/code&gt;, where DebugPal calls the local Ollama &lt;code&gt;/api/generate&lt;/code&gt; endpoint and requests a fixed JSON schema.&lt;/p&gt;




&lt;h1&gt;
  
  
  📴 And What Happens Without AI?
&lt;/h1&gt;

&lt;p&gt;This was important because Rohan is a student.&lt;/p&gt;

&lt;p&gt;University Wi-Fi isn't always reliable.&lt;/p&gt;

&lt;p&gt;So DebugPal doesn't completely fall apart when Ollama isn't available.&lt;/p&gt;

&lt;p&gt;It has a built-in heuristic fallback that can still identify common patterns such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pointer dereferencing&lt;/li&gt;
&lt;li&gt;Missing &lt;code&gt;free()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Array-loop problems&lt;/li&gt;
&lt;li&gt;Common linked-list mistakes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application therefore has two modes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             C/C++ Code
                  │
                  ▼
        ┌──────────────────┐
        │  Local Ollama AI  │
        │ Open-weight model │
        └────────┬─────────┘
                 │
                 │ unavailable?
                 ▼
        ┌──────────────────┐
        │ Heuristic Engine │
        └────────┬─────────┘
                 │
                 ▼
       Visual Debugging Lesson
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That architecture means the student can still use the core learning experience without depending on a remote AI server.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧪 Built-in Lab Traps
&lt;/h1&gt;

&lt;p&gt;I included four common problems that map closely to what students encounter while learning C/C++:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Linked List Segmentation Fault
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;without safely checking whether the required nodes exist.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Dangling Pointer
&lt;/h3&gt;

&lt;p&gt;Returning or using the address of memory whose lifetime has already ended.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dynamic 2D Matrix Memory Leak
&lt;/h3&gt;

&lt;p&gt;Allocating dynamic memory without correctly freeing the allocated blocks.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Buffer Overflow
&lt;/h3&gt;

&lt;p&gt;An off-by-one loop accessing an array outside its valid bounds.&lt;/p&gt;

&lt;p&gt;Each preset is designed to demonstrate a different memory-safety concept.&lt;/p&gt;




&lt;h1&gt;
  
  
  👨‍🤝‍👨 What Happened When I Gave It to Rohan?
&lt;/h1&gt;

&lt;p&gt;This was the most important part of the project.&lt;/p&gt;

&lt;p&gt;I didn't just build the website and call it "built for a friend."&lt;/p&gt;

&lt;p&gt;I actually handed it to Rohan in our hostel study room while we were preparing for our Data Structures lab evaluation.&lt;/p&gt;

&lt;p&gt;He tried the linked-list segmentation fault example.&lt;/p&gt;

&lt;p&gt;His reaction was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"During our linked list assignment, I kept getting segfaults because I was chaining &lt;code&gt;head-&amp;gt;next-&amp;gt;next&lt;/code&gt; without verifying if the list had fewer than 3 nodes. Cloud AI just gave me the corrected code without explaining why my logic failed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then he saw the memory visualization:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"When DebugPal drew the Stack and Heap map and showed the arrow pointing into &lt;code&gt;0x00000000 [Unmapped Page 0]&lt;/code&gt;, it instantly clicked why the CPU crashed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the part I cared about most:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The Socratic hints made me think about the loop condition instead of guessing."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He has already bookmarked DebugPal on his laptop for our upcoming evaluations.&lt;/p&gt;

&lt;p&gt;That's probably the best validation I could have asked for.&lt;/p&gt;




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

&lt;p&gt;The project is intentionally lightweight.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;HTML5&lt;/li&gt;
&lt;li&gt;CSS3&lt;/li&gt;
&lt;li&gt;Vanilla JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No heavy framework or build pipeline is required.&lt;/p&gt;

&lt;p&gt;The repository can be opened directly in a browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Local Ollama inference&lt;/li&gt;
&lt;li&gt;Open-weight model support&lt;/li&gt;
&lt;li&gt;Structured JSON output&lt;/li&gt;
&lt;li&gt;Socratic prompt architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Offline Fallback
&lt;/h3&gt;

&lt;p&gt;A built-in heuristic analysis engine handles common pointer/memory patterns when local AI isn't available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Export
&lt;/h3&gt;

&lt;p&gt;DebugPal can generate a Markdown debugging report containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug classification&lt;/li&gt;
&lt;li&gt;Pointer execution timeline&lt;/li&gt;
&lt;li&gt;Memory explanation&lt;/li&gt;
&lt;li&gt;Everyday analogy&lt;/li&gt;
&lt;li&gt;Safe code&lt;/li&gt;
&lt;li&gt;Debugging checklist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That turns a debugging session into something the student can keep as study notes.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔐 Why Local AI Makes Sense for This
&lt;/h1&gt;

&lt;p&gt;For this particular use case, local AI has some advantages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy
&lt;/h3&gt;

&lt;p&gt;Student code can stay on the student's machine instead of being sent to a third-party cloud service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost
&lt;/h3&gt;

&lt;p&gt;A student shouldn't need an expensive subscription just to understand a segmentation fault in a lab assignment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reliability
&lt;/h3&gt;

&lt;p&gt;The tool can be used even when internet connectivity is poor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Control
&lt;/h3&gt;

&lt;p&gt;Because the model is open-weight and runs locally, students can experiment with different models and prompts instead of being locked into a single cloud provider.&lt;/p&gt;

&lt;p&gt;That's the part of open innovation I wanted to explore with this project.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  Live Demo
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://debug-pal.vercel.app/" rel="noopener noreferrer"&gt;https://debug-pal.vercel.app/&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;👉 &lt;a href="https://github.com/ahanghosh77/debug-pal" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/debug-pal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The easiest way to try the application:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the website.&lt;/li&gt;
&lt;li&gt;Select a bug preset.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Inspect Memory &amp;amp; Debug&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Explore the memory layout.&lt;/li&gt;
&lt;li&gt;Reveal the three Socratic hints one at a time.&lt;/li&gt;
&lt;li&gt;Read the everyday analogy.&lt;/li&gt;
&lt;li&gt;Compare the vulnerable and defensive code.&lt;/li&gt;
&lt;li&gt;Export the debugging report if you want to keep it as notes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you have Ollama running locally, you can also configure the local model from the application's model settings and analyze custom C/C++ code.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 Why I Think This Fits "Build for a Friend"
&lt;/h1&gt;

&lt;p&gt;The challenge wasn't just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build an AI application."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Build something for a real person.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rohan had a very specific problem.&lt;/p&gt;

&lt;p&gt;He wasn't asking for another coding assistant.&lt;/p&gt;

&lt;p&gt;He needed someone—or something—that would sit beside him and explain:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Stop. Look at what your pointer is actually doing."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what I tried to build.&lt;/p&gt;

&lt;p&gt;DebugPal AI is basically a &lt;strong&gt;visual teaching assistant for the moment when your C program crashes at 1 AM and you have no idea why.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if it helps Rohan walk into our next Data Structures lab a little less afraid of pointers, then the project has already done what I wanted it to do.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What's Next?
&lt;/h2&gt;

&lt;p&gt;There are several things I'd like to improve after the challenge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More C/C++ memory bug patterns&lt;/li&gt;
&lt;li&gt;Better parsing of arbitrary C/C++ programs&lt;/li&gt;
&lt;li&gt;More accurate memory-layout simulation&lt;/li&gt;
&lt;li&gt;Step-by-step pointer execution&lt;/li&gt;
&lt;li&gt;More local model options&lt;/li&gt;
&lt;li&gt;Interactive linked-list and tree visualizations&lt;/li&gt;
&lt;li&gt;Sanitizer integration&lt;/li&gt;
&lt;li&gt;A small collection of university-style debugging exercises&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For now, though:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rohan has stopped being scared of &lt;code&gt;Segmentation fault&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's a pretty good first version.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Built With
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;HTML&lt;/code&gt; · &lt;code&gt;CSS&lt;/code&gt; · &lt;code&gt;JavaScript&lt;/code&gt; · &lt;code&gt;Ollama&lt;/code&gt; · &lt;code&gt;Open-weight AI&lt;/code&gt; · &lt;code&gt;C/C++ debugging concepts&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;MIT&lt;/p&gt;

&lt;p&gt;Built with ❤️ for Hacktoberfest 2026.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Hi</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 09:17:16 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/hi-41o0</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/hi-41o0</guid>
      <description></description>
    </item>
  </channel>
</rss>
