Skip to content

Repository files navigation

TimeGraph

A student assignment & deadline tracker — organize your semester, log deadlines by class and category, and watch your workload take shape as a graph.

Built with React + Vite + TypeScript, styled with Tailwind CSS + shadcn/ui, and backed by Supabase (Postgres + Auth).

Live app: (add your deployed URL here)

Features

  • Timelines (semesters) — create, activate, and edit timeframes; the active timeline scopes everything on the dashboard.
  • Deadline tracking — organize deadlines by class/category, set due dates and statuses (not started, in progress, completed), or bulk-add a whole syllabus.
  • Workload graph — a dashboard chart that visualizes how much work lands on each day so you can spot crunch weeks before they arrive.
  • Theming — multiple accent themes plus light/dark mode.
  • Auth — email/password sign-in, password recovery, and in-app account management (change password, delete account).

Getting started

Prerequisites

  • Node.js 18+ (or Bun)
  • A Supabase project (the free tier is plenty)

Setup

  1. Install dependencies:

    npm install
  2. Create your local env file from the template and fill in your Supabase project's URL and publishable (anon) key:

    cp .env.example .env

    See .env.example for where to find these values and why only the publishable key belongs in the client bundle.

  3. Apply the database migrations in supabase/migrations/ to your project. With the Supabase CLI:

    supabase link --project-ref <your-project-ref>
    supabase db push

    Or paste the migration SQL into the Supabase SQL editor.

  4. Run the dev server:

    npm run dev        # http://localhost:8080

Scripts

Command Description
npm run dev Start the dev server
npm run build Production build
npm run preview Preview the production build
npm run lint Run ESLint
npm run typecheck Run the TypeScript compiler

Project structure

src/
  components/     UI components (dashboard, forms, dialogs, shadcn/ui primitives)
  pages/          Route-level screens (Dashboard, Deadlines, Auth, Getting Started)
  hooks/          Data hooks (useSemesters, useAssignments, useAuth, ...)
  integrations/   Supabase client + generated database types
  lib/            Utilities (theme colors, changelog, helpers)
supabase/
  migrations/     SQL migrations — the source of truth for the schema
  config.toml     Local Supabase CLI configuration

Database

The schema lives in supabase/migrations/. It defines three tables:

  • public.semesters — a user's timelines (name, start/end date, active flag)
  • public.assignments — deadlines, FK to semesters (ON DELETE CASCADE)
  • public.profiles — per-user profile row, auto-created on signup

Row Level Security is enabled on every table, so each user can only read and write their own rows. A trigger maintains updated_at, and an auth.users insert trigger provisions the matching profile row.

Contributing

See CONTRIBUTING.md for the branch / PR / preview workflow.

License

MIT

About

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages