Deploy Laravel rebuild via Coolify

Point Docker and Coolify compose to the Laravel rebuild app so mahasiswa, dosen, and admin flows are served from the new Laravel public entrypoint.
This commit is contained in:
Power BI Dev
2026-05-03 18:50:29 +07:00
parent 89ce9d30a7
commit dab8ea396b
107 changed files with 17544 additions and 20 deletions

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');

119
rebuild/routes/web.php Normal file
View File

@@ -0,0 +1,119 @@
<?php
use App\Http\Controllers\Auth\LegacyAuthController;
use App\Http\Controllers\AdminLegacyController;
use App\Http\Controllers\AdminPageController;
use App\Http\Controllers\Dashboard\AdminDashboardController;
use App\Http\Controllers\Dashboard\DosenDashboardController;
use App\Http\Controllers\Dashboard\MahasiswaDashboardController;
use App\Http\Controllers\DosenPageController;
use App\Http\Controllers\MahasiswaPageController;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('home', [
'title' => 'SPOTA | Sistem Pendukung Outline Tugas Akhir',
'systemStatus' => [
['label' => 'Mahasiswa', 'value' => 'Dashboard, praoutline, pengumuman'],
['label' => 'Dosen', 'value' => 'Review, bimbingan, penawaran judul'],
['label' => 'Admin', 'value' => 'Data master dan pengaturan prodi'],
],
'highlights' => [
['number' => '01', 'label' => 'Mahasiswa', 'href' => route('legacy.login', 'mahasiswa'), 'description' => 'Pantau status usulan, baca pengumuman, upload praoutline, dan booking penawaran judul.'],
['number' => '02', 'label' => 'Dosen', 'href' => route('legacy.login', 'dosen'), 'description' => 'Kelola penawaran judul, review praoutline, lihat bimbingan, dan monitoring mahasiswa.'],
['number' => '03', 'label' => 'Admin', 'href' => route('legacy.login', 'admin'), 'description' => 'Kelola data mahasiswa, dosen, kelompok keahlian, pengumuman, jadwal, dan pengaturan prodi.'],
],
]);
})->name('home');
Route::get('/assets/spota-logo', function () {
$logoPath = base_path('../link6.jpg');
abort_unless(File::exists($logoPath), 404);
return response()->file($logoPath);
})->name('assets.spota-logo');
Route::get('/masuk', [LegacyAuthController::class, 'showRoleLogin'])->name('role-login');
Route::get('/login/{role}', [LegacyAuthController::class, 'showLegacyLogin'])->name('legacy.login');
Route::post('/login/{role}', [LegacyAuthController::class, 'authenticate'])->name('legacy.authenticate');
Route::post('/logout', [LegacyAuthController::class, 'logout'])->name('legacy.logout');
Route::middleware('legacy.role:mahasiswa')->group(function () {
Route::get('/dashboard/mahasiswa', MahasiswaDashboardController::class)->name('dashboard.mahasiswa');
Route::get('/mahasiswa/status-usulan', [MahasiswaPageController::class, 'statusUsulan'])->name('mahasiswa.status-usulan');
Route::get('/mahasiswa/praoutline/upload', [MahasiswaPageController::class, 'uploadPraoutline'])->name('mahasiswa.praoutline.upload');
Route::post('/mahasiswa/praoutline/upload', [MahasiswaPageController::class, 'storePraoutline'])->name('mahasiswa.praoutline.store');
Route::get('/mahasiswa/penawaran', [MahasiswaPageController::class, 'penawaran'])->name('mahasiswa.penawaran.index');
Route::get('/mahasiswa/penawaran/{id}', [MahasiswaPageController::class, 'showPenawaran'])->whereNumber('id')->name('mahasiswa.penawaran.show');
Route::post('/mahasiswa/penawaran/{id}/booking', [MahasiswaPageController::class, 'bookPenawaran'])->whereNumber('id')->name('mahasiswa.penawaran.book');
Route::get('/mahasiswa/pengumuman', [MahasiswaPageController::class, 'pengumuman'])->name('mahasiswa.pengumuman.index');
Route::get('/mahasiswa/pengumuman/{id}', [MahasiswaPageController::class, 'showPengumuman'])->whereNumber('id')->name('mahasiswa.pengumuman.show');
});
Route::middleware('legacy.role:admin')->group(function () {
Route::get('/dashboard/admin', AdminDashboardController::class)->name('dashboard.admin');
Route::get('/admin/legacy', AdminLegacyController::class)->name('admin.legacy');
Route::get('/admin/data/mahasiswa', [AdminPageController::class, 'mahasiswa'])->name('admin.data.mahasiswa');
Route::get('/admin/data/mahasiswa/create', [AdminPageController::class, 'createMahasiswa'])->name('admin.data.mahasiswa.create');
Route::post('/admin/data/mahasiswa', [AdminPageController::class, 'storeMahasiswa'])->name('admin.data.mahasiswa.store');
Route::get('/admin/data/mahasiswa/import', [AdminPageController::class, 'importMahasiswa'])->name('admin.data.mahasiswa.import');
Route::post('/admin/data/mahasiswa/import', [AdminPageController::class, 'storeImportMahasiswa'])->name('admin.data.mahasiswa.import.store');
Route::get('/admin/data/mahasiswa/{id}/edit', [AdminPageController::class, 'editMahasiswa'])->whereNumber('id')->name('admin.data.mahasiswa.edit');
Route::put('/admin/data/mahasiswa/{id}', [AdminPageController::class, 'updateMahasiswa'])->whereNumber('id')->name('admin.data.mahasiswa.update');
Route::delete('/admin/data/mahasiswa/{id}', [AdminPageController::class, 'destroyMahasiswa'])->whereNumber('id')->name('admin.data.mahasiswa.destroy');
Route::get('/admin/data/dosen', [AdminPageController::class, 'dosen'])->name('admin.data.dosen');
Route::get('/admin/data/dosen/create', [AdminPageController::class, 'createDosen'])->name('admin.data.dosen.create');
Route::post('/admin/data/dosen', [AdminPageController::class, 'storeDosen'])->name('admin.data.dosen.store');
Route::get('/admin/data/dosen/{id}/edit', [AdminPageController::class, 'editDosen'])->whereNumber('id')->name('admin.data.dosen.edit');
Route::put('/admin/data/dosen/{id}', [AdminPageController::class, 'updateDosen'])->whereNumber('id')->name('admin.data.dosen.update');
Route::delete('/admin/data/dosen/{id}', [AdminPageController::class, 'destroyDosen'])->whereNumber('id')->name('admin.data.dosen.destroy');
Route::get('/admin/data/kelompok-keahlian', [AdminPageController::class, 'kk'])->name('admin.data.kk');
Route::get('/admin/data/kelompok-keahlian/create', [AdminPageController::class, 'createKk'])->name('admin.data.kk.create');
Route::post('/admin/data/kelompok-keahlian', [AdminPageController::class, 'storeKk'])->name('admin.data.kk.store');
Route::get('/admin/data/kelompok-keahlian/{id}/edit', [AdminPageController::class, 'editKk'])->whereNumber('id')->name('admin.data.kk.edit');
Route::put('/admin/data/kelompok-keahlian/{id}', [AdminPageController::class, 'updateKk'])->whereNumber('id')->name('admin.data.kk.update');
Route::delete('/admin/data/kelompok-keahlian/{id}', [AdminPageController::class, 'destroyKk'])->whereNumber('id')->name('admin.data.kk.destroy');
Route::get('/admin/data/fakultas', [AdminPageController::class, 'fakultas'])->name('admin.data.fakultas');
Route::get('/admin/data/jurusan', [AdminPageController::class, 'jurusan'])->name('admin.data.jurusan');
Route::get('/admin/data/prodi', [AdminPageController::class, 'prodi'])->name('admin.data.prodi');
Route::get('/admin/praoutline', [AdminPageController::class, 'praoutline'])->name('admin.praoutline.index');
Route::get('/admin/praoutline/cari', [AdminPageController::class, 'praoutlineSearch'])->name('admin.praoutline.search');
Route::get('/admin/praoutline/keputusan', [AdminPageController::class, 'keputusan'])->name('admin.praoutline.keputusan');
Route::get('/admin/praoutline/kep-draft', [AdminPageController::class, 'kepDraft'])->name('admin.praoutline.kep-draft');
Route::get('/admin/praoutline/pemberitahuan', [AdminPageController::class, 'pemberitahuan'])->name('admin.praoutline.pemberitahuan');
Route::get('/admin/pengumuman', [AdminPageController::class, 'pengumuman'])->name('admin.pengumuman.index');
Route::get('/admin/pengumuman/create', [AdminPageController::class, 'createPengumuman'])->name('admin.pengumuman.create');
Route::post('/admin/pengumuman', [AdminPageController::class, 'storePengumuman'])->name('admin.pengumuman.store');
Route::get('/admin/jadwal', [AdminPageController::class, 'jadwal'])->name('admin.jadwal.index');
Route::get('/admin/jadwal/kalender', [AdminPageController::class, 'kalender'])->name('admin.jadwal.kalender');
Route::get('/admin/profile', [AdminPageController::class, 'profile'])->name('admin.profile');
Route::get('/admin/users', [AdminPageController::class, 'users'])->name('admin.users');
Route::get('/admin/pengaturan', [AdminPageController::class, 'pengaturan'])->name('admin.pengaturan');
});
Route::middleware('legacy.role:dosen')->group(function () {
Route::get('/dashboard/dosen', DosenDashboardController::class)->name('dashboard.dosen');
Route::get('/dosen/penawaran', [DosenPageController::class, 'penawaran'])->name('dosen.penawaran.index');
Route::get('/dosen/penawaran/create', [DosenPageController::class, 'createPenawaran'])->name('dosen.penawaran.create');
Route::post('/dosen/penawaran', [DosenPageController::class, 'storePenawaran'])->name('dosen.penawaran.store');
Route::get('/dosen/penawaran/{id}/edit', [DosenPageController::class, 'editPenawaran'])->whereNumber('id')->name('dosen.penawaran.edit');
Route::put('/dosen/penawaran/{id}', [DosenPageController::class, 'updatePenawaran'])->whereNumber('id')->name('dosen.penawaran.update');
Route::delete('/dosen/penawaran/{id}', [DosenPageController::class, 'destroyPenawaran'])->whereNumber('id')->name('dosen.penawaran.destroy');
Route::post('/dosen/penawaran/{id}/setuju', [DosenPageController::class, 'approvePenawaran'])->whereNumber('id')->name('dosen.penawaran.approve');
Route::post('/dosen/penawaran/{id}/tolak', [DosenPageController::class, 'rejectPenawaran'])->whereNumber('id')->name('dosen.penawaran.reject');
Route::get('/dosen/praoutline', [DosenPageController::class, 'daftarUsulan'])->name('dosen.praoutline.index');
Route::get('/dosen/praoutline/review/{id}', [DosenPageController::class, 'reviewDetail'])->whereNumber('id')->name('dosen.praoutline.review');
Route::get('/dosen/praoutline/review-saya', [DosenPageController::class, 'reviewSaya'])->name('dosen.praoutline.review-saya');
Route::get('/dosen/praoutline/cari', [DosenPageController::class, 'cari'])->name('dosen.praoutline.cari');
Route::get('/dosen/praoutline/bimbingan', [DosenPageController::class, 'bimbingan'])->name('dosen.praoutline.bimbingan');
Route::get('/dosen/praoutline/statistik', [DosenPageController::class, 'statistik'])->name('dosen.praoutline.statistik');
Route::get('/dosen/praoutline/pemberitahuan', [DosenPageController::class, 'pemberitahuan'])->name('dosen.praoutline.pemberitahuan');
Route::get('/dosen/pengumuman', [DosenPageController::class, 'pengumuman'])->name('dosen.pengumuman.index');
Route::get('/dosen/pengumuman/{id}', [DosenPageController::class, 'showPengumuman'])->whereNumber('id')->name('dosen.pengumuman.show');
Route::get('/dosen/profile', [DosenPageController::class, 'profile'])->name('dosen.profile');
Route::put('/dosen/profile', [DosenPageController::class, 'updateProfile'])->name('dosen.profile.update');
Route::get('/dosen/early-warning', [DosenPageController::class, 'earlyWarning'])->name('dosen.early-warning');
Route::get('/dosen/pra-lirs', [DosenPageController::class, 'praLirs'])->name('dosen.pra-lirs');
});