name('landing-page'); // ======================================================= // LOGIN PAGES (VIEW ONLY) // ======================================================= // LOGIN ADMIN Route::get('/admin/login', function () { return view('auth.login-admin'); })->name('admin.login'); // LOGIN GURU Route::get('/guru/login', [GuruLoginController::class, 'showLoginForm']) ->name('guru.login'); // LOGIN SISWA Route::get('/siswa/login', [SiswaLoginController::class, 'showLoginForm']) ->name('siswa.login'); // ======================================================= // PROSES LOGIN (POST) // ======================================================= // ADMIN LOGIN PROCESS Route::post('/admin/login', [LoginController::class, 'loginAdmin']) ->name('admin.login.submit'); // GURU LOGIN PROCESS Route::post('/guru/login', [GuruLoginController::class, 'login']) ->name('guru.login.submit'); // SISWA LOGIN PROCESS Route::post('/siswa/login', [SiswaLoginController::class, 'login']) ->name('siswa.login.submit'); // ======================================================= // ADMIN AREA (HARUS LOGIN ADMIN) // ======================================================= Route::middleware(['auth:admin'])->prefix('admin')->name('admin.')->group(function () { Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard'); Route::get('/notif', function () { return view('admin.notif'); })->name('notif'); Route::get('/profil', function () { return view('admin.profil'); })->name('profil'); // CRUD AREA Route::resource('guru', AdminGuruController::class); Route::resource('siswa', AdminSiswaController::class); Route::resource('kelas', AdminKelasController::class); Route::resource('mapel', AdminMapelController::class); Route::resource('leaderboard', AdminLeaderboardController::class) ->only(['index']); Route::resource('challenge', AdminChallengeController::class); // LOGOUT ADMIN Route::post('/logout', [LoginController::class, 'logout']) ->name('logout'); }); // ======================================================= // GURU AREA (HARUS LOGIN GURU) // ======================================================= Route::middleware(['auth:guru'])->prefix('guru')->name('guru.')->group(function () { Route::get('/dashboard', [GuruDashboardController::class, 'index'])->name('dashboard'); // Daftar Guru (Read Only) Route::get('/daftar-guru', [GuruGuruController::class, 'index'])->name('guru.index'); // Daftar Kelas (Read Only) Route::get('/daftar-kelas', [GuruKelasController::class, 'index'])->name('kelas.index'); // Daftar Siswa (Read Only) Route::get('/daftar-siswa', [GuruSiswaController::class, 'index'])->name('siswa.index'); Route::get('/mapel', [GuruMapelController::class, 'index']) ->name('mapel.index'); Route::get('/leaderboard', [GuruLeaderboardController::class, 'index']) ->name('leaderboard.index'); Route::get('/materi/{id_mapel}/create', function ($id_mapel) { return "Form Upload Materi untuk Mapel: " . $id_mapel; })->name('materi.create'); Route::get('/tugas/{id_mapel}/create', function ($id_mapel) { return "Form Buat Tugas untuk Mapel: " . $id_mapel; })->name('tugas.create'); // Profil (Edit) Route::get('/profil', [GuruProfilController::class, 'show'])->name('profil.show'); Route::put('/profil', [GuruProfilController::class, 'update'])->name('profil.update'); // LOGOUT GURU Route::post('/logout', [GuruLoginController::class, 'logout'])->name('logout'); }); // ======================================================= // SISWA AREA // ======================================================= Route::middleware(['auth:siswa'])->prefix('siswa')->name('siswa.')->group(function () { Route::get('/dashboard', [SiswaDashboardController::class, 'index'])->name('dashboard'); // MATERI Route::get('/materi', [SiswaMateriController::class, 'index'])->name('materi.index'); Route::get('/materi/{id_mengajar}', [SiswaMateriController::class, 'show'])->name('materi.show'); // TUGAS Route::get('/tugas', [SiswaTugasController::class, 'index'])->name('tugas.index'); Route::get('/tugas/{id_tugas}', [SiswaTugasController::class, 'show'])->name('tugas.show'); Route::post('/tugas/{id_tugas}/submit', [SiswaTugasController::class, 'submit'])->name('tugas.submit'); // LOGOUT SISWA Route::post('/logout', [SiswaLoginController::class, 'logout'])->name('logout'); });