user(); if ($user->role->name === 'Admin') { return redirect()->route('admin.dashboard'); } elseif ($user->role->name === 'Coordinator') { return redirect()->route('coordinator.dashboard'); } elseif ($user->role->name === 'Faculty') { return redirect()->route('faculty.dashboard'); } else { return abort(403, 'Unauthorized'); } })->middleware(['auth', 'verified'])->name('dashboard'); Route::middleware('auth')->group(function () { Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy'); }); // Activities Attended common routes Route::delete('/activities-attended/{id}', [ActivitiesAttendedController::class, 'destroy'])->name('activitiesAttended.destroy'); // Activities Organised common routes Route::delete('/activities-organised/{id}', [ActivitiesOrganisedController::class, 'destroy'])->name('activitiesOrganised.destroy'); // Iv Organised common routes Route::delete('/iv-organised/{id}', [IvOrganisedController::class, 'destroy'])->name('ivOrganised.destroy'); // Publications common routes Route::delete('/publication/{id}', [PublicationsController::class, 'destroy'])->name('publications.destroy'); // Admin routes Route::middleware(['auth', CheckRole::class . ':Admin'])->group(function () { Route::get('/admin', [AdminController::class, 'index'])->name('admin.dashboard'); // Activities Attended Routes Route::get('/admin/ActivitiesAttendedResponses', [AdminController::class, 'viewActivitiesAttendedResponses'])->name('admin.ActivitiesAttendedResponses'); Route::get('/admin/ActivitiesAttendedResponses/data', [ActivitiesAttendedController::class, 'getActivitiesAttendedResponses'])->name('admin.ActivitiesAttendedResponses.data'); Route::get('/admin/activities-attended/{id}/edit', [ActivitiesAttendedController::class, 'edit'])->name('admin.ActivitiesAttended.edit'); Route::put('/admin/activities-attended/{id}', [ActivitiesAttendedController::class, 'update'])->name('admin.ActivitiesAttended.update'); Route::delete('/admin/activities-attended/{id}', [ActivitiesAttendedController::class, 'destroy'])->name('admin.ActivitiesAttended.destroy'); // Activities Organised Routes Route::get('/admin/ActivitiesOrganisedResponses', [AdminController::class, 'viewActivitiesOrganisedResponses'])->name('admin.ActivitiesOrganisedResponses'); Route::get('/admin/ActivitiesOrganisedResponses/data', [ActivitiesOrganisedController::class, 'getActivitiesOrganisedResponses'])->name('admin.ActivitiesOrganisedResponses.data'); Route::get('/admin/activities-organised/{id}/edit', [ActivitiesOrganisedController::class, 'edit'])->name('admin.ActivitiesOrganised.edit'); Route::put('/admin/activities-organised/{id}', [ActivitiesOrganisedController::class, 'update'])->name('admin.ActivitiesOrganised.update'); Route::delete('/admin/activities-organised/{id}', [ActivitiesOrganisedController::class, 'destroy'])->name('admin.ActivitiesOrganised.destroy'); // IV Organised Routes Route::get('/admin/IvOrganisedResponses', [AdminController::class, 'viewIvOrganisedResponses'])->name('admin.IvOrganisedResponses'); Route::get('/admin/IvOrganisedResponses/data', [IvOrganisedController::class, 'getIvOrganisedResponses'])->name('admin.IvOrganisedResponses.data'); Route::get('/admin/iv-organised/{id}/edit', [IvOrganisedController::class, 'edit'])->name('admin.IvOrganised.edit'); Route::put('/admin/iv-organised/{id}', [IvOrganisedController::class, 'update'])->name('admin.IvOrganised.update'); Route::delete('/admin/iv-organised/{id}', [IvOrganisedController::class, 'destroy'])->name('admin.IvOrganised.destroy'); // Publications Routes Route::get('/admin/PublicationsResponses', [AdminController::class, 'viewPublicationsResponses'])->name('admin.PublicationsResponses'); Route::get('/admin/PublicationsResponses/data', [PublicationsController::class, 'getPublicationsResponses'])->name('admin.PublicationsResponses.data'); Route::get('/admin/publication/{id}/edit', [PublicationsController::class, 'edit'])->name('admin.Publications.edit'); Route::put('/admin/publication/{id}', [PublicationsController::class, 'update'])->name('admin.Publications.update'); Route::delete('/admin/publication/{id}', [PublicationsController::class, 'destroy'])->name('admin.Publications.destroy'); }); // Coordinator routes Route::middleware(['auth', CheckRole::class . ':Coordinator'])->group(function () { Route::get('/coordinator', [CoordinatorController::class, 'index'])->name('coordinator.dashboard'); // Activities Attended Routes Route::get('/coordinator/ActivitiesAttendedResponses', [CoordinatorController::class, 'viewActivitiesAttendedResponses'])->name('coordinator.ActivitiesAttendedResponses'); Route::get('/coordinator/ActivitiesAttendedResponses/data', [ActivitiesAttendedController::class, 'getActivitiesAttendedResponses'])->name('coordinator.ActivitiesAttendedResponses.data'); Route::get('/coordinator/activities-attended/{id}/edit', [ActivitiesAttendedController::class, 'edit'])->name('coordinator.ActivitiesAttended.edit'); Route::put('/coordinator/activities-attended/{id}', [ActivitiesAttendedController::class, 'update'])->name('coordinator.ActivitiesAttended.update'); Route::delete('/coordinator/activities-attended/{id}', [ActivitiesAttendedController::class, 'destroy'])->name('coordinator.ActivitiesAttended.destroy'); // Activities Organised Routes Route::get('/coordinator/ActivitiesOrganisedResponses', [CoordinatorController::class, 'viewActivitiesOrganisedResponses'])->name('coordinator.ActivitiesOrganisedResponses'); Route::get('/coordinator/ActivitiesOrganisedResponses/data', [ActivitiesOrganisedController::class, 'getActivitiesOrganisedResponses'])->name('coordinator.ActivitiesOrganisedResponses.data'); Route::get('/coordinator/activities-organised/{id}/edit', [ActivitiesOrganisedController::class, 'edit'])->name('coordinator.ActivitiesOrganised.edit'); Route::put('/coordinator/activities-organised/{id}', [ActivitiesOrganisedController::class, 'update'])->name('coordinator.ActivitiesOrganised.update'); Route::delete('/coordinator/activities-organised/{id}', [ActivitiesOrganisedController::class, 'destroy'])->name('coordinator.ActivitiesOrganised.destroy'); // Iv Organised Routes Route::get('/coordinator/IvOrganisedResponses', [CoordinatorController::class, 'viewIvOrganisedResponses'])->name('coordinator.IvOrganisedResponses'); Route::get('/coordinator/IvOrganisedResponses/data', [IvOrganisedController::class, 'getIvOrganisedResponses'])->name('coordinator.IvOrganisedResponses.data'); Route::get('/coordinator/iv-organised/{id}/edit', [IvOrganisedController::class, 'edit'])->name('coordinator.IvOrganised.edit'); Route::put('/coordinator/iv-organised/{id}', [IvOrganisedController::class, 'update'])->name('coordinator.IvOrganised.update'); Route::delete('/coordinator/iv-organised/{id}', [IvOrganisedController::class, 'destroy'])->name('coordinator.IvOrganised.destroy'); // Publications Routes Route::get('/coordinator/PublicationsResponses', [CoordinatorController::class, 'viewPublicationsResponses'])->name('coordinator.PublicationsResponses'); Route::get('/coordinator/PublicationsResponses/data', [PublicationsController::class, 'getPublicationsResponses'])->name('coordinator.PublicationsResponses.data'); Route::get('/coordinator/publication/{id}/edit', [PublicationsController::class, 'edit'])->name('coordinator.Publications.edit'); Route::put('/coordinator/publication/{id}', [PublicationsController::class, 'update'])->name('coordinator.Publications.update'); Route::delete('/coordinator/publication/{id}', [PublicationsController::class, 'destroy'])->name('coordinator.Publications.destroy'); }); // Faculty routes Route::middleware(['auth', CheckRole::class . ':Faculty'])->group(function () { Route::get('/faculty', [FacultyController::class, 'index'])->name('faculty.dashboard'); // Activities Attended Routes Route::get('/faculty/ActivitiesAttendedForm', [FacultyController::class, 'ActivitiesAttendedForm'])->name('faculty.ActivitiesAttendedForm'); Route::post('/faculty/ActivitiesAttendedFormResponse', [FacultyController::class, 'ActivitiesAttendedFormResponse'])->name('faculty.ActivitiesAttendedFormResponse'); Route::get('/faculty/ActivitiesAttendedResponses', [FacultyController::class, 'viewActivitiesAttendedResponses'])->name('faculty.ActivitiesAttendedResponses'); Route::get('/faculty/ActivitiesAttendedResponses/data', [ActivitiesAttendedController::class, 'getActivitiesAttendedResponses'])->name('faculty.ActivitiesAttendedResponses.data'); Route::get('/faculty/activities-attended/{id}/edit', [ActivitiesAttendedController::class, 'edit'])->name('faculty.ActivitiesAttended.edit'); Route::put('/faculty/activities-attended/{id}', [ActivitiesAttendedController::class, 'update'])->name('faculty.ActivitiesAttended.update'); // Activities Organised Routes Route::get('/faculty/ActivitiesOrganisedForm', [FacultyController::class, 'ActivitiesOrganisedForm'])->name('faculty.ActivitiesOrganisedForm'); Route::post('/faculty/ActivitiesOrganisedFormResponse', [FacultyController::class, 'ActivitiesOrganisedFormResponse'])->name('faculty.ActivitiesOrganisedFormResponse'); Route::get('/faculty/ActivitiesOrganisedResponses', [FacultyController::class, 'viewActivitiesOrganisedResponses'])->name('faculty.ActivitiesOrganisedResponses'); Route::get('/faculty/ActivitiesOrganisedResponses/data', [ActivitiesOrganisedController::class, 'getActivitiesOrganisedResponses'])->name('faculty.ActivitiesOrganisedResponses.data'); Route::get('/faculty/activities-organised/{id}/edit', [ActivitiesOrganisedController::class, 'edit'])->name('faculty.ActivitiesOrganised.edit'); Route::put('/faculty/activities-organised/{id}', [ActivitiesOrganisedController::class, 'update'])->name('faculty.ActivitiesOrganised.update'); // Iv Organised Routes Route::get('/faculty/IvOrganisedForm', [FacultyController::class, 'IvOrganisedForm'])->name('faculty.IvOrganisedForm'); Route::post('/faculty/IvOrganisedFormResponse', [FacultyController::class, 'IvOrganisedFormResponse'])->name('faculty.IvOrganisedFormResponse'); Route::get('/faculty/IvOrganisedResponses', [FacultyController::class, 'viewIvOrganisedResponses'])->name('faculty.IvOrganisedResponses'); Route::get('/faculty/IvOrganisedResponses/data', [IvOrganisedController::class, 'getIvOrganisedResponses'])->name('faculty.IvOrganisedResponses.data'); Route::get('/faculty/iv-organised/{id}/edit', [IvOrganisedController::class, 'edit'])->name('faculty.IvOrganised.edit'); Route::put('/faculty/iv-organised/{id}', [IvOrganisedController::class, 'update'])->name('faculty.IvOrganised.update'); // Publications Routes Route::get('/faculty/PublicationsForm', [FacultyController::class, 'PublicationsForm'])->name('faculty.PublicationsForm'); Route::post('/faculty/PublicationsFormResponse', [FacultyController::class, 'PublicationsFormResponse'])->name('faculty.PublicationsFormResponse'); Route::get('/faculty/PublicationsResponses', [FacultyController::class, 'viewPublicationsResponses'])->name('faculty.PublicationsResponses'); Route::get('/faculty/PublicationsResponses/data', [PublicationsController::class, 'getPublicationsResponses'])->name('faculty.PublicationsResponses.data'); Route::get('/faculty/publication/{id}/edit', [PublicationsController::class, 'edit'])->name('faculty.Publications.edit'); Route::put('/faculty/publication/{id}', [PublicationsController::class, 'update'])->name('faculty.Publications.update'); }); // API Resources Route::apiResources([ 'roles' => RoleController::class, 'departments' => DepartmentController::class, 'users' => UserController::class, ]); require __DIR__ . '/auth.php';