271 lines
15 KiB
PHP
271 lines
15 KiB
PHP
<?php
|
|
|
|
|
|
|
|
use App\Http\Controllers\Admin\GuruController;
|
|
use App\Http\Controllers\Admin\JadwalController;
|
|
use App\Http\Controllers\Admin\KelasController;
|
|
use App\Http\Controllers\Admin\LogbookController;
|
|
use App\Http\Controllers\Admin\ProgramController;
|
|
use App\Http\Controllers\Admin\RuanganController;
|
|
use App\Http\Controllers\Admin\SekolahController;
|
|
use App\Http\Controllers\Admin\SettingController;
|
|
use App\Http\Controllers\Admin\SiswaController;
|
|
use App\Http\Controllers\Admin\UserAdminController;
|
|
use App\Http\Controllers\AuthenticationController;
|
|
use App\Http\Controllers\Admin\DashboardController;
|
|
use App\Http\Controllers\Guru\DashboardGuruController;
|
|
use App\Http\Controllers\Guru\JadwalGuruController;
|
|
use App\Http\Controllers\Guru\KelasGuruController;
|
|
use App\Http\Controllers\Guru\LogbookGuruController;
|
|
|
|
use App\Http\Controllers\Guru\ProfileGuruController;
|
|
use App\Http\Controllers\Guru\GaleriGuruController;
|
|
use App\Http\Middleware\isAdmin;
|
|
use App\Http\Middleware\isGuest;
|
|
use App\Http\Middleware\isSiswa;
|
|
use App\Http\Middleware\isGuru;
|
|
use App\Http\Middleware\isGuesOrtAuth;
|
|
|
|
use App\Models\Kelas;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Support\Facades\Artisan;
|
|
|
|
// Test dataset DTO for GA
|
|
Route::get('/test-dataset', function () {
|
|
$loader = new \App\Services\Scheduling\DatasetLoader();
|
|
$dataset = $loader->load();
|
|
return response()->json($dataset->summary());
|
|
});
|
|
|
|
Route::get('/', function(){
|
|
return redirect('/login');
|
|
})->middleware(isGuesOrtAuth::class);
|
|
Route::get('/login', [AuthenticationController::class, 'login'])->middleware(isGuest::class);
|
|
Route::post('/logout', [AuthenticationController::class, 'logout']);
|
|
Route::post('/auth', [AuthenticationController::class, 'auth'])->middleware(isGuest::class);
|
|
|
|
//angket
|
|
Route::get('/angket/{kode_kelas}', [AngketController::class, 'index'])->middleware(isGuesOrtAuth::class);
|
|
|
|
|
|
|
|
|
|
|
|
Route::prefix('siswa')->middleware(isSiswa::class)->group(function () {
|
|
Route::get('/', [DashboardSiswaController::class, 'index'])->name('siswa.dashboard');
|
|
});
|
|
|
|
// khusus
|
|
Route::get('/kelas/logbook-get/{id}', [LogbookController::class, 'getLogbook']);
|
|
|
|
Route::prefix('admin')->middleware(isAdmin::class)->group(function () {
|
|
Route::get('/', [DashboardController::class, 'index'])->name('admin.dashboard');
|
|
Route::get('/get-jumlahsiswa-bulan', [DashboardController::class, 'getJumlahSiswaPerbulan']);
|
|
Route::get('/dashboard-data', [DashboardController::class, 'dashboardData']);
|
|
Route::get('/dashboard-chart-data', [DashboardController::class, 'dashboardChartData']);
|
|
Route::get('/insert-histori', [DashboardController::class, 'insertHistori']);
|
|
|
|
Route::get('/siswa', [SiswaController::class, 'index']);
|
|
Route::get('/siswa/approved-list-count', [SiswaController::class, 'getApprovedListCount']);
|
|
Route::get('/siswa/approved-list', [SiswaController::class, 'aprovedList']);
|
|
Route::get('/siswa/compare/{id}', [SiswaController::class, 'compareSiswa']);
|
|
Route::post('/siswa/approve', [SiswaController::class, 'approveSiswa']);
|
|
Route::post('/siswa', [SiswaController::class, 'store']);
|
|
Route::get('/siswa-get/{id}', [SiswaController::class, 'getDataSiswa']);
|
|
Route::get('/siswa/{id}/detail', [SiswaController::class, 'show'])->name('admin.siswa.detail');
|
|
Route::get('/siswa-get-count', [SiswaController::class, 'getSiswaCount']);
|
|
Route::put('update-siswa/{id}', [SiswaController::class, 'update']);
|
|
Route::delete('delete-siswa/{id}', [SiswaController::class, 'destroy']);
|
|
|
|
Route::get('/kelas', [KelasController::class, 'index']);
|
|
Route::get('/kelas/get-year', function () {
|
|
$years = Kelas::select(DB::raw('YEAR(created_at) as year'))
|
|
->distinct()
|
|
->orderBy('year', 'desc')
|
|
->pluck('year');
|
|
|
|
return response()->json($years);
|
|
});
|
|
Route::get('/kelas/export-excel-all/{year}', [KelasController::class, 'exportExcelAll']);
|
|
Route::get('/kelas/export-excel-filter', [KelasController::class, 'exportExcelFilter']);
|
|
Route::get('/kelas/export-logbook-filter', [KelasController::class, 'exportLogbookFilter']);
|
|
Route::get('/kelas/export-siswa-filter', [KelasController::class, 'exportSiswaFilter']);
|
|
Route::get('/kelas-tambah', [KelasController::class, 'create']);
|
|
Route::get('/kelas/check-schedule', [KelasController::class, 'checkScheduleConflict']);
|
|
Route::post('/kelas', [KelasController::class, 'store']);
|
|
Route::get('/kelas/{id}', [KelasController::class, 'show']);
|
|
Route::get('/kelas/export-excel/{id}', [KelasController::class, 'exportExcel']);
|
|
Route::put('/kelas-edit/{id}', [KelasController::class, 'update']);
|
|
Route::post('/kelas/siswas-tambah', [KelasController::class, 'tambahSiswas']);
|
|
Route::get('/kelas/data-siswa/{kelas_id}', [KelasController::class, 'getSiswasKelas']);
|
|
Route::get('/kelas/siswa-get/{id}', [KelasController::class, 'getPesertaKelas']);
|
|
Route::delete('/kelas/siswa-delete/{id}', [KelasController::class, 'destroyerSiswaFromKelas']);
|
|
Route::put('/kelas/siswa-edit/{id}', [KelasController::class, 'editSiswa']);
|
|
Route::delete('/kelas-delete/{id}', [KelasController::class, 'destroy']);
|
|
|
|
Route::post('/kelas/logbook', [LogbookController::class, 'store']);
|
|
Route::post('/kelas/logbook/addrow', [LogbookController::class, 'addrow']);
|
|
Route::post('/kelas/logbook-import', [LogbookController::class, 'import']);
|
|
Route::put('/kelas/logbook-edit/{id}', [LogbookController::class, 'update']);
|
|
Route::get('/kelas/logbook-get/{id}', [LogbookController::class, 'getLogbook']);
|
|
Route::post('/kelas/logbook/duplicate/{id}', [LogbookController::class, 'duplicate']);
|
|
Route::delete('/kelas/logbook-delete/{id}', [LogbookController::class, 'destroy']);
|
|
Route::delete('/kelas/logbook-selected-delete', [LogbookController::class, 'destroySelected']);
|
|
Route::delete('/kelas/logbook-foto-delete/{id}', [LogbookController::class, 'destroyFoto']);
|
|
|
|
Route::get('/jadwal', [JadwalController::class, 'index']);
|
|
Route::get('/jadwal/hari-ini', [JadwalController::class, 'getDataHariIni']);
|
|
Route::get('/jadwal/ajax-hari-ini', [JadwalController::class, 'getJadwalHariIni']);
|
|
Route::get('/jadwal/ajax-besok', [JadwalController::class, 'getJadwalBesok']);
|
|
Route::get('/jadwal/ajax-logbook-data', [JadwalController::class, 'getLogbookData']);
|
|
Route::put('/jadwal/isi-logbook/{id}', [LogbookController::class, 'updateLog']);
|
|
Route::delete('/jadwal/logbook-foto-delete/{id}', [LogbookController::class, 'destroyFotoLog']);
|
|
route::get('/jadwal-calendar', [JadwalController::class, 'calendar']);
|
|
route::get('/jadwal-calendar-data', [JadwalController::class, 'calendarData']);
|
|
Route::get('/jadwal-calendar-data-count/{id}', [JadwalController::class, 'calendarCountData']);
|
|
Route::get('/generate-ga', [JadwalController::class, 'generateGAIndex']);
|
|
Route::get('/hasil-ga', [JadwalController::class, 'hasilGAIndex']);
|
|
Route::get('/export-excel-ga', [JadwalController::class, 'exportExcelGA']);
|
|
Route::get('/export-excel-ga-presentation', [JadwalController::class, 'exportExcelGaPresentation']);
|
|
Route::get('/jadwal-mingguan', [JadwalController::class, 'jadwalMingguan']);
|
|
Route::get('/jadwal-mingguan/export-excel', [JadwalController::class, 'exportExcelMingguan']);
|
|
Route::get('/jadwal-kromosom', [JadwalController::class, 'jadwalKromosom']);
|
|
Route::get('/jadwal-mingguan-data', [JadwalController::class, 'getJadwalMingguanData']);
|
|
Route::post('/jadwal/generate-ga', [JadwalController::class, 'generateGA']);
|
|
Route::post('/jadwal/generate-logbook', [JadwalController::class, 'generateLogbookFromJadwal']);
|
|
|
|
Route::get('/guru', [GuruController::class, 'index']);
|
|
Route::post('/guru', [GuruController::class, 'store']);
|
|
Route::get('/guru-get-count', [GuruController::class, 'getDataGuru']);
|
|
Route::get('/guru-get/{id}', [GuruController::class, 'getData']);
|
|
Route::get('/guru/{id}/detail', [GuruController::class, 'show'])->name('admin.guru.detail');
|
|
Route::post('/guru/{id}/ketersediaan', [GuruController::class, 'updateKetersediaan'])->name('admin.guru.ketersediaan.update');
|
|
|
|
Route::get('/guru/{id}/raport/{semester}/{tahun_ajaran}', [GuruController::class, 'raportDetail'])
|
|
->name('admin.guru.raport.detail')
|
|
->where('tahun_ajaran', '.+');
|
|
Route::put('/guru-update/{id}', [GuruController::class, 'update']);
|
|
Route::delete('delete-guru/{id}', [GuruController::class, 'destroy']);
|
|
|
|
|
|
|
|
Route::get('/sekolah/input', [SekolahController::class, 'inputData']);
|
|
Route::get('/sekolah', [SekolahController::class, 'index']);
|
|
Route::get('/sekolah/data-sekolah/{sekolah_id}', [SekolahController::class, 'getDataSekolah']);
|
|
Route::get('/sekolah-get-count', [SekolahController::class, 'getDataSekolahCount']);
|
|
Route::get('/sekolah/create', [SekolahController::class, 'create']);
|
|
Route::get('/sekolah/edit/{id}', [SekolahController::class, 'edit']);
|
|
Route::put('/sekolah/update/{id}', [SekolahController::class, 'update']);
|
|
Route::post('/sekolah', [SekolahController::class, 'store']);
|
|
Route::post('/sekolah/pindah-sekolah', [SekolahController::class, 'pindahSekolah']);
|
|
Route::delete('/delete-sekolah/{id}', [SekolahController::class, 'destroy']);
|
|
|
|
Route::get('/program', [ProgramController::class, 'index']);
|
|
Route::post('/program', [ProgramController::class, 'store']);
|
|
Route::get('/program-data/{id}', [ProgramController::class, 'data']);
|
|
Route::put('/program/{id}', [ProgramController::class, 'update']);
|
|
Route::delete('/program/{id}', [ProgramController::class, 'destroy']);
|
|
|
|
Route::get('/ruangan', [RuanganController::class, 'index']);
|
|
Route::post('/ruangan', [RuanganController::class, 'store']);
|
|
Route::get('/ruangan-data/{id}', [RuanganController::class, 'data']);
|
|
Route::put('/ruangan/{id}', [RuanganController::class, 'update']);
|
|
Route::delete('/ruangan/{id}', [RuanganController::class, 'destroy']);
|
|
|
|
|
|
|
|
Route::get('/user-admin', [UserAdminController::class, 'index']);
|
|
Route::post('/user-admin', [UserAdminController::class, 'store']);
|
|
Route::put('/user-admin/{id}', [UserAdminController::class, 'update']);
|
|
Route::delete('/user-admin/{id}', [UserAdminController::class, 'destroy']);
|
|
|
|
// Settings
|
|
Route::get('/settings', [SettingController::class, 'index']);
|
|
|
|
|
|
Route::get('/settings/divisi-guru', [SettingController::class, 'DivisiGuruIndex']);
|
|
Route::post('/settings/divisi-guru', [SettingController::class, 'DivisiGuruStore']);
|
|
Route::put('/settings/divisi-guru-update/{id}', [SettingController::class, 'divisiGuruUpdate']);
|
|
Route::delete('/settings/divisi-guru/{id}', [SettingController::class, 'DivisiGuruDestroy']);
|
|
|
|
Route::get('/settings/master-sesi', [SettingController::class, 'masterSesiIndex'])->name('admin.settings.master-sesi');
|
|
Route::post('/settings/master-sesi', [SettingController::class, 'masterSesiStore']);
|
|
Route::put('/settings/master-sesi-update/{id}', [SettingController::class, 'masterSesiUpdate']);
|
|
Route::delete('/settings/master-sesi/{id}', [SettingController::class, 'masterSesiDestroy']);
|
|
|
|
Route::get('/settings/master-hari', [SettingController::class, 'masterHariIndex'])->name('admin.settings.master-hari');
|
|
Route::post('/settings/master-hari', [SettingController::class, 'masterHariStore']);
|
|
Route::put('/settings/master-hari-update/{id}', [SettingController::class, 'masterHariUpdate']);
|
|
Route::delete('/settings/master-hari/{id}', [SettingController::class, 'masterHariDestroy']);
|
|
|
|
Route::get('/settings/ketersediaan', [SettingController::class, 'ketersediaanIndex'])->name('admin.settings.ketersediaan');
|
|
Route::get('/master-data', [SettingController::class, 'masterDataIndex']);
|
|
Route::get('/master-data-export', [SettingController::class, 'exportMasterData']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
Route::prefix('guru')->middleware(isGuru::class)->group(function () {
|
|
Route::get('/dashboard-data', [DashboardGuruController::class, 'dashboardData']);
|
|
Route::get('/dashboard-chart-data', [DashboardGuruController::class, 'getChartData']);
|
|
Route::get('/', [DashboardGuruController::class, 'index'])->name('guru.dashboard');
|
|
|
|
|
|
|
|
Route::get('/jadwal', [JadwalGuruController::class, 'index']);
|
|
Route::get('/jadwal/hari-ini', [JadwalGuruController::class, 'getDataHariIni']);
|
|
Route::get('/jadwal/ajax-hari-ini', [JadwalGuruController::class, 'getJadwalHariIni']);
|
|
Route::get('/jadwal/ajax-besok', [JadwalGuruController::class, 'getJadwalBesok']);
|
|
Route::get('/jadwal/ajax-logbook-data', [JadwalGuruController::class, 'getLogbookData']);
|
|
route::get('/jadwal-calendar', [JadwalGuruController::class, 'calendar']);
|
|
route::get('/jadwal-calendar-data', [JadwalGuruController::class, 'calendarData']);
|
|
|
|
// show & edit logbook
|
|
Route::put('/jadwal/isi-logbook/{id}', [LogbookGuruController::class, 'updateLog']);
|
|
Route::delete('/jadwal/logbook-foto-delete/{id}', [LogbookGuruController::class, 'destroyFotoLog']);
|
|
|
|
Route::post('/kelas/logbook', [LogbookGuruController::class, 'store']);
|
|
Route::post('/kelas/logbook/addrow', [LogbookGuruController::class, 'addrow']);
|
|
Route::post('/kelas/logbook-import', [LogbookGuruController::class, 'import']);
|
|
Route::put('/kelas/logbook-edit/{id}', [LogbookGuruController::class, 'update']);
|
|
Route::get('/kelas/logbook-get/{id}', [LogbookController::class, 'getLogbook']);
|
|
Route::delete('/kelas/logbook-delete/{id}', [LogbookGuruController::class, 'destroy']);
|
|
Route::delete('/kelas/logbook-selected-delete', [LogbookGuruController::class, 'destroySelected']);
|
|
Route::delete('/kelas/logbook-foto-delete/{id}', [LogbookGuruController::class, 'destroyFoto']);
|
|
|
|
Route::get('/kelas', [KelasGuruController::class, 'index']);
|
|
Route::post('/kelas', [KelasGuruController::class, 'store']);
|
|
Route::get('/kelas/{id}', [KelasGuruController::class, 'show']);
|
|
Route::put('/kelas-edit/{id}', [KelasGuruController::class, 'update']);
|
|
Route::post('/kelas/siswas-tambah', [KelasGuruController::class, 'tambahSiswas']);
|
|
Route::get('/kelas/data-siswa/{kelas_id}', [KelasGuruController::class, 'getSiswasKelas']);
|
|
Route::get('/kelas/siswa-get/{id}', [KelasGuruController::class, 'getPesertaKelas']);
|
|
Route::delete('/kelas/siswa-delete/{id}', [KelasGuruController::class, 'destroyerSiswaFromKelas']);
|
|
Route::put('/kelas/siswa-edit/{id}', [KelasGuruController::class, 'editSiswa']);
|
|
Route::delete('/kelas-delete/{id}', [KelasGuruController::class, 'destroy']);
|
|
|
|
Route::get('/profile', [ProfileGuruController::class, 'index']);
|
|
Route::get('/profile/get-data', [ProfileGuruController::class, 'getDataProfile']);
|
|
Route::put('/profile/save-data', [ProfileGuruController::class, 'saveDataProfile']);
|
|
Route::put('/profile/update-password', [ProfileGuruController::class, 'updatePassword']);
|
|
|
|
Route::get('/ketersediaan', [ProfileGuruController::class, 'ketersediaan'])->name('guru.ketersediaan');
|
|
Route::post('/ketersediaan', [ProfileGuruController::class, 'updateKetersediaan'])->name('guru.ketersediaan.update');
|
|
|
|
|
|
|
|
// Galeri Foto
|
|
Route::get('/galeri', [GaleriGuruController::class, 'index'])->name('guru.galeri');
|
|
Route::get('/galeri/download/{id}', [GaleriGuruController::class, 'download'])->name('guru.galeri.download');
|
|
});
|