gitextract_258s52nm/ ├── .eslintrc.json ├── .gitignore ├── README.md ├── app/ │ ├── (auth)/ │ │ ├── layout.tsx │ │ ├── sign-in/ │ │ │ └── [[...sign-in]]/ │ │ │ └── page.tsx │ │ └── sign-up/ │ │ └── [[...sign-up]]/ │ │ └── page.tsx │ ├── (course)/ │ │ └── courses/ │ │ └── [courseId]/ │ │ ├── layout.tsx │ │ ├── overview/ │ │ │ └── page.tsx │ │ └── sections/ │ │ └── [sectionId]/ │ │ └── page.tsx │ ├── (home)/ │ │ ├── categories/ │ │ │ └── [categoryId]/ │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ ├── learning/ │ │ │ └── page.tsx │ │ ├── page.tsx │ │ └── search/ │ │ └── page.tsx │ ├── (instructor)/ │ │ ├── instructor/ │ │ │ ├── courses/ │ │ │ │ ├── [courseId]/ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ └── sections/ │ │ │ │ │ ├── [sectionId]/ │ │ │ │ │ │ └── page.tsx │ │ │ │ │ └── page.tsx │ │ │ │ └── page.tsx │ │ │ ├── create-course/ │ │ │ │ └── page.tsx │ │ │ └── performance/ │ │ │ └── page.tsx │ │ └── layout.tsx │ ├── actions/ │ │ ├── getCourses.tsx │ │ └── getPerformance.ts │ ├── api/ │ │ ├── courses/ │ │ │ ├── [courseId]/ │ │ │ │ ├── checkout/ │ │ │ │ │ └── route.ts │ │ │ │ ├── publish/ │ │ │ │ │ └── route.ts │ │ │ │ ├── route.ts │ │ │ │ ├── sections/ │ │ │ │ │ ├── [sectionId]/ │ │ │ │ │ │ ├── progress/ │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ ├── publish/ │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ ├── resources/ │ │ │ │ │ │ │ ├── [resourceId]/ │ │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ ├── route.ts │ │ │ │ │ │ └── unpublish/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ ├── reorder/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ └── unpublish/ │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── uploadthing/ │ │ │ ├── core.ts │ │ │ └── route.ts │ │ └── webhook/ │ │ └── route.ts │ ├── globals.css │ └── layout.tsx ├── components/ │ ├── courses/ │ │ ├── Columns.tsx │ │ ├── CourseCard.tsx │ │ ├── CreateCourseForm.tsx │ │ └── EditCourseForm.tsx │ ├── custom/ │ │ ├── AlertBanner.tsx │ │ ├── Categories.tsx │ │ ├── ComboBox.tsx │ │ ├── DataTable.tsx │ │ ├── Delete.tsx │ │ ├── FileUpload.tsx │ │ ├── PublishButton.tsx │ │ ├── ReadText.tsx │ │ └── RichEditor.tsx │ ├── layout/ │ │ ├── CourseSideBar.tsx │ │ ├── SectionMenu.tsx │ │ ├── Sidebar.tsx │ │ └── Topbar.tsx │ ├── performance/ │ │ ├── Chart.tsx │ │ └── DataCard.tsx │ ├── providers/ │ │ └── ToasterProvider.tsx │ ├── sections/ │ │ ├── CreateSectionForm.tsx │ │ ├── EditSectionForm.tsx │ │ ├── ProgressButton.tsx │ │ ├── ResourceForm.tsx │ │ ├── SectionList.tsx │ │ └── SectionsDetails.tsx │ └── ui/ │ ├── alert-dialog.tsx │ ├── alert.tsx │ ├── badge.tsx │ ├── button.tsx │ ├── card.tsx │ ├── command.tsx │ ├── dialog.tsx │ ├── form.tsx │ ├── input.tsx │ ├── label.tsx │ ├── popover.tsx │ ├── progress.tsx │ ├── sheet.tsx │ ├── switch.tsx │ └── table.tsx ├── components.json ├── lib/ │ ├── db.ts │ ├── formatPrice.ts │ ├── stripe.ts │ ├── uploadthing.ts │ └── utils.ts ├── middleware.ts ├── next.config.mjs ├── package.json ├── postcss.config.mjs ├── prisma/ │ └── schema.prisma ├── scripts/ │ └── seed.ts ├── tailwind.config.ts └── tsconfig.json