MIF_E31222641/routes/web.php

81 lines
5.5 KiB
PHP

<?php
use App\Http\Controllers\PerformaController;
use App\Http\Controllers\PrediksiController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\InputDataController;
use App\Http\Controllers\VisualisasiController;
use App\Http\Controllers\SessionsController;
use App\Http\Controllers\ExportController;
use App\Http\Controllers\KebijakanController;
use App\Http\Controllers\UserManagementController;
// Route::get('/', function () {
// return view('welcome');
// });
// Guest routes (accessible without login)
Route::middleware('guest')->group(function () {
Route::get('/', [SessionsController::class, 'create'])->name('login');
Route::post('/login', [SessionsController::class, 'store'])->name('login.store');
Route::get('/reset', [ProfileController::class, 'reset'])->name('reset');
Route::post('/reset', [SessionsController::class, 'show'])->name('password.email');
Route::get('/verify', [ProfileController::class, 'verify'])->name('verify');
Route::get('/reset-password/{token}', [ProfileController::class, 'reset'])->name('password.reset');
Route::post('/reset-password', [SessionsController::class, 'update'])->name('password.update');
});
// Protected routes (require authentication)
Route::middleware('auth')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::get('/user-profile', [ProfileController::class, 'create'])->name('user-profile');
Route::put('/user-profile', [ProfileController::class, 'update'])->name('user-profile.update');
Route::get('/user-management', [ProfileController::class, 'index'])->name('user-management');
Route::get('/prediksi', [PrediksiController::class, 'index'])->name('prediksi');
Route::post('/prediksi', [PrediksiController::class, 'processAndPredict'])->name('prediction.process');
Route::get('/prediksi/hasil/{id}', [PrediksiController::class, 'showResult'])->name('prediction.result');
Route::post('/prediksi/upload-excel', [PrediksiController::class, 'uploadExcelDanPrediksi'])->name('prediction.upload.excel');
Route::get('/template/download', function () {
$path = public_path('templates/template_data_siswa.xlsx');
return response()->download($path, 'template_data_siswa.xlsx');
})->name('template.download');
Route::get('/performa', [PerformaController::class, 'index'])->name('performa');
Route::post('/performa/evaluate', [PerformaController::class, 'evaluate'])->name('performa.evaluate');
Route::get('/visualisasi-data', [VisualisasiController::class, 'index'])->name('visualisasi-data');
Route::get('/export', [ExportController::class, 'index'])->name('export');
Route::post('/export', [ExportController::class, 'export'])->name('export.process');
Route::get('/profile', [ProfileController::class, 'profile'])->name('profile');
Route::get('/static-sign-in', [ProfileController::class, 'staticSignIn'])->name('static-sign-in');
Route::get('/static-sign-up', [ProfileController::class, 'staticSignUp'])->name('static-sign-up');
Route::post('/logout', [SessionsController::class, 'destroy'])->name('logout');
Route::get('/download-template', [InputDataController::class, 'downloadTemplate'])->name('download.template');
// Kebijakan routes
Route::middleware([\App\Http\Middleware\CheckRole::class . ':superadministrator'])->group(function () {
Route::get('/kebijakan', [KebijakanController::class, 'index'])->name('kebijakan.index');
Route::get('/kebijakan/create', [KebijakanController::class, 'create'])->name('kebijakan.create');
Route::post('/kebijakan', [KebijakanController::class, 'store'])->name('kebijakan.store');
Route::delete('/kebijakan/{id}', [KebijakanController::class, 'destroy'])->name('kebijakan.destroy');
});
// User management routes
Route::middleware(['auth', \App\Http\Middleware\CheckRole::class . ':superadministrator'])->group(function () {
Route::get('/input-data', [ProfileController::class, 'inputData'])->name('input-data');
Route::post('/preview-excel', [InputDataController::class, 'preview'])->name('preview.excel');
Route::post('/simpan-data', [InputDataController::class, 'simpanData'])->name('simpan.data');
Route::get('/user-management', [UserManagementController::class, 'index'])->name('user-management.index');
Route::get('/user-management/create', [UserManagementController::class, 'create'])->name('user-management.create');
Route::post('/user-management', [UserManagementController::class, 'store'])->name('user-management.store');
Route::get('/user-management/{user}/edit', [UserManagementController::class, 'edit'])->name('user-management.edit');
Route::put('/user-management/{user}', [UserManagementController::class, 'update'])->name('user-management.update');
Route::delete('/user-management/{user}', [UserManagementController::class, 'destroy'])->name('user-management.destroy');
});
// Route untuk manajemen data latih (CRUD)
Route::get('/data-latih', [App\Http\Controllers\TrainingDataController::class, 'index'])->name('training.index');
Route::get('/data-latih/{id}/edit', [App\Http\Controllers\TrainingDataController::class, 'edit'])->name('training.edit');
Route::post('/data-latih/{id}/update', [App\Http\Controllers\TrainingDataController::class, 'update'])->name('training.update');
Route::delete('/data-latih/{id}', [App\Http\Controllers\TrainingDataController::class, 'destroy'])->name('training.destroy');
});