<?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: Amit Verma</title>
    <description>The latest articles on DEV Community by Amit Verma (@amitverma0509).</description>
    <link>https://dev.to/amitverma0509</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%2F4158540%2Fdbc45084-a30d-4175-85c4-6e84a425a982.jpg</url>
      <title>DEV Community: Amit Verma</title>
      <link>https://dev.to/amitverma0509</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amitverma0509"/>
    <language>en</language>
    <item>
      <title>demo</title>
      <dc:creator>Amit Verma</dc:creator>
      <pubDate>Tue, 13 Oct 2026 10:50:27 +0000</pubDate>
      <link>https://dev.to/amitverma0509/demo-9ci</link>
      <guid>https://dev.to/amitverma0509/demo-9ci</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

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

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

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

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

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

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

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

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Field Notes: an offline birding companion (BirdNET + Gemma + TabPFN)</title>
      <dc:creator>Amit Verma</dc:creator>
      <pubDate>Wed, 07 Oct 2026 13:39:10 +0000</pubDate>
      <link>https://dev.to/amitverma0509/field-notes-an-offline-birding-companion-birdnet-gemma-tabpfn-2ei7</link>
      <guid>https://dev.to/amitverma0509/field-notes-an-offline-birding-companion-birdnet-gemma-tabpfn-2ei7</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;I built &lt;strong&gt;Field Notes&lt;/strong&gt;, an offline command-line birding companion designed for hiking, walking, and birdwatching in places where mobile coverage is unreliable.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Record → Identify → Journal → Forecast → Go outside again.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You record around 10 seconds of bird audio while you're outside. Later, Field Notes processes the recording locally and uses &lt;strong&gt;BirdNET&lt;/strong&gt; to identify the birds.&lt;/p&gt;

&lt;p&gt;A local &lt;strong&gt;Gemma 3 1B&lt;/strong&gt; model then turns the detected species into a short field-journal entry. Your previous observations are stored locally in SQLite and used by &lt;strong&gt;TabPFN&lt;/strong&gt; to forecast which species you might hear at that location and time the next morning.&lt;/p&gt;

&lt;p&gt;The screen is intentionally not the main part of the experience.&lt;/p&gt;

&lt;p&gt;The forecast exists to give you a reason to put your phone away and go outside again.&lt;/p&gt;

&lt;p&gt;Field Notes is designed for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Birdwatchers&lt;/li&gt;
&lt;li&gt;Hikers and walkers&lt;/li&gt;
&lt;li&gt;Nature enthusiasts&lt;/li&gt;
&lt;li&gt;People exploring areas with poor connectivity&lt;/li&gt;
&lt;li&gt;Anyone who wants to keep their observation history private&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core workflow doesn't require a cloud AI API, and observation data stays on the device.&lt;/p&gt;

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

&lt;p&gt;The intended workflow looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Record ~10 seconds of audio
          ↓
       BirdNET
          ↓
    Bird species detected
          ↓
        Gemma
          ↓
   Field journal entry
          ↓
       SQLite
          ↓
       TabPFN
          ↓
  Tomorrow's bird forecast
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I plan to include a short terminal recording showing this complete pipeline.&lt;/p&gt;

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

&lt;p&gt;The complete project is open source on GitHub:&lt;/p&gt;

&lt;p&gt;The repository contains the application code, local data pipeline, BirdNET integration, Gemma/Ollama integration, and TabPFN forecasting workflow.&lt;/p&gt;

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

&lt;p&gt;Field Notes combines several open-source AI components, with each one having a specific job.&lt;/p&gt;

&lt;h3&gt;
  
  
  BirdNET — Bird Identification
&lt;/h3&gt;

&lt;p&gt;I use &lt;strong&gt;BirdNET through &lt;code&gt;birdnetlib&lt;/code&gt;&lt;/strong&gt; to analyze the recorded audio and identify likely bird species.&lt;/p&gt;

&lt;p&gt;The goal is to perform the identification locally rather than sending recordings to a hosted API.&lt;/p&gt;

&lt;p&gt;This is particularly useful when you're already somewhere with poor or no network coverage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemma — Local Field Journal
&lt;/h3&gt;

&lt;p&gt;After BirdNET produces the detected species, I pass those results to &lt;strong&gt;Gemma 3 1B running locally through Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Gemma turns the structured detection results into a short 3–4 sentence field-journal entry.&lt;/p&gt;

&lt;p&gt;The prompt is intentionally constrained to the detected species so that the model isn't encouraged to invent birds that weren't detected.&lt;/p&gt;

&lt;p&gt;The journal model is configurable using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FIELDNOTES_MODEL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means I can experiment with different local models without changing the rest of the application.&lt;/p&gt;

&lt;p&gt;If Ollama isn't available, the application gracefully falls back to a plain observation log instead of failing completely.&lt;/p&gt;

&lt;h3&gt;
  
  
  TabPFN — Personal Bird Forecast
&lt;/h3&gt;

&lt;p&gt;The project stores previous observations in a local SQLite database.&lt;/p&gt;

&lt;p&gt;The current prediction features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latitude&lt;/li&gt;
&lt;li&gt;Longitude&lt;/li&gt;
&lt;li&gt;Day of year&lt;/li&gt;
&lt;li&gt;Time of day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I use &lt;strong&gt;TabPFN&lt;/strong&gt; to learn from this personal observation history and predict which species are likely to be observed at a particular place and time.&lt;/p&gt;

&lt;p&gt;This is intentionally a &lt;strong&gt;personal forecast&lt;/strong&gt;, not an attempt to create a universal bird-distribution model.&lt;/p&gt;

&lt;p&gt;The current implementation supports up to 10 classes, so the forecast uses the 9 most common species plus an &lt;code&gt;other&lt;/code&gt; category.&lt;/p&gt;

&lt;p&gt;If TabPFN isn't available or there isn't enough data, Field Notes falls back to a nearest-neighbour baseline and labels the result accordingly.&lt;/p&gt;

&lt;h3&gt;
  
  
  SQLite — Local Storage
&lt;/h3&gt;

&lt;p&gt;All observations are stored locally using SQLite.&lt;/p&gt;

&lt;p&gt;This keeps the observation history available for future predictions without requiring a remote database.&lt;/p&gt;

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

&lt;p&gt;Open innovation is especially important for a project like this because the environment where the application is used can be the exact environment where cloud services become inconvenient.&lt;/p&gt;

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

&lt;p&gt;Birdwatching often happens away from reliable internet connectivity.&lt;/p&gt;

&lt;p&gt;Local AI models allow the application to continue working without depending on a hosted API.&lt;/p&gt;

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

&lt;p&gt;A birding history can reveal more than the species you've seen.&lt;/p&gt;

&lt;p&gt;Repeated observations can reveal where you walk, when you visit a location, and which trails you regularly use.&lt;/p&gt;

&lt;p&gt;Keeping this information locally means it doesn't automatically become another dataset stored on someone else's server.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experimentation
&lt;/h3&gt;

&lt;p&gt;Because the models and tools are open and replaceable, I can experiment with different approaches.&lt;/p&gt;

&lt;p&gt;For example, the journal-generation model can be changed without rebuilding the entire application.&lt;/p&gt;

&lt;p&gt;The forecasting component can also be compared with different tabular machine-learning approaches.&lt;/p&gt;

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

&lt;p&gt;There is no per-request cloud AI charge for every bird recording or journal entry.&lt;/p&gt;

&lt;p&gt;Once the required models are available locally, additional observations don't create another API bill.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community
&lt;/h3&gt;

&lt;p&gt;Open-source tools made it possible to combine audio classification, local language generation, tabular prediction, and local storage into one small project without building every component from scratch.&lt;/p&gt;

&lt;p&gt;That's the part of open innovation I found most interesting: different projects can solve different pieces of the problem, and they can be combined into something new.&lt;/p&gt;

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

&lt;p&gt;I haven't included an agent session yet.&lt;/p&gt;

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

&lt;p&gt;I'm entering the following partner categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Gemma 3 1B is used locally to transform BirdNET detections into readable field-journal entries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of TabPFN&lt;/strong&gt; — TabPFN is used to forecast likely bird species from a small, personal observation dataset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Entire&lt;/strong&gt; — Field Notes combines local audio classification, local language generation, tabular prediction, and persistent local data into a single offline workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;This is an experimental hobby project rather than a professional wildlife-monitoring system.&lt;/p&gt;

&lt;p&gt;Some limitations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BirdNE&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built StudySaathi, a Private AI Study Buddy That Runs on Your Own Computer</title>
      <dc:creator>Amit Verma</dc:creator>
      <pubDate>Sun, 04 Oct 2026 11:36:16 +0000</pubDate>
      <link>https://dev.to/amitverma0509/i-built-studysaathi-a-private-ai-study-buddy-that-runs-on-your-own-computer-4cnp</link>
      <guid>https://dev.to/amitverma0509/i-built-studysaathi-a-private-ai-study-buddy-that-runs-on-your-own-computer-4cnp</guid>
      <description>&lt;h3&gt;
  
  
  StudySaathi: A Local Gemma Study Buddy with Flashcards, Quizzes and Dark Mode
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;StudySaathi&lt;/strong&gt; ("study companion") is a local-first AI study buddy. You paste in your class notes, pick how you want to study, and it turns them into something easier to learn from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;☼ &lt;strong&gt;Explain it&lt;/strong&gt; turns notes into a beginner-friendly explanation, split into clear cards (summary, key ideas, example, key terms, recap).&lt;/li&gt;
&lt;li&gt;? &lt;strong&gt;Quiz me&lt;/strong&gt; creates a 5-question multiple-choice quiz. You answer one question at a time and get instant right/wrong feedback with a short explanation, then a final score.&lt;/li&gt;
&lt;li&gt;▤ &lt;strong&gt;Flashcards&lt;/strong&gt; creates flip cards for quick revision. You mark each card "Got it" or "Still learning", shuffle the deck, and review only the ones you missed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built it for a friend who finds studying stressful. Big textbook chapters feel overwhelming, so I wanted a tool that breaks notes into small, calm steps he can go through at his own pace, without pressure and without needing an account or an internet connection to an AI service.&lt;/p&gt;

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

&lt;p&gt;I haven't deployed it, because it runs on your own computer with Ollama. Here is what it looks like, using Biology notes on photosynthesis:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explain it&lt;/strong&gt;&lt;br&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%2Fpea8rycpmofkhkaj8mer.jpeg" 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%2Fpea8rycpmofkhkaj8mer.jpeg" alt="Explain demo" width="799" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quiz me&lt;/strong&gt;&lt;br&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%2Fakixnz1n9gioa5urr638.jpeg" 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%2Fakixnz1n9gioa5urr638.jpeg" alt="Quiz demo" width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flashcards&lt;/strong&gt;&lt;br&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%2Ffjb2pylig1ci80y93bnt.jpeg" 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%2Ffjb2pylig1ci80y93bnt.jpeg" alt="Flashcards demo" width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app also has a light/dark mode toggle in the top bar.&lt;/p&gt;
&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;I tested all three modes myself with Biology notes on photosynthesis, and the testing shaped the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Small models don't always follow the format.&lt;/strong&gt; &lt;code&gt;gemma3:1b&lt;/code&gt; sometimes added stray labels like "Flashcard 5" to answers, or laid out quizzes differently each time. I made the parsers tolerant of those variations, and if a response still can't be read, the app shows it as plain text instead of breaking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive beats a wall of text.&lt;/strong&gt; My first version dumped raw text into the result panel. Turning it into flip cards, a one-question-at-a-time quiz and sectioned explanations made it feel much less overwhelming, which was the whole point.&lt;/li&gt;
&lt;/ul&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/Amitverma0509" rel="noopener noreferrer"&gt;
        Amitverma0509
      &lt;/a&gt; / &lt;a href="https://github.com/Amitverma0509/Hacktoberfest_Challenge" rel="noopener noreferrer"&gt;
        Hacktoberfest_Challenge
      &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;StudySaathi 📚&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;StudySaathi&lt;/strong&gt; is a local-first AI study buddy built with Flask, Ollama, and Gemma. Paste your class notes and choose how you want to study: get a simpler explanation, generate a practice quiz, or create revision flashcards.&lt;/p&gt;
&lt;p&gt;It was built for the &lt;strong&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/strong&gt; — the idea is to make studying feel a little less stressful and help a friend revise at their own pace.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Screenshot of StudySaathi generating a practice quiz from Biology notes about photosynthesis:&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Amitverma0509/Hacktoberfest_Challenge/screenshots/studysaathi-quiz-demo.jpeg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FAmitverma0509%2FHacktoberfest_Challenge%2FHEAD%2Fscreenshots%2Fstudysaathi-quiz-demo.jpeg" alt="StudySaathi interface with a generated photosynthesis practice quiz"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Screenshot of StudySaathi generating a Explanation from Biology notes about photosynthesis:&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Amitverma0509/Hacktoberfest_Challenge/screenshots/studysaathi-explain-demo.jpeg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FAmitverma0509%2FHacktoberfest_Challenge%2FHEAD%2Fscreenshots%2Fstudysaathi-explain-demo.jpeg" alt="StudySaathi interface with a generated photosynthesis Explanation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Screenshot of StudySaathi generating a flashcard from Biology notes about photosynthesis:&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Amitverma0509/Hacktoberfest_Challenge/screenshots/studysaathi-flashcard-demo.jpeg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FAmitverma0509%2FHacktoberfest_Challenge%2FHEAD%2Fscreenshots%2Fstudysaathi-flashcard-demo.jpeg" alt="StudySaathi interface with a generated photosynthesis flashcard"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explain it:&lt;/strong&gt; turn notes into a beginner-friendly explanation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quiz me:&lt;/strong&gt; generate five multiple-choice questions, with answers and explanations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flashcards:&lt;/strong&gt; create quick revision cards from notes.&lt;/li&gt;
&lt;li&gt;Responsive interface for desktop and smaller screens.&lt;/li&gt;
&lt;li&gt;Local inference through Ollama and Gemma; the core study workflow does…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Amitverma0509/Hacktoberfest_Challenge" 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;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Google's open-weight &lt;strong&gt;Gemma&lt;/strong&gt; (&lt;code&gt;gemma3:1b&lt;/code&gt; by default), run locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; a small &lt;strong&gt;Flask&lt;/strong&gt; app with one endpoint, &lt;code&gt;/api/study&lt;/code&gt;. It takes the notes and a mode, wraps them in a task-specific prompt (explain, quiz or flashcards), and sends it to Ollama running on the same machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; plain &lt;strong&gt;HTML, CSS and JavaScript&lt;/strong&gt;, with no framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turning text into an interface:&lt;/strong&gt; the model returns plain text, so the frontend parses it into the interactive views above. Flashcards use a strict &lt;code&gt;FRONT:&lt;/code&gt; / &lt;code&gt;BACK:&lt;/code&gt; format, and the quiz and explanation parsers handle the different layouts small models produce. If a response doesn't match the expected format, the app shows it as plain text instead of breaking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configurable:&lt;/strong&gt; you can switch to any model you have installed in Ollama by setting the &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; environment variable.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;A study tool is only useful to the people who can actually use it, and many students can't pay for API subscriptions or don't want to send their notes to a third party. Open-weight models made a different design possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; notes go from Flask to Ollama on the same computer, not to a hosted AI API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No cost or keys:&lt;/strong&gt; there is no usage bill and no API key to manage, so the app stays free for anyone to run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control:&lt;/strong&gt; I could choose and swap the model, tune the prompts, and build the app around what the model can do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A closed API would have meant ongoing costs and sending a student's notes elsewhere, which is the wrong trade-off for something meant to make studying feel safe and low-pressure.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; StudySaathi runs on Google's open-weight Gemma model (&lt;code&gt;gemma3:1b&lt;/code&gt;), served locally through Ollama. All three study modes (explanations, quizzes and flashcards) are generated by Gemma, and the app is built around turning its text output into interactive study views.&lt;/p&gt;

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