academy/routes/web.php

124 lines
5.4 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\StudentPortalController;
use App\Http\Controllers\ContactMsgController;
use App\Http\Controllers\FeedbackController;
use App\Http\Controllers\studentportalnavController;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\coursesController;
use App\Http\Controllers\ApplyController;
use App\Http\Controllers\ResultsController;
use App\Http\Controllers\TimetableController; // 1. TimetableController එක Import කළා
/*
|--------------------------------------------------------------------------
| Public Routes & General Pages
|--------------------------------------------------------------------------
*/
// Home Page
Route::get('/', function () {
return view('welcome');
});
Route::get('/courses', [coursesController::class, 'index'])->name('courses.index');
Route::view('/students', 'students')->name('students');
Route::view('/abouts', 'abouts')->name('abouts');
Route::view('/contact', 'contacts')->name('contact');
// Guest Authentication View Routes
Route::view('/signin', 'signin')->name('signin');
Route::view('/signup', 'signup')->name('signup');
/*
|--------------------------------------------------------------------------
| System Auth & Contact Routes (POST)
|--------------------------------------------------------------------------
*/
Route::post('/signuppage', [AuthController::class, 'register']);
Route::post('/signin', [AuthController::class, 'login']);
Route::post('/custom-logout', [AuthController::class, 'logout']);
Route::post('/contact-submit', [ContactMsgController::class, 'store'])->name('contact.store');
/*
|--------------------------------------------------------------------------
| Password Reset Routes (For Guest Users)
|--------------------------------------------------------------------------
*/
Route::middleware('guest')->group(function () {
Route::get('/password/reset', [ForgotPasswordController::class, 'index'])->name('password.request');
Route::post('/resetEmail', [ForgotPasswordController::class, 'resetEmail'])->name('password.email');
Route::post('/verify-otp', [ForgotPasswordController::class, 'verifyOtpEmail'])->name('password.verify.otp');
Route::post('/update-password', [ForgotPasswordController::class, 'updatePassword'])->name('password.update');
});
/*
|--------------------------------------------------------------------------
| Regular Auth Protected Routes (Laravel Default Auth)
|--------------------------------------------------------------------------
*/
Route::middleware(['auth'])->group(function () {
Route::get('/apply', [ApplyController::class, 'index'])->name('apply.index');
Route::post('/apply', [ApplyController::class, 'store'])->name('apply.store');
Route::put('/profile/update', [AuthController::class, 'update'])->name('profile.update');
Route::get('/profile', [AuthController::class, 'profilview'])->name('profile.view');
});
/*
|--------------------------------------------------------------------------
| STUDENT PORTAL ROUTES (Session-Based Auth)
|--------------------------------------------------------------------------
*/
// Student Login & Logout Action Routes
Route::post('/student-login', [StudentPortalController::class, 'studentlogin'])->name('student.login.submit');
Route::post('/studentlogout', [StudentPortalController::class, 'studentlogout'])->name('student.logout');
// Student Portal Section (Protected by Student Session Check)
Route::middleware(['web'])->group(function () {
Route::get('/student-portal', function () {
if (!session()->has('student_id') && !session()->has('student_log_id')) {
return redirect('/signin')->with('error', 'Please login first!');
}
return view('StudentPortal');
})->name('student.portal');
Route::get('/StudentProfile', [StudentPortalController::class, 'showProfile'])->name('StudentProfile');
Route::get('/results', [ResultsController::class, 'index'])->name('results');
Route::get('/Dashboard', function () {
if (!session()->has('student_id') && !session()->has('student_log_id')) { return redirect('/signin')->with('error', 'Please login first!'); }
return view('StudentPortal');
})->name('Dashboard');
Route::get('/mycourse', function () {
if (!session()->has('student_id') && !session()->has('student_log_id')) { return redirect('/signin')->with('error', 'Please login first!'); }
return view('mycourse');
})->name('mycourse');
// 2. Dynamic Timetable Controller Route එක මෙතැනට යෙදුවා
Route::get('/timetable', [TimetableController::class, 'index'])->name('timetable');
Route::get('/Assignments', function () {
if (!session()->has('student_id') && !session()->has('student_log_id')) { return redirect('/signin')->with('error', 'Please login first!'); }
return view('Assignments');
})->name('Assignments');
Route::get('/Studentguidelines', function () {
if (!session()->has('student_id') && !session()->has('student_log_id')) { return redirect('/signin')->with('error', 'Please login first!'); }
return view('Studentguidelines');
})->name('Studentguidelines');
Route::get('/Feedback&Complain', [FeedbackController::class, 'index'])->name('feedback.index');
Route::post('/Feedback&Complain/store', [FeedbackController::class, 'store'])->name('feedback.store');
});