DEV Community

Trideep Chakraborty
Trideep Chakraborty

Posted on

"Bro, I'm Bored": How I Built an Open-Source AI Free-Time Planner for My Roommate

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🀝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

NOWWHAT? β€” You Have Free Time. We Have Ideas.

An AI-powered personalized free-time planner built on open-source AI to cure decision paralysis and turn unstructured hours into meaningful adventures.


What I Built

I built NOWWHAT? 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:

"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."

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

  1. You only have β‚Ή100 or β‚Ή200 left in your UPI wallet.
  2. You're physically stuck in a college hostel or bedroom.
  3. You have low energy and specifically do not want to study or cook.

The Solution: The Core Equation

NowWhat? replaces choice overload with a sequential, realistic, timed itinerary built around the user's exact reality:

TIME + MOOD + PEOPLE + LOCATION + BUDGET + ENERGY + PREFERENCES
                             ↓
                      OPEN-SOURCE AI
                             ↓
                PERSONALIZED FREE-TIME PLAN
Enter fullscreen mode Exit fullscreen mode

Instead of a random laundry list, it sequences an intentional flow:

  • 4:00 PM β€” β˜• Brew an adrak chai on the hostel induction (20 min, β‚Ή20)
  • 4:20 PM β€” 🚢 30-minute neighborhood photo walk in airplane mode (30 min, Free)
  • 4:50 PM β€” 🎧 Curate a 7-song hyper-specific memory playlist (35 min, Free)
  • 5:25 PM β€” 🎬 Watch "12th Fail" or "The Secret Life of Walter Mitty" (115 min, Streaming)

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


Demo

- **Local Host URL: https://trideep091.github.io/now-what/

Key Capabilities in Action:

  1. Natural One-Sentence Prompt Input:
    Users don't even have to fill a form. They can type naturally into the hero bar:

    "Bro, I'm alone in my hostel, have 4 hours and β‚Ή200. I'm bored but I don't want to study."
    The AI parses the parameters (4 hours, hostel, β‚Ή200 budget, low/medium energy, "no studying" exclusion) and outputs a chronologically budgeted plan.

  2. 9-Step Deep Personalization Wizard:

    • Time: 30 min, 1 hr, 2 hrs, 3 hrs, 4+ hrs, or custom
    • People: Just me, Partner, Friends, Family, Group
    • Location: At home, Hostel, Campus, Outdoors, City, Cafe, Anywhere
    • Mood: Bored, Relaxed, Energetic, Curious, Creative, Social, Tired, Adventurous
    • Energy: Low, Medium, High
    • Budget: β‚Ή0 (Free), Under β‚Ή100, β‚Ή100–₹300, β‚Ή300–₹500, β‚Ή500+
    • Interests: Watch, Make, Move, Learn, Play, Create, Connect, Explore, Relax, Improve
    • Strict Exclusions: "No studying", "No outdoor activities", "No spending money", "No cooking"
    • Final Input: Open conversational note
  3. Interactive Boredom Meter:
    Playful one-click triage with 4 levels: 😐 Mild, πŸ˜‘ Medium, πŸ₯± Very bored, 🚨 Emergency boredom.

  4. Surprise Me Mode:
    A streamlined 2-question spontaneous flow when you want the AI to surprise you without thinking.

  5. Saved & History Library:
    Full plans and individual activities can be bookmarked to localStorage and revisited anytime.


Code

The full source code is organized into a clean, modular architecture:

Nowwhat/
β”œβ”€β”€ package.json
β”œβ”€β”€ .env.example              # Environment variables template
β”œβ”€β”€ .gitignore                # Protects all secret tokens & dependencies
β”œβ”€β”€ README.md                 # Project documentation & Hackathon submission
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ server.js             # Express application & 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 & Fallback
β”‚       β”œβ”€β”€ promptTemplates.js# Strict JSON schema prompts & reasoning instructions
β”‚       β”œβ”€β”€ parser.js         # Semantic natural language intent & parameter parser
β”‚       └── providers/
β”‚           β”œβ”€β”€ groqProvider.js        # Meta Llama 3.3 70B & 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 & progress math
        β”œβ”€β”€ timeline.js       # Chronological timeline renderer, copy, feedback
        β”œβ”€β”€ surprise.js       # Fast surprise flow
        β”œβ”€β”€ boredomMeter.js   # Interactive boredom level selector
        └── openAiShowcase.js # Architecture explorer & model switcher
Enter fullscreen mode Exit fullscreen mode

Quick Setup & Run:

# Clone the repository
cd Nowwhat

# Install dependencies
npm install

# Start the server
npm start
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:3000 in your browser.


How I Built It

The stack was chosen for maximum responsiveness, zero framework bloat, and modular AI swappability:

  1. Frontend:

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

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

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

Why Does Open Innovation Matter?

Open innovation and open-source AI are not just technical details in NowWhat?β€”they are the ethical backbone of the product:

1. Radical User Privacy

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.

2. Offline & Sovereign Availability

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.

3. Inspectability & Zero Dark Patterns

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.

4. Model Swapping & Freedom from Vendor Lock-In

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 .env.


My Agent Session

This project was built pair-programming with Antigravity, Google DeepMind's advanced agentic coding environment:

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

Prize Categories

  • Hacktoberfest Weekend Challenge: Build for a Friend
  • Best Use of Open-Source AI / Open Weights
  • Most Practical & Creative Consumer Web App

Built with open-source AI. Because free time should be an adventure, not an algorithm trap.

Top comments (0)