<?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: Masham</title>
    <description>The latest articles on DEV Community by Masham (@masham_).</description>
    <link>https://dev.to/masham_</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%2F4155137%2F39df6a68-3ccb-4ec0-8eaf-6ed03f582ee5.png</url>
      <title>DEV Community: Masham</title>
      <link>https://dev.to/masham_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/masham_"/>
    <language>en</language>
    <item>
      <title>StudyGuardian: Your Local-First AI Study Planner Powered by Gemma 3</title>
      <dc:creator>Masham</dc:creator>
      <pubDate>Sun, 25 Oct 2026 21:27:51 +0000</pubDate>
      <link>https://dev.to/masham_/studyguardian-your-local-first-ai-study-planner-powered-by-gemma-3-48mm</link>
      <guid>https://dev.to/masham_/studyguardian-your-local-first-ai-study-planner-powered-by-gemma-3-48mm</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;p&gt;&lt;strong&gt;StudyGuardian&lt;/strong&gt; is a local-first study planner that keeps your Google Classroom coursework, uploaded notes, and AI-generated study plans entirely on your computer.&lt;/p&gt;

&lt;p&gt;It answers four questions every student asks every week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What coursework is due this week?&lt;/li&gt;
&lt;li&gt;What should I work on first?&lt;/li&gt;
&lt;li&gt;Where's the related material — in Classroom or in my notes?&lt;/li&gt;
&lt;li&gt;How do I revise from the notes I already have?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Gemma 3 4B&lt;/strong&gt;, running locally through Ollama, handles the planning, note matching, and exam revision pack generation. No coursework ever leaves your machine for AI processing.&lt;/p&gt;

&lt;p&gt;The UI uses a &lt;strong&gt;brutalist design&lt;/strong&gt; — thick borders, zero border-radius, monospace typography, offset box-shadows with micro-animations — and includes a dark/light mode toggle that persists across sessions via &lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who gets to be lazier?&lt;/strong&gt; Any student who's tired of manually scanning Classroom, cross-referencing notes, and figuring out what to study first. StudyGuardian does the triage so you can focus on actually studying.&lt;/p&gt;

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

&lt;p&gt;🔗 &lt;strong&gt;Deployed demo (Render):&lt;/strong&gt; &lt;a href="https://dev.toYOUR_RENDER_URL"&gt;StudyGuardian on Render&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The public demo runs in demo mode only — no Google login, Ollama, or uploads on the public host. Gemma runs locally on your computer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Free Render instances sleep after inactivity, so the first load can take approximately 60 seconds.&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/Masham-0" rel="noopener noreferrer"&gt;
        Masham-0
      &lt;/a&gt; / &lt;a href="https://github.com/Masham-0/studyGuardian" rel="noopener noreferrer"&gt;
        studyGuardian
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;StudyGuardian&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Your week, organized. Your exams, less stressful.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hosted demo:&lt;/strong&gt; the Render service runs demo mode only. It shows the labeled sample week and does not accept Google login, uploads, web search, audio, or a connection to Ollama.&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/Dev-Nidhan/studyguardian" rel="noopener noreferrer"&gt;https://github.com/Dev-Nidhan/studyguardian&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Demo (about 75 seconds): &lt;a href="https://github.com/Dev-Nidhan/studyguardian/blob/main/docs/demo.webm" rel="noopener noreferrer"&gt;https://github.com/Dev-Nidhan/studyguardian/blob/main/docs/demo.webm&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;License: &lt;a href="https://github.com/Masham-0/studyGuardian/LICENSE" rel="noopener noreferrer"&gt;MIT&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;StudyGuardian is a local study planner for the Hacktoberfest 2026 Week 3 "Slow and Steady" challenge. It keeps Google Classroom coursework, uploaded notes, and study plans on your computer. Gemma, through Ollama, prioritizes work, finds relevant pages in your notes, and builds a revision pack. It does not turn assignments in, and it does not send coursework to a cloud model.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it answers&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;What coursework is due this week?&lt;/li&gt;
&lt;li&gt;What should I work on first?&lt;/li&gt;
&lt;li&gt;Where is the related material, in Classroom or in my notes?&lt;/li&gt;
&lt;li&gt;How do I revise from the notes I already have?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Due dates, titles, links, and submission…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Masham-0/studyGuardian" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;h3&gt;
  
  
  Open-Source AI Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;Gemma 3 4B (open-weight)&lt;/td&gt;
&lt;td&gt;Weekly planning, note-to-assignment matching, exam pack generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local inference&lt;/td&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;td&gt;Runs Gemma on-device without cloud calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UI framework&lt;/td&gt;
&lt;td&gt;Streamlit&lt;/td&gt;
&lt;td&gt;Dashboard, week view, courses, exam prep, settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;SQLite&lt;/td&gt;
&lt;td&gt;Assignments, plans, preferences — all local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF extraction&lt;/td&gt;
&lt;td&gt;PyMuPDF&lt;/td&gt;
&lt;td&gt;Local text extraction from uploaded notes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optional: Search&lt;/td&gt;
&lt;td&gt;SerpApi&lt;/td&gt;
&lt;td&gt;Live web search for study resources, only on button click&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optional: Audio&lt;/td&gt;
&lt;td&gt;ElevenLabs&lt;/td&gt;
&lt;td&gt;Spoken revision passages, only after explicit consent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Key Design Decisions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Gemma runs only on explicit user action&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemma runs only when the user presses &lt;strong&gt;Generate Plan&lt;/strong&gt;, &lt;strong&gt;Find Relevant Sections&lt;/strong&gt;, or &lt;strong&gt;Build Revision Pack&lt;/strong&gt;. Streamlit reruns never trigger the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Citations are validated&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If Gemma cites a page that doesn't exist in an uploaded file, that citation is stripped and flagged. No hallucinated sources make it to the UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Offline-first architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After the first Classroom sync, the core application works without internet. Saved plans, notes, and search results are stored in SQLite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. No telemetry&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Streamlit usage statistics are disabled. No analytics, no remote database, and no cloud AI inference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Brutalist UI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The interface is deliberately bold and raw:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sharp corners and thick 3px borders&lt;/li&gt;
&lt;li&gt;Space Mono for data labels&lt;/li&gt;
&lt;li&gt;Inter 900 uppercase headings&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;#ff3d00&lt;/code&gt; deep-orange accent&lt;/li&gt;
&lt;li&gt;Offset box-shadows that animate on hover and click&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A fixed dark/light toggle in the top-right corner switches CSS variables instantly through JavaScript. The preference persists in &lt;code&gt;localStorage&lt;/code&gt;, while a &lt;code&gt;MutationObserver&lt;/code&gt; keeps the styling consistent across Streamlit rerenders.&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Pages and Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Dashboard
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;One recommended next action based on due dates&lt;/li&gt;
&lt;li&gt;Metric cards for past-due assignments&lt;/li&gt;
&lt;li&gt;Assignments due this week&lt;/li&gt;
&lt;li&gt;Assignments without deadlines&lt;/li&gt;
&lt;li&gt;Submitted assignments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. This Week
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Assignments grouped by course&lt;/li&gt;
&lt;li&gt;An editable AI-generated study plan&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Courses &amp;amp; Materials
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Google Classroom links&lt;/li&gt;
&lt;li&gt;Uploaded PDF and text notes&lt;/li&gt;
&lt;li&gt;Grounded note-to-assignment matching&lt;/li&gt;
&lt;li&gt;Optional web search for additional study resources&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Exam Prep
&lt;/h3&gt;

&lt;p&gt;Generate revision materials directly from your uploaded notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Revision notes&lt;/li&gt;
&lt;li&gt;Key definitions&lt;/li&gt;
&lt;li&gt;Flashcards&lt;/li&gt;
&lt;li&gt;Practice questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generated material includes citations to the uploaded file and page number, making it easier to verify answers against the original source.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Settings
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Model configuration&lt;/li&gt;
&lt;li&gt;Timezone settings&lt;/li&gt;
&lt;li&gt;Google Classroom connection&lt;/li&gt;
&lt;li&gt;Demo data controls&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;StudyGuardian processes real student coursework — assignment titles, descriptions, uploaded notes, and study plans. This is sensitive educational data that has no business leaving a student's computer just to generate a revision sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open-weight Gemma 3 + Ollama&lt;/strong&gt; makes it possible to run the entire AI pipeline locally.&lt;/p&gt;

&lt;p&gt;With a conventional hosted AI API, depending on the provider and configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every assignment description may be sent to a third-party server.&lt;/li&gt;
&lt;li&gt;Uploaded notes may need to be transmitted over the internet.&lt;/li&gt;
&lt;li&gt;Students on restrictive school networks might be blocked entirely.&lt;/li&gt;
&lt;li&gt;Per-request costs can make frequent use difficult for students on tight budgets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Gemma running locally through Ollama:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 &lt;strong&gt;Privacy:&lt;/strong&gt; Zero coursework leaves your machine for AI processing.&lt;/li&gt;
&lt;li&gt;💸 &lt;strong&gt;Cost:&lt;/strong&gt; No per-request cloud AI charges after the initial model download.&lt;/li&gt;
&lt;li&gt;📴 &lt;strong&gt;Offline access:&lt;/strong&gt; Study on a plane, in a library basement, or wherever you need to.&lt;/li&gt;
&lt;li&gt;♾️ &lt;strong&gt;No AI API rate limits:&lt;/strong&gt; Generate plans and revision packs subject to your hardware and available resources.&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Transparency:&lt;/strong&gt; Every prompt template is available in the source code instead of being hidden behind an API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open innovation means students can verify what the AI sees, modify prompts, swap in a different model, or extend the entire application.&lt;/p&gt;

&lt;p&gt;That's not possible to the same extent when the entire AI workflow is locked behind a closed API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open innovation isn't just about making AI accessible. It's about giving people the freedom to understand, adapt, and improve the technology they rely on.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Without StudyGuardian, a student's weekly workflow might look like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Estimated time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open Classroom, scan courses, and mentally rank what's due&lt;/td&gt;
&lt;td&gt;~15 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open notes and find material relevant to each assignment&lt;/td&gt;
&lt;td&gt;~20 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a study plan manually&lt;/td&gt;
&lt;td&gt;~10 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Make flashcards and revision notes manually&lt;/td&gt;
&lt;td&gt;~30+ min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~75+ min&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;With StudyGuardian:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sync Google Classroom.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate Plan&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Build Revision Pack&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review the results and start studying.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Gemma handles the initial triage, note matching, and revision-material generation. The workflow can require under two minutes of active user interaction, plus model processing time.&lt;/p&gt;

&lt;p&gt;On suitable hardware, Gemma may take around 30 seconds to process a task, depending on the workload and system configuration.&lt;/p&gt;

&lt;p&gt;That's roughly &lt;strong&gt;an hour saved per week&lt;/strong&gt; on organizational overhead, based on these illustrative estimates.&lt;/p&gt;

&lt;p&gt;Of course, AI-generated plans and revision material still need to be reviewed. The goal is to spend less time organizing and more time actually learning.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Render
&lt;/h3&gt;

&lt;p&gt;The public demo runs on Render's free tier with &lt;code&gt;STUDYGUARDIAN_PUBLIC_DEMO=1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It shows a clearly labeled sample week without exposing OAuth secrets, private notes, or a local model endpoint. Gemma stays on your computer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Gemma 3 4B through Ollama powers the planner, note matcher, and exam-pack generator.&lt;/p&gt;

&lt;p&gt;Priorities are estimates, while assignment deadlines remain attached to their source records. Citations referencing pages that do not exist in an uploaded file are removed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of SerpApi
&lt;/h3&gt;

&lt;p&gt;The Courses &amp;amp; Materials page can search a topic and retain only URLs returned by the search provider. Invented URLs are discarded, and saved results persist in SQLite for offline access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of ElevenLabs
&lt;/h3&gt;

&lt;p&gt;Exam Prep can speak a revision passage after the user acknowledges a disclosure checkbox.&lt;/p&gt;

&lt;p&gt;Only the selected text is sent for audio generation. Passages longer than 2,500 characters are rejected before a request is made, and the rest of the application works without audio.&lt;/p&gt;

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

&lt;p&gt;StudyGuardian explores a simple idea: &lt;strong&gt;AI-assisted studying should be private, accessible, and practical.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A study assistant shouldn't force students to choose between convenience and control over their data.&lt;/p&gt;

&lt;p&gt;By combining local inference, open-weight models, a lightweight database, and grounded citations, StudyGuardian demonstrates how that balance can work in practice.&lt;/p&gt;

&lt;p&gt;There's still plenty of room to improve the planning logic, support more file formats, strengthen citation validation, and make the study experience smoother.&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 Try It Out
&lt;/h2&gt;

&lt;p&gt;Check out the code, explore the demo, and share your thoughts!&lt;/p&gt;

&lt;p&gt;I'd especially love feedback on how StudyGuardian could become more useful for students managing multiple subjects, assignments, and exams.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less admin. More learning. And your notes stay yours.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Gemma #Ollama #OpenSourceAI #AI #StudentProjects #Render #Python #BuildInPublic
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SponsorProof: Catch Sponsorship Mistakes Before You Hit Submit with Local AI</title>
      <dc:creator>Masham</dc:creator>
      <pubDate>Sun, 18 Oct 2026 18:58:43 +0000</pubDate>
      <link>https://dev.to/masham_/sponsorproof-catch-sponsorship-mistakes-before-you-hit-submit-with-local-ai-lnb</link>
      <guid>https://dev.to/masham_/sponsorproof-catch-sponsorship-mistakes-before-you-hit-submit-with-local-ai-lnb</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;
  
  
  SponsorProof: Catch Sponsorship Mistakes Before You Hit Submit
&lt;/h1&gt;

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

&lt;p&gt;Ever finished a sponsored video script, felt confident about it, and then discovered that you missed the exact discount code, forgot a mandatory hashtag, or skipped a talking point buried in the brand brief?&lt;/p&gt;

&lt;p&gt;That’s the problem &lt;strong&gt;SponsorProof&lt;/strong&gt; is built to solve.&lt;/p&gt;

&lt;p&gt;SponsorProof is an evidence-based compliance auditor for content creators, video editors, and marketing agencies. It compares a brand's campaign brief against a draft script, transcript, or caption and catches potential compliance issues &lt;em&gt;before&lt;/em&gt; the content reaches the client.&lt;/p&gt;

&lt;p&gt;Here’s what it checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Exact requirements:&lt;/strong&gt; Verifies discount codes, required hashtags, sponsor URLs, and disclosure phrases using deterministic code rather than relying on an LLM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic requirements:&lt;/strong&gt; Uses local Google Gemma 3 to evaluate talking points, prohibited claims, product benefits, and tone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verifiable evidence:&lt;/strong&gt; Links findings to verbatim excerpts from the brief and draft, making it easier to understand why something was flagged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duration and pacing:&lt;/strong&gt; Estimates spoken content duration using word count and an approximate speaking rate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actionable corrections:&lt;/strong&gt; Suggests copy-paste-ready text to address missing or questionable requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shareable reports:&lt;/strong&gt; Exports audit results as Markdown or structured JSON.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One important design decision: &lt;strong&gt;SponsorProof doesn't blindly trust the AI.&lt;/strong&gt; If the model marks a requirement as compliant but the evidence verifier cannot find supporting text in the draft, that finding is downgraded to &lt;code&gt;NEEDS_REVIEW&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The goal is simple: fewer avoidable revision rounds, fewer missed deliverables, and more confidence before submitting sponsored content.&lt;/p&gt;

&lt;p&gt;For creators managing multiple brand deals and agencies reviewing content at scale, catching these mistakes early can save time and reduce unnecessary back-and-forth.&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/Masham-0/payCheck" rel="noopener noreferrer"&gt;https://github.com/Masham-0/payCheck&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project combines a deterministic verification engine with local AI inference, keeping exact-match checks separate from semantic interpretation.&lt;/p&gt;

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

&lt;p&gt;SponsorProof is built with &lt;strong&gt;Next.js, React, TypeScript, and Tailwind CSS&lt;/strong&gt;, with Google Gemma 3 running locally through Ollama.&lt;/p&gt;

&lt;p&gt;The core idea was to use the right tool for each type of verification instead of making an LLM responsible for everything.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Deterministic verification
&lt;/h3&gt;

&lt;p&gt;Some campaign requirements aren't open to interpretation.&lt;/p&gt;

&lt;p&gt;If the brand requires &lt;code&gt;STYLE15&lt;/code&gt;, then &lt;code&gt;STYLE10&lt;/code&gt; is wrong. If a campaign requires three hashtags, including only one isn't enough.&lt;/p&gt;

&lt;p&gt;I implemented rule-based checks for exact promotional codes, individual hashtags, sponsor URLs, and recognized disclosure phrases. Each required hashtag is verified independently, using word-boundary-aware matching to avoid accidental matches.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Local semantic analysis with Gemma 3
&lt;/h3&gt;

&lt;p&gt;Other requirements need contextual understanding.&lt;/p&gt;

&lt;p&gt;A brief might require a creator to explain a product's privacy benefits or mention a specific feature naturally. Simple keyword matching can't reliably determine whether the draft actually communicates the intended message.&lt;/p&gt;

&lt;p&gt;That's where Gemma 3 comes in. The model evaluates semantic talking points, claims, and tone through local Ollama inference.&lt;/p&gt;

&lt;p&gt;The default model configuration is &lt;code&gt;gemma3:1b&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Evidence verification
&lt;/h3&gt;

&lt;p&gt;AI-generated findings are only useful when they can be checked.&lt;/p&gt;

&lt;p&gt;SponsorProof extracts supporting quotations from the original brief and the creator's draft, along with character offsets where available. The evidence verification layer checks whether quoted text actually exists in the source material and prevents unsupported AI judgments from being treated as confirmed compliance.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Scoring and reporting
&lt;/h3&gt;

&lt;p&gt;Findings are classified by severity: &lt;code&gt;CRITICAL&lt;/code&gt;, &lt;code&gt;IMPORTANT&lt;/code&gt;, or &lt;code&gt;RECOMMENDED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A weighted scoring system calculates the compliance score and determines the overall status:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;READY_TO_POST&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CHANGES_REQUIRED&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HIGH_RISK_VIOLATIONS&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results include explanations, supporting evidence, and suggested fixes, which can then be exported for a client or team review.&lt;/p&gt;

&lt;p&gt;I also added sample campaigns, including VPN, fintech, and mobile gaming integrations, with flawed and compliant scripts to make the audit process easier to demonstrate and test.&lt;/p&gt;

&lt;p&gt;Finally, SponsorProof reports Ollama's connection status and model availability honestly. If the model isn't available, the application doesn't pretend that an AI audit was completed.&lt;/p&gt;

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

&lt;p&gt;For a tool that evaluates sponsored content, &lt;strong&gt;privacy, transparency, and control matter just as much as accuracy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Brand briefs and unpublished scripts can contain campaign details that creators and agencies aren't ready to share publicly. Using an open-weight model through local inference offers a way to run semantic analysis without depending on a third-party hosted LLM API for every audit.&lt;/p&gt;

&lt;p&gt;Open innovation also made it possible to experiment with a hybrid approach: use deterministic code for requirements that must match exactly, and use a locally run language model for requirements that need contextual interpretation.&lt;/p&gt;

&lt;p&gt;Neither approach is sufficient on its own.&lt;/p&gt;

&lt;p&gt;A rule-based engine can't reliably understand whether a product benefit has been explained correctly. An LLM, on the other hand, shouldn't be trusted to validate an exact coupon code or invent evidence for a compliance decision.&lt;/p&gt;

&lt;p&gt;Combining both creates a more transparent workflow in which the model provides contextual assistance while deterministic checks and source verification keep the results grounded.&lt;/p&gt;

&lt;p&gt;There's also a practical benefit: local inference gives developers more control over model selection, deployment, and experimentation without making every semantic check depend on a paid API.&lt;/p&gt;

&lt;p&gt;Of course, local inference is not a complete privacy guarantee by itself. The surrounding application's data handling still matters, and AI-generated findings remain reviewable recommendations rather than legal certification.&lt;/p&gt;

&lt;p&gt;That's the kind of open innovation I wanted to explore with SponsorProof: not just adding AI to an application, but designing the workflow around its strengths and limitations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fum77wx2zl0ggvcejugr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fum77wx2zl0ggvcejugr3.png" alt=" " width="569" height="848"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>🌿 NaturesCall: Turn Your Walks Into Adventures!</title>
      <dc:creator>Masham</dc:creator>
      <pubDate>Sun, 11 Oct 2026 21:44:13 +0000</pubDate>
      <link>https://dev.to/masham_/naturescall-turn-your-walks-into-adventures-ikl</link>
      <guid>https://dev.to/masham_/naturescall-turn-your-walks-into-adventures-ikl</guid>
      <description>&lt;p&gt;What if your daily walk felt less like a routine and more like an adventure? 🗺️&lt;/p&gt;

&lt;p&gt;Introducing NaturesCall — a neighbourhood discovery game that transforms the world around you into an interactive exploration experience.&lt;/p&gt;

&lt;p&gt;🚶 Explore your surroundings — Walk to uncover your map and reveal new areas.&lt;/p&gt;

&lt;p&gt;📍 Discover nearby places — Find interesting locations around you using OpenStreetMap data.&lt;/p&gt;

&lt;p&gt;🎯 Complete quests — Follow challenges and solve riddles as you explore.&lt;/p&gt;

&lt;p&gt;🏆 Collect badges — Track your discoveries and celebrate your progress.&lt;/p&gt;

&lt;p&gt;🔒 Privacy-first by design — Your walking history and discovery progress stay on your device.&lt;/p&gt;

&lt;p&gt;📴 Offline-friendly exploration — Previously loaded regions are cached locally, so you can continue exploring even without an internet connection.&lt;/p&gt;

&lt;p&gt;🛠️ Tech Stack&lt;/p&gt;

&lt;p&gt;NaturesCall brings together modern web technologies and on-device AI, including:&lt;/p&gt;

&lt;p&gt;Frontend: Vite, Leaflet&lt;/p&gt;

&lt;p&gt;AI / ML: Gemma, Transformers.js, wllama&lt;/p&gt;

&lt;p&gt;Maps &amp;amp; Places: OpenStreetMap, Overpass API&lt;/p&gt;

&lt;p&gt;Development &amp;amp; Testing: Node.js, automated tests and browser checks&lt;/p&gt;

&lt;p&gt;🚀 Run It Locally&lt;/p&gt;

&lt;p&gt;Want to explore the project or contribute?&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/Masham-0/NaturesCall.git" rel="noopener noreferrer"&gt;https://github.com/Masham-0/NaturesCall.git&lt;/a&gt;&lt;br&gt;
cd NaturesCall&lt;br&gt;
npm install&lt;br&gt;
npm run dev&lt;/p&gt;

&lt;p&gt;Start the places service separately with npm run server, and run the test suite with npm test.&lt;/p&gt;

&lt;p&gt;You can also use ?debug to simulate walking without leaving your desk. Pretty useful when you're debugging a walking game at 3 AM. 👀&lt;/p&gt;

&lt;p&gt;🌍 Make It Your Neighbourhood&lt;/p&gt;

&lt;p&gt;You can configure a home area, adjust its discovery radius, and regenerate place data to create a personalized exploration experience.&lt;/p&gt;

&lt;p&gt;The project uses OpenStreetMap data, with attribution to its contributors under the Open Database License (ODbL).&lt;/p&gt;

&lt;p&gt;💡 Why NaturesCall?&lt;/p&gt;

&lt;p&gt;The idea is simple: make people more curious about the places they walk past every day.&lt;/p&gt;

&lt;p&gt;Instead of staring at a screen while walking, NaturesCall encourages you to explore your surroundings, uncover hidden corners of your neighbourhood, and turn ordinary walks into small adventures.&lt;/p&gt;

&lt;p&gt;🔗 Explore the Project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3mvo8mwcuo9smy2pa9qt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3mvo8mwcuo9smy2pa9qt.png" alt=" " width="41" height="41"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://dev.tourl"&gt;httpss://github.com/Masham-0/NaturesCall&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
I'd love to hear your thoughts!&lt;/p&gt;

&lt;p&gt;What features would make you want to explore your neighbourhood more often? Drop your ideas in the comments. 🌱&lt;/p&gt;

&lt;h1&gt;
  
  
  DevChallenge #HF26Challenge #WebDev #OpenSource #AI #Gemma #OpenStreetMap #Nature #IndieDev
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Deadline Guardian : Built for my All-Nighter friend</title>
      <dc:creator>Masham</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:33:53 +0000</pubDate>
      <link>https://dev.to/masham_/deadline-guardian-built-for-my-all-nighter-friend-3cha</link>
      <guid>https://dev.to/masham_/deadline-guardian-built-for-my-all-nighter-friend-3cha</guid>
      <description>&lt;p&gt;Every semester, my college friend and I face the exact same chaos before our exams: piles of slides and notes, scanned PDFs, previous-year papers, syllabi, and only a few hours left.&lt;/p&gt;

&lt;p&gt;When you're pulling a deadline all-nighter, reading through hundreds of slides line-by-line is impossible. Asking a standard LLM often leads to generic fluff or hallucinated answers with zero references.&lt;/p&gt;

&lt;p&gt;That's why I built &lt;strong&gt;Deadline Guardian&lt;/strong&gt;, a RAG-based project for the &lt;strong&gt;DEV Hacktoberfest Weekend Challenge — "Build for a Friend"!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We can all work together on this project to improve this small Deadline Guardian for all of us!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;❓ &lt;strong&gt;Ask Anything (Grounded RAG with Citations):&lt;/strong&gt; Answers questions strictly using your uploaded notes, complete with exact inline file and page citations such as &lt;code&gt;[ch4.pptx p.11]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;High-Yield Cheat Sheets:&lt;/strong&gt; Condenses dense chapters into quick, digestible revision cheat sheets.&lt;/li&gt;
&lt;li&gt;⏱️ &lt;strong&gt;Deadline Panic Plan:&lt;/strong&gt; Tell it how many hours you have left before the exam. It automatically prioritizes topics into tiers — 🔴 High-Yield, 🟡 Medium, and 🟢 Low — and generates an hour-by-hour actionable timetable.&lt;/li&gt;
&lt;li&gt;📂 &lt;strong&gt;Multi-Format Support:&lt;/strong&gt; Parses digital PDFs, PPT/PPTX slide decks, plain text notes, Markdown files, and photos of handwritten pages or diagrams.&lt;/li&gt;
&lt;li&gt;🧮 &lt;strong&gt;LaTeX Math &amp;amp; Compilable Code:&lt;/strong&gt; Renders mathematical equations using KaTeX and formats programming algorithms such as Peterson's Solution and CPU scheduling as compilable C/C++ code blocks.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq4ghr6bohvp9hgjruk7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq4ghr6bohvp9hgjruk7w.png" alt="Deadline Guardian UI" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foxmz1chp27rwoybs598e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foxmz1chp27rwoybs598e.png" alt="Deadline Guardian RAG Interface" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/Masham-0/deadline-guardian" rel="noopener noreferrer"&gt;https://github.com/Masham-0/deadline-guardian&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://deadline-guardian-3195.onrender.com/" rel="noopener noreferrer"&gt;https://deadline-guardian-3195.onrender.com/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🧠 Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LLM:&lt;/strong&gt; Gemma 2B&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings:&lt;/strong&gt; BGE-small&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; Retrieval-Augmented Generation (RAG)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  ⚙️ Steps to Run Locally
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Clone the Repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Masham-0/deadline-guardian.git
&lt;span class="nb"&gt;cd &lt;/span&gt;deadline-guardian
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
&lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Configure Environment
&lt;/h3&gt;

&lt;p&gt;Create a &lt;code&gt;.env&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
LLM_API_KEY=your_api_key_here
LLM_MODEL=gemma-2-9b-it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Start the Server
&lt;/h3&gt;

&lt;p&gt;For the Google API setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt; &lt;span class="nt"&gt;--host&lt;/span&gt; 127.0.0.1 &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a local Ollama setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma:2b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start the server with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;LLM_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://localhost:11434/v1 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nv"&gt;LLM_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ollama &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nv"&gt;LLM_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gemma:2b &lt;span class="se"&gt;\&lt;/span&gt;
uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  👨‍💻 Author &amp;amp; Credits
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Mohammad Masham&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:mohd.masham@gmail.com"&gt;mohd.masham@gmail.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Institution:&lt;/strong&gt; Netaji Subhas University of Technology (NSUT)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Hackathon:&lt;/strong&gt; DEV Hacktoberfest Weekend Challenge 2026 — Build for a Friend&lt;/p&gt;

&lt;p&gt;If you find &lt;strong&gt;Deadline Guardian&lt;/strong&gt; helpful for your exam prep, feel free to drop a ⭐ on the GitHub repository!&lt;/p&gt;

&lt;p&gt;Happy studying! 📚&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
