minmon/docs/report-outline.md

185 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Report Outline (BAB 14)
## 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