Skip to content

keshav22/SmartTaskScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartTaskScheduler 🚀

Welcome to SmartTaskScheduler, the intelligent tool designed to turn your "to-do dump" into an actionable, focused plan.

🌟 Introduction

SmartTaskScheduler is a productivity tool where you can dump all your todos and actually get them done.

  • Focus Mode: Features a "Start" button with configurable timers for each task, allowing you to engage in deep work without distractions.
  • Intelligent Rescheduling: If you don't complete a task, you don't need to manually move it. Our tool automatically reschedules pending items based on priority, deadlines, and your available time slots.

🛠️ Setup & Installation

To run this application, you need to start the frontend and backend services separately.

🐍 Backend (FastAPI)

The backend is managed using uv for fast, reliable dependency management.

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies: This command will create a virtual environment and install all required packages from your pyproject.toml:

    uv sync
  3. Run the below command and copy the template .env.example to .env.development

    # Linux / macOS (bash/zsh)
    export APP_ENV=development
    
    # Windows CMD
    set APP_ENV=development
    
    # Windows PowerShell
    $env:APP_ENV="development"
  4. Start the FastAPI server: the below command with *localhost* is important for login to function correctly

    uv run uvicorn main:app --reload --host localhost

    The API will be live at http://localhost:8000


⚛️ Frontend (Next.js)

The frontend is a Next.js application managed by pnpm.

  1. Navigate to the frontend directory:

    cd frontend
  2. Install packages:

    pnpm install
  3. Copy the template .env.example to .env.local or .env

  4. Start the development server:

    pnpm dev

    the app will be live at http://localhost:3000


🧪 Development Commands

Task Backend (uv) Frontend (pnpm)
Run Tests uv run pytest pnpm test
Linting uv run ruff check . pnpm lint
Format uv run ruff format . pnpm build (checks types)

🛰️ CI/CD

This project uses GitHub Actions. Any push to the main branch or a Pull Request will trigger:

  • Frontend linting and testing via pnpm.
  • Backend linting (Ruff) and testing (Pytest) via uv.

⚙️ Running the Task Scheduler

The application includes an intelligent background scheduler that runs automatically at midnight to organize the next day's tasks.

To manually trigger the optimization logic (useful for testing or demos) without waiting for midnight, run the following command from the backend directory:

uv run python test.py

This scans all users in the database, analyzes their "Floating Tasks" (tasks without a start time), checks for the constraints and fits tasks into the user's daily_free_time window. Then it updates Supabase tasks table with newly calculated start_time values.

About

SmartTaskScheduler, the intelligent tool designed to turn your "to-do dump" into an actionable, focused plan.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors