Skip to content

itxsalmannkhann/EdTech-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ EduAI β€” AI-Powered EdTech Platform

Learn anything, powered by AI. A modern, full-stack online courses platform with an AI tutor, smart quizzes, and personalized learning β€” built to deploy entirely on free-tier infrastructure.

Next.js React TypeScript Prisma Tailwind CSS License: MIT PRs Welcome


✨ Features

πŸ€– AI-Powered Learning

  • AI Tutor β€” streaming chat assistant for explanations, study plans, and practice
  • AI Quiz Generator β€” turn any lesson into a practice quiz
  • Smart Recommendations β€” personalized course suggestions
  • Learning Analytics β€” progress tracking and completion prediction
  • Works with free OpenAI-compatible models (OpenRouter, Gemini)

πŸ“š Courses

  • Categories, levels, reviews & ratings
  • Video / article / PDF / quiz / assignment / coding lessons
  • Sections & curriculum builder, progress tracking, certificates
  • Wishlist, cart, and Stripe (test mode) checkout
  • Announcements, discussions, and notes

πŸ‘₯ Roles

  • Student β€” learn, track progress, earn certificates
  • Instructor β€” create & manage courses, view analytics
  • Admin / Super Admin β€” manage users, approve courses, audit logs

πŸ” Authentication & Security

  • NextAuth (JWT) with credentials + Google/GitHub OAuth ready
  • Role-based access control (RBAC) and protected routes
  • Rate limiting, security headers, input validation with Zod

πŸ—οΈ Architecture

Next.js 15 (App Router, RSC) ──> Route Handlers (API) ──> Prisma ──> PostgreSQL (Neon)
        β”‚                              β”‚
        β”‚                              β”œβ”€β”€> Upstash Redis (rate limit / cache)
        β”‚                              β”œβ”€β”€> OpenAI-compatible AI (OpenRouter / Gemini)
        β”‚                              β”œβ”€β”€> Stripe (payments, test mode)
        β”‚                              β”œβ”€β”€> Cloudinary (media)
        β”‚                              └──> Resend (email)
        └──> NextAuth (JWT, RBAC)

See ARCHITECTURE.md for details.


πŸ“ Folder Structure

src/
β”œβ”€β”€ app/                    # App Router pages & route handlers
β”‚   β”œβ”€β”€ (marketing)/        # Public pages (landing, courses, pricing, ...)
β”‚   β”œβ”€β”€ (auth)/             # Login & register
β”‚   β”œβ”€β”€ admin/              # Admin dashboard
β”‚   β”œβ”€β”€ instructor/         # Instructor dashboard
β”‚   β”œβ”€β”€ dashboard/          # Student dashboard
β”‚   └── api/                # Route handlers (auth, register, ai, ...)
β”œβ”€β”€ components/             # UI primitives & feature components
β”‚   β”œβ”€β”€ ui/                 # Button, Card, Input, ... (shadcn-style)
β”‚   β”œβ”€β”€ layout/             # Navbar, Footer, DashboardShell
β”‚   β”œβ”€β”€ auth/ ai/ courses/  # Feature components
β”‚   └── marketing/
β”œβ”€β”€ lib/                    # Core libs (auth, prisma, ai, rbac, env, utils)
β”œβ”€β”€ server/                 # Server-only data access
β”œβ”€β”€ config/                 # Site config
└── generated/              # Prisma client (generated)
prisma/                     # Schema & seed

πŸš€ Installation

Prerequisites: Node.js 20+, npm, and a Neon Postgres database (free).

# 1. Clone
git clone https://github.com/itxsalmannkhann/EdTech-Platform.git
cd EdTech-Platform

# 2. Install
npm install

# 3. Configure environment
cp .env.example .env   # then fill in the values

# 4. Set up the database
npm run db:push        # push schema to your Neon database
npm run db:seed        # load sample courses & demo users

# 5. Run
npm run dev            # http://localhost:3000

Demo accounts (after seeding)

Role Email Password
Admin admin@eduai.com Password123
Instructor instructor@eduai.com Password123
Student student@eduai.com Password123

πŸ§‘β€πŸ’» Development

npm run dev          # start dev server
npm run typecheck    # TypeScript check
npm run lint         # ESLint
npm run format       # Prettier
npm run test         # Vitest unit tests
npm run test:e2e     # Playwright e2e tests
npm run db:studio    # Prisma Studio

☁️ Deployment

Deploy free on Vercel + Neon + Upstash. See DEPLOYMENT.md for the full guide.

  1. Push to GitHub
  2. Import the repo into Vercel
  3. Add environment variables (see ENVIRONMENT.md)
  4. Vercel runs npm run build (which runs prisma generate) automatically

πŸ”‘ Environment Variables

All variables are documented in .env.example and ENVIRONMENT.md. Every required service has a free tier.


🧰 Tech Stack

Layer Technology
Framework Next.js 15 (App Router), React 19, TypeScript
Styling Tailwind CSS v4, shadcn-style UI, Framer Motion
Data Prisma ORM, PostgreSQL (Neon)
Auth NextAuth (JWT, RBAC)
AI OpenAI-compatible SDK (OpenRouter / Gemini free models)
Infra Upstash Redis, Cloudinary, Resend, Stripe (test)
Forms React Hook Form + Zod
State/Query TanStack Query
Testing Vitest, Playwright
Tooling ESLint, Prettier, Husky, lint-staged

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md and our CODE_OF_CONDUCT.md.

πŸ—ΊοΈ Roadmap

See ROADMAP.md for what's planned.

❓ FAQ

See the in-app FAQ or ROADMAP.md.

πŸ“„ License

MIT Β© EduAI

πŸ™ Acknowledgements

Built with Next.js, Prisma, NextAuth, Tailwind CSS, and the open-source community. Course images from Unsplash.

About

Full Fledged EdTech Platform

Resources

License

Code of conduct

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors