College schedule management as a service. One platform, any college, your own data.
- College ID System - each college gets a short ID like
DIT-K2X9. Students and faculty use it to instantly connect - no Supabase URLs, no setup on their end. - Setup Wizard - college IT admins run through a guided setup (database, schema, AI, master admin) in minutes.
- Role-Based Dashboards - admins manage everything, faculty see their schedule and courses, students see their timetable and enrollments.
- Your Data, Your Database - every college brings their own Supabase project. Schedulify never touches their student data.
- AI Schedule Parsing - powered by Groq to parse uploaded schedule files and detect timetable conflicts.
| Category | Technology |
|---|---|
| Frontend | |
| Build | |
| Styling | |
| Auth & DB | |
| AI |
One deployment serves multiple colleges. Each college connects their own Supabase database - their data stays with them.
Schedulify App ──▶ College Registry
│
┌───────────────┼───────────────┐
▼ ▼ ▼
College A DB College B DB College C DB
git clone https://github.com/gloooomed/schedulify.git
cd schedulify
npm installCreate a .env file:
VITE_VENDOR_SUPABASE_URL=your_supabase_url
VITE_VENDOR_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_VENDOR_ACCESS_CODE=your-access-codeRun the registry schema in your Supabase SQL editor - file is at supabase/vendor_registry_schema.sql.(Only for the contributors)
npm run devVisit localhost:5173 and log in as a user or admin.
schedulify/
├── src/
│ ├── components/
│ │ ├── admin/ # Admin panel components
│ │ │ ├── CoursesManager.tsx # Manage courses
│ │ │ ├── DepartmentsManager.tsx # Manage departments
│ │ │ ├── ClassroomsManager.tsx # Manage classrooms
│ │ │ └── UsersManager.tsx # Add faculty & students
│ │ ├── auth/
│ │ │ └── LoginForm.tsx # Login screen
│ │ ├── layout/
│ │ │ └── DashboardLayout.tsx # Sidebar + nav shell
│ │ └── ui/ # Shared UI primitives
│ ├── hooks/
│ │ └── useAuth.tsx # Auth context + session
│ ├── lib/
│ │ ├── config/
│ │ │ └── store.ts # localStorage config store
│ │ ├── groq/
│ │ │ └── client.ts # Groq AI client
│ │ ├── supabase/
│ │ │ └── client.ts # Dynamic Supabase client
│ │ ├── vendor/
│ │ │ └── registry.ts # College registry (lookup, register)
│ │ └── services/
│ │ └── db-service.ts # DB query helpers
│ ├── pages/
│ │ ├── GatewayPage.tsx # Entry screen (login / setup)
│ │ └── SetupWizard.tsx # College onboarding wizard
│ ├── types/
│ │ └── index.ts # Shared TypeScript types
│ ├── App.tsx
│ ├── main.tsx
│ └── index.css # Design tokens + global styles
├── supabase/
│ ├── migrations/
│ │ └── 001_schema.sql # College DB schema + RLS policies
│ └── vendor_registry_schema.sql # College registry schema
├── .env.example
├── index.html
├── vite.config.ts
└── package.json
- Push to GitHub
- Import the repo on Vercel
- Add your three env vars in Vercel → Settings → Environment Variables
- Deploy
Each college runs the setup wizard, brings their own Supabase project, and gets a College ID. Students visit your-domain.vercel.app?college=THEIR-ID to log in instantly.
Early alpha - v0.0.1. Core flows work, rough edges still being fixed. Not production-ready now.
MIT - see LICENSE for more details.