A deadline management dashboard that captures due dates from fragmented academic sources — syllabi PDFs, email forwards, and pasted text — and surfaces them in a single trusted view.
- Capture deadlines from PDF syllabi, pasted email content, or free-form text using an AI extraction edge function
- Review & confirm extracted items before they hit your dashboard
- Dashboard view organized by This Week / Next Week with a weekly overview sidebar
- Export your full deadline list as a printable HTML table
- Reminder settings — configure lead times per task type (Project, Homework, Quiz, Survey, Admin) and enable/disable a weekly digest
- React 18 + TypeScript + Vite
- Tailwind CSS + shadcn/ui components
- Framer Motion for panel animations
- Supabase — Postgres database + Edge Functions for AI extraction
- TanStack Query for data fetching
Prerequisites: Node.js 18+ (or Bun), a Supabase project with the schema applied.
# Clone the repo
git clone <YOUR_GIT_URL>
cd DeadlineOS
# Install dependencies
npm install # or: bun install
# Set environment variables
cp .env.example .env
# Fill in VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY
# Apply the database schema
npx supabase db push # or apply supabase/migrations/ manually in the Supabase dashboard
# Start the dev server
npm run dev # or: bun devThe app runs at http://localhost:5173 by default.
| Variable | Description |
|---|---|
VITE_SUPABASE_URL |
Your Supabase project URL |
VITE_SUPABASE_PUBLISHABLE_KEY |
Your Supabase anon/public key |
Set these in a .env file at the project root. Do not commit this file.
The schema lives in supabase/migrations/. Two tables are created:
deadlines— stores all captured deadlines with fields for title, course, due date/time, task type, source type, confidence score, status, and notesreminder_settings— single-row config for per-type lead hours and weekly digest toggle
Row Level Security is enabled with open policies (no auth required for this MVP).
Two edge functions live in supabase/functions/:
extract— receives{ sourceType, rawInput }and returns structured deadline items extracted by an LLMexport-ics— generates an ICS calendar export
Deploy them with:
npx supabase functions deploy extract
npx supabase functions deploy export-icsnpm run dev # Start development server
npm run build # Production build
npm run preview # Preview production build locally
npm run lint # Run ESLint
npm run test # Run tests once
npm run test:watch # Run tests in watch mode