81 lines
3.6 KiB
PHP
81 lines
3.6 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Http\Controllers\AuthController;
|
|
use App\Http\Controllers\DataTrainingController;
|
|
use App\Http\Controllers\DashboardController;
|
|
use App\Http\Controllers\C45Controller;
|
|
use App\Http\Controllers\PrediksiController;
|
|
use App\Http\Controllers\ProfileController;
|
|
use App\Http\Controllers\UserController;
|
|
use App\Http\Controllers\RekapController;
|
|
|
|
// 1. Route Publik
|
|
Route::get('/', function () {
|
|
return view('welcome');
|
|
});
|
|
|
|
Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login');
|
|
Route::post('/login', [AuthController::class, 'login']);
|
|
Route::post('/register', [AuthController::class, 'register'])->name('register');
|
|
|
|
|
|
// 2. Route Diproteksi Auth
|
|
Route::middleware(['auth'])->group(function () {
|
|
|
|
// Route Pengarah Pintar: Arahkan Otomatis Berdasarkan Role
|
|
Route::get('/dashboard', function () {
|
|
if (Auth::user()->role === 'admin' || Auth::user()->is_admin) {
|
|
return redirect()->route('admin.dashboard');
|
|
}
|
|
return redirect()->route('siswa.dashboard');
|
|
})->name('dashboard');
|
|
|
|
// Dashboard Admin
|
|
Route::get('/admin/dashboard', [DashboardController::class, 'index'])->name('admin.dashboard');
|
|
|
|
// Dashboard Siswa
|
|
Route::get('/siswa/dashboard', function () {
|
|
// Jika Admin mencoba buka manual URL siswa, lempar balik ke admin dashboard
|
|
if (Auth::user()->role === 'admin' || Auth::user()->is_admin) {
|
|
return redirect()->route('admin.dashboard');
|
|
}
|
|
return view('siswa.dashboard');
|
|
})->name('siswa.dashboard');
|
|
|
|
// Data Training
|
|
Route::resource('training', DataTrainingController::class);
|
|
|
|
// Perhitungan C4.5 (Admin Panel)
|
|
Route::get('/c45', [C45Controller::class, 'index'])->name('c45.index');
|
|
Route::get('/c45/create', [C45Controller::class, 'create'])->name('c45.create');
|
|
Route::get('/c45/hasil', [C45Controller::class, 'hasil'])->name('c45.hasil');
|
|
Route::post('/c45/hitung', [C45Controller::class, 'hitungRekomendasi'])->name('c45.hitung');
|
|
|
|
// Prediksi / Rekomendasi
|
|
Route::get('/prediksi', [PrediksiController::class, 'index'])->name('prediksi.index');
|
|
Route::post('/prediksi/hitung', [PrediksiController::class, 'hitungRekomendasi'])->name('prediksi.hitung');
|
|
Route::get('/riwayat-rekomendasi', [PrediksiController::class, 'riwayat'])->name('riwayat.index');
|
|
Route::get('/riwayat-rekomendasi/{id}', [PrediksiController::class, 'showRiwayat'])->name('riwayat.show');
|
|
Route::delete('/riwayat-rekomendasi/{id}', [PrediksiController::class, 'destroyRiwayat'])->name('riwayat.destroy');
|
|
|
|
// 1. Halaman Dashboard Rekapitulasi & Grafik
|
|
Route::get('/rekap-konsultasi', [RekapController::class, 'index'])->name('admin.rekap');
|
|
|
|
// 2. Action Download Laporan PDF
|
|
Route::get('/rekap-konsultasi/export-pdf', [RekapController::class, 'exportPdf'])->name('admin.rekap.pdf');
|
|
|
|
// Profile
|
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
Route::put('/profile/password', [ProfileController::class, 'updatePassword'])->name('profile.password.update');
|
|
|
|
// Management User / Akun Internal
|
|
Route::get('/admin/users', [UserController::class, 'index'])->name('admin.users.index');
|
|
Route::post('/admin/users', [UserController::class, 'store'])->name('admin.users.store');
|
|
Route::delete('/admin/users/{user}', [UserController::class, 'destroy'])->name('admin.users.destroy');
|
|
|
|
// Logout
|
|
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
|
|
}); |