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.
The following diagram outlines the data processing flow from syllabus upload to client-side lesson pacing and database persistence:
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
- Syllabus Parsing & Progress Tracking: Automatically extracts weekly topics from PDFs. Features a progress bar mapping
% of taught topicsin 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 (.docbinary 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.
/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
Ensure Node.js 20+ and NPM are installed on your machine.
# 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 devDatabase schemas are tracked using incremental SQL migrations inside supabase/migrations/.
To apply these to your remote database (e.g. Supabase hosted project):
- Copy the SQL code from 006_preferences_schema.sql.
- Run it in the SQL Editor tab of your Supabase hosted web console.
To reset and sync a local Supabase CLI instance:
supabase db resetBefore pushing code or opening a pull request, run the local verification checks to ensure zero code warnings or compilation regressions:
# 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 buildPlease review the SECURITY.md guidelines prior to reporting vulnerabilities.
Copyright (c) 2026 EduPilot. All Rights Reserved.
This codebase is strictly proprietary. Unauthorized distribution is prohibited. See the LICENSE file for complete terms.