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,92 @@
<?php
namespace App\Support;
class AdminNavigation
{
public static function build(array $user): array
{
$isSuper = ($user['lvl'] ?? null) === 'S';
$sections = [
[
'title' => 'Manajemen Data',
'icon' => 'folder',
'items' => $isSuper ? [
self::page('Data Fakultas', 'admin.data.fakultas', 'document'),
self::page('Data Jurusan', 'admin.data.jurusan', 'document'),
self::page('Data Program Studi', 'admin.data.prodi', 'document'),
] : [
self::page('Data Mahasiswa', 'admin.data.mahasiswa', 'users'),
self::page('Data Dosen', 'admin.data.dosen', 'users'),
self::page('Data Kelompok Keahlian', 'admin.data.kk', 'folder'),
],
],
[
'title' => 'User',
'icon' => 'user',
'items' => array_values(array_filter([
self::page('Profil Saya', 'admin.profile', 'user'),
$isSuper ? self::page('Manajemen Admin', 'admin.users', 'users') : null,
])),
],
[
'title' => 'Lainnya',
'icon' => 'briefcase',
'items' => [
['title' => 'Dokumen Sidang', 'href' => 'https://edoxid.untan.ac.id/', 'icon' => 'document', 'external' => true],
],
],
];
if (! $isSuper) {
array_splice($sections, 1, 0, [[
'title' => 'Praoutline',
'icon' => 'clipboard',
'items' => [
self::page('Daftar Draft Praoutline', 'admin.praoutline.index', 'document'),
self::page('Pencarian', 'admin.praoutline.search', 'search'),
self::page('Kep. Penunjukan Dosen', 'admin.praoutline.keputusan', 'clipboard'),
self::page('Kep. Draft Praoutline', 'admin.praoutline.kep-draft', 'clipboard'),
self::page('Pemberitahuan', 'admin.praoutline.pemberitahuan', 'bell'),
],
], [
'title' => 'Pengumuman',
'icon' => 'megaphone',
'items' => [
self::page('Daftar Pengumuman', 'admin.pengumuman.index', 'megaphone'),
self::page('Buat Pengumuman Baru', 'admin.pengumuman.create', 'document'),
],
], [
'title' => 'Jadwal Seminar/Sidang',
'icon' => 'clock',
'items' => [
self::page('Manajemen Data', 'admin.jadwal.index', 'document'),
self::page('Kalender', 'admin.jadwal.kalender', 'clock'),
],
], [
'title' => 'Pengaturan',
'icon' => 'warning',
'items' => [
self::page('Pengaturan Prodi', 'admin.pengaturan', 'warning'),
],
]]);
}
return [
'main' => [
['title' => 'Dashboard', 'href' => route('dashboard.admin'), 'icon' => 'home', 'active' => true],
],
'sections' => $sections,
];
}
private static function page(string $title, string $route, string $icon): array
{
return [
'title' => $title,
'href' => route($route, [], false),
'icon' => $icon,
];
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Support;
class DosenNavigation
{
public static function build(string $activeRoute): array
{
return [
'main' => [
['title' => 'Dashboard', 'href' => route('dashboard.dosen'), 'icon' => 'home', 'active' => $activeRoute === 'dashboard.dosen'],
],
'sections' => [
[
'title' => 'Utama',
'icon' => 'briefcase',
'items' => [
['title' => 'Penawaran Judul', 'href' => route('dosen.penawaran.index'), 'icon' => 'briefcase', 'active' => $activeRoute === 'dosen.penawaran.index'],
],
],
[
'title' => 'Tugas Akhir 1',
'icon' => 'folder',
'items' => [
['title' => 'Daftar Usulan', 'href' => route('dosen.praoutline.index'), 'icon' => 'folder', 'active' => $activeRoute === 'dosen.praoutline.index'],
['title' => 'Review Saya', 'href' => route('dosen.praoutline.review-saya'), 'icon' => 'chat', 'active' => $activeRoute === 'dosen.praoutline.review-saya'],
['title' => 'Pencarian Usulan', 'href' => route('dosen.praoutline.cari'), 'icon' => 'search', 'active' => $activeRoute === 'dosen.praoutline.cari'],
['title' => 'Daftar Bimbingan Saya', 'href' => route('dosen.praoutline.bimbingan'), 'icon' => 'users', 'active' => $activeRoute === 'dosen.praoutline.bimbingan'],
['title' => 'Statistik Usulan', 'href' => route('dosen.praoutline.statistik'), 'icon' => 'chart', 'active' => $activeRoute === 'dosen.praoutline.statistik'],
['title' => 'Pemberitahuan', 'href' => route('dosen.praoutline.pemberitahuan'), 'icon' => 'bell', 'active' => $activeRoute === 'dosen.praoutline.pemberitahuan'],
],
],
[
'title' => 'Lainnya',
'icon' => 'grid',
'items' => [
['title' => 'Pengumuman', 'href' => route('dosen.pengumuman.index'), 'icon' => 'megaphone', 'active' => $activeRoute === 'dosen.pengumuman.index' || $activeRoute === 'dosen.pengumuman.show'],
['title' => 'Akun Pengguna', 'href' => route('dosen.profile'), 'icon' => 'user', 'active' => $activeRoute === 'dosen.profile'],
['title' => 'Dokumen Sidang', 'href' => 'https://edoxid.untan.ac.id/', 'icon' => 'document', 'external' => true],
['title' => 'Early Warning', 'href' => route('dosen.early-warning'), 'icon' => 'warning', 'active' => $activeRoute === 'dosen.early-warning'],
['title' => 'Konsultasi Skripsi', 'href' => 'https://spota.untan.ac.id/konsultasi/', 'icon' => 'chat', 'external' => true],
['title' => 'Statistik Seminar', 'href' => 'https://spota.untan.ac.id/cek_banyak_sidang.php', 'icon' => 'chart', 'external' => true],
['title' => 'Konsultasi KP', 'href' => 'https://informatika.untan.ac.id/konsultasi/', 'icon' => 'chat', 'external' => true],
['title' => 'Pra LIRS (Dosen PA)', 'href' => route('dosen.pra-lirs'), 'icon' => 'clipboard', 'active' => $activeRoute === 'dosen.pra-lirs'],
['title' => 'Evaluasi Mahasiswa', 'href' => 'https://spota.untan.ac.id/steven/rekapMahasiswaEvaluasi.php?angkatan='.(date('Y') - 5).'&show=belumlulus', 'icon' => 'chart', 'external' => true],
],
],
],
];
}
}