<?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: Sarvesh</title>
    <description>The latest articles on DEV Community by Sarvesh (@sarveshofficial).</description>
    <link>https://dev.to/sarveshofficial</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%2F3848661%2F8f53a4bb-a2f4-418b-a524-915b9c4d0cba.png</url>
      <title>DEV Community: Sarvesh</title>
      <link>https://dev.to/sarveshofficial</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sarveshofficial"/>
    <language>en</language>
    <item>
      <title>EcoChat — AI Sustainability Advisor for Earth Day 🌿</title>
      <dc:creator>Sarvesh</dc:creator>
      <pubDate>Sun, 19 Apr 2026 06:52:08 +0000</pubDate>
      <link>https://dev.to/sarveshofficial/ecochat-ai-sustainability-advisor-for-earth-day-4n77</link>
      <guid>https://dev.to/sarveshofficial/ecochat-ai-sustainability-advisor-for-earth-day-4n77</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-04-16"&gt;Weekend Challenge: Earth Day Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;EcoChat&lt;/strong&gt; is an AI-powered sustainability chatbot that gives practical, &lt;br&gt;
actionable eco-friendly advice tailored to students and residents of &lt;br&gt;
Coimbatore, Tamil Nadu, India.&lt;/p&gt;

&lt;p&gt;Most sustainability apps are built for Western audiences — tips like &lt;br&gt;
"drive an electric car" don't apply here. EcoChat knows about local &lt;br&gt;
Coimbatore markets, Tamil Nadu government schemes, and campus life at KPRIET.&lt;/p&gt;

&lt;p&gt;🌍 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://ecochat-rho.vercel.app" rel="noopener noreferrer"&gt;https://ecochat-rho.vercel.app&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/sarveshm555/EcoChat" rel="noopener noreferrer"&gt;https://github.com/sarveshm555/EcoChat&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;Try it live at &lt;strong&gt;&lt;a href="https://ecochat-rho.vercel.app" rel="noopener noreferrer"&gt;https://ecochat-rho.vercel.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get a free Gemini API key at &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;aistudio.google.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Paste it in the bar at the top&lt;/li&gt;
&lt;li&gt;Ask "How do I reduce plastic at home?"&lt;/li&gt;
&lt;li&gt;Upload a photo of any trash item or product label 📷&lt;/li&gt;
&lt;li&gt;Click "I'll commit to this!" and watch the counter go up ✅&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/sarveshm555/EcoChat" rel="noopener noreferrer"&gt;https://github.com/sarveshm555/EcoChat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React + Vite — frontend&lt;/li&gt;
&lt;li&gt;Google Gemini 2.5 Flash — AI responses + image analysis&lt;/li&gt;
&lt;li&gt;Vercel — deployment&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  Google Gemini 2.5 Flash — used in 3 ways
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Text chat with hyper-local context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The secret sauce is the system prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You are EcoChat, a sustainability advisor for students in Coimbatore, &lt;br&gt;
Tamil Nadu. When relevant, mention local initiatives, Tamil Nadu &lt;br&gt;
government schemes, and campus-specific suggestions."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This makes every response feel genuinely useful rather than generic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Multimodal image analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users can upload a photo of trash or a product label. Gemini identifies &lt;br&gt;
whether it's recyclable, how to dispose of it properly, and mentions &lt;br&gt;
local Coimbatore recycling options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Dynamic Earth Day tip generator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On every page load, a separate Gemini API call generates a fresh, &lt;br&gt;
surprising eco fact relevant to India — so the app always feels alive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;💬 Multi-turn AI chat with Coimbatore-specific knowledge&lt;/li&gt;
&lt;li&gt;📷 Image recognition for trash and product labels&lt;/li&gt;
&lt;li&gt;✅ Commitment tracker — "I'll commit to this!" button with live counter&lt;/li&gt;
&lt;li&gt;💡 Gemini-generated Earth Day fact on every page load&lt;/li&gt;
&lt;li&gt;📱 Fully mobile responsive&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why hyper-local?
&lt;/h3&gt;

&lt;p&gt;Generic sustainability advice ignores local context. By telling Gemini &lt;br&gt;
about Coimbatore specifically, the app gives tips like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Many Coimbatore markets accept cloth bags"&lt;/li&gt;
&lt;li&gt;"Collect AC condensate water for plants"&lt;/li&gt;
&lt;li&gt;"Use city buses for regular commutes"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes EcoChat genuinely useful for our community.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Best Use of Google Gemini&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used Gemini 2.5 Flash for three distinct features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-turn text chat with a custom hyper-local system prompt&lt;/li&gt;
&lt;li&gt;Multimodal image analysis of trash and product labels&lt;/li&gt;
&lt;li&gt;Dynamic Earth Day tip generation on page load&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;Gemini's multimodal API is surprisingly easy — image analysis took 
less than 20 lines of code&lt;/li&gt;
&lt;li&gt;Hyper-local system prompts dramatically improve response quality&lt;/li&gt;
&lt;li&gt;Small UX details like the commit button transform a passive chatbot 
into an active accountability tool&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>gemini</category>
      <category>sustainability</category>
    </item>
    <item>
      <title>Do Not Press -- an extremely important button that you should not press</title>
      <dc:creator>Sarvesh</dc:creator>
      <pubDate>Sat, 11 Apr 2026 13:17:16 +0000</pubDate>
      <link>https://dev.to/sarveshofficial/do-not-press-an-extremely-important-button-that-you-should-not-press-1hj2</link>
      <guid>https://dev.to/sarveshofficial/do-not-press-an-extremely-important-button-that-you-should-not-press-1hj2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built a button. One button. A big, red, very important button that says &lt;strong&gt;DO NOT PRESS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It does nothing. There is no easter egg. There is no secret. There is no reward. There is only the button, your poor decisions, and a Regret Level meter that fills up every time you make the wrong choice — which is every time you press it.&lt;/p&gt;

&lt;p&gt;Why did I build this? That's the wrong question. The right question is: why did YOU press it?&lt;/p&gt;

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

&lt;p&gt;🔴 &lt;strong&gt;Try it live: &lt;a href="https://sarvesh555.neocities.org/do_not_press_button" rel="noopener noreferrer"&gt;https://sarvesh555.neocities.org/do_not_press_button&lt;/a&gt;&lt;/strong&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.amazonaws.com%2Fuploads%2Farticles%2F2b8kz14vzobobb8ab4s3.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.amazonaws.com%2Fuploads%2Farticles%2F2b8kz14vzobobb8ab4s3.png" alt=" " width="727" height="789"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The entire project is a single HTML file. No framework. No dependencies. No npm install. No build step. No CI/CD pipeline. No cloud infrastructure. Just a button, some JavaScript, and 25 handcrafted messages of escalating disappointment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- The most important part --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"big-btn"&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"pressIt()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;DO NOT&lt;span class="nt"&gt;&amp;lt;br&amp;gt;&lt;/span&gt;PRESS&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;pressIt()&lt;/code&gt; function:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increments a counter&lt;/li&gt;
&lt;li&gt;Displays a new consequence message (there are 25)&lt;/li&gt;
&lt;li&gt;Updates the Regret Level meter&lt;/li&gt;
&lt;li&gt;Judges you via an escalating verdict system&lt;/li&gt;
&lt;li&gt;Changes the page title after 10, 20, and 30 presses&lt;/li&gt;
&lt;li&gt;Files a complaint with HR on your behalf&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;HTML, CSS, and vanilla JavaScript. That's it. The most technologically complex part was deciding how many times someone would press a button they were explicitly told not to press before giving up. The answer, based on extensive research, is: way more than you'd expect.&lt;/p&gt;

&lt;p&gt;The regret meter starts red, turns amber at 70%, and goes fully dark red at 100% -- a subtle UX touch to indicate that you have gone too far, and yet here you are.&lt;/p&gt;

&lt;p&gt;Total build time: less than an hour. Total usefulness: zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Community Favorite&lt;/strong&gt; -- because nothing brings a community together like being told not to do something and then all doing it anyway.&lt;/p&gt;

&lt;p&gt;This button is a mirror. What does it say about you that you pressed it?&lt;/p&gt;

&lt;p&gt;Press it and find out.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>AI Study Planner — Groq AI + Notion MCP</title>
      <dc:creator>Sarvesh</dc:creator>
      <pubDate>Sun, 29 Mar 2026 04:47:45 +0000</pubDate>
      <link>https://dev.to/sarveshofficial/ai-study-planner-groq-ai-notion-mcp-f1h</link>
      <guid>https://dev.to/sarveshofficial/ai-study-planner-groq-ai-notion-mcp-f1h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/notion-2026-03-04"&gt;Notion MCP Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built an &lt;strong&gt;AI Study Planner&lt;/strong&gt; that generates personalized day-by-day study schedules using Groq AI and automatically syncs them to Notion via Notion MCP.&lt;/p&gt;

&lt;p&gt;Students enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📖 Exam name (e.g. JEE Mains, GATE, MBA)&lt;/li&gt;
&lt;li&gt;📅 Number of study days&lt;/li&gt;
&lt;li&gt;⏰ Hours available per day&lt;/li&gt;
&lt;li&gt;🗓 Exam date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI (Groq LLaMA 3.3) generates a smart topic-by-topic study plan and pushes it directly into a Notion database — creating structured entries with Task, Date, Exam Date, Hours, and Subject columns filled automatically.&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/uVJzYMWJ9ew"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Show us the code
&lt;/h2&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/sarveshm555/ai-study-planner" rel="noopener noreferrer"&gt;https://github.com/sarveshm555/ai-study-planner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. User fills the form&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;http://localhost:5000/add-task&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;days&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;hours&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;examDate&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Groq AI generates the study plan&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;aiResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;groq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;llama-3.3-70b-versatile&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Create a &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;days&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-day study plan for &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;. 
    Return ONLY a JSON array with day, topic, description.`&lt;/span&gt;
  &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Notion MCP creates pages automatically&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;notion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;parent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;database_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;DATABASE_ID&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Day &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;day&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;start&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;taskDate&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Exam Date&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;start&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;examDate&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;Hours&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;parseInt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;hours&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;Subject&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;rich_text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;subject&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;Notion MCP is the &lt;strong&gt;core output layer&lt;/strong&gt; of this project:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;✅ Connects to Notion workspace database&lt;/li&gt;
&lt;li&gt;✅ Creates structured pages for each study day&lt;/li&gt;
&lt;li&gt;✅ Fills Task, Date, Exam Date, Hours, Subject columns&lt;/li&gt;
&lt;li&gt;✅ Adds AI-generated descriptions inside each page&lt;/li&gt;
&lt;li&gt;✅ Everything happens automatically — zero manual work!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Groq AI (LLaMA 3.3)&lt;/td&gt;
&lt;td&gt;Generate smart study topics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notion MCP&lt;/td&gt;
&lt;td&gt;Auto-sync plans to Notion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node.js + Express&lt;/td&gt;
&lt;td&gt;Backend server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML/CSS/JS&lt;/td&gt;
&lt;td&gt;Beautiful dark UI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;ul&gt;
&lt;li&gt;How to integrate Notion MCP with AI workflows&lt;/li&gt;
&lt;li&gt;How to structure AI prompts to return clean JSON&lt;/li&gt;
&lt;li&gt;How to build a full-stack AI automation tool&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  👨‍💻 Team Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Solo Submission&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name:&lt;/strong&gt; Sarvesh M&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DEV Username:&lt;/strong&gt; &lt;a class="mentioned-user" href="https://dev.to/sarveshofficial"&gt;@sarveshofficial&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/sarveshm555" rel="noopener noreferrer"&gt;https://github.com/sarveshm555&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built with ❤️ from India 🇮🇳&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
