name file |
size |
edit |
permission |
action |
.editorconfig | 258 KB | August 13 2024 21:03:02 | 0770 |
|
.env | 1340 KB | November 09 2024 13:13:00 | 0770 |
|
.env.example | 1213 KB | August 13 2024 21:03:02 | 0770 |
|
.gitattributes | 186 KB | August 13 2024 21:03:02 | 0770 |
|
.htaccess | 466 KB | August 13 2024 21:03:02 | 0770 |
|
.well-known | - | July 10 2025 23:46:46 | 0750 |
|
11.php | 70548 KB | July 01 2025 20:07:37 | 0644 |
|
Modules | - | November 04 2024 11:42:06 | 0755 |
|
README.md | 80 KB | August 13 2024 21:03:02 | 0770 |
|
app | - | November 04 2024 11:42:06 | 0755 |
|
artisan | 1686 KB | August 13 2024 21:03:02 | 0770 |
|
aws.php | 188721 KB | July 12 2025 06:01:05 | 0644 |
|
bootstrap | - | November 04 2024 11:38:26 | 0777 |
|
composer.json | 2932 KB | September 19 2024 12:33:02 | 0770 |
|
composer.lock | 415525 KB | September 19 2024 12:33:02 | 0770 |
|
config | - | July 02 2025 03:17:17 | 0777 |
|
database | - | November 04 2024 11:42:06 | 0777 |
|
index.php | 13824 KB | July 02 2025 01:57:55 | 0770 |
|
ktq.txt | 1 KB | July 02 2025 01:58:01 | 0644 |
|
lang | - | November 04 2024 11:38:26 | 0777 |
|
main.php | 302 KB | July 05 2025 04:22:24 | 0644 |
|
modules_statuses.json | 775 KB | August 26 2024 12:34:26 | 0770 |
|
package-lock.json | 72682 KB | November 09 2024 12:47:51 | 0770 |
|
package.json | 481 KB | August 13 2024 21:03:02 | 0770 |
|
phpunit.xml | 1084 KB | August 13 2024 21:03:02 | 0770 |
|
postcss.config.js | 93 KB | August 13 2024 21:03:02 | 0770 |
|
public | - | July 12 2025 06:01:05 | 0777 |
|
resources | - | November 04 2024 11:42:07 | 0755 |
|
robots.txt | 986 KB | July 18 2025 17:02:18 | 0644 |
|
routes | - | November 04 2024 11:38:26 | 0777 |
|
server.php | 541 KB | August 13 2024 21:03:04 | 0770 |
|
ss.php | 17569 KB | July 02 2025 03:06:06 | 0644 |
|
storage | - | November 04 2024 11:42:08 | 0755 |
|
tailwind.config.js | 541 KB | August 13 2024 21:03:04 | 0770 |
|
tests | - | November 04 2024 11:42:08 | 0777 |
|
tmp.zip | 3878 KB | July 12 2025 06:01:05 | 0644 |
|
vendor | - | November 04 2024 11:42:12 | 0777 |
|
version.json | 26 KB | October 15 2024 18:29:32 | 0770 |
|
vite-module-loader.js | 1397 KB | August 13 2024 21:03:06 | 0770 |
|
vite.config.js | 310 KB | August 13 2024 21:03:06 | 0770 |
|
'maintenance.mode'], function () {
/**
* ============================================================================
* Global Routes
* ============================================================================
*/
Route::get('set-language', [DashboardController::class, 'setLanguage'])->name('set-language');
Route::get('set-currency', [HomePageController::class, 'setCurrency'])->name('set-currency');
Route::get('/', [HomePageController::class, 'index'])->name('home');
Route::get('countries', [HomePageController::class, 'countries'])->name('countries');
Route::get('states/{country_id}', [HomePageController::class, 'states'])->name('states');
Route::get('cities/{state_id}', [HomePageController::class, 'cities'])->name('cities');
/** become a instructor */
Route::get('become-instructor', [BecomeInstructorController::class, 'index'])->name('become-instructor')->middleware('auth');
Route::post('become-instructor', [BecomeInstructorController::class, 'store'])->name('become-instructor.create')->middleware('auth');
Route::get('courses', [CoursePageController::class, 'index'])->name('courses');
Route::get('fetch-courses', [CoursePageController::class, 'fetchCourses'])->name('fetch-courses');
Route::get('course/{slug}', [CoursePageController::class, 'show'])->name('course.show');
/** cart routes */
Route::get('cart', [CartController::class, 'index'])->name('cart');
Route::post('add-to-cart/{id}', [CartController::class, 'addToCart'])->name('add-to-cart');
Route::get('remove-cart-item/{rowId}', [CartController::class, 'removeCartItem'])->name('remove-cart-item');
Route::post('apply-coupon', [CartController::class, 'applyCoupon'])->name('apply-coupon');
Route::get('remove-coupon', [CartController::class, 'removeCoupon'])->name('remove-coupon');
/** Blog Routes */
Route::get('blog', [BlogController::class, 'index'])->name('blogs');
Route::get('blog/{slug}', [BlogController::class, 'show'])->name('blog.show');
Route::post('blog/submit-comment', [BlogController::class, 'submitComment'])->name('blog.submit-comment');
Route::get('all-instructors', [HomePageController::class, 'allInstructors'])->name('all-instructors');
Route::get('instructor-details/{id}/{slug?}', [HomePageController::class, 'instructorDetails'])->name('instructor-details');
Route::post('quick-connect/{id}', [HomePageController::class, 'quickConnect'])->name('quick-connect');
/** About page routes */
Route::get('about-us', [AboutPageController::class, 'index'])->name('about-us');
/** Contact page routes */
Route::get('contact', [ContactController::class, 'index'])->name('contact.index');
Route::post('contact/send-mail', [ContactController::class, 'sendMail'])->name('contact.send-mail');
/** Custom pages */
Route::get('page/{slug}', [HomePageController::class, 'customPage'])->name('custom-page');
/** other routes */
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['auth:admin'], 'as' => 'admin.'], function () {
\UniSharp\LaravelFilemanager\Lfm::routes();
});
Route::group(['prefix' => 'frontend-filemanager', 'middleware' => ['web']], function () {
\UniSharp\LaravelFilemanager\Lfm::routes();
});
Route::get('change-theme/{name}', [HomePageController::class, 'changeTheme'])->name('change-theme');
/**
* ============================================================================
* Student Dashboard Routes
* ============================================================================
*/
Route::group(['middleware' => ['auth', 'verified'], 'prefix' => 'student', 'as' => 'student.'], function () {
Route::get('dashboard', [StudentDashboardController::class, 'index'])->name('dashboard');
// Profile setting routes
Route::get('setting', [StudentProfileSettingController::class, 'index'])->name('setting.index');
Route::put('setting/profile', [StudentProfileSettingController::class, 'updateProfile'])->name('setting.profile.update');
Route::put('setting/bio', [StudentProfileSettingController::class, 'updateBio'])->name('setting.bio.update');
Route::put('setting/password', [StudentProfileSettingController::class, 'updatePassword'])->name('setting.password.update');
Route::get('setting/experience-modal', [StudentProfileSettingController::class, 'showExperienceModal'])->name('setting.experience-modal');
Route::get('setting/edit-experience-modal/{id}', [StudentProfileSettingController::class, 'editExperienceModal'])->name('setting.edit-experience-modal');
Route::post('setting/experience', [StudentProfileSettingController::class, 'storeExperience'])->name('setting.experience.store');
Route::put('setting/experience/{id}', [StudentProfileSettingController::class, 'updateExperience'])->name('setting.experience.update');
Route::delete('setting/experience/{id}', [StudentProfileSettingController::class, 'destroyExperience'])->name('setting.experience.destroy');
Route::get('setting/add-education-modal', [StudentProfileSettingController::class, 'addEducationModal'])->name('setting.add-education-modal');
Route::post('setting/education', [StudentProfileSettingController::class, 'storeEducation'])->name('setting.education.store');
Route::get('setting/edit-education-modal/{id}', [StudentProfileSettingController::class, 'editEducationModal'])->name('setting.edit-education-modal');
Route::put('setting/education/{id}', [StudentProfileSettingController::class, 'updateEducation'])->name('setting.education.update');
Route::delete('setting/education/{id}', [StudentProfileSettingController::class, 'destroyEducation'])->name('setting.education.destroy');
Route::put('setting/address', [StudentProfileSettingController::class, 'updateAddress'])->name('setting.address.update');
Route::put('setting/socials', [StudentProfileSettingController::class, 'updateSocials'])->name('setting.socials.update');
/** Order Routes */
Route::get('orders', [StudentOrderController::class, 'index'])->name('orders.index');
Route::get('order-details/{id}', [StudentOrderController::class, 'show'])->name('order.show');
Route::get('order/invoice/{id}', [StudentOrderController::class, 'printInvoice'])->name('order.print-invoice');
Route::get('reviews', [StudentReviewController::class, 'index'])->name('reviews.index');
Route::get('reviews/{id}', [StudentReviewController::class, 'show'])->name('reviews.show');
Route::delete('reviews/{id}', [StudentReviewController::class, 'destroy'])->name('reviews.destroy');
Route::get('enrolled-courses', [StudentDashboardController::class, 'enrolledCourses'])->name('enrolled-courses');
Route::get('quiz-attempts', [StudentDashboardController::class, 'quizAttempts'])->name('quiz-attempts');
/** learning routes */
Route::get('learning/{slug}', [LearningController::class, 'index'])->name('learning.index');
Route::post('learning/get-file-info', [LearningController::class, 'getFileInfo'])->name('get-file-info');
Route::post('learning/make-lesson-complete', [LearningController::class, 'makeLessonComplete'])->name('make-lesson-complete');
Route::get('learning/resource-download/{id}', [LearningController::class, 'downloadResource'])->name('download-resource');
Route::get('learning/quiz/{id}', [LearningController::class, 'quizIndex'])->name('quiz.index');
Route::post('learning/quiz/{id}', [LearningController::class, 'quizStore'])->name('quiz.store');
Route::get('learning/quiz-result/{id}/{result_id}', [LearningController::class, 'quizResult'])->name('quiz.result');
Route::get('learning/{slug}/{lesson_id}', [LearningController::class, 'liveSession'])->name('learning.live');
/** qna routes */
Route::post('create-question', [QnaController::class, 'create'])->name('qna.create');
Route::get('fetch-lesson-questions', [QnaController::class, 'fetchLessonQuestions'])->name('fetch-lesson-questions');
Route::post('create-reply', [QnaController::class, 'createReply'])->name('create-reply');
Route::get('fetch-replies', [QnaController::class, 'fetchReply'])->name('fetch-replies');
Route::delete('delete-question/{id}', [QnaController::class, 'destroyQuestion'])->name('destroy-question');
Route::delete('delete-reply/{id}', [QnaController::class, 'destroyReply'])->name('destroy-reply');
/** course review Routes */
Route::post('add-review', [LearningController::class, 'addReview'])->name('add-review');
Route::get('fetch-reviews/{course_id}', [LearningController::class, 'fetchReviews'])->name('fetch-reviews');
/** download certificate route */
Route::get('download-certificate/{id}', [StudentDashboardController::class, 'downloadCertificate'])->name('download-certificate');
});
/**
* ============================================================================
* Instructor Dashboard Routes
* ============================================================================
*/
Route::group(['middleware' => ['auth', 'verified', 'approved.instructor', 'role:instructor'], 'prefix' => 'instructor', 'as' => 'instructor.'], function () {
Route::get('dashboard', [InstructorDashboardController::class, 'index'])->name('dashboard');
// Profile setting routes
Route::get('zoom-setting', [InstructorLiveCredentialController::class, 'index'])->name('zoom-setting.index');
Route::put('zoom-setting', [InstructorLiveCredentialController::class, 'update'])->name('zoom-setting.update');
Route::get('jitsi-setting', [InstructorLiveCredentialController::class, 'jitsi_index'])->name('jitsi-setting.index');
Route::put('jitsi-setting', [InstructorLiveCredentialController::class, 'jitsi_update'])->name('jitsi-setting.update');
Route::get('setting', [InstructorProfileSettingController::class, 'index'])->name('setting.index');
Route::put('setting/profile', [InstructorProfileSettingController::class, 'updateProfile'])->name('setting.profile.update');
Route::put('setting/bio', [InstructorProfileSettingController::class, 'updateBio'])->name('setting.bio.update');
Route::put('setting/password', [InstructorProfileSettingController::class, 'updatePassword'])->name('setting.password.update');
Route::get('setting/experience-modal', [InstructorProfileSettingController::class, 'showExperienceModal'])->name('setting.experience-modal');
Route::get('setting/edit-experience-modal/{id}', [InstructorProfileSettingController::class, 'editExperienceModal'])->name('setting.edit-experience-modal');
Route::post('setting/experience', [InstructorProfileSettingController::class, 'storeExperience'])->name('setting.experience.store');
Route::put('setting/experience/{id}', [InstructorProfileSettingController::class, 'updateExperience'])->name('setting.experience.update');
Route::delete('setting/experience/{id}', [InstructorProfileSettingController::class, 'destroyExperience'])->name('setting.experience.destroy');
Route::get('setting/add-education-modal', [InstructorProfileSettingController::class, 'addEducationModal'])->name('setting.add-education-modal');
Route::post('setting/education', [InstructorProfileSettingController::class, 'storeEducation'])->name('setting.education.store');
Route::get('setting/edit-education-modal/{id}', [InstructorProfileSettingController::class, 'editEducationModal'])->name('setting.edit-education-modal');
Route::put('setting/education/{id}', [InstructorProfileSettingController::class, 'updateEducation'])->name('setting.education.update');
Route::delete('setting/education/{id}', [InstructorProfileSettingController::class, 'destroyEducation'])->name('setting.education.destroy');
Route::put('setting/payout', [InstructorProfileSettingController::class, 'updatePayout'])->name('setting.payout.update');
Route::put('setting/address', [InstructorProfileSettingController::class, 'updateAddress'])->name('setting.address.update');
Route::put('setting/socials', [InstructorProfileSettingController::class, 'updateSocials'])->name('setting.socials.update');
/** Course Routes */
Route::get('courses', [InstructorCourseController::class, 'index'])->name('courses.index');
Route::get('courses/create', [InstructorCourseController::class, 'create'])->name('courses.create');
Route::get('courses/create/{id}/step/{step?}', [InstructorCourseController::class, 'edit'])->name('courses.edit');
Route::get('courses/{id}/edit', [InstructorCourseController::class, 'editView'])->name('courses.edit-view');
Route::get('courses/get-filters/{category_id}', [InstructorCourseController::class, 'getFiltersByCategory'])->name('courses.get-filters');
Route::get('courses/get-instructors', [InstructorCourseController::class, 'getInstructors'])->name('courses.get-instructors');
Route::post('courses/create', [InstructorCourseController::class, 'store'])->name('courses.store');
Route::post('courses/update', [InstructorCourseController::class, 'update'])->name('courses.update');
/** Course content routes */
Route::post('course-chapter/{course_id?}/store', [CourseContentController::class, 'chapterStore'])->name('course-chapter.store');
Route::get('course-chapter/sorting/{course_id}', [CourseContentController::class, 'chapterSorting'])->name('course-chapter.sorting.index');
Route::get('course-chapter/edit/{chapter_id}', [CourseContentController::class, 'chapterEdit'])->name('course-chapter.edit');
Route::put('course-chapter/update/{chapter_id}', [CourseContentController::class, 'chapterUpdate'])->name('course-chapter.update');
Route::delete('course-chapter/delete/{chapter_id}', [CourseContentController::class, 'chapterDestroy'])->name('course-chapter.destroy');
Route::post('course-chapter/sorting/{course_id}', [CourseContentController::class, 'chapterSortingStore'])->name('course-chapter.sorting.store');
Route::get('course-chapter/lesson/create', [CourseContentController::class, 'lessonCreate'])->name('course-chapter.lesson.create');
Route::post('course-chapter/lesson/create', [CourseContentController::class, 'lessonStore'])->name('course-chapter.lesson.store');
Route::get('course-chapter/lesson/edit', [CourseContentController::class, 'lessonEdit'])->name('course-chapter.lesson.edit');
Route::post('course-chapter/lesson/update', [CourseContentController::class, 'lessonUpdate'])->name('course-chapter.lesson.update');
Route::delete('course-chapter/lesson/{chapter_item_id}/destroy', [CourseContentController::class, 'chapterLessonDestroy'])->name('course-chapter.lesson.destroy');
Route::post('course-chapter/lesson/sorting/{chapter_id}', [CourseContentController::class, 'sortLessons'])->name('course-chapter.lesson.sorting');
Route::get('course-chapter/quiz-question/create/{quiz_id}', [CourseContentController::class, 'createQuizQuestion'])->name('course-chapter.quiz-question.create');
Route::post('course-chapter/quiz-question/create/{quiz_id}', [CourseContentController::class, 'storeQuizQuestion'])->name('course-chapter.quiz-question.store');
Route::get('course-chapter/quiz-question/edit/{question_id}', [CourseContentController::class, 'editQuizQuestion'])->name('course-chapter quiz-question.edit');
Route::put('course-chapter/quiz-question/update/{question_id}', [CourseContentController::class, 'updateQuizQuestion'])->name('course-chapter.quiz-question.update');
Route::delete('course-chapter/quiz-question/delete/{question_id}', [CourseContentController::class, 'destroyQuizQuestion'])->name('course-chapter.quiz-question.destroy');
Route::get('course-delete-request/{course_id}', [InstructorCourseController::class, 'showDeleteRequest'])->name('course.delete-request.show');
Route::post('course-delete-request', [InstructorCourseController::class, 'sendDeleteRequest'])->name('course.send-delete-request');
/** payout routes */
Route::get('payout', [InstructorPayoutController::class, 'index'])->name('payout.index');
Route::get('payout/create', [InstructorPayoutController::class, 'create'])->name('payout.create');
Route::post('payout/create', [InstructorPayoutController::class, 'store'])->name('payout.store');
Route::delete('payout/delete/{id}', [InstructorPayoutController::class, 'destroy'])->name('payout.destroy');
/** announcement routes */
Route::resource('announcements', InstructorAnnouncementController::class);
/** my sales routes */
Route::get('my-sells', [InstructorDashboardController::class, 'mySells'])->name('my-sells.index');
/** lessons qna routes */
Route::get('lesson-question', [InstructorLessonQnaController::class, 'index'])->name('lesson-questions.index');
Route::post('lesson-question/{id}', [InstructorLessonQnaController::class, 'createReply'])->name('lesson-question.reply');
Route::delete('lesson-question/destroy/{id}', [InstructorLessonQnaController::class, 'destroyQuestion'])->name('lesson-question.destroy');
Route::delete('lesson-question/reply/destroy/{id}', [InstructorLessonQnaController::class, 'destroyReply'])->name('lesson-reply.destroy');
Route::put('lesson-question/seen-update/{id}', [InstructorLessonQnaController::class, 'markAsReadUnread'])->name('lesson-question.seen-update');
Route::post('cloud/store', [CloudStorageController::class, 'store'])->name('cloud.store');
});
Route::group(['middleware' => ['auth', 'verified']], function () {
/** checkout routes */
Route::get('checkout', [CheckOutController::class, 'index'])->name('checkout.index');
/**payment related route start */
Route::get('payment', [PaymentController::class, 'payment'])->name('payment');
Route::post('pay-via-stripe', [PaymentController::class, 'pay_via_stripe'])->name('pay-via-stripe');
Route::get('pay-via-paypal', [PaymentController::class, 'pay_via_paypal'])->name('pay-via-paypal');
Route::post('pay-via-bank', [PaymentController::class, 'pay_via_bank'])->name('pay-via-bank');
Route::post('pay-via-razorpay', [PaymentController::class, 'pay_via_razorpay'])->name('pay-via-razorpay');
Route::get('pay-via-mollie', [PaymentController::class, 'pay_via_mollie'])->name('pay-via-mollie');
Route::get('pay-via-instamojo', [PaymentController::class, 'pay_via_instamojo'])->name('pay-via-instamojo');
Route::post('pay-via-flutterwave', [PaymentController::class, 'pay_via_flutterwave'])->name('pay-via-flutterwave');
Route::post('pay-via-paystack', [PaymentController::class, 'pay_via_paystack'])->name('pay-via-paystack');
Route::post('pay-via-bank', [PaymentController::class, 'pay_via_bank'])->name('pay-via-bank');
Route::post('pay-via-free-gateway', [PaymentController::class, 'pay_via_free_gateway'])->name('pay-via-free-gateway');
Route::get('/payment-addon-success', [PaymentController::class, 'payment_addon_success'])->name('payment-addon-success');
Route::get('/payment-addon-faild', [PaymentController::class, 'payment_addon_faild'])->name('payment-addon-faild');
Route::get('order-completed', [PaymentController::class, 'order_success'])->name('order-success');
Route::get('order-fail', [PaymentController::class, 'order_fail'])->name('order-fail');
Route::post('tinymce-upload-image', [TinymceImageUploadController::class, 'upload']);
Route::delete('tinymce-delete-image', [TinymceImageUploadController::class, 'destroy']);
});
});
//maintenance mode route
Route::get('/maintenance-mode', function () {
$setting = Illuminate\Support\Facades\Cache::get('setting', null);
if (!$setting?->maintenance_mode) {
return redirect()->route('home');
}
return view('global.maintenance');
})->name('maintenance.mode');
require __DIR__ . '/auth.php';
require __DIR__ . '/admin.php';