Project Structure

src/app — App Router pages and API routes (e.g., courses, admin, checkout, auth).

src/components — Reusable UI components (courses, index sections, common widgets).

src/lib — Helpers for Prisma, auth, and utilities.

prisma — Prisma schema and migrations.

public — Static assets (images, icons, JSON menus).

next.config.ts — Next.js configuration (images, Sass options).

middleware.ts — Role protection for admin routes.

Key routes (examples):

Public pages: /, /courses, /course/[slug], /blog, /contact-us, etc.

Auth: /login, /register, /forgot-password (if enabled).

Dashboard: /dashboard, /dashboard/enrollments.

Admin: /admin, /admin/categories, /admin/subcategories, /admin/courses.

Instructor: /instructor/courses, /instructor/courses/new, /instructor/courses/[id]/edit, assets/lessons subpages.