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).
- 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
| 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 |
- 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)
-
Clone the repo and install dependencies:
git clone https://github.com/mrsummer360/task-scribe-ai-sync.git cd task-scribe-ai-sync npm install -
Copy
.env.exampleto.envand fill in your credentials:cp .env.example .env
-
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
-
Start the dev server:
npm run dev
npm test # run once
npm run test:coverage # with coverage report
npm run test:ui # interactive UIsrc/
├── 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
- 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.
MIT