Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskScribe AI

A task manager that combines recurring-task scheduling, Google Calendar sync, and an AI assistant that helps plan and summarize your day.

Built with React, TypeScript, and Supabase (Postgres, Edge Functions, cron).

Features

  • Task management — create, edit, tag, and organize tasks with a dashboard, list, and card views
  • Repeatable tasks — recurring tasks reset automatically on their due date, timezone-aware (stored in UTC, converted per user's IANA timezone) so resets land correctly regardless of where the user is
  • Google Calendar integration — OAuth-based sync between tasks and calendar events
  • AI assistant — natural-language task planning and daily/session summarization, backed by OpenAI via Supabase Edge Functions
  • Notifications — in-app notification center for task and reminder events
  • Session timer — built-in timer for focused work sessions

Tech stack

Layer Tools
Frontend React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui (Radix primitives)
State/data TanStack Query, React Hook Form, Zod
Backend Supabase (Postgres, Row Level Security, Edge Functions, pg_cron)
AI OpenAI API (task planning, summarization) via Edge Functions
Auth Supabase Auth + Google OAuth
Testing Vitest, Testing Library, v8 coverage

Getting started

Prerequisites

  • Node.js 18+
  • A Supabase project
  • A Google Cloud project with Calendar API OAuth credentials (for calendar sync)
  • An OpenAI API key (for the AI assistant features)

Setup

  1. Clone the repo and install dependencies:

    git clone https://github.com/mrsummer360/task-scribe-ai-sync.git
    cd task-scribe-ai-sync
    npm install
  2. Copy .env.example to .env and fill in your credentials:

    cp .env.example .env
  3. Apply the database schema. Migrations live in supabase/migrations/ and run through the Supabase CLI:

    npx supabase link --project-ref your-project-id
    npx supabase db push
  4. Start the dev server:

    npm run dev

Running tests

npm test              # run once
npm run test:coverage # with coverage report
npm run test:ui       # interactive UI

Project structure

src/
├── components/       # UI components (task views, AI assistant, calendar settings, etc.)
├── contexts/         # React context providers
├── hooks/            # custom hooks
├── integrations/      supabase/   # Supabase client + generated types
├── lib/              # shared utilities
├── middleware/        # request/response middleware
└── pages/             # route-level pages (Auth, Dashboard, Google OAuth callback)

supabase/
├── functions/         # Edge Functions (google-calendar, task-planner, summarizer, personal-assistant, reset-repeatable-tasks)
└── migrations/         # schema migrations

Notes

  • Repeatable-task resets run via a Postgres cron job (reset-repeatable-tasks) every 5 minutes, checking due dates in each user's own timezone rather than a single server timezone.
  • Row Level Security is enabled on user data tables, so each user can only read/write their own tasks and settings.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages