<?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: chanveer singh</title>
    <description>The latest articles on DEV Community by chanveer singh (@chanveer_singh).</description>
    <link>https://dev.to/chanveer_singh</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%2F4030171%2F8aaa3a9f-d65f-4971-9672-52c51b5b876a.jpg</url>
      <title>DEV Community: chanveer singh</title>
      <link>https://dev.to/chanveer_singh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chanveer_singh"/>
    <language>en</language>
    <item>
      <title>From First-Timer to Finisher: My Hacktoberfest 2026 Journey</title>
      <dc:creator>chanveer singh</dc:creator>
      <pubDate>Thu, 15 Oct 2026 10:06:47 +0000</pubDate>
      <link>https://dev.to/chanveer_singh/from-first-timer-to-finisher-my-hacktoberfest-2026-journey-29m0</link>
      <guid>https://dev.to/chanveer_singh/from-first-timer-to-finisher-my-hacktoberfest-2026-journey-29m0</guid>
      <description>&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%2Fbnwgdwvma4uxz9yv8lxt.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%2Fbnwgdwvma4uxz9yv8lxt.png" alt=" " width="800" height="566"&gt;&lt;/a&gt;&lt;br&gt;
Another Hacktoberfest in the books! 🍂💻 I managed to complete my pull requests and officially earned my 2026 completion certificate. Here’s a quick look at what I built, the challenges I faced, and what I’m taking away from this year's event.&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>mlh</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>TrailPal Punjab: An Offline Open-Source AI Nature Guide That Gets You Off the Screen</title>
      <dc:creator>chanveer singh</dc:creator>
      <pubDate>Mon, 12 Oct 2026 04:33:30 +0000</pubDate>
      <link>https://dev.to/chanveer_singh/trailpal-punjab-an-offline-open-source-ai-nature-guide-that-gets-you-off-the-screen-46a7</link>
      <guid>https://dev.to/chanveer_singh/trailpal-punjab-an-offline-open-source-ai-nature-guide-that-gets-you-off-the-screen-46a7</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;TrailPal Punjab is an offline "what's that?" app for walks. Snap a plant, bird or insect and a local open-weight model names it and gives a fun fact, checked against a local list of Punjab species. A daily quest ("find 3 things") nudges you to go outside, and once it's done the app tells you to put the phone away. The screen is the shortest part of the experience. Built for hikers, kids, students and anyone curious about the trees and birds around them.&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/v3FpCGK3nhI" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  screenshots
&lt;/h2&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%2Fdd94hyzbk0t42cspoumo.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%2Fdd94hyzbk0t42cspoumo.png" alt=" " width="800" height="452"&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%2Fytogl11dhi7rtd0qech3.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%2Fytogl11dhi7rtd0qech3.png" alt=" " width="800" height="354"&gt;&lt;/a&gt;&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/chanveersinghdev" rel="noopener noreferrer"&gt;
        chanveersinghdev
      &lt;/a&gt; / &lt;a href="https://github.com/chanveersinghdev/trailpal" rel="noopener noreferrer"&gt;
        trailpal
      &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;🌿 TrailPal Punjab&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;Offline "what's that?" for the outdoors. Point your camera at a plant, bird or insect,
get the name plus a fun fact from a &lt;strong&gt;local open-weight model&lt;/strong&gt;. No internet, no cloud,
no photos leave your device. A daily quest (find 3 things) gets you outside.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run it&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 1. install Ollama: https://ollama.com&lt;/span&gt;
ollama pull gemma3:4b          &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; one-time download (~3.3 GB); works offline after&lt;/span&gt;
pip install -r requirements.txt
streamlit run app.py&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open on your phone via the "Network URL" Streamlit prints (same Wi-Fi/hotspot),
or just run it on a laptop and carry it on a walk.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Open-source pieces&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 3&lt;/strong&gt; (open-weight vision model) via &lt;strong&gt;Ollama&lt;/strong&gt; (local inference)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; UI, &lt;strong&gt;Pillow&lt;/strong&gt;, local JSON species list (&lt;code&gt;data/species.json&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Swap the model by changing &lt;code&gt;MODEL&lt;/code&gt; in &lt;code&gt;app.py&lt;/code&gt; (e.g. &lt;code&gt;qwen2.5vl:3b&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Add your own species&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Edit &lt;code&gt;data/species.json&lt;/code&gt;, no retraining needed.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/chanveersinghdev/trailpal" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 3 (4B)&lt;/strong&gt;, an open-weight vision model, run locally with &lt;strong&gt;Ollama&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; for a simple camera-friendly UI&lt;/li&gt;
&lt;li&gt;A local &lt;code&gt;species.json&lt;/code&gt; of Punjab plants and birds to ground answers and reduce hallucinations&lt;/li&gt;
&lt;li&gt;JSON-mode prompts so the model returns name, type, confidence and a fact&lt;/li&gt;
&lt;li&gt;Sound tab: describe a bird call in words and the model suggests likely birds&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Works with no signal.&lt;/strong&gt; Trails don't have bars. After a one-time model download it runs fully offline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy.&lt;/strong&gt; Photos never leave the device.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free.&lt;/strong&gt; No API key, no per-call cost, which matters for students.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable and tunable.&lt;/strong&gt; Change one line to try another model, or add local species to the JSON. A closed API can't be tuned to Punjab's trees and birds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How It Went Outside
&lt;/h2&gt;

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

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>python</category>
      <category>mlh</category>
    </item>
    <item>
      <title>Studymat</title>
      <dc:creator>chanveer singh</dc:creator>
      <pubDate>Sat, 03 Oct 2026 08:32:42 +0000</pubDate>
      <link>https://dev.to/chanveer_singh/studymat-1b40</link>
      <guid>https://dev.to/chanveer_singh/studymat-1b40</guid>
      <description>&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;h1&gt;
  
  
  StudyMate: An AI Study Partner That Tells You What to Do Next
&lt;/h1&gt;

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

&lt;p&gt;I built &lt;strong&gt;StudyMate&lt;/strong&gt;, an AI study partner for a friend who is a real student. She has plenty of study material, but when she gets stuck on a topic she often doesn't know &lt;strong&gt;what to do next&lt;/strong&gt;: re-read, watch a video, practice, or revise.&lt;/p&gt;

&lt;p&gt;Most AI tools work like this: &lt;strong&gt;Ask → Get answer.&lt;/strong&gt; Then the student is on their own again.&lt;/p&gt;

&lt;p&gt;StudyMate works like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask → Understand → Practice → Revise → Improve&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It looks at what the student asked and offers the right next actions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Concept question&lt;/strong&gt; ("Explain electromagnetic induction"): Explain simply, Use an analogy, Real-world example, Quiz me.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Numerical&lt;/strong&gt; ("Calculate the induced emf…"): Give me a hint, Show formula, Solve step-by-step, Similar problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revision&lt;/strong&gt;: Quick revision, Flashcards, Common mistakes, Quiz, Exam practice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The options are &lt;strong&gt;adaptive, not fixed.&lt;/strong&gt; The same app gives different next steps depending on what the student is doing.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  Video Demo
&lt;/h3&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Cn-L-TjlGUA" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshot
&lt;/h3&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%2F893y6pll6hbq4ho7phae.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%2F893y6pll6hbq4ho7phae.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;StudyMate's chat interface. After each answer, it offers adaptive next actions based on what the student asked.&lt;/em&gt;&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/chanveersinghdev" rel="noopener noreferrer"&gt;
        chanveersinghdev
      &lt;/a&gt; / &lt;a href="https://github.com/chanveersinghdev/Studymate" rel="noopener noreferrer"&gt;
        Studymate
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI study assistant that explains topics, adapts to your goals and level (Beginner to Advanced), and remembers context so you don't repeat yourself. Built with FastAPI, Ollama Cloud, and GPT-OSS. Privacy-first: it only uses what you provide or allow it to remember. Get quizzes, follow-ups, and clear answers in your style.
    &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;StudyMate — Ollama Cloud Edition&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Personalized AI study partner with contextual learning actions.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;AI provider&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This version uses &lt;strong&gt;Ollama Cloud&lt;/strong&gt; by default. The default configurable model is &lt;code&gt;gpt-oss:120b&lt;/code&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Setup&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Backend&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;cd backend
python &lt;span class="pl-k"&gt;-&lt;/span&gt;m venv .venv
.venv\\Scripts\\activate
pip install &lt;span class="pl-k"&gt;-&lt;/span&gt;r requirements.txt
copy .env.example .env&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open &lt;code&gt;backend/.env&lt;/code&gt; and add your Ollama Cloud API key:&lt;/p&gt;
&lt;div class="highlight highlight-source-dotenv notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-v"&gt;AI_PROVIDER&lt;/span&gt;&lt;span class="pl-k"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;ollama_cloud&lt;/span&gt;
&lt;span class="pl-v"&gt;OLLAMA_HOST&lt;/span&gt;&lt;span class="pl-k"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;https://ollama.com&lt;/span&gt;
&lt;span class="pl-v"&gt;OLLAMA_API_KEY&lt;/span&gt;&lt;span class="pl-k"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;YOUR_KEY_HERE&lt;/span&gt;
&lt;span class="pl-v"&gt;OLLAMA_MODEL&lt;/span&gt;&lt;span class="pl-k"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;gpt-oss:120b&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;uvicorn app.main:app &lt;span class="pl-k"&gt;--&lt;/span&gt;reload &lt;span class="pl-k"&gt;--&lt;/span&gt;port &lt;span class="pl-c1"&gt;8000&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Check:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;http://127.0.0.1:8000/api/health
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;2. Frontend&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;In a second terminal:&lt;/p&gt;
&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;cd frontend
npm install
npm run dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open the Vite URL shown in the terminal.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Included&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Rounded Claude-inspired chat UI&lt;/li&gt;
&lt;li&gt;Hover and message animations&lt;/li&gt;
&lt;li&gt;Dark/light mode&lt;/li&gt;
&lt;li&gt;Responsive layout&lt;/li&gt;
&lt;li&gt;Context-aware study actions&lt;/li&gt;
&lt;li&gt;Learning-phase detection&lt;/li&gt;
&lt;li&gt;Ollama Cloud API integration&lt;/li&gt;
&lt;li&gt;Configurable model&lt;/li&gt;
&lt;li&gt;Server-side API key handling&lt;/li&gt;
&lt;li&gt;Fallback UI when no key is configured&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Security&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Never commit &lt;code&gt;backend/.env&lt;/code&gt;. It contains your private API key.&lt;/p&gt;
&lt;p&gt;The React frontend does…&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/chanveersinghdev/Studymate" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The repo has the React + Vite frontend, the FastAPI backend, and a &lt;code&gt;.env.example&lt;/code&gt; with setup instructions.&lt;/p&gt;

&lt;p&gt;📧 Contact: &lt;a href="mailto:chanveersinghdev@gmail.com"&gt;chanveersinghdev@gmail.com&lt;/a&gt;&lt;/p&gt;




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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        Student (question / doubt)
                  │
                  ▼
         React + Vite (UI)
                  │
                  ▼
           FastAPI backend
                  │
                  ▼
      Context / prompt engine
                  │
                  ▼
   Ollama Cloud ─► gpt-oss:120b
                  │
                  ▼
     Answer + adaptive actions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tech stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Part&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React + Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;gpt-oss:120b (open-weight) via Ollama Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;SQL database for user data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Built with&lt;/td&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Learning phases
&lt;/h3&gt;

&lt;p&gt;StudyMate is designed around how people actually learn:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Discover → Understand → Practice → Revise → Exam prep&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The prompt engine detects the question type and phase, then chooses which actions to show.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why open-weight AI is the core
&lt;/h3&gt;

&lt;p&gt;The AI is an &lt;strong&gt;open-weight model (gpt-oss:120b)&lt;/strong&gt; running through Ollama Cloud, not a closed proprietary API. The learning logic is separated from the provider and model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StudyMate learning logic → AI provider → Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model is set in &lt;code&gt;.env&lt;/code&gt;, so I can switch models or providers, or move to local inference later, without rewriting the product. That means less vendor lock-in and more control over the AI layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;The Ollama API key stays on the FastAPI backend (&lt;code&gt;.env&lt;/code&gt;). The browser never sees it, and only &lt;code&gt;.env.example&lt;/code&gt; is committed to GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Honest about PYQs
&lt;/h3&gt;

&lt;p&gt;StudyMate &lt;strong&gt;never calls AI-generated questions "PYQs."&lt;/strong&gt; They are labelled &lt;em&gt;Practice question&lt;/em&gt;. Real previous-year questions will come from a verified database (year + exam + subject + chapter), so students can trust what they study.&lt;/p&gt;

&lt;h3&gt;
  
  
  UI
&lt;/h3&gt;

&lt;p&gt;I designed the interface like a real product: dark theme, rounded chat and composer, contextual action buttons, hover animations, chat history, and a responsive layout.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive actions:&lt;/strong&gt; making the options change correctly by question type (concept vs numerical vs revision) instead of showing the same buttons every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keeping the key safe:&lt;/strong&gt; routing every AI call through the backend so the Ollama key never reaches the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Academic trust:&lt;/strong&gt; separating AI-generated practice questions from real PYQs so the app never misleads a student.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model independence:&lt;/strong&gt; keeping the learning logic separate from the model so changing models doesn't mean a rewrite.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;PDF and notes upload with RAG, so students can ask questions about their own material&lt;/li&gt;
&lt;li&gt;Verified PYQ database and NCERT integration, with chapter-wise and exam filters&lt;/li&gt;
&lt;li&gt;Quiz engine, flashcards, progress tracking, and weak-topic detection&lt;/li&gt;
&lt;li&gt;Web sources and book/resource recommendations&lt;/li&gt;
&lt;li&gt;Streaming responses, image-based question solving, and a personalized learning profile&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The biggest lesson was that a good study tool shouldn't stop at the answer. Knowing what to do next is what turns an answer into learning. StudyMate is the foundation for that, and I want to keep building it with my friend's feedback.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My First Experience with SigNoz: Exploring Open-Source Observability</title>
      <dc:creator>chanveer singh</dc:creator>
      <pubDate>Wed, 15 Jul 2026 10:31:10 +0000</pubDate>
      <link>https://dev.to/chanveer_singh/my-first-experience-with-signoz-exploring-open-source-observability-32p9</link>
      <guid>https://dev.to/chanveer_singh/my-first-experience-with-signoz-exploring-open-source-observability-32p9</guid>
      <description>&lt;p&gt;As part of my project preparation, I explored SigNoz, an open-source observability platform. The goal was to understand how developers can monitor applications using traces, metrics, and logs from a single dashboard.&lt;/p&gt;

&lt;p&gt;Getting Started&lt;/p&gt;

&lt;p&gt;I installed SigNoz locally and connected a sample application using OpenTelemetry. Within a few minutes, telemetry data started appearing in the dashboard, making it easy to verify that everything was working correctly.&lt;/p&gt;

&lt;p&gt;Features I Explored&lt;br&gt;
Distributed Traces to follow requests across services.&lt;br&gt;
Metrics to monitor application performance.&lt;br&gt;
Logs for troubleshooting and debugging.&lt;br&gt;
Dashboards for visualizing system health.&lt;br&gt;
Alerts to notify users when predefined conditions are met.&lt;br&gt;
My Favorite Feature&lt;/p&gt;

&lt;p&gt;The feature I liked the most was Distributed Tracing. It provides a clear view of how a request moves through an application and quickly identifies slow or failing components. This makes debugging much faster than relying only on logs.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/chanveersingh2008/" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;br&gt;
SigNoz provides a powerful and developer-friendly observability solution. Its unified interface for traces, metrics, logs, and dashboards makes monitoring applications straightforward. Exploring SigNoz gave me a solid understanding of modern observability and prepared me for building larger projects with better monitoring from the start.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>googlecloud</category>
      <category>wemakedev</category>
    </item>
  </channel>
</rss>
