<?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: Mayukh Jyoti Sarkar</title>
    <description>The latest articles on DEV Community by Mayukh Jyoti Sarkar (@mayukhjyotisarkar).</description>
    <link>https://dev.to/mayukhjyotisarkar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Mayukh Jyoti Sarkar</title>
      <link>https://dev.to/mayukhjyotisarkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mayukhjyotisarkar"/>
    <language>en</language>
    <item>
      <title>Lazy Coder</title>
      <dc:creator>Mayukh Jyoti Sarkar</dc:creator>
      <pubDate>Sun, 25 Oct 2026 13:38:54 +0000</pubDate>
      <link>https://dev.to/mayukhjyotisarkar/lazy-coder-1k2g</link>
      <guid>https://dev.to/mayukhjyotisarkar/lazy-coder-1k2g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Future you doesn't remember what past you wrote."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every developer knows the struggle of reopening a side project after two weeks away—or cloning an unfamiliar repository—and having to inspect dozens of files just to remember how everything works.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;What was I working on before I closed my laptop?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Where is the actual entry point?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;How do I install and run this project?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Which TODOs, FIXMEs, and HACKs did past-me leave behind?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Where should I start if I want to modify a particular feature?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;LazyCoder&lt;/strong&gt; is a local-first AI coding companion that helps developers understand, navigate, and resume existing codebases without manually investigating every file.&lt;/p&gt;

&lt;p&gt;Instead of building another generic chatbot with a code-themed interface, I built a repository-aware developer workbench combining deterministic static analysis, local code retrieval, persistent storage, and open-weight AI through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;LazyCoder supports local models such as &lt;code&gt;qwen2.5-coder:1.5b-base&lt;/code&gt; and &lt;code&gt;qwen2.5-coder:7b&lt;/code&gt;, depending on the model available on the user's machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can it do?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. 📊 AI Project Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generate a structured architectural briefing covering the project's purpose, technologies, directory structure, important source files, entry points, dependencies, tests, documentation gaps, and suggested starting points.&lt;/p&gt;

&lt;p&gt;The report is grounded in discovered repository files, with local SQLite caching to avoid unnecessarily regenerating results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 🔍 Multi-Mode File Explainer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understand unfamiliar code using seven explanation modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beginner-friendly summary&lt;/li&gt;
&lt;li&gt;Line-by-line walkthrough&lt;/li&gt;
&lt;li&gt;Functions and APIs&lt;/li&gt;
&lt;li&gt;Advanced technical explanation&lt;/li&gt;
&lt;li&gt;Potential bugs and edge cases&lt;/li&gt;
&lt;li&gt;Refactoring suggestions&lt;/li&gt;
&lt;li&gt;Dependencies and imports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. 💬 Ask Your Codebase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask natural-language questions about the repository, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where is task creation handled?&lt;/li&gt;
&lt;li&gt;How does the application store data?&lt;/li&gt;
&lt;li&gt;Which files are involved in authentication?&lt;/li&gt;
&lt;li&gt;Where might this bug originate?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local TF-IDF retrieval identifies relevant code snippets and provides file and line-range references to help developers investigate the actual implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. 🛠️ Technical Debt and TODO Hub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Discover unfinished work by locating comments such as &lt;code&gt;TODO&lt;/code&gt;, &lt;code&gt;FIXME&lt;/code&gt;, &lt;code&gt;BUG&lt;/code&gt;, &lt;code&gt;HACK&lt;/code&gt;, and &lt;code&gt;OPTIMIZE&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;LazyCoder organizes these findings and calculates a technical-debt score to help prioritize areas that need attention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. ⏱️ Session Catch-up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Get back into a project by inspecting Git working-tree changes, recent commits, and recently modified files.&lt;/p&gt;

&lt;p&gt;Instead of trying to remember everything from your previous coding session, you get a useful starting point for continuing your work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. 🚀 Smart Run Guide&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inspect project manifests such as &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;pyproject.toml&lt;/code&gt;, &lt;code&gt;package.json&lt;/code&gt;, &lt;code&gt;Cargo.toml&lt;/code&gt;, and &lt;code&gt;go.mod&lt;/code&gt; to help identify installation, testing, and execution commands.&lt;/p&gt;

&lt;p&gt;The goal is to make returning to an unfamiliar project less intimidating.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live application:&lt;/strong&gt; &lt;a href="https://lazycoder.streamlit.app/" rel="noopener noreferrer"&gt;https://lazycoder.streamlit.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest/tree/main/WEEK3" rel="noopener noreferrer"&gt;https://github.com/mayukhjyotisarkar/Hacktoberfest/tree/main/WEEK3&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The deployed Streamlit version demonstrates LazyCoder's repository-analysis workflows using its bundled sample project and deterministic fallback capabilities.&lt;/p&gt;

&lt;p&gt;For local AI inference, run LazyCoder on your machine with Ollama and a compatible model installed.&lt;/p&gt;

&lt;p&gt;This distinction matters: the cloud demonstration and the local Ollama-powered experience have different execution environments.&lt;/p&gt;




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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/mayukhjyotisarkar" rel="noopener noreferrer"&gt;
        mayukhjyotisarkar
      &lt;/a&gt; / &lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest" rel="noopener noreferrer"&gt;
        Hacktoberfest
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The complete implementation is available in the &lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest/tree/main/WEEK3" rel="noopener noreferrer"&gt;&lt;code&gt;WEEK3/&lt;/code&gt; directory&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project is organized into focused modules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/app.py&lt;/code&gt; — Streamlit interface and developer workbench.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/safety.py&lt;/code&gt; — Filesystem safety checks, secret filtering, and file-size limits.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/scanner.py&lt;/code&gt; — Repository scanning, language detection, manifests, entry points, tests, and TODO extraction.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/local_ai.py&lt;/code&gt; — Local Ollama integration and model communication.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/overview.py&lt;/code&gt; — Evidence-grounded project overview generation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/explainer.py&lt;/code&gt; — Multi-mode source-code explanation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/query_engine.py&lt;/code&gt; — Code chunking, TF-IDF retrieval, and repository-aware question answering.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/session_tracker.py&lt;/code&gt; — Git activity and working-session context.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/todo_tracker.py&lt;/code&gt; — Technical-debt scoring and unfinished-work tracking.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/run_guide.py&lt;/code&gt; — Project setup and execution guidance.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/lazycoder/storage.py&lt;/code&gt; — SQLite persistence and caching.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WEEK3/tests/&lt;/code&gt; — Automated tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The implementation details above describe the intended module responsibilities; consult the repository for the current source code and test coverage.&lt;/p&gt;




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

&lt;p&gt;LazyCoder combines deterministic repository analysis with local AI inference. Each component has a specific responsibility, rather than sending an entire codebase to a language model and hoping for the best.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Deterministic Repository Scanning
&lt;/h3&gt;

&lt;p&gt;The scanner discovers source files, programming languages, project manifests, dependencies, entry points, tests, and unfinished-work markers.&lt;/p&gt;

&lt;p&gt;This provides a structured foundation for subsequent AI operations.&lt;/p&gt;

&lt;p&gt;The scanner is designed to exclude generated directories and sensitive files, enforce file-size limits, and avoid executing repository code.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Filesystem Safety and Privacy
&lt;/h3&gt;

&lt;p&gt;Repository inspection requires access to potentially sensitive source code, so filesystem safety is a core part of the design.&lt;/p&gt;

&lt;p&gt;The safety layer is intended to validate paths against the selected repository root, filter credential files, ignore generated directories, and restrict the files that can be inspected.&lt;/p&gt;

&lt;p&gt;LazyCoder is designed to analyze code without automatically modifying or executing the user's project.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Local Code Retrieval
&lt;/h3&gt;

&lt;p&gt;For repository-aware questions, LazyCoder divides source files into overlapping chunks and indexes their contents using &lt;code&gt;scikit-learn&lt;/code&gt;'s &lt;code&gt;TfidfVectorizer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When a developer asks a question, the retrieval engine selects relevant snippets and passes their contents and line ranges to the answering component.&lt;/p&gt;

&lt;p&gt;This keeps the context focused on potentially relevant code instead of overwhelming the model with the entire repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Open-Weight AI Through Ollama
&lt;/h3&gt;

&lt;p&gt;LazyCoder uses Ollama as its local inference runtime.&lt;/p&gt;

&lt;p&gt;Compatible models can analyze retrieved code, explain unfamiliar functions, summarize architectural relationships, and help developers investigate potential problems.&lt;/p&gt;

&lt;p&gt;The application can also use deterministic fallback behavior when local inference is unavailable, allowing supported analysis workflows to remain useful without an active model.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Persistent Local Storage
&lt;/h3&gt;

&lt;p&gt;SQLite stores reusable analysis results and cached explanations.&lt;/p&gt;

&lt;p&gt;Caching helps reduce repeated work when revisiting the same project. Repository state and file-content hashes can be used to determine whether cached information remains relevant.&lt;/p&gt;

&lt;p&gt;Together, these components create a workflow in which deterministic analysis establishes the facts, retrieval supplies relevant evidence, and the language model provides contextual interpretation.&lt;/p&gt;




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

&lt;p&gt;For a coding assistant that inspects source code, &lt;strong&gt;open-weight models and local inference are more than a technical preference. They change the privacy, cost, and accessibility of the tool.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 1. Your Code Can Stay on Your Machine
&lt;/h3&gt;

&lt;p&gt;Developers regularly work with proprietary projects, personal experiments, client code, and unreleased products.&lt;/p&gt;

&lt;p&gt;Sending entire repositories to an external AI service may be undesirable or prohibited.&lt;/p&gt;

&lt;p&gt;By using Ollama for local inference, LazyCoder can analyze source code without requiring a remote LLM API.&lt;/p&gt;

&lt;p&gt;The local-first architecture is especially valuable when privacy matters more than access to the largest available model.&lt;/p&gt;

&lt;h3&gt;
  
  
  💸 2. No Per-Token API Bills
&lt;/h3&gt;

&lt;p&gt;Repository exploration can involve repeated scans, file explanations, and dozens of follow-up questions.&lt;/p&gt;

&lt;p&gt;With a locally installed model, inference does not require paying a third-party provider for each token. Users still need to account for their hardware, electricity, and storage costs.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  📴 3. Useful Without an Internet Connection
&lt;/h3&gt;

&lt;p&gt;Once the application, dependencies, and model are installed, its local analysis and inference workflows can operate without an internet connection.&lt;/p&gt;

&lt;p&gt;That means developers can work during a campus Wi-Fi outage, while travelling, or in environments where network access is restricted.&lt;/p&gt;

&lt;p&gt;Initial setup and model downloads may still require connectivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔄 4. Freedom to Choose Your Model
&lt;/h3&gt;

&lt;p&gt;Different developers have different hardware constraints.&lt;/p&gt;

&lt;p&gt;A smaller model can be appropriate for a laptop with limited memory, while a larger coding model may provide better results on a more powerful machine.&lt;/p&gt;

&lt;p&gt;Ollama makes it possible to experiment with different compatible open-weight models without redesigning the entire application around a proprietary API.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 5. Transparent, Composable Building Blocks
&lt;/h3&gt;

&lt;p&gt;LazyCoder combines open-source components such as Python, Streamlit, scikit-learn, SQLite, and Ollama.&lt;/p&gt;

&lt;p&gt;Developers can inspect the implementation, change the retrieval strategy, replace the model, or extend the scanner to support additional languages and frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open innovation makes a coding assistant more adaptable, more accessible, and easier to keep under the developer's control.&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;I used AI-assisted development to help design and implement LazyCoder's repository-analysis workflows.&lt;/p&gt;

&lt;p&gt;The focus was on building a practical developer tool rather than a generic conversational interface.&lt;/p&gt;

&lt;p&gt;If a DevRelay Agent Session is available, its link can be added here.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Imagine returning to a project you haven't touched in a month.&lt;/p&gt;

&lt;p&gt;Before LazyCoder, you might:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;git status&lt;/code&gt; and &lt;code&gt;git log&lt;/code&gt; to reconstruct your previous work.&lt;/li&gt;
&lt;li&gt;Search the repository for TODO and FIXME comments.&lt;/li&gt;
&lt;li&gt;Open dependency manifests to remember the required packages.&lt;/li&gt;
&lt;li&gt;Trace imports across multiple files to understand how a feature works.&lt;/li&gt;
&lt;li&gt;Read unfamiliar functions before attempting even a small change.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With LazyCoder, you can start with a project overview, inspect unfinished work, review recent changes, ask questions about relevant code, and generate setup guidance from the project's manifests.&lt;/p&gt;

&lt;p&gt;Instead of treating every return to an old repository as a fresh investigation, you have a structured starting point.&lt;/p&gt;

&lt;p&gt;The aim is simple: &lt;strong&gt;spend less time remembering your code and more time improving it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And because LazyCoder uses local retrieval, persistent caching, and an optional local language model, its workflows can be adapted to different projects and hardware configurations.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Challenge:&lt;/strong&gt; Hacktoberfest Open-Source AI Challenge — Week 3: Slow and Steady.&lt;/p&gt;

&lt;p&gt;Additional partner prize categories can be listed here if they apply to the final submission.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for developers who love writing code but don't particularly enjoy rediscovering code they wrote three weeks ago.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>PaperPilot!</title>
      <dc:creator>Mayukh Jyoti Sarkar</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:00:23 +0000</pubDate>
      <link>https://dev.to/mayukhjyotisarkar/paperpilot-2pkf</link>
      <guid>https://dev.to/mayukhjyotisarkar/paperpilot-2pkf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Built PaperPilot: Turning Previous-Year Question Papers into an AI-Powered Revision Plan
&lt;/h1&gt;

&lt;p&gt;As an engineering student, I've learned that preparing for semester exams isn't just about studying the syllabus. It's also about figuring out what to prioritize.&lt;/p&gt;

&lt;p&gt;Previous-year question papers can be incredibly useful, but going through multiple PDFs, finding repeated questions, identifying recurring topics, and organizing everything into a revision plan takes time.&lt;/p&gt;

&lt;p&gt;So I decided to build something to make that process easier.&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;PaperPilot&lt;/strong&gt;, an AI-assisted exam preparation tool that turns previous-year question papers into a structured revision workflow.&lt;/p&gt;

&lt;p&gt;My goal was simple: help students spend less time organizing their study material and more time actually studying.&lt;/p&gt;

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

&lt;p&gt;PaperPilot lets students upload previous-year question papers and helps them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract questions from PDFs, including scanned pages when OCR is configured.&lt;/li&gt;
&lt;li&gt;Find exact and similar questions across multiple papers.&lt;/li&gt;
&lt;li&gt;Identify recurring questions and analyze topic frequency.&lt;/li&gt;
&lt;li&gt;Review evidence linked to the original source papers.&lt;/li&gt;
&lt;li&gt;Generate a revision checklist and export useful results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of asking a generic AI chatbot to predict what might appear in an exam, PaperPilot focuses on evidence from the papers students already have.&lt;/p&gt;

&lt;p&gt;It doesn't promise to predict future question papers. It helps students make more informed revision decisions using historical question patterns.&lt;/p&gt;

&lt;p&gt;I built it primarily for engineering students, but the same idea could be useful for tutors, coaching centres, and students preparing for other examinations.&lt;/p&gt;

&lt;h3&gt;
  
  
  The side-hustle opportunity
&lt;/h3&gt;

&lt;p&gt;Imagine a student with five years of question papers and only a few days left before an exam. PaperPilot helps turn that collection into something easier to navigate and revise.&lt;/p&gt;

&lt;p&gt;A possible business model would be a free basic version with optional paid features for larger paper collections, advanced analytics, or additional revision tools.&lt;/p&gt;

&lt;p&gt;That opportunity still needs validation. I haven't established that students are willing to pay, and finding out whether the tool genuinely saves them time is the next important step.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Try PaperPilot:&lt;/strong&gt; &lt;a href="https://mayukhjyotisarkar-hacktoberfest-week2app-bn7o6x.streamlit.app/" rel="noopener noreferrer"&gt;https://mayukhjyotisarkar-hacktoberfest-week2app-bn7o6x.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The intended workflow is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload your papers.&lt;/li&gt;
&lt;li&gt;Find recurring and similar questions.&lt;/li&gt;
&lt;li&gt;Explore topic frequencies and source evidence.&lt;/li&gt;
&lt;li&gt;Build your revision plan.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The hosted demo depends on the capabilities and dependencies available in its deployment environment. The local application supports optional Ollama-based AI inference and OCR when the required software is installed.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest/tree/main/WEEK2" rel="noopener noreferrer"&gt;https://github.com/mayukhjyotisarkar/Hacktoberfest/tree/main/WEEK2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PaperPilot is built with Python and Streamlit, with separate components for document extraction, question processing, similarity analysis, data storage, and optional AI features.&lt;/p&gt;

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

&lt;p&gt;I wanted to understand how the different pieces of an AI application work together instead of building just another interface around a remote AI API.&lt;/p&gt;

&lt;p&gt;The first important decision was to keep the core question-analysis pipeline deterministic.&lt;/p&gt;

&lt;p&gt;PaperPilot extracts text from PDFs, normalizes question text, uses TF-IDF and cosine similarity to compare questions, groups similar questions, and analyzes their recurrence across papers. SQLite stores the question-bank data, while Streamlit provides the user interface.&lt;/p&gt;

&lt;p&gt;For the open-weight AI component, I integrated &lt;strong&gt;Qwen2.5-Coder 1.5B through Ollama&lt;/strong&gt; to support optional features such as topic labeling for existing question groups and revision-note generation.&lt;/p&gt;

&lt;p&gt;The AI doesn't replace the underlying question-matching system. Instead, it adds another layer to the workflow. Keeping these responsibilities separate means the core analysis doesn't depend on an AI response for every operation.&lt;/p&gt;

&lt;p&gt;I also added OCR support for scanned PDFs. The application attempts ordinary text extraction first and can use OCR on pages that don't yield enough text. This introduced another practical challenge: Python dependencies alone aren't enough when an application also relies on external software such as Tesseract.&lt;/p&gt;

&lt;p&gt;Along the way, I worked on the interface, local storage, setup scripts, dependency documentation, and automated tests.&lt;/p&gt;

&lt;p&gt;One of my biggest takeaways was that building an AI application isn't just about choosing a model. The surrounding engineering — handling messy documents, validating outputs, managing dependencies, and explaining errors — is what makes the model useful to someone.&lt;/p&gt;

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

&lt;p&gt;For PaperPilot, open innovation means having more control over how AI is used, where it runs, and how the application can evolve.&lt;/p&gt;

&lt;p&gt;A hosted AI API can be convenient, but repeated requests can introduce ongoing costs and a dependency on a provider's pricing, availability, and service policies.&lt;/p&gt;

&lt;p&gt;Using an open-weight model through Ollama gives PaperPilot another option: run supported AI features locally instead of sending every request to a hosted model.&lt;/p&gt;

&lt;p&gt;That matters in a few ways.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;More control over recurring costs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once the model is downloaded, local inference doesn't require a separate hosted-model API payment for every request. Hardware, electricity, and setup still have costs, but the economics can be more predictable for a small student-focused tool.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A more private local workflow&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When students run PaperPilot locally and process their documents locally, their papers don't need to be sent to a third-party AI API for its local AI features. For students working with personal notes or institutions handling sensitive documents, that distinction can matter.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Freedom to experiment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I can evaluate alternative models, adjust prompts, and change how AI-generated labels and notes work without tying the entire application to one hosted provider.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Independence from a single AI service&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The core similarity and recurrence analysis works separately from the language model. That reduces the extent to which the primary workflow depends on an external AI service being available.&lt;/p&gt;

&lt;p&gt;Open-weight models aren't automatically better at every task. They have hardware requirements, setup complexity, and their own quality limitations. Model licences also matter, and the permissions associated with a particular model should be checked before redistributing or commercially using it.&lt;/p&gt;

&lt;p&gt;There's another important distinction: the public Streamlit demo runs in a remote hosting environment. Its privacy and offline characteristics aren't the same as running the application entirely on your own computer.&lt;/p&gt;

&lt;p&gt;For me, the value of open innovation isn't simply that a model is available to download. It's that I can make deliberate choices about cost, privacy, deployment, and model behavior while building a tool for a specific problem.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;PaperPilot taught me that a useful AI product doesn't need to put a language model at the centre of every operation.&lt;/p&gt;

&lt;p&gt;Sometimes, traditional text-processing techniques are better suited to the core task. Sometimes, a language model adds value on top. Knowing where to use each approach is part of the engineering.&lt;/p&gt;

&lt;p&gt;I also learned that supporting real documents is messy. PDFs can contain unusual layouts, scanned pages, broken text extraction, and inconsistent question formatting. A feature that works on a clean sample isn't automatically ready for every student's material.&lt;/p&gt;

&lt;p&gt;And passing tests is only one milestone. A tool can be technically functional without necessarily being useful enough for someone to adopt or pay for.&lt;/p&gt;

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

&lt;p&gt;The next milestone for PaperPilot is real-world validation.&lt;/p&gt;

&lt;p&gt;I want to see how it performs on different university question papers, whether students find the recurring-question analysis useful, and what they would change after using it.&lt;/p&gt;

&lt;p&gt;From there, I can prioritize improvements based on actual needs rather than adding features just because AI makes them possible.&lt;/p&gt;

&lt;p&gt;PaperPilot started as a way to solve a problem I understood personally. Building it has also been an opportunity to explore open-weight AI, local inference, document processing, and the engineering required to turn an idea into a usable application.&lt;/p&gt;

&lt;p&gt;The goal now is simple: make it genuinely useful to the students it was built for.&lt;/p&gt;

&lt;p&gt;Built for students. Powered by Python, traditional text analysis, and optional local open-weight AI.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Raid Outside!</title>
      <dc:creator>Mayukh Jyoti Sarkar</dc:creator>
      <pubDate>Sun, 11 Oct 2026 12:13:06 +0000</pubDate>
      <link>https://dev.to/mayukhjyotisarkar/raid-outside-58ol</link>
      <guid>https://dev.to/mayukhjyotisarkar/raid-outside-58ol</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;Raid Outside&lt;/strong&gt; turns a short break into a co-op, tabletop-RPG-style outdoor quest. Pick a vibe, set how much time you have, enter a nearby public place, and get a mission with a story hook, clue, objective, ending, and collectible badge.&lt;/p&gt;

&lt;p&gt;It’s for people who spend too much of the day at a desk and want a more fun reason to meet friends and go outside than another reminder to take a walk. The app is designed to make the screen a quick briefing before the real adventure.&lt;/p&gt;

&lt;p&gt;The prototype has a complete solo flow from creating a raid through completing it. Party codes and joining are currently demo interactions; there isn’t a server syncing players across devices yet.&lt;/p&gt;

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

&lt;p&gt;No hosted demo yet. You can run the prototype locally using the instructions in the &lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest/blob/main/WEEK1/README.md" rel="noopener noreferrer"&gt;README&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest/tree/main/WEEK1" rel="noopener noreferrer"&gt;Raid Outside source code&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Raid Outside is built with React, TypeScript, Vite, and Tailwind CSS. For mission generation, it connects to a configurable OpenAI-compatible endpoint intended for a locally hosted open-weight model, such as one served by Ollama. The model receives the selected vibe, time, effort, and place context, then returns structured JSON for the mission. The app checks that the required fields are present and falls back to hand-written missions if the model is unavailable or its response is invalid.&lt;/p&gt;

&lt;p&gt;The prototype also uses OpenStreetMap’s Nominatim service to look up the place name entered by the player. That lookup can return a broad mapped place classification; it does not verify individual features on site. The app doesn’t request GPS. Settings, completed raids, and badges are stored in browser local storage.&lt;/p&gt;

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

&lt;p&gt;The open-model approach lets the person running the app choose and change the model, adjust the mission prompt, and run inference locally instead of sending mission details to a closed AI provider. That matters for a location-based activity: if the model endpoint is local, the place context used to generate a quest stays on the player’s device.&lt;/p&gt;

&lt;p&gt;This isn’t fully offline today: the local model must be installed and running, and place-name lookup uses Nominatim over the internet. If AI generation is unavailable, the app can still create a raid using its hand-written fallback missions.&lt;/p&gt;

&lt;p&gt;I haven’t benchmarked it against a closed model. The advantage I’m aiming for is control: being able to swap models and shape the mission behavior without tying the app to one hosted AI provider.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Delicious Eats: a food-delivery concept built for a friend</title>
      <dc:creator>Mayukh Jyoti Sarkar</dc:creator>
      <pubDate>Sun, 04 Oct 2026 14:16:42 +0000</pubDate>
      <link>https://dev.to/mayukhjyotisarkar/delicious-eats-a-food-delivery-concept-built-for-a-friend-d9g</link>
      <guid>https://dev.to/mayukhjyotisarkar/delicious-eats-a-food-delivery-concept-built-for-a-friend-d9g</guid>
      <description>&lt;h1&gt;
  
  
  Delicious Eats: a food-delivery concept built for a friend
&lt;/h1&gt;

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

&lt;p&gt;I built &lt;strong&gt;Delicious Eats&lt;/strong&gt;, a food-delivery website concept for a friend who loves finding good food without the hassle. It brings a few restaurant options together with ratings, estimated delivery times, and a clear way to start browsing.&lt;/p&gt;

&lt;p&gt;It’s currently a front-end prototype. The restaurant listings and ordering flow show the concept; search, ordering, and live delivery tracking aren’t connected yet.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://hacktoberfest-zeta.vercel.app/" rel="noopener noreferrer"&gt;Try the live demo&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/mayukhjyotisarkar/Hacktoberfest.git" rel="noopener noreferrer"&gt;View the project on GitHub&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built the site with HTML and CSS, and used &lt;strong&gt;Gemma 4&lt;/strong&gt; as the open-weight AI model during development. The page includes featured restaurant cards, food imagery, a search bar, a call to action, and a “How It Works” section. The layout adapts to smaller screens.&lt;/p&gt;

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

&lt;p&gt;Open innovation makes it possible to experiment with capable AI models and adapt them to a specific project without relying entirely on a closed API. Using Gemma 4 helped me explore how open models can support building a practical, friend-focused web experience.&lt;/p&gt;

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