170 lines
6.5 KiB
PHP
170 lines
6.5 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
// ADMIN CONTROLLERS
|
|
use App\Http\Controllers\Admin\LoginController;
|
|
use App\Http\Controllers\Admin\AdminController;
|
|
use App\Http\Controllers\Admin\GuruController as AdminGuruController;
|
|
use App\Http\Controllers\Admin\KelasController as AdminKelasController;
|
|
use App\Http\Controllers\Admin\SiswaController as AdminSiswaController;
|
|
use App\Http\Controllers\Admin\MapelController as AdminMapelController;
|
|
use App\Http\Controllers\Admin\ChallengeController as AdminChallengeController;
|
|
use App\Http\Controllers\Admin\LeaderboardController as AdminLeaderboardController;
|
|
|
|
|
|
// GURU CONTROLLERS
|
|
use App\Http\Controllers\Guru\LoginController as GuruLoginController;
|
|
use App\Http\Controllers\Guru\DashboardController as GuruDashboardController;
|
|
use App\Http\Controllers\Guru\GuruController as GuruGuruController;
|
|
use App\Http\Controllers\Guru\KelasController as GuruKelasController;
|
|
use App\Http\Controllers\Guru\SiswaController as GuruSiswaController;
|
|
use App\Http\Controllers\Guru\ProfilController as GuruProfilController;
|
|
use App\Http\Controllers\Guru\MapelController as GuruMapelController;
|
|
use App\Http\Controllers\Guru\LeaderboardController as GuruLeaderboardController;
|
|
|
|
//SISWA CONTROLLERS
|
|
use App\Http\Controllers\Siswa\LoginController as SiswaLoginController;
|
|
use App\Http\Controllers\Siswa\DashboardController as SiswaDashboardController;
|
|
use App\Http\Controllers\Siswa\MateriController as SiswaMateriController;
|
|
use App\Http\Controllers\Siswa\TugasController as SiswaTugasController;
|
|
|
|
// ====================
|
|
// LANDING PAGE
|
|
// ====================
|
|
Route::get('/', function () {
|
|
return view('auth.landing-page');
|
|
})->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::get('/guru/kelas-by-mapel', [AdminGuruController::class, 'getKelasByMapel'])
|
|
->name('guru.kelasByMapel');
|
|
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::post('/materi/store', [GuruMapelController::class, 'storeMateri'])->name('materi.store');
|
|
Route::post('/tugas/store', [GuruMapelController::class, 'storeTugas'])->name('tugas.store');
|
|
|
|
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');
|
|
|
|
}); |