An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


Next.js
TailwindCSS
Zustand
Supabase
Gemini



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