Skip to content

Repository files navigation

Discipline AI: Productivity Coach & To-Do List

This is a full-stack, AI-powered To-Do List application built to fulfill the Week 2 and Week 3 project requirements. It features natural language processing for task extraction, a dynamic aesthetics-degradation punishment function, and AI-driven daily/weekly reflections to help you build better habits.

🌍 Live Deployment: https://discipline-ai-gamma.vercel.app/ 🎥 Demo Video: https://youtu.be/MM6Uos6jrgA

🚀 Features

  1. Voice & Text Task Extraction (Gemini API): Use the microphone to speak your tasks (or type them). The app uses the Google Gemini 3.5 Flash model to parse your natural language sentence into a structured, distinct list of tasks.
  2. Punishment Function (Aesthetics Degradation): If you leave tasks uncompleted at the end of the day, the app's premium visual design degrades into a grayscale UI as a punishment. Complete your tasks to restore the color!
  3. Daily Wrap-up (AI Coach): Once all tasks for the day are complete, you are prompted to write a short reflection. Gemini acts as your productivity coach, providing a daily summary and extracting your core strengths.
  4. Weekly Synthesis: Generates a comprehensive weekly review by analyzing your last 7 days of tasks and daily reflections, highlighting patterns and offering a suggestion for the upcoming week.
  5. Secure Authentication & Database: Built on Supabase with robust Row-Level Security (RLS) so your tasks and reflections are completely private.

🛠 Tech Stack

  • Frontend: React (Vite), Vanilla CSS (Glassmorphism design)
  • Backend/Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth (Email/Password)
  • Speech-to-Text: Native Web Speech API
  • AI Processing: Google Gemini 3.5 Flash API

📊 Database Schema & ERD

The database consists of two core tables linked to the Supabase Auth users table.

erDiagram
    users ||--o{ tasks : "creates"
    users ||--o{ reflections : "generates"
    
    users {
        uuid id PK
        string email
    }
    
    tasks {
        uuid id PK
        uuid user_id FK
        text content
        boolean is_completed
        timestamp created_at
    }
    
    reflections {
        uuid id PK
        uuid user_id FK
        text reflection_text
        text ai_summary
        text ai_strengths
        text reflection_type "daily | weekly"
        timestamp created_at
    }
Loading

⚙️ Local Setup Instructions

  1. Clone the repository and install dependencies:
    npm install
  2. Set up environment variables: Create a .env file in the root directory and add your Supabase and Gemini keys:
    VITE_SUPABASE_URL=your_supabase_project_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
    VITE_GEMINI_API_KEY=your_gemini_api_key
  3. Database Setup: Run the SQL commands found in supabase_setup.sql in your Supabase SQL Editor to create the tables and apply Row Level Security.
  4. Start the development server:
    npm run dev

💸 Cost Analysis (Free Tier)

This project was specifically architected to incur $0 in running costs:

  • Hosting: Vercel (Hobby Tier - Free)
  • Database & Auth: Supabase (Free Tier - 500MB database, 50,000 MAU)
  • Voice Transcription: Web Speech API (Native to browser, fully free)
  • AI Agent: Google Gemini API (Free Tier - 15 RPM, 1M TPM). We explicitly target gemini-3.5-flash to remain within the generous free quota limits.

🧪 Testing

You can use the built-in "Force Demo" buttons in the UI to manually trigger the "End of Day" aesthetics degradation without having to wait 24 hours.

About

AI-powered productivity coach and to-do app: voice/text task extraction, AI daily & weekly reflections, and a "punishment" mode that fades the UI to grayscale until tasks are done. Built with React, Supabase, and the Google Gemini API — runs entirely on free tiers.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages