Initial commit

This commit is contained in:
2026-04-12 06:24:30 +00:00
commit 007f107be6
213 changed files with 25576 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
<?php
use App\Http\Controllers\Auth\AuthenticatedSessionController;
use App\Http\Controllers\Auth\ConfirmablePasswordController;
use App\Http\Controllers\Auth\EmailVerificationNotificationController;
use App\Http\Controllers\Auth\EmailVerificationPromptController;
use App\Http\Controllers\Auth\NewPasswordController;
use App\Http\Controllers\Auth\PasswordController;
use App\Http\Controllers\Auth\PasswordResetLinkController;
use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\Auth\VerifyEmailController;
use Illuminate\Support\Facades\Route;
Route::middleware('guest')->group(function () {
Route::get('register', [RegisteredUserController::class, 'create'])
->name('register');
Route::post('register', [RegisteredUserController::class, 'store']);
Route::redirect('login', '/')->name('login.redirect');
Route::get('masuk-admin', [AuthenticatedSessionController::class, 'create'])
->name('login');
Route::post('masuk-admin', [AuthenticatedSessionController::class, 'store']);
Route::get('forgot-password', [PasswordResetLinkController::class, 'create'])
->name('password.request');
Route::post('forgot-password', [PasswordResetLinkController::class, 'store'])
->name('password.email');
Route::get('reset-password/{token}', [NewPasswordController::class, 'create'])
->name('password.reset');
Route::post('reset-password', [NewPasswordController::class, 'store'])
->name('password.store');
});
Route::middleware('auth')->group(function () {
Route::get('verify-email', EmailVerificationPromptController::class)
->name('verification.notice');
Route::get('verify-email/{id}/{hash}', VerifyEmailController::class)
->middleware(['signed', 'throttle:6,1'])
->name('verification.verify');
Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store'])
->middleware('throttle:6,1')
->name('verification.send');
Route::get('confirm-password', [ConfirmablePasswordController::class, 'show'])
->name('password.confirm');
Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']);
Route::put('password', [PasswordController::class, 'update'])->name('password.update');
Route::post('logout', [AuthenticatedSessionController::class, 'destroy'])
->name('logout');
});
+8
View File
@@ -0,0 +1,8 @@
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');
+84
View File
@@ -0,0 +1,84 @@
<?php
use App\Http\Controllers\AcademicYearController;
use App\Http\Controllers\Api\RegionController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\DepartmentController;
use App\Http\Controllers\DocumentTypeController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\PublicStudentLookupController;
use App\Http\Controllers\PublicStudentSelfServiceController;
use App\Http\Controllers\SchoolClassController;
use App\Http\Controllers\StudentController;
use App\Http\Controllers\MaintenanceController;
use App\Http\Controllers\BrandingSettingController;
use App\Http\Controllers\StudentParentController;
use App\Http\Controllers\StudentDocumentController;
use App\Http\Controllers\StudentExitController;
use App\Http\Controllers\StudentTransferController;
use App\Http\Controllers\StudentPromotionController;
use App\Http\Controllers\StudentSelfServiceController;
use App\Http\Controllers\UserManagementController;
use Illuminate\Support\Facades\Route;
Route::get('/', [PublicStudentLookupController::class, 'index'])->name('public.student-lookup');
Route::get('/lengkapi-data-siswa', [PublicStudentSelfServiceController::class, 'index'])->name('public.student-self-service.index');
Route::post('/lengkapi-data-siswa/verifikasi', [PublicStudentSelfServiceController::class, 'verify'])->name('public.student-self-service.verify');
Route::get('/lengkapi-data-siswa/form', [PublicStudentSelfServiceController::class, 'edit'])->name('public.student-self-service.edit');
Route::post('/lengkapi-data-siswa/form', [PublicStudentSelfServiceController::class, 'update'])->name('public.student-self-service.update');
Route::redirect('/admin-akses-rahasia', '/masuk-admin');
Route::redirect('/portal-admin-dk-login', '/masuk-admin');
Route::redirect('/masuk-admin-rahasia', '/masuk-admin')->name('hidden-login');
Route::get('public/student-documents/{document}/preview', [StudentDocumentController::class, 'publicPreview'])->name('public.students.documents.preview');
Route::get('public/student-documents/{document}/download', [StudentDocumentController::class, 'publicDownload'])->name('public.students.documents.download');
Route::get('regions/provinces/{province}/regencies', [RegionController::class, 'regencies'])->name('regions.regencies');
Route::get('regions/regencies/{regency}/districts', [RegionController::class, 'districts'])->name('regions.districts');
Route::get('regions/districts/{district}/villages', [RegionController::class, 'villages'])->name('regions.villages');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/dashboard', DashboardController::class)->name('dashboard');
Route::middleware('role:admin')->group(function () {
Route::resource('academic-years', AcademicYearController::class);
Route::resource('departments', DepartmentController::class);
Route::post('classes/generate', [SchoolClassController::class, 'generate'])->name('classes.generate');
Route::resource('classes', SchoolClassController::class);
Route::resource('document-types', DocumentTypeController::class);
Route::prefix('settings')->name('settings.')->group(function () {
Route::resource('users', UserManagementController::class)->except(['show']);
Route::get('branding', [BrandingSettingController::class, 'index'])->name('branding.index');
Route::put('branding', [BrandingSettingController::class, 'update'])->name('branding.update');
Route::get('reset-data', [MaintenanceController::class, 'index'])->name('reset-data.index');
Route::post('reset-data', [MaintenanceController::class, 'reset'])->name('reset-data.execute');
});
});
Route::get('students/keluar', [StudentExitController::class, 'index'])->name('student-exits.index');
Route::get('students/keluar/{studentExit}', [StudentExitController::class, 'show'])->name('student-exits.show');
Route::patch('students/keluar/{studentExit}', [StudentExitController::class, 'update'])->name('student-exits.update');
Route::get('students/keluar/{studentExit}/preview-letter', [StudentExitController::class, 'previewLetter'])->name('student-exits.preview-letter');
Route::get('students/mutasi', [StudentTransferController::class, 'index'])->name('student-transfers.index');
Route::get('students/mutasi/{studentTransfer}', [StudentTransferController::class, 'show'])->name('student-transfers.show');
Route::patch('students/mutasi/{studentTransfer}', [StudentTransferController::class, 'update'])->name('student-transfers.update');
Route::get('students/mutasi/{studentTransfer}/preview-letter', [StudentTransferController::class, 'previewLetter'])->name('student-transfers.preview-letter');
Route::get('students/lulus', [StudentController::class, 'index'])->defaults('view', 'graduated')->name('students.graduated');
Route::get('students/import', [StudentController::class, 'importForm'])->name('students.import.form');
Route::post('students/import/preview', [StudentController::class, 'previewImport'])->name('students.import.preview');
Route::post('students/import', [StudentController::class, 'import'])->name('students.import');
Route::get('students/import/template', [StudentController::class, 'downloadImportTemplate'])->name('students.import.template');
Route::delete('students/bulk-delete', [StudentController::class, 'bulkDestroy'])->name('students.bulk-destroy');
Route::resource('students', StudentController::class);
Route::get('student-promotions', [StudentPromotionController::class, 'index'])->name('student-promotions.index');
Route::post('student-promotions', [StudentPromotionController::class, 'store'])->name('student-promotions.store');
Route::get('student-self-service', [StudentSelfServiceController::class, 'index'])->name('student-self-service.index');
Route::resource('students.parents', StudentParentController::class)->except(['index', 'show']);
Route::resource('students.documents', StudentDocumentController::class)->except(['index', 'show']);
Route::post('students/{student}/documents/{document}/quick-verify', [StudentDocumentController::class, 'quickVerify'])->name('students.documents.quick-verify');
Route::get('student-documents/{document}/preview', [StudentDocumentController::class, 'preview'])->name('students.documents.preview');
Route::get('student-documents/{document}/download', [StudentDocumentController::class, 'download'])->name('students.documents.download');
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
});
require __DIR__.'/auth.php';