Skip to content

VIKAS0804/Resolution-Pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ«€ Pulse β€” AI Life Coach

Your AI coach that reads your biology, knows your goals, and coaches you through every hour of your day.

Resolution Hacks 2026 β€” Harvard, Sever Hall 213 Team: Vikas + Data Scientist + Data Engineer + IS


πŸš€ Setup (Do This First β€” 2 Minutes)

cd pulse
npm install

Create .env.local (already exists β€” just fill in the key):

ANTHROPIC_API_KEY=your_key_here

Get the API key from: https://console.anthropic.com

Then run:

npm run dev

Open: http://localhost:3000


πŸ—‚οΈ Project Structure

pulse/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ page.tsx              # Root β€” redirects to onboarding or dashboard
β”‚   β”œβ”€β”€ layout.tsx            # App shell
β”‚   β”œβ”€β”€ globals.css           # Tailwind + animations
β”‚   β”œβ”€β”€ onboarding/
β”‚   β”‚   └── page.tsx          # Step-by-step North Stars setup
β”‚   β”œβ”€β”€ dashboard/
β”‚   β”‚   └── page.tsx          # Main app β€” brief, tasks, north stars tabs
β”‚   β”œβ”€β”€ tasks/
β”‚   β”‚   └── page.tsx          # Add task page
β”‚   └── api/
β”‚       β”œβ”€β”€ brief/route.ts    # POST β†’ generates morning brief via Claude
β”‚       β”œβ”€β”€ nudge/route.ts    # POST β†’ generates consequence nudge via Claude
β”‚       └── schedule/route.ts # POST β†’ AI estimates task time
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ types.ts              # ALL shared TypeScript types (import from here)
β”‚   └── claude.ts             # ALL Claude API calls (add new ones here)
β”œβ”€β”€ data/
β”‚   └── mockBioData.ts        # Mock Apple Health + Clair hormone data
β”œβ”€β”€ components/               # Add shared UI components here
└── .env.local                # ANTHROPIC_API_KEY goes here

πŸ‘₯ Team β€” Who Builds What

Vikas (CS) β€” DONE βœ…

  • Project architecture + setup
  • Claude API integration (lib/claude.ts)
  • All API routes
  • Core app flow (onboarding β†’ dashboard β†’ tasks)

Data Scientist β€” Your Job 🧠

File to work in: data/mockBioData.ts

  • Make the hormone curve model richer β€” add female profile option
  • Add a function predictEnergyForDay(sleepScore) that adjusts the curve based on sleep quality
  • Add getOptimalTaskWindow(task) that returns the best time to do a given task type
  • Bonus: add a simple linear regression that predicts energy dips

Data Engineer β€” Your Job πŸ”§

Files to work in: data/mockBioData.ts + new files

  • Replace mock sleep data with richer simulated Apple Health export (JSON)
  • Add a parseAppleHealthXML() function for real data (demo only)
  • Add mock Google Calendar events to show on dashboard
  • Create data/mockCalendar.ts with 3-4 events for demo day
  • Wire calendar events into the dashboard schedule view

IS Person β€” Your Job 🎨

Files to work in: app/dashboard/page.tsx + components/

  • Make the dashboard beautiful β€” this is what judges see
  • Add an energy curve chart (use recharts or Chart.js)
  • Build the celebration animation (full screen confetti when task completes)
  • Build the weekly report card component
  • Make it mobile-friendly
  • Create the demo seed data (realistic tasks for the demo)
  • Most important: prep the demo flow and pitch deck

🎯 The Core User Flow (Demo This To Judges)

  1. Onboarding β†’ User enters name + 5 North Stars
  2. Dashboard β†’ Morning Brief generates (shows sleep data + Claude's plan)
  3. Add Task β†’ User adds "Apply to Google internship" β†’ tied to Year north star
  4. Nudge β†’ Click "Nudge Me" β†’ Claude fires: "Vikas, open your MLOps PR right now..."
  5. Complete β†’ Mark task done β†’ Celebration fires
  6. North Stars β†’ Show the 5 goals that drive everything

Demo duration: 90 seconds max.


🧠 How Claude Is Used

All Claude logic is in lib/claude.ts. Four functions:

Function When Called What It Returns
generateMorningBrief() Dashboard load (once/day) Full daily plan with schedule
generateNudge() User clicks "Nudge Me" Personal consequence message
estimateTaskTime() User clicks "AI Estimate" Minutes + reasoning
generateCelebration() Task marked complete Short celebration message

Model: claude-sonnet-4-6 β€” fast and smart, perfect for hackathon


πŸ’Ύ Data Storage

Everything uses localStorage β€” no database needed for demo.

Key What's stored
pulse_north_stars User's name + 5 goals
pulse_tasks All tasks array
pulse_morning_brief Cached brief (regenerates daily)
pulse_brief_date Date of last brief (prevents re-generation)
pulse_nudge_history Past nudges

To reset everything: open browser console β†’ localStorage.clear() β†’ refresh


πŸ—οΈ Adding New Features

New Claude API call:

  1. Add function to lib/claude.ts
  2. Add API route to app/api/[name]/route.ts
  3. Call from component via fetch('/api/[name]', { method: 'POST', ... })

New page:

  1. Create app/[pagename]/page.tsx
  2. Add 'use client' at top if using React state/hooks
  3. Import types from lib/types.ts

New shared component:

  1. Create components/[ComponentName].tsx
  2. Export as default
  3. Import wherever needed

🎀 Pitch (Memorize This)

"Every productivity tool tells you WHAT to do. None of them know HOW you feel. Pulse reads your biology overnight β€” your sleep score, your hormone curve β€” and restructures your day before you wake up. It knows your 5-year goals, assigns the right work to the right energy window, and when you're about to self-sabotage, it calls you out by name with real consequences. We built the morning briefing your body actually needs."

Judging criteria we hit:

  • βœ… Originality β€” proactive bio-aware scheduling doesn't exist
  • βœ… Technical depth β€” Claude API + chronobiology model + multi-source data
  • βœ… UX β€” clean, dark, mobile-ready, emotional demo
  • βœ… Real-world impact β€” every human with goals needs this

Sponsor ties:

  • Eight Sleep β†’ sleep data source
  • Clair Health β†’ hormone data source
  • Duckbill β†’ action layer inspiration
  • Resolution β†’ this IS their vision for AI + health + careers

⚑ Demo Seed Data (IS Person β€” Add This)

For the demo, pre-load these tasks in localStorage so judges see a full app:

// Run this in browser console before demo
localStorage.setItem('pulse_tasks', JSON.stringify([
  {
    id: 'task_demo_1',
    title: 'Submit MLOps PR on ticket-forge',
    description: 'Merge PR #92 with MLflow tracking',
    northStarKey: 'week',
    type: 'deep',
    priority: 'urgent',
    status: 'pending',
    estimatedMinutes: 90,
    aiEstimatedMinutes: 120,
    deadline: '2026-03-28',
    carriedCount: 1,
    createdAt: new Date().toISOString()
  },
  {
    id: 'task_demo_2',
    title: 'Complete 5 LeetCode hard problems',
    description: 'Focus on graph algorithms',
    northStarKey: 'year',
    type: 'deep',
    priority: 'high',
    status: 'pending',
    estimatedMinutes: 120,
    deadline: '2026-03-30',
    carriedCount: 0,
    createdAt: new Date().toISOString()
  },
  {
    id: 'task_demo_3',
    title: 'Email Amazon recruiter for interview feedback',
    northStarKey: 'year',
    type: 'admin',
    priority: 'medium',
    status: 'pending',
    estimatedMinutes: 20,
    deadline: '2026-03-29',
    carriedCount: 2,
    createdAt: new Date().toISOString()
  }
]))

πŸš€ Deploy to Vercel (Before Demo)

npm install -g vercel
vercel

Add ANTHROPIC_API_KEY in Vercel dashboard β†’ Environment Variables.

URL will be: https://pulse-[hash].vercel.app


Built with Next.js 14, Tailwind CSS, Claude claude-sonnet-4-6 Resolution Hacks 2026 β€” Go win that $1,500 πŸ†

About

AI life coach that combines bio-aware planning, goal tracking, and Claude-powered nudges into a daily execution system.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors