<?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>Forem: vyomanshi gohel</title>
    <description>The latest articles on Forem by vyomanshi gohel (@vyomanshi27).</description>
    <link>https://forem.com/vyomanshi27</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3937194%2Ff2da658c-f049-4014-819a-af38b8b9ee87.png</url>
      <title>Forem: vyomanshi gohel</title>
      <link>https://forem.com/vyomanshi27</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vyomanshi27"/>
    <language>en</language>
    <item>
      <title>I Built Schedule Sensei &amp; Pushed It to GitHub – Here's What's Inside (And I Need Your Help 👀)</title>
      <dc:creator>vyomanshi gohel</dc:creator>
      <pubDate>Mon, 25 May 2026 03:49:46 +0000</pubDate>
      <link>https://forem.com/vyomanshi27/i-built-schedule-sensei-pushed-it-to-github-heres-whats-inside-and-i-need-your-help--37p5</link>
      <guid>https://forem.com/vyomanshi27/i-built-schedule-sensei-pushed-it-to-github-heres-whats-inside-and-i-need-your-help--37p5</guid>
      <description>&lt;p&gt;Okay, so in my last post I talked about the idea behind Schedule Sensei – an Android app that auto-adds calendar events from your WhatsApp and Gmail notifications using on-device NLP.&lt;br&gt;
Well… the code is live on GitHub now. 🎉&lt;br&gt;
&lt;strong&gt;🔗 &lt;a href="https://github.com/vyomanshi27/Schedule-Sensei" rel="noopener noreferrer"&gt;https://github.com/vyomanshi27/Schedule-Sensei&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What's actually in the repo right now&lt;br&gt;
Here's a quick rundown of what's been pushed:&lt;br&gt;
🔔 NotificationListenerService – The core of the whole thing. Hooks into Android's notification system (with your explicit permission) and intercepts messages from WhatsApp, Gmail, and SMS before they disappear.&lt;br&gt;
🧠 On-device NLP Pipeline – This was the fun part to build. Uses regex + a lightweight rule-based parser to pull out:&lt;/p&gt;

&lt;p&gt;Dates ("tomorrow", "next Friday", "25th June")&lt;br&gt;
Times ("at 3 PM", "10 AM")&lt;br&gt;
Event titles (best-guess extraction from message context)&lt;br&gt;
Locations when mentioned&lt;/p&gt;

&lt;p&gt;📅 Calendar Integration – High-confidence events get added directly via the CalendarContract API. No third-party dependencies, no permissions you don't expect.&lt;br&gt;
⚠️ Confidence Scoring System – Not every message is "Meeting at 3 PM tomorrow." Some are "maybe Thursday? idk lol". The app gives every parsed event a confidence score – high = auto-add, low = plays a custom sound and queues it for your review.&lt;br&gt;
⚙️ Settings Screen (Jetpack Compose) – Toggle per-source (WhatsApp only, Gmail only, SMS only), toggle auto-add, toggle custom sounds. It's minimal right now but functional.&lt;/p&gt;

&lt;p&gt;What's NOT done yet (being honest here)&lt;br&gt;
A few things are still being polished before I'd call this v1.0:&lt;/p&gt;

&lt;p&gt;Better NLP for recurring events ("every Monday at 9")&lt;br&gt;
 Handling multiple dates in one message ("available Mon or Wed?")&lt;br&gt;
 Edge case: messages with time zones&lt;br&gt;
 UI polish on the pending events review screen&lt;br&gt;
 Testing on more Android versions &lt;/p&gt;

&lt;p&gt;Why I'm posting before it's 100% done&lt;br&gt;
Because I've been building this mostly solo and I've hit the point where I genuinely can't see my own blind spots anymore.&lt;br&gt;
I need people to:&lt;/p&gt;

&lt;p&gt;⭐ Star the repo if the idea excites you (even just to follow the journey)&lt;br&gt;
🐛 Open issues for edge cases I haven't thought of&lt;br&gt;
💬 Drop comments here – what messages would break my parser?&lt;br&gt;
🛠 Contribute if you're into Android/NLP/Jetpack Compose&lt;/p&gt;

&lt;p&gt;What would feel right to you? Auto-add everything and let me undo? Or always confirm first?&lt;br&gt;
Drop your thoughts below 👇&lt;br&gt;
&lt;strong&gt;🔗 Check out the repo – contributions, issues, and stars all massively appreciated. Let's build this thing properly. 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>nlp</category>
      <category>jetpackcompose</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I'm Building Schedule Sensei: An Android App That Auto‑Adds Calendar Events from WhatsApp &amp; Gmail</title>
      <dc:creator>vyomanshi gohel</dc:creator>
      <pubDate>Wed, 20 May 2026 02:42:09 +0000</pubDate>
      <link>https://forem.com/vyomanshi27/im-building-schedule-sensei-an-android-app-that-auto-adds-calendar-events-from-whatsapp-gmail-4mif</link>
      <guid>https://forem.com/vyomanshi27/im-building-schedule-sensei-an-android-app-that-auto-adds-calendar-events-from-whatsapp-gmail-4mif</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Problem We All Face&lt;br&gt;
Let me paint a picture.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You're in a WhatsApp group. A message pops up:&lt;/p&gt;

&lt;p&gt;"Tomorrow's class is shifted to 10 AM instead of 9 AM."&lt;/p&gt;

&lt;p&gt;You see it. You think "okay." Then tomorrow comes… and you completely forgot. Sound familiar?&lt;/p&gt;

&lt;p&gt;Or maybe you get an email: "Meeting rescheduled to Friday at 3 PM in Conference Room B." You manually open your calendar, type it in… and accidentally put 4 PM.&lt;/p&gt;

&lt;p&gt;We receive dozens of time‑sensitive messages every day. Yet we still rely on our fallible human memory or tedious manual entry. There has to be a better way.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;The Idea: Schedule Sensei&lt;/strong&gt;&lt;br&gt;
I'm building an Android app that automatically:&lt;/p&gt;

&lt;p&gt;Listens to notifications from WhatsApp, Gmail, and SMS (with your permission, of course)&lt;/p&gt;

&lt;p&gt;Extracts date, time, title, and location using on‑device NLP&lt;/p&gt;

&lt;p&gt;Adds high‑confidence events directly to your calendar&lt;/p&gt;

&lt;p&gt;For uncertain messages, it reminds you with a custom sound to check the app&lt;/p&gt;

&lt;p&gt;Works entirely offline – your data never leaves your phone&lt;/p&gt;

&lt;p&gt;No more missed classes. No more double‑booking. No more privacy worries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Will Work (Demo Flow)&lt;/strong&gt;&lt;br&gt;
User grants notification access (one‑time setup)&lt;/p&gt;

&lt;p&gt;A WhatsApp message arrives: "Team sync tomorrow at 2 PM"&lt;/p&gt;

&lt;p&gt;Schedule Sensei detects it → extracts "tomorrow at 2 PM" → confidence high → auto‑adds to calendar&lt;/p&gt;

&lt;p&gt;User receives a silent confirmation (or can disable auto‑add in settings)&lt;/p&gt;

&lt;p&gt;If the message is vague: "Maybe the schedule changed?" → low confidence → app plays a custom sound and shows a pending event for user review.&lt;/p&gt;

&lt;p&gt;🔐** Privacy First**&lt;br&gt;
I know what you're thinking: "An app that reads my messages? No thanks."&lt;/p&gt;

&lt;p&gt;Here's the deal:&lt;/p&gt;

&lt;p&gt;All processing happens on your device – nothing is uploaded anywhere.&lt;/p&gt;

&lt;p&gt;The app only sees notification content, not your full chat history.&lt;/p&gt;

&lt;p&gt;You can turn it off anytime, or disable per source (WhatsApp only, Gmail only, etc.).&lt;/p&gt;

&lt;p&gt;The code will be open source – you can audit it yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🙌 Why I'm Posting Here&lt;/strong&gt;&lt;br&gt;
I'm sharing this early because I believe good ideas get better with community feedback.&lt;/p&gt;

&lt;p&gt;I'd love your input on:&lt;/p&gt;

&lt;p&gt;What messaging apps would you want supported? (Telegram? Signal? Instagram?)&lt;/p&gt;

&lt;p&gt;Would you trust an on‑device notification reader? What would make you feel safer?&lt;/p&gt;

&lt;p&gt;What edge cases should I handle? (Multiple dates in one message? Recurring events?)&lt;/p&gt;

&lt;p&gt;Should I build a manual forward fallback (user shares a message to the app)?&lt;/p&gt;

</description>
      <category>java</category>
      <category>android</category>
      <category>nlp</category>
      <category>jetpackcompose</category>
    </item>
    <item>
      <title>LearnCurator - I built a YouTube tutorial search engine that filters videos, ranks by AI‑analysed comments</title>
      <dc:creator>vyomanshi gohel</dc:creator>
      <pubDate>Mon, 18 May 2026 05:20:32 +0000</pubDate>
      <link>https://forem.com/vyomanshi27/learncurator-i-built-a-youtube-tutorial-search-engine-that-filters-videos-ranks-by-ai-analysed-4aab</link>
      <guid>https://forem.com/vyomanshi27/learncurator-i-built-a-youtube-tutorial-search-engine-that-filters-videos-ranks-by-ai-analysed-4aab</guid>
      <description>&lt;h1&gt;
  
  
  LearnCurator – Stop wasting time on bad YouTube tutorials
&lt;/h1&gt;

&lt;p&gt;I love learning from YouTube, but I kept running into the same problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shorts&lt;/strong&gt; mixed into search results (too short to teach anything)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outdated tutorials&lt;/strong&gt; (still showing 4‑year‑old videos even if better ones exist)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No way to tell quality&lt;/strong&gt; until I’ve watched 5 minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;LearnCurator&lt;/strong&gt; – a smart search engine for YouTube tutorials.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 How it works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Initial engagement score The app first computes a base score for each video using: -engagementRatio = likes / views (capped at 1.0) -recencyFactor based on publish age&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In youtubeService.js: -score = engagementRatio * 0.7 + recencyFactor * 0.3 -So videos with high like/view ratio and recent publish date rank higher.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sentiment and final score After getting the top candidate videos, it     enriches them with sentiment analysis and a popularity boost.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Final score formula: finalScore = engagementRatio * 0.3&lt;br&gt;
recencyFactor * 0.1&lt;br&gt;
sentimentScore * 0.3&lt;br&gt;
viewBoost * 0.3&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 AI‑powered comment analysis
&lt;/h2&gt;

&lt;p&gt;I integrated &lt;strong&gt;Gemini 1.5 Flash&lt;/strong&gt; to analyse YouTube comments. The AI counts positive vs negative feedback and adds a sentiment score to each video. This helps surface content that the community actually loved – not just clicked on.&lt;/p&gt;

&lt;h2&gt;
  
  
  👍👎 User feedback
&lt;/h2&gt;

&lt;p&gt;Every video card has 😍 😐 😞 buttons. Users can rate a tutorial and leave optional comments. I built a private admin dashboard where I can see real‑time feedback, average ratings, and trending complaints.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌐 Live demo
&lt;/h2&gt;

&lt;p&gt;👉 [&lt;a href="https://learncurator.netlify.app/" rel="noopener noreferrer"&gt;https://learncurator.netlify.app/&lt;/a&gt;]&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub repo. Link - [&lt;a href="https://github.com/vyomanshi27/LearnCurator" rel="noopener noreferrer"&gt;https://github.com/vyomanshi27/LearnCurator&lt;/a&gt;]
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Star the repo&lt;/strong&gt; if you find it useful – it helps others discover the project ⭐&lt;/p&gt;

&lt;p&gt;Try searching for “JavaScript promises” or “React hooks” – you’ll only get  videos, no shorts, all longer than 5 minutes, ranked by quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: HTML, CSS, vanilla JS (responsive, works on mobile)&lt;/li&gt;
&lt;li&gt;Backend: Netlify Functions (Node.js)&lt;/li&gt;
&lt;li&gt;APIs: YouTube Data API v3, Gemini 1.5 Flash&lt;/li&gt;
&lt;li&gt;Database: Supabase (feedback storage + caching)&lt;/li&gt;
&lt;li&gt;Deployment: Netlify (frontend + functions)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📊 What I learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to handle YouTube API quotas and caching&lt;/li&gt;
&lt;li&gt;Using Gemini for sentiment analysis on real‑world data&lt;/li&gt;
&lt;li&gt;Building a secure admin dashboard without a traditional backend&lt;/li&gt;
&lt;li&gt;Deploying a full‑stack app entirely on Netlify’s free tier&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 What’s next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add transcript relevance scoring (search inside videos)&lt;/li&gt;
&lt;li&gt;Personalised recommendations based on past feedback&lt;/li&gt;
&lt;li&gt;Dark mode (because every app needs it 😄)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’d love your feedback. Try it out and let me know what you think!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're a learner tired of low‑quality tutorials, or a developer curious about AI + YouTube, give LearnCurator a spin.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>api</category>
    </item>
  </channel>
</rss>
