<?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: Trideep Chakraborty</title>
    <description>The latest articles on DEV Community by Trideep Chakraborty (@trideep_chakraborty_a).</description>
    <link>https://dev.to/trideep_chakraborty_a</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%2F4158718%2Fe1812e0c-54e7-4fea-9cd4-4b7940b60700.png</url>
      <title>DEV Community: Trideep Chakraborty</title>
      <link>https://dev.to/trideep_chakraborty_a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trideep_chakraborty_a"/>
    <language>en</language>
    <item>
      <title>"Bro, I'm Bored": How I Built an Open-Source AI Free-Time Planner for My Roommate</title>
      <dc:creator>Trideep Chakraborty</dc:creator>
      <pubDate>Sat, 03 Oct 2026 12:25:31 +0000</pubDate>
      <link>https://dev.to/trideep_chakraborty_a/bro-im-bored-how-i-built-an-open-source-ai-free-time-planner-for-my-roommate-36c4</link>
      <guid>https://dev.to/trideep_chakraborty_a/bro-im-bored-how-i-built-an-open-source-ai-free-time-planner-for-my-roommate-36c4</guid>
      <description>&lt;p&gt;&lt;strong&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;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  NOWWHAT? — You Have Free Time. We Have Ideas.
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;An AI-powered personalized free-time planner built on open-source AI to cure decision paralysis and turn unstructured hours into meaningful adventures.&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;I built &lt;strong&gt;NOWWHAT?&lt;/strong&gt; for my friend and roommate, who constantly finds himself stuck in our hostel room on weekends and between lectures. Whenever he has a stretch of free time, he ends up overwhelmed by choice, pacing the room or asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Bro, I'm bored out of my mind. I've got 3 hours and ₹150, but I don't want to study and I'm sick of mindless doom-scrolling on Instagram Reels and YouTube."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every recommendation engine on the web gives either generic lists (&lt;em&gt;"100 things to do when bored"&lt;/em&gt;) or tries to sell you commercial events and movie tickets you can't afford. None of them understand that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You only have ₹100 or ₹200 left in your UPI wallet.&lt;/li&gt;
&lt;li&gt;You're physically stuck in a college hostel or bedroom.&lt;/li&gt;
&lt;li&gt;You have low energy and specifically do &lt;strong&gt;not&lt;/strong&gt; want to study or cook.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Solution: The Core Equation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NowWhat?&lt;/strong&gt; replaces choice overload with a sequential, realistic, timed itinerary built around the user's exact reality:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TIME + MOOD + PEOPLE + LOCATION + BUDGET + ENERGY + PREFERENCES
                             ↓
                      OPEN-SOURCE AI
                             ↓
                PERSONALIZED FREE-TIME PLAN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of a random laundry list, it sequences an intentional flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;4:00 PM&lt;/strong&gt; — ☕ Brew an adrak chai on the hostel induction (20 min, ₹20)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4:20 PM&lt;/strong&gt; — 🚶 30-minute neighborhood photo walk in airplane mode (30 min, Free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4:50 PM&lt;/strong&gt; — 🎧 Curate a 7-song hyper-specific memory playlist (35 min, Free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5:25 PM&lt;/strong&gt; — 🎬 Watch &lt;em&gt;"12th Fail"&lt;/em&gt; or &lt;em&gt;"The Secret Life of Walter Mitty"&lt;/em&gt; (115 min, Streaming)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every activity comes with the &lt;strong&gt;exact duration&lt;/strong&gt;, &lt;strong&gt;cost&lt;/strong&gt;, &lt;strong&gt;why the AI selected it&lt;/strong&gt;, &lt;strong&gt;actionable tips&lt;/strong&gt;, and &lt;strong&gt;movie/show cards&lt;/strong&gt; with streaming platforms when appropriate.&lt;/p&gt;




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

&lt;h2&gt;
  
  
  - **DEMO URL: &lt;a href="https://trideep091.github.io/now-what/" rel="noopener noreferrer"&gt;https://trideep091.github.io/now-what/&lt;/a&gt;
&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%2Ficmjyn8sf8jbycei1jw5.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%2Ficmjyn8sf8jbycei1jw5.png" alt=" " width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Capabilities in Action:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Natural One-Sentence Prompt Input:&lt;/strong&gt;&lt;br&gt;
Users don't even have to fill a form. They can type naturally into the hero bar:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Bro, I'm alone in my hostel, have 4 hours and ₹200. I'm bored but I don't want to study."&lt;/em&gt;&lt;br&gt;
The AI parses the parameters (4 hours, hostel, ₹200 budget, low/medium energy, "no studying" exclusion) and outputs a chronologically budgeted plan.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;9-Step Deep Personalization Wizard:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time:&lt;/strong&gt; 30 min, 1 hr, 2 hrs, 3 hrs, 4+ hrs, or custom&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;People:&lt;/strong&gt; Just me, Partner, Friends, Family, Group&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location:&lt;/strong&gt; At home, Hostel, Campus, Outdoors, City, Cafe, Anywhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mood:&lt;/strong&gt; Bored, Relaxed, Energetic, Curious, Creative, Social, Tired, Adventurous&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Energy:&lt;/strong&gt; Low, Medium, High&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget:&lt;/strong&gt; ₹0 (Free), Under ₹100, ₹100–₹300, ₹300–₹500, ₹500+&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interests:&lt;/strong&gt; Watch, Make, Move, Learn, Play, Create, Connect, Explore, Relax, Improve&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict Exclusions:&lt;/strong&gt; "No studying", "No outdoor activities", "No spending money", "No cooking"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Final Input:&lt;/strong&gt; Open conversational note&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interactive Boredom Meter:&lt;/strong&gt;&lt;br&gt;
Playful one-click triage with 4 levels: 😐 &lt;em&gt;Mild&lt;/em&gt;, 😑 &lt;em&gt;Medium&lt;/em&gt;, 🥱 &lt;em&gt;Very bored&lt;/em&gt;, 🚨 &lt;em&gt;Emergency boredom&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Surprise Me Mode:&lt;/strong&gt;&lt;br&gt;
A streamlined 2-question spontaneous flow when you want the AI to surprise you without thinking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Saved &amp;amp; History Library:&lt;/strong&gt;&lt;br&gt;
Full plans and individual activities can be bookmarked to &lt;code&gt;localStorage&lt;/code&gt; and revisited anytime.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;The full source code is organized into a clean, modular architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Nowwhat/
├── package.json
├── .env.example              # Environment variables template
├── .gitignore                # Protects all secret tokens &amp;amp; dependencies
├── README.md                 # Project documentation &amp;amp; Hackathon submission
├── server/
│   ├── server.js             # Express application &amp;amp; SPA fallback routing
│   ├── routes/
│   │   └── api.js            # REST API (/api/plan, /api/chat-plan, /api/surprise, /api/models)
│   └── ai/
│       ├── aiService.js      # Modular Open-Source AI Orchestrator &amp;amp; Fallback
│       ├── promptTemplates.js# Strict JSON schema prompts &amp;amp; reasoning instructions
│       ├── parser.js         # Semantic natural language intent &amp;amp; parameter parser
│       └── providers/
│           ├── groqProvider.js        # Meta Llama 3.3 70B &amp;amp; 3.1 8B via Groq
│           ├── ollamaProvider.js      # Sovereign Local Ollama GPU inference
│           ├── huggingFaceProvider.js # Open-source Mistral 7B Instruct
│           └── localEngine.js         # Built-in Edge Reasoning Engine (100% offline)
└── public/
    ├── index.html            # Responsive single-page application shell
    ├── css/
    │   ├── style.css         # Dark sophisticated tokens, typography, glassmorphism
    │   └── components.css    # Wizard stepper, timeline cards, boredom meter, drawer
    └── js/
        ├── app.js            # Router, state management, toast notifications
        ├── wizard.js         # 9-Step interactive wizard &amp;amp; progress math
        ├── timeline.js       # Chronological timeline renderer, copy, feedback
        ├── surprise.js       # Fast surprise flow
        ├── boredomMeter.js   # Interactive boredom level selector
        └── openAiShowcase.js # Architecture explorer &amp;amp; model switcher
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Quick Setup &amp;amp; Run:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;Nowwhat

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start the server&lt;/span&gt;
npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;strong&gt;&lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/strong&gt; in your browser.&lt;/p&gt;




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

&lt;p&gt;The stack was chosen for maximum responsiveness, zero framework bloat, and modular AI swappability:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML5 &amp;amp; Vanilla CSS3:&lt;/strong&gt; Crafted with a dark startup aesthetic (&lt;code&gt;#080A0E&lt;/code&gt; background, warm cream typography &lt;code&gt;#F8F6F0&lt;/code&gt;, subtle orange/amber &lt;code&gt;#FF7A30&lt;/code&gt; accents), glassmorphism (&lt;code&gt;backdrop-filter: blur(20px)&lt;/code&gt;), and fluid typography with Google Fonts (&lt;em&gt;Plus Jakarta Sans&lt;/em&gt; &amp;amp; &lt;em&gt;Space Grotesk&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vanilla JavaScript:&lt;/strong&gt; Zero heavy bundle overhead. Fast loading, responsive client-side routing, and interactive DOM manipulation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js &amp;amp; Express:&lt;/strong&gt; Lightweight REST API that serves the frontend, handles CORS, and encapsulates AI credentials so API keys are &lt;strong&gt;never&lt;/strong&gt; exposed to client-side code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open-Source AI Core:&lt;/strong&gt;&lt;br&gt;
The heart of NowWhat? is completely decoupled from any single proprietary vendor. It features a &lt;strong&gt;Modular AI Adapter Layer&lt;/strong&gt; (&lt;code&gt;server/ai/aiService.js&lt;/code&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Meta Llama 3.3 70B &amp;amp; Llama 3.1 8B (Open Weights via Groq):&lt;/strong&gt; Provides high-speed conversational reasoning and natural-language constraint extraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Hosted Ollama (&lt;code&gt;127.0.0.1:11434&lt;/code&gt;):&lt;/strong&gt; Connects to sovereign open models (&lt;code&gt;llama3:8b&lt;/code&gt;, &lt;code&gt;mistral&lt;/code&gt;, &lt;code&gt;deepseek-r1&lt;/code&gt;) running directly on a local GPU for 100% offline, private execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mistral 7B Instruct (Hugging Face):&lt;/strong&gt; Open-source European instruction model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NowWhat? Built-In Edge Reasoning Engine:&lt;/strong&gt; A deterministic, constraint-satisfaction offline engine that runs out of the box with &lt;strong&gt;zero API keys required&lt;/strong&gt;, calculating exact sequential clock times (&lt;code&gt;4:00 PM&lt;/code&gt; → &lt;code&gt;4:35 PM&lt;/code&gt; → &lt;code&gt;5:15 PM&lt;/code&gt;), enforcing strict budget caps in INR (₹), and filtering out exclusions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Open innovation and open-source AI are not just technical details in NowWhat?—they are the &lt;strong&gt;ethical backbone&lt;/strong&gt; of the product:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Radical User Privacy
&lt;/h3&gt;

&lt;p&gt;Planning your free time requires sharing intimate personal data: your emotional fatigue, your financial budget, who you are with, and your physical location (hostel room, campus, home). Sending this life telemetry to closed, proprietary models exposes users to commercial tracking and advertising profiles. Open-weight models can run locally or via dedicated sovereign servers where data is never retained or monetized.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Offline &amp;amp; Sovereign Availability
&lt;/h3&gt;

&lt;p&gt;Students in hostels with spotty WiFi, commuters on trains, or travelers in remote locations often need boredom relief the most. Because NowWhat? supports local open models via Ollama and an offline edge engine, the app works 100% disconnected from the internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Inspectability &amp;amp; Zero Dark Patterns
&lt;/h3&gt;

&lt;p&gt;Closed commercial search algorithms are filled with dark patterns: when you ask for "something to do", they subtly steer you toward ticketed events, sponsor restaurants, and consumer products. Open-source prompts and models are fully inspectable, auditable, and transparent.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Model Swapping &amp;amp; Freedom from Vendor Lock-In
&lt;/h3&gt;

&lt;p&gt;We aren't trapped in any single company's pricing changes, deprecation cycles, or rate limits. We can swap between a lightweight 8B model on a MacBook to a 70B model or a community fine-tune with a single line in &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;




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

&lt;p&gt;This project was built pair-programming with &lt;strong&gt;Antigravity&lt;/strong&gt;, Google DeepMind's advanced agentic coding environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architected the full end-to-end stack: modular Express backend, REST APIs, and responsive vanilla frontend.&lt;/li&gt;
&lt;li&gt;Iterated on the 9-step wizard and conversational prompt parser to extract real-world constraints (like hostel rooms, ₹150 budgets, and "no studying" rules).&lt;/li&gt;
&lt;li&gt;Implemented the chronological time calculation engine and verified that assets load seamlessly whether opened via &lt;code&gt;http://localhost:3000&lt;/code&gt; or double-clicked from Finder (&lt;code&gt;file://&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best Use of Open-Source AI / Open Weights&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Most Practical &amp;amp; Creative Consumer Web App&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built with open-source AI. Because free time should be an adventure, not an algorithm trap.&lt;/em&gt;&lt;/p&gt;

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