docs: add report draft and dashboard form refinements

This commit is contained in:
Syahdan 2026-04-29 21:27:36 +07:00
parent 4e0cf0140f
commit 441e709193
26 changed files with 1700 additions and 505 deletions

View file

@ -4,109 +4,182 @@
### 1.1 Latar Belakang
- Importance of structured server documentation and monitoring
- Need for a simple admin dashboard for managing private servers and hosted services
- 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
- How to manage server data, services, domains, and internal notes in one web app?
- How to check whether a domain resolves to the expected server IP automatically?
- 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
- CRUD + monitoring dashboard only
- No SSH, no Docker orchestration, no real deployment automation
- DNS checking limited to A record / IPv4
- Single admin login
- 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
- Build a web-based dashboard for private server service management
- Provide simple DNS verification and summary monitoring
- 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
- Helps admins manage server and service records
- Helps students understand CRUD, relationships, and monitoring concepts
- 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 Web-Based Information Systems
### 2.1 Sistem Informasi Berbasis Web
### 2.2 CRUD Concept
### 2.2 Konsep CRUD
### 2.3 Monitoring Dashboard Concept
### 2.3 Konsep Dashboard Monitoring
### 2.4 DNS and A Record Resolution
### 2.4 DNS dan Resolusi A Record
### 2.5 Technologies Used
### 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
- Functional requirements
- Non-functional requirements
#### 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
- State chart diagram
- Sequence diagram
- Collaboration diagram
### 3.3 Perancangan Database
- Server table
- Service table
- Domain table
- Note table
- Auth tables
- 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
- Login page
- Dashboard page
- Server list/detail/form
- Service list/detail/form
- Domain list/detail/form
- Note list/detail/form
- 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 implementation
- Frontend implementation
- Authentication implementation
- DNS check implementation
#### 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
- Login test
- CRUD server test
- CRUD service test
- CRUD domain test
- CRUD note test
- DNS check test
- Dashboard summary test
- 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
- Tables/screenshots of successful scenarios
- 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
- Strengths of the system
- Current limitations
- Suggested future improvements
#### 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