83 lines
4.5 KiB
PHP
83 lines
4.5 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\ProfileController;
|
|
use App\Http\Controllers\DashboardController;
|
|
use App\Http\Controllers\Siswa\ActivityController;
|
|
use App\Http\Controllers\Siswa\RecommendationController;
|
|
use App\Http\Controllers\Siswa\VisualizationController;
|
|
use App\Http\Controllers\Siswa\ParentConnectionController;
|
|
use App\Http\Controllers\OrangTua\ChildVisualizationController;
|
|
use App\Http\Controllers\OrangTua\ChildrenController;
|
|
use App\Http\Controllers\Auth\ForgotPasswordController;
|
|
use App\Http\Controllers\Auth\LoginController;
|
|
use App\Http\Controllers\Auth\RegisterController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
|
|
// Redirect root ke halaman login
|
|
Route::get('/', function () {
|
|
return redirect()->route('login');
|
|
});
|
|
|
|
// Guest Routes
|
|
Route::middleware('guest')->group(function () {
|
|
// Login
|
|
Route::get('login', [LoginController::class, 'showLoginForm'])->name('login');
|
|
Route::post('login', [LoginController::class, 'login']);
|
|
|
|
// Register
|
|
Route::get('register', [RegisterController::class, 'showRegistrationForm'])->name('register');
|
|
Route::post('register', [RegisterController::class, 'register']);
|
|
|
|
// Password Reset (OTP)
|
|
Route::prefix('password')->name('password.')->group(function () {
|
|
Route::get('/forgot', [ForgotPasswordController::class, 'showForgotForm'])->name('request');
|
|
Route::post('/forgot', [ForgotPasswordController::class, 'sendOtp'])->name('send');
|
|
Route::get('/verify', [ForgotPasswordController::class, 'showVerifyForm'])->name('verify.form');
|
|
Route::post('/verify', [ForgotPasswordController::class, 'verifyOtp'])->name('verify');
|
|
Route::get('/reset', [ForgotPasswordController::class, 'showResetForm'])->name('reset.form');
|
|
Route::post('/reset', [ForgotPasswordController::class, 'resetPassword'])->name('update');
|
|
});
|
|
});
|
|
|
|
// Logout
|
|
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
|
|
|
|
// Authenticated Routes
|
|
Route::middleware(['auth', 'verified'])->group(function () {
|
|
|
|
// Dashboard
|
|
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
|
|
|
// Siswa Routes
|
|
Route::middleware(['role:siswa'])->prefix('siswa')->name('siswa.')->group(function () {
|
|
Route::get('/input', [ActivityController::class, 'create'])->name('input');
|
|
Route::post('/input', [ActivityController::class, 'store'])->name('input.store');
|
|
Route::get('/input/edit-hari-ini', [ActivityController::class, 'editToday'])->name('input.edit-today');
|
|
Route::patch('/input/edit-hari-ini', [ActivityController::class, 'updateToday'])->name('input.update-today');
|
|
Route::get('/history', [ActivityController::class, 'history'])->name('history');
|
|
Route::get('/rekomendasi', [RecommendationController::class, 'index'])->name('recommendations');
|
|
Route::get('/rekomendasi/{id}', [RecommendationController::class, 'show'])->name('recommendation.detail');
|
|
Route::get('/visualisasi', [VisualizationController::class, 'index'])->name('visualization');
|
|
Route::get('/koneksi-ortu', [ParentConnectionController::class, 'index'])->name('parent-connection');
|
|
Route::post('/koneksi-ortu/clear', [ParentConnectionController::class, 'clearCode'])->name('parent-connection.clear');
|
|
Route::post('/koneksi-ortu/generate', [ParentConnectionController::class, 'generateCode'])->name('parent-connection.generate');
|
|
});
|
|
|
|
// Orang Tua Routes
|
|
Route::middleware(['role:orang_tua'])->prefix('orangtua')->name('orangtua.')->group(function () {
|
|
Route::get('/anak', [ChildrenController::class, 'index'])->name('children');
|
|
Route::get('/anak/{id}', [ChildrenController::class, 'detail'])->name('child.detail');
|
|
Route::post('/connect', [ChildrenController::class, 'connect'])->name('connect');
|
|
Route::delete('/anak/{id}/disconnect', [ChildrenController::class, 'disconnect'])->name('child.disconnect');
|
|
Route::get('/anak/{childId}/visualisasi', [ChildVisualizationController::class, 'index'])->name('child.visualization');
|
|
});
|
|
|
|
// Profile Routes
|
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
Route::post('/profile/avatar', [ProfileController::class, 'updateAvatar'])->name('profile.avatar');
|
|
Route::post('/profile/password', [ProfileController::class, 'updatePassword'])->name('profile.password');
|
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
|
});
|