# Report Outline (BAB 1–4) ## BAB 1 - Pendahuluan ### 1.1 Latar Belakang - Pentingnya pendataan server, layanan, domain, dan dokumentasi internal secara terpusat - Kebutuhan dashboard web sederhana untuk membantu admin memantau aset server private - Kebutuhan pemeriksaan DNS dasar agar domain dapat diverifikasi terhadap IP server yang diharapkan ### 1.2 Rumusan Masalah - Bagaimana membangun aplikasi web terproteksi untuk mengelola server, service, domain, dan note dalam satu dashboard? - Bagaimana memeriksa apakah domain mengarah ke IP server yang benar secara sederhana? - Bagaimana menampilkan relasi data, misalnya note per server, langsung dari halaman detail? ### 1.3 Batasan Masalah - Aplikasi berupa dashboard CRUD + monitoring ringan - Hanya satu aktor admin - DNS checking terbatas pada A record / IPv4 - Tidak mencakup SSH, deployment automation, Docker orchestration, atau reverse proxy management - Fokus implementasi pada web app + server app + PostgreSQL ### 1.4 Tujuan - Membangun dashboard manajemen layanan server private berbasis web - Menyediakan CRUD untuk server, service, domain, dan note - Menyediakan pemeriksaan DNS sederhana dan ringkasan dashboard ### 1.5 Manfaat - Membantu admin mendokumentasikan dan memantau aset server - Membantu proses pembelajaran relasi data, CRUD, auth, dan monitoring dasar - Menjadi contoh implementasi full-stack berbasis React, tRPC, Drizzle, dan PostgreSQL ## BAB 2 - Tinjauan Pustaka ### 2.1 Sistem Informasi Berbasis Web ### 2.2 Konsep CRUD ### 2.3 Konsep Dashboard Monitoring ### 2.4 DNS dan Resolusi A Record ### 2.5 Otentikasi pada Aplikasi Web ### 2.6 Teknologi yang Digunakan - React - TanStack Router - TanStack Query - tRPC - PostgreSQL - Drizzle ORM - better-auth - Effect - Bun ## BAB 3 - Analisis dan Perancangan Sistem ### 3.1 Analisis Kebutuhan #### Kebutuhan Fungsional - Admin dapat sign in untuk mengakses dashboard - Sistem mengarahkan `/` ke `/dashboard` atau `/login` berdasarkan sesi - Admin dapat mengelola data server - Admin dapat mengelola data service - Admin dapat mengelola data domain - Admin dapat menjalankan DNS check untuk domain - Admin dapat mengelola note server - Admin dapat melihat note yang terkait langsung dari halaman detail server - Sistem menampilkan ringkasan dashboard dan data terbaru #### Kebutuhan Non-Fungsional - Antarmuka sederhana dan student-friendly - Relasi data dipilih melalui select input agar mengurangi kesalahan input ID manual - Data list ditampilkan dengan urutan stabil - Aksi hapus memakai konfirmasi dua langkah berbasis ikon ### 3.2 Perancangan Sistem - Use case diagram - Class diagram - Activity diagram - State chart diagram - Sequence diagram - Collaboration diagram ### 3.3 Perancangan Database - Tabel `server` - Tabel `service` - Tabel `domain` - Tabel `note` - Tabel auth bawaan better-auth - Relasi: - server -> services - server -> notes - service -> domains - Aturan cascade delete pada relasi utama ### 3.4 Perancangan Antarmuka - Halaman login (`/login`) - Redirect root (`/`) - Dashboard summary (`/dashboard`) - Halaman list/detail/form server - Halaman list/detail/form service - Halaman list/detail/form domain - Halaman list/detail/form note - Section note terkait pada detail server ## BAB 4 - Implementasi dan Pengujian ### 4.1 Implementasi Sistem #### Backend - Router tRPC untuk server, service, domain, note, dan dashboard summary - Validasi relasi parent-child pada create/update - DNS check menggunakan resolver IPv4 A record - Persist hasil DNS check ke database #### Frontend - Protected routes untuk area dashboard - CRUD forms dengan TanStack Form - Select input untuk relasi: - service -> server - domain -> service - note -> server - Resource tables dengan stable row key dan ordering stabil dari backend - Delete action berbasis ikon dengan dua klik konfirmasi - DNS status pada domain list sebagai tombol check dengan styling status badge #### Authentication - better-auth client + protected route redirect - Akses tanpa sesi diarahkan ke `/login` ### 4.2 Pengujian - Pengujian login admin - Pengujian CRUD server - Pengujian CRUD service - Pengujian CRUD domain - Pengujian CRUD note - Pengujian select relasi pada form - Pengujian DNS check domain - Pengujian note terkait pada halaman detail server - Pengujian ringkasan dashboard - Pengujian typecheck web dan API ### 4.3 Hasil Pengujian - Tabel atau screenshot untuk setiap skenario berhasil - Bukti hasil DNS check (`MATCH`, `MISMATCH`, `UNRESOLVED`) - Bukti relasi data tampil benar di halaman detail dan list ### 4.4 Evaluasi #### Kelebihan - Struktur data relasional jelas - UI CRUD sudah konsisten dengan select untuk foreign key utama - Ringkasan dashboard dan detail page saling terhubung - DNS checking sudah terintegrasi langsung di alur domain #### Keterbatasan - DNS checking hanya untuk A record / IPv4 - Belum ada multi-role auth - Belum ada fitur pagination, search, atau sorting manual dari UI - Full workspace typecheck masih terhalang issue pre-existing pada `apps/desktop` #### Saran Pengembangan - Tambah filter, search, dan pagination - Tambah histori DNS check - Tambah role/permission management - Tambah monitoring yang lebih luas selain DNS A record