Skip to content

gloooomed/schedulify

Repository files navigation

Schedulify

College schedule management as a service. One platform, any college, your own data.

Report Bug · Request Feature

Stars Forks License Status


What it does

  • 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.

Tech Stack

Category Technology
Frontend React TypeScript
Build Vite
Styling CSS
Auth & DB Supabase
AI Groq

How it works

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

Getting Started

git clone https://github.com/gloooomed/schedulify.git
cd schedulify
npm install

Create 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-code

Run the registry schema in your Supabase SQL editor - file is at supabase/vendor_registry_schema.sql.(Only for the contributors)

npm run dev

Visit localhost:5173 and log in as a user or admin.


Project Structure

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

Deploying

  1. Push to GitHub
  2. Import the repo on Vercel
  3. Add your three env vars in Vercel → Settings → Environment Variables
  4. 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.


Status

Early alpha - v0.0.1. Core flows work, rough edges still being fixed. Not production-ready now.


License

MIT - see LICENSE for more details.

About

A college schedule management system I'm building as a SaaS still in early stages. :)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors