gitextract__3ge5ty2/ ├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .github/ │ └── workflows/ │ └── laravel.yml ├── .gitignore ├── .styleci.yml ├── CHANGELOG.md ├── DOCKER.md ├── Dockerfile ├── Makefile ├── README.md ├── app/ │ ├── Actions/ │ │ ├── CourseWithSections.php │ │ ├── GetEnrolledCousesAction.php │ │ └── GetInstratorCousesAction.php │ ├── Enums/ │ │ ├── Attributes/ │ │ │ └── Description.php │ │ ├── PermissionsEnum.php │ │ ├── StatusesEnum.php │ │ └── Traits/ │ │ ├── AsSelectArray.php │ │ ├── EnumToArray.php │ │ └── GetsAttributes.php │ ├── Events/ │ │ └── ExamCreated.php │ ├── Exceptions/ │ │ ├── Handler.php │ │ └── SocialProviderDeniedException.php │ ├── Helpers/ │ │ └── Functions/ │ │ └── core.php │ ├── Http/ │ │ ├── Controllers/ │ │ │ ├── API/ │ │ │ │ ├── FileController.php │ │ │ │ ├── MyCourseController.php │ │ │ │ ├── SectionableController.php │ │ │ │ └── TakeExamController.php │ │ │ ├── Admin/ │ │ │ │ ├── CourseStudentController.php │ │ │ │ ├── CoursesController.php │ │ │ │ ├── DashboardController.php │ │ │ │ ├── ExamController.php │ │ │ │ ├── LessonController.php │ │ │ │ ├── QuestionController.php │ │ │ │ ├── RolesController.php │ │ │ │ ├── SectionController.php │ │ │ │ ├── ServerInfoController.php │ │ │ │ ├── SubjectController.php │ │ │ │ ├── TopicsController.php │ │ │ │ └── UsersController.php │ │ │ ├── Auth/ │ │ │ │ ├── AuthenticatedSessionController.php │ │ │ │ ├── ConfirmablePasswordController.php │ │ │ │ ├── EmailVerificationNotificationController.php │ │ │ │ ├── EmailVerificationPromptController.php │ │ │ │ ├── NewPasswordController.php │ │ │ │ ├── PasswordController.php │ │ │ │ ├── PasswordResetLinkController.php │ │ │ │ ├── RegisteredUserController.php │ │ │ │ ├── SocialiteController.php │ │ │ │ └── VerifyEmailController.php │ │ │ ├── Controller.php │ │ │ ├── CourseController.php │ │ │ ├── DownloadController.php │ │ │ ├── HomeController.php │ │ │ ├── InstructorController.php │ │ │ ├── LearningController.php │ │ │ ├── ProfileController.php │ │ │ └── UploadController.php │ │ ├── Middleware/ │ │ │ └── HandleInertiaRequests.php │ │ ├── Requests/ │ │ │ ├── Admin/ │ │ │ │ ├── StoreCoursesRequest.php │ │ │ │ ├── UpdateCoursesRequest.php │ │ │ │ └── UserRequest.php │ │ │ ├── Auth/ │ │ │ │ └── LoginRequest.php │ │ │ ├── ExamRequest.php │ │ │ ├── ProfileUpdateRequest.php │ │ │ ├── QuestionRequest.php │ │ │ ├── SettingRequest.php │ │ │ ├── SubjectRequest.php │ │ │ └── TopicRequest.php │ │ └── Resources/ │ │ ├── CourseResource.php │ │ ├── CourseStudentsResource.php │ │ ├── ExamResource.php │ │ ├── FileResource.php │ │ ├── LessonResource.php │ │ ├── QuestionResource.php │ │ ├── ResultResource.php │ │ ├── RoleResource.php │ │ ├── SectionResource.php │ │ ├── SubjectResource.php │ │ ├── TopicResource.php │ │ └── UserResource.php │ ├── Jobs/ │ │ ├── ResizedImage.php │ │ └── UploadToCloud.php │ ├── Models/ │ │ ├── Course.php │ │ ├── Exam.php │ │ ├── File.php │ │ ├── Lesson.php │ │ ├── Question.php │ │ ├── Result.php │ │ ├── Role.php │ │ ├── Section.php │ │ ├── Sectionable.php │ │ ├── Setting.php │ │ ├── SocialiteProvider.php │ │ ├── Subject.php │ │ ├── Topic.php │ │ ├── Traits/ │ │ │ ├── FileStorage.php │ │ │ ├── Fileable.php │ │ │ ├── HashesId.php │ │ │ └── Topicable.php │ │ └── User.php │ ├── Observers/ │ │ └── FileObserver.php │ ├── Pivots/ │ │ └── StudentCasting.php │ ├── Policies/ │ │ ├── CoursePolicy.php │ │ ├── ExamPolicy.php │ │ ├── RolePolicy.php │ │ ├── SubjectPolicy.php │ │ ├── TopicPolicy.php │ │ └── UserPolicy.php │ ├── Providers/ │ │ └── AppServiceProvider.php │ ├── Response/ │ │ ├── AudioVideoResponse.php │ │ ├── DownloadResponse.php │ │ ├── FileBuilder.php │ │ ├── FileContentResponseCreator.php │ │ └── ImageResponse.php │ └── Traits/ │ ├── AppSettingsTrait.php │ └── SocialiteProvidersTrait.php ├── artisan ├── bootstrap/ │ ├── app.php │ ├── cache/ │ │ └── .gitignore │ └── providers.php ├── composer.json ├── config/ │ ├── app.php │ ├── auth.php │ ├── cache.php │ ├── database.php │ ├── filesystems.php │ ├── logging.php │ ├── mail.php │ ├── permission.php │ ├── queue.php │ ├── services.php │ └── session.php ├── database/ │ ├── .gitignore │ ├── factories/ │ │ ├── CourseFactory.php │ │ ├── ExamFactory.php │ │ ├── LessonFactory.php │ │ ├── QuestionFactory.php │ │ ├── SectionFactory.php │ │ ├── SubjectFactory.php │ │ ├── TopicFactory.php │ │ └── UserFactory.php │ ├── migrations/ │ │ ├── 0001_01_01_000000_create_users_table.php │ │ ├── 0001_01_01_000001_create_cache_table.php │ │ ├── 0001_01_01_000002_create_jobs_table.php │ │ ├── 2024_05_07_000001_create_personal_access_tokens_table.php │ │ ├── 2024_05_07_054845_create_files_table.php │ │ ├── 2024_05_07_054954_create_fileables_table.php │ │ ├── 2024_05_07_092254_create_settings_table.php │ │ ├── 2024_05_07_112940_create_permission_tables.php │ │ ├── 2024_05_07_142204_create_sections_table.php │ │ ├── 2024_05_07_145026_create_subjects_table.php │ │ ├── 2024_05_07_152004_create_sectionables_table.php │ │ ├── 2024_05_07_153027_create_exams_table.php │ │ ├── 2024_05_07_153507_create_questions_table.php │ │ ├── 2024_05_07_170835_create_topics_table.php │ │ ├── 2024_05_07_180360_create_topicables_table.php │ │ ├── 2024_05_07_190045_create_results_table.php │ │ ├── 2024_05_07_191956_create_courses_table.php │ │ ├── 2024_05_07_193251_create_lessons_table.php │ │ ├── 2024_05_07_195152_create_subjectables_table.php │ │ ├── 2024_05_07_200921_create_course_students_table.php │ │ ├── 2024_05_07_201001_create_course_teachers_table.php │ │ ├── 2024_05_07_203101_create_lesson_student_table.php │ │ ├── 2024_07_23_104822_store_last_learning.php │ │ ├── 2024_08_13_073632_create_socialite_providers_table.php │ │ └── 2026_04_25_000001_add_icon_and_image_to_subjects_table.php │ └── seeders/ │ ├── CourseSeed.php │ ├── DatabaseSeeder.php │ ├── RoleSeed.php │ ├── SubjectSeed.php │ ├── TopicSeed.php │ └── UserSeed.php ├── docker/ │ ├── nginx/ │ │ └── default.conf │ └── php/ │ └── local.ini ├── docker-compose.yml ├── package.json ├── phpstan.neon ├── phpunit.xml ├── postcss.config.js ├── public/ │ ├── .htaccess │ ├── index.php │ └── robots.txt ├── resources/ │ ├── css/ │ │ └── app.css │ ├── js/ │ │ ├── Components/ │ │ │ ├── ApplicationLogo.vue │ │ │ ├── Breadcrumb.vue │ │ │ ├── Button.vue │ │ │ ├── Card.vue │ │ │ ├── Checkbox.vue │ │ │ ├── CircleSvg.vue │ │ │ ├── Datatable/ │ │ │ │ └── Table.vue │ │ │ ├── Dropdown.vue │ │ │ ├── DropdownLink.vue │ │ │ ├── Form/ │ │ │ │ ├── Checkbox.vue │ │ │ │ ├── HeroiconPicker.vue │ │ │ │ ├── Input.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── Listbox.examplevue │ │ │ │ └── Select.vue │ │ │ ├── Icon.vue │ │ │ ├── Icons/ │ │ │ │ ├── LoadingIcon.vue │ │ │ │ └── index.ts │ │ │ ├── Modal.vue │ │ │ ├── NavLink.vue │ │ │ ├── Pagination.vue │ │ │ ├── ResponsiveNavLink.vue │ │ │ ├── SocialiteLogins.vue │ │ │ └── Tabs.vue │ │ ├── Composables/ │ │ │ ├── analytics.js │ │ │ ├── common.js │ │ │ ├── useAuth.ts │ │ │ ├── useButtonGroup.ts │ │ │ ├── useFormGroup.ts │ │ │ ├── useSidebarState.ts │ │ │ ├── useUI.ts │ │ │ └── utils.ts │ │ ├── Elements/ │ │ │ ├── Course.vue │ │ │ ├── Description.vue │ │ │ ├── Lesson/ │ │ │ │ ├── Question.vue │ │ │ │ ├── Session.vue │ │ │ │ ├── SingleExam.vue │ │ │ │ ├── SingleLesson.vue │ │ │ │ └── SingleResource.vue │ │ │ ├── admin/ │ │ │ │ ├── AdminFooter.vue │ │ │ │ ├── AdminNavBar.vue │ │ │ │ ├── AdminSidebar.vue │ │ │ │ └── GHButtons.vue │ │ │ ├── course/ │ │ │ │ ├── CourseForm.vue │ │ │ │ ├── CourseLayout.vue │ │ │ │ ├── Exam.vue │ │ │ │ ├── Lesson.vue │ │ │ │ ├── LessonForm.vue │ │ │ │ ├── SectionForm.vue │ │ │ │ └── SingleSection.vue │ │ │ ├── exam/ │ │ │ │ ├── CreateExam.vue │ │ │ │ ├── CreateQuestion.vue │ │ │ │ ├── ExamLayout.vue │ │ │ │ └── QuestionTable.vue │ │ │ └── roles/ │ │ │ └── RolesBadges.vue │ │ ├── Layouts/ │ │ │ ├── AdminLayout.vue │ │ │ ├── AuthenticatedLayout.vue │ │ │ ├── GuestLayout.vue │ │ │ └── MainLayout.vue │ │ ├── Pages/ │ │ │ ├── Auth/ │ │ │ │ ├── ConfirmPassword.vue │ │ │ │ ├── ForgotPassword.vue │ │ │ │ ├── Login.vue │ │ │ │ ├── Register.vue │ │ │ │ ├── ResetPassword.vue │ │ │ │ └── VerifyEmail.vue │ │ │ ├── Course/ │ │ │ │ ├── Course.vue │ │ │ │ └── Partials/ │ │ │ │ ├── Instractor.vue │ │ │ │ └── Pricing.vue │ │ │ ├── Home/ │ │ │ │ ├── Home.vue │ │ │ │ └── Slider.vue │ │ │ ├── Instructor/ │ │ │ │ └── Courses.vue │ │ │ ├── Learning/ │ │ │ │ ├── Courses.vue │ │ │ │ └── SingleResource.vue │ │ │ ├── Profile/ │ │ │ │ ├── Edit.vue │ │ │ │ └── Partials/ │ │ │ │ ├── DeleteUserForm.vue │ │ │ │ ├── UpdatePasswordForm.vue │ │ │ │ └── UpdateProfileInformationForm.vue │ │ │ └── admin/ │ │ │ ├── Dashboard.vue │ │ │ ├── ServerInfo.vue │ │ │ ├── courses/ │ │ │ │ ├── CourseStudent.vue │ │ │ │ ├── CreateCourse.vue │ │ │ │ ├── Index.vue │ │ │ │ └── Sections.vue │ │ │ ├── exams/ │ │ │ │ ├── Create.vue │ │ │ │ ├── CreateQuestion.vue │ │ │ │ ├── Edit.vue │ │ │ │ ├── Index.vue │ │ │ │ └── Questions.vue │ │ │ ├── roles/ │ │ │ │ ├── Create.vue │ │ │ │ ├── Edit.vue │ │ │ │ └── Index.vue │ │ │ ├── subjects/ │ │ │ │ ├── Create.vue │ │ │ │ ├── Edit.vue │ │ │ │ └── Index.vue │ │ │ ├── topics/ │ │ │ │ ├── Create.vue │ │ │ │ ├── Edit.vue │ │ │ │ └── Index.vue │ │ │ └── users/ │ │ │ ├── Create.vue │ │ │ ├── Edit.vue │ │ │ └── Index.vue │ │ ├── app.ts │ │ ├── bootstrap.ts │ │ ├── types/ │ │ │ ├── forms.d.ts │ │ │ ├── global.d.ts │ │ │ ├── icons.d.ts │ │ │ ├── index.d.ts │ │ │ ├── resources.d.ts │ │ │ ├── vite-env.d.ts │ │ │ └── vuex.d.ts │ │ └── ui.config/ │ │ ├── buttonGroup.ts │ │ └── index.ts │ └── views/ │ ├── app.blade.php │ ├── errors/ │ │ ├── 401.blade.php │ │ ├── 403.blade.php │ │ ├── 500.blade.php │ │ ├── 503.blade.php │ │ └── layout.blade.php │ └── socialite/ │ ├── callback.blade.php │ └── denied.blade.php ├── routes/ │ ├── api.php │ ├── auth.php │ ├── console.php │ └── web.php ├── storage/ │ ├── app/ │ │ └── .gitignore │ ├── framework/ │ │ ├── .gitignore │ │ ├── cache/ │ │ │ └── .gitignore │ │ ├── sessions/ │ │ │ └── .gitignore │ │ ├── testing/ │ │ │ └── .gitignore │ │ └── views/ │ │ └── .gitignore │ └── logs/ │ └── .gitignore ├── tailwind.config.js ├── tests/ │ ├── Feature/ │ │ ├── Auth/ │ │ │ ├── AuthenticationTest.php │ │ │ ├── EmailVerificationTest.php │ │ │ ├── PasswordConfirmationTest.php │ │ │ ├── PasswordResetTest.php │ │ │ ├── PasswordUpdateTest.php │ │ │ └── RegistrationTest.php │ │ ├── ExampleTest.php │ │ ├── Http/ │ │ │ └── Controllers/ │ │ │ └── Admin/ │ │ │ └── UsersControllerTest.php │ │ └── ProfileTest.php │ ├── TestCase.php │ └── Unit/ │ └── ExampleTest.php ├── tsconfig.json └── vite.config.js