https://github.com/jezreal-dev/edupilot
EduPilot: The intelligent copilot for modern teachers. AI-powered curriculum analysis, lesson planning, and timetable generation built on Next.js 16.
https://github.com/jezreal-dev/edupilot
edtech gemini-ai nextjs react supabase tailwindcss typescript
Last synced: about 19 hours ago
JSON representation
EduPilot: The intelligent copilot for modern teachers. AI-powered curriculum analysis, lesson planning, and timetable generation built on Next.js 16.
- Host: GitHub
- URL: https://github.com/jezreal-dev/edupilot
- Owner: jezreal-dev
- License: other
- Created: 2026-06-13T10:40:12.000Z (6 days ago)
- Default Branch: main
- Last Pushed: 2026-06-14T15:05:31.000Z (5 days ago)
- Last Synced: 2026-06-14T15:13:21.538Z (5 days ago)
- Topics: edtech, gemini-ai, nextjs, react, supabase, tailwindcss, typescript
- Language: TypeScript
- Homepage: https://edupilot.vercel.app
- Size: 153 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
🎓 EduPilot
AI-Native Curriculum Ingestion, Pacing, & Alignment Engine for Modern Classrooms
An intelligent web application that processes unstructured syllabi PDFs and transforms them into active teaching schedules, classroom pacing guides, and standardized curriculum gap analyses.
---
## 🏗️ System Architecture
The following diagram outlines the data processing flow from syllabus upload to client-side lesson pacing and database persistence:
```mermaid
graph TD
A[Syllabus Upload: PDF/Word] -->|Upload| B(Dashboard Controller)
B -->|Parse byte-stream| C[Raw text extractor]
C -->|Extract topics| D[Gemini 2.5 Flash API]
D -->|Format markdown plans| E[(Supabase PostgreSQL)]
E -->|Optimistic UI check| F[Curriculum Progress Tracker]
E -->|Schedule events| G[Timetable Calendar]
E -->|Load metadata| H[Teacher Preferences Settings]
F -->|Trigger segment countdown| I[Classroom Lesson Pacing Timer]
G -->|Display hours| I
H -->|Enforce standard compliance| D
```
---
## ⚡ Key Features
* **Syllabus Parsing & Progress Tracking:** Automatically extracts weekly topics from PDFs. Features a progress bar mapping `% of taught topics` in real-time, syncing checks with Supabase.
* **Classroom Lesson Pacing Clock:** A 60-minute countdown widget highlighting active classroom segments (Hook, Main Activity, Formative Assessment, Conclusion).
* **Markdown Lesson Editor & Exporters:** Enables inline editing of lesson plans. Exports instantly to **PDF** (print styles), **Markdown** (`.md`), and **Word** (`.doc` binary headers).
* **Curriculum Gap Detector:** Compares teacher curricula against benchmark standards (NERDC, Cambridge IGCSE, US NGSS). Identifies missing topics and activity gaps, with an auto-align button.
* **Zustand-Coordinated Layout:** Unifies sidebar navigation, mobile hamburger drawer, global chatbot slide-out, settings modal, and feedback logs under a single state.
---
## 📁 Repository Structure Map
```text
/edupilot
├── .github/workflows/ # CI/CD GitHub Actions build workflows
├── public/ # Static asset folders
├── src/
│ ├── app/
│ │ ├── (auth)/ # Login & Signup authentication routes
│ │ ├── (dashboard)/ # Core views: /dashboard, /calendar, /vault, /curricula/compare
│ │ ├── (admin)/ # Admin metric feeds and role configurations
│ │ └── api/ # Scoped Gemini & feedback endpoints
│ ├── components/
│ │ ├── layout/ # Navigation components, SettingsModal, Chatbot, Feedback
│ │ ├── curriculum/ # Progress tracking & Gap analyzer dashboards
│ │ ├── lesson-plan/ # Classroom pacing timers & lesson editors
│ │ └── ui/ # Reusable Shadcn elements
│ ├── lib/
│ │ └── supabase/ # Browser, Server, and Middleware DB client initializers
│ └── store/
│ └── useAppStore.ts # Zustand global UI & Pacing Timer state store
└── supabase/
└── migrations/ # Sequential database schema migration SQL files
```
---
## 🚀 Setup & Local Installation
### Prerequisites
Ensure Node.js 20+ and NPM are installed on your machine.
### Installation
```bash
# 1. Clone the repository
git clone https://github.com/jezreal-dev/edupilot.git
cd edupilot
# 2. Install NPM dependencies
npm install
# 3. Create .env.local file in root directory and add credentials:
# NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
# NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
# GEMINI_API_KEY=your_google_ai_key
# 4. Start the development server
npm run dev
```
---
## 🗄️ Database Migrations Setup
Database schemas are tracked using incremental SQL migrations inside `supabase/migrations/`. The project utilizes **Class Table Inheritance (CTI)** to segregate user roles (base `profiles` table + sub-tables: `teachers_details`, `admins_details`, `students_details`, and `users_details`).
To apply these to your remote database (e.g. Supabase hosted project):
1. Copy the SQL code from each migration file sequentially (from `002` to `010_cleanup_unused_fields.sql`).
2. Run them in the **SQL Editor** tab of your Supabase hosted web console.
To reset and sync a local Supabase CLI instance:
```bash
supabase db reset
```
---
## 🛠️ Developer DevOps Verification
Before pushing code or opening a pull request, run the local verification checks to ensure zero code warnings or compilation regressions:
```bash
# 1. Audit code style and resolve unused parameters
npm run lint
# 2. Validate strict TypeScript type bindings
npx tsc --noEmit
# 3. Compile static routes and optimize production builds
npm run build
```
---
## 🛡️ Security Policy
Please review the [SECURITY.md](SECURITY.md) guidelines prior to reporting vulnerabilities.
## 📄 License
**Copyright (c) 2026 EduPilot. All Rights Reserved.**
This codebase is strictly proprietary. Unauthorized distribution is prohibited. See the [LICENSE](LICENSE) file for complete terms.