name('login'); Route::post('/', [LoginController::class, 'login'])->name('login.process'); Route::get('/logout', [LoginController::class, 'logout'])->name('logout'); //Register routes Route::get('register', [RegisterController::class, 'index'])->name('register'); // Form Registrasi Route::post('register', [RegisterController::class, 'store']); // Proses Registrasi //forgot password Route::get('/lupa-password', [ForgotPasswordController::class, 'showForm'])->name('password.request'); Route::post('/lupa-password', [ForgotPasswordController::class, 'verifyEmail'])->name('password.verify'); // Reset password Route::get('/reset-password', [ForgotPasswordController::class, 'showResetForm'])->name('password.reset.form'); Route::post('/reset-password', [ForgotPasswordController::class, 'resetPassword'])->name('password.reset'); // Routes that require authentication Route::middleware(['auth.check'])->group(function () { Route::get('/formalumni', [FormAlumniController::class, 'index'])->name('formalumni'); // Pindahkan dua baris ini ke sini dari dalam group admin.check Route::post('/formalumni/store', [FormAlumniController::class, 'store'])->name('form_alumni.store'); Route::put('/formalumni/{id}', [FormAlumniController::class, 'update'])->name('formalumni.update'); // Admin routes - only accessible by users with admin role Route::middleware(['admin.check'])->group(function () { // Dashboard Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); Route::post('/dashboard/filter', [DashboardController::class, 'filter'])->name('dashboard.filter'); // User Management // Route::get('/datauser', [UserController::class, 'index'])->name('user'); // Route::post('/user/store', [UserController::class, 'store'])->name('user.store'); // Route::put('/user/update/{id}', [UserController::class, 'update'])->name('user.update'); // Route::delete('/user/delete/{id}', [UserController::class, 'destroy'])->name('user.delete'); Route::get('/datauser', [UserController::class, 'index'])->name('user'); Route::post('/store', [UserController::class, 'store'])->name('store'); Route::put('/user/update/{id}', [UserController::class, 'update'])->name('user.update'); //Route::delete('/user/delete/{id}', [UserController::class, 'destroy'])->name('user.delete'); Route::delete('/user/{id}', [UserController::class, 'destroy'])->name('user.destroy'); // Jabatan (Position) Management Route::get('/jabatan', [JabatanController::class, 'index'])->name('jabatan.index'); Route::post('/jabatan/store', [JabatanController::class, 'store'])->name('jabatan.store'); Route::put('/jabatan/update/{id_kategori}', [JabatanController::class, 'update'])->name('jabatan.update'); Route::delete('/jabatan/destroy/{id_kategori}', [JabatanController::class, 'destroy'])->name('jabatan.destroy'); // Kualifikasi Bidang (Field Qualification) Management Route::get('/kualifikasi_bidang', [KualifikasiBidangController::class, 'index'])->name('kualifikasi.index'); Route::post('/kualifikasi_bidang/store', [KualifikasiBidangController::class, 'store'])->name('kualifikasi.store'); Route::put('/kualifikasi_bidang/update/{id_kualifikasi}', [KualifikasiBidangController::class, 'update'])->name('kualifikasi.update'); Route::delete('/kualifikasi_bidang/destroy/{id_kualifikasi}', [KualifikasiBidangController::class, 'destroy'])->name('kualifikasi.destroy'); // Tahun Angkatan (Graduation Year) Management Route::get('/tahun_angkatan', [TahunAngkatanController::class, 'index'])->name('tahun_angkatan.index'); Route::post('/tahun_angkatan/store', [TahunAngkatanController::class, 'store'])->name('tahun_angkatan.store'); Route::put('/tahun_angkatan/update/{id_angkatan}', [TahunAngkatanController::class, 'update'])->name('tahun_angkatan.update'); Route::delete('/tahun_angkatan/destroy/{id_angkatan}', [TahunAngkatanController::class, 'destroy'])->name('tahun_angkatan.destroy'); // Data Alumni Management Route::get('/data_alumni', [DataAlumniController::class, 'index'])->name('data_alumni.index'); Route::post('/data_alumni/store', [DataAlumniController::class, 'store'])->name('data_alumni.store'); Route::put('/data_alumni/update/{id_alumni}', [DataAlumniController::class, 'update'])->name('data_alumni.update'); Route::delete('/data_alumni/destroy/{id_alumni}', [DataAlumniController::class, 'destroy'])->name('data_alumni.destroy'); //download template Route::get('/template-data-alumni', [DataAlumniController::class, 'downloadTemplate'])->name('data_alumni.template'); //perlu di review Route::put('/alumni/{id}/reset-review', [DataAlumniController::class, 'resetReview'])->name('data_alumni.reset_review'); Route::put('/alumni/{id}/tandai-review', [DataAlumniController::class, 'tandaiPerluReview'])->name('data_alumni.tandai_review'); Route::get('/data-alumni/perlu-review', [DataAlumniController::class, 'perluReview'])->name('admin.alumni.perlu-review'); // Excel Import Route::post('/data_alumni/import', [DataAlumniController::class, 'import'])->name('data_alumni.import'); // K-Means Classification Route::get('/proses-klasifikasi', [ProsesKmeansController::class, 'index'])->name('proses_klasifikasi'); Route::post('/proses-klasifikasi', [ProsesKmeansController::class, 'proses'])->name('proses_klasifikasi_proses'); // Results Storage and Display Routes Route::get('/hasil-klasifikasi', [HasilKmeansController::class, 'index'])->name('hasil_klasifikasi.index'); Route::get('/hasil-klasifikasi/{id_angkatan}', [HasilKmeansController::class, 'show'])->name('hasil_klasifikasi.show'); Route::post('/hasil-klasifikasi/simpan', [HasilKmeansController::class, 'store'])->name('simpan_hasil_klasifikasi'); Route::post('/hasil-klasifikasi', [HasilKmeansController::class, 'store'])->name('hasil_klasifikasi.store'); //Eksport Route::get('/export-kmeans', [ExportKmeansController::class, 'index'])->name('export.kmeans.index'); Route::get('/export-kmeans/pdf/{id_angkatan}', [ExportKmeansController::class, 'exportPDF'])->name('export.kmeans.pdf'); Route::get('/export-kmeans/excel/{id_angkatan}', [ExportKmeansController::class, 'exportExcel'])->name('export.kmeans.excel'); }); });