> Dibangun dengan arsitektur modern Django & Tailwind CSS (*Luminous Enterprise Kinetic*), dilengkapi sistem Content Management System (CMS) mandiri tanpa menggunakan Django ORM admin standar, utilitas migrasi otomatis SQLite ke PostgreSQL, serta standar kepatuhan UU Pelindungan Data Pribadi (UU PDP No. 27 Tahun 2022).
---
## 📑 Daftar Isi
-[1. Gambaran Umum Proyek](#1-gambaran-umum-proyek)
-[2. Fitur Utama](#2-fitur-utama)
-[3. Arsitektur & Struktur Direktori](#3-arsitektur--struktur-direktori)
**KHANSIA Enterprise Demo Portal** adalah portal gerbang terpusat bagi klien korporat, instansi kementerian, BUMN, dan evaluator teknis untuk mengeksplorasi, menguji, dan memvalidasi solusi perangkat lunak enterprise kelas industri yang dikembangkan oleh PT Khatulistiwa Nusantara Indonesia.
Portal ini menyajikan katalog portofolio interaktif seperti:
-**CyberGuard SOC Platform** (`cyberguard-demo.khansia.co.id`) — Sistem SIEM & automated threat hunting bersertifikasi ISO 27001.
Setiap solusi ditautkan langsung ke lingkungan **sandbox demo terisolasi** yang aman dan menggunakan data sintetis (*dummy dataset*).
---
## 2. Fitur Utama
### 🎨 2.1 Antarmuka Publik (High-Fidelity UI)
-**Desain Presisi (*Pixel-Perfect*):** Mengacu pada desain acuan `screen.png` dengan tipografi premium (*Plus Jakarta Sans*, *JetBrains Mono*), palet warna oranye amber enterprise, dan efek pencahayaan dinamis.
-**Katalog Berbasis Kartu Kaca (*Glass Cards*):** Kartu solusi interaktif dengan label klien terverifikasi, badge status sandbox langsung (*Live Sandbox Online*), badge versi LTS, rincian tech stack, dan aksi cepat (*Buka Dedicated Sandbox* & *Detail Arsitektur*).
-**Pencarian Cepat Berkecepatan Tinggi (Fitur ⌘K):** Bilah pencarian global interaktif dengan shortcut keyboard `⌘ + K` (Mac) atau `Ctrl + K` (Windows/Linux) serta pencarian real-time pada judul, kata kunci, deskripsi, dan teknologi.
-**Alur Pengujian 4 Langkah (*Testing Flow*):** Panduan terstruktur mulai dari pemilihan modul, permintaan kredensial instan, pengujian data sintetis, hingga *one-click environment reset*.
-**Client Trust Band & CTA Melayang:** Menampilkan daftar mitra korporat dan kementerian yang telah mempercayai solusi KHANSIA, disertai bilah kontak sticky (WhatsApp & Email briefing modal) yang siap diakses kapan saja.
-**Halaman Kebijakan Privasi Lengkap:** Standar kepatuhan hukum **UU PDP No. 27/2022** dan **ISO/IEC 27001** dengan deklarasi isolasi sandbox di rute `/kebijakan-privasi/`.
-**Tahun Hak Cipta Dinamis:** Footer otomatis menampilkan tahun berjalan (`{% now "Y" %}`) tanpa hardcode manual.
### ⚙️ 2.2 Sistem CMS Mandiri (*Custom Tailwind Admin*)
-**Tanpa Django ORM Admin:** Tidak menggunakan antarmuka `/admin/` bawaan Django sesuai arahan arsitektur (*Decoupled Repository Pattern*).
-**Autentikasi Aman:** Dilengkapi halaman login (`/login/`) dan proteksi sesi berbasis `@login_required` dengan visual Tailwind modern.
-**Manajemen Portofolio Penuh (CRUD):**
-**Tambah Portofolio:** Menambahkan aplikasi baru dengan kategori, tech stack, badge versi, arsitektur, dan fitur utama.
-**Edit Portofolio:** Memperbarui data portofolio secara real-time.
-**Hapus Portofolio:** Konfirmasi penghapusan aman dengan modal verifikasi.
-**Manajemen Banner & Thumbnail:**
- Unggah file gambar langsung (disimpan di `media/thumbnails/`).
- Input URL gambar eksternal (Unsplash/CDN).
- Pratinjau interaktif langsung (*Live Browser Frame Preview*) sebelum disimpan.
-**Sinkronisasi Atomik:** Data portofolio disimpan secara persisten dan thread-safe pada `portal/data/catalog.json`.
### 🔄 2.3 Utilitas Migrasi Database & Kesiapan Production
-**1-Command Runner SQLite ke PostgreSQL:** Skrip `./migrate_to_postgres.sh` siap pakai yang secara otomatis mengekspor skema dan data bersih (tanpa konflik permission key) lalu mengimpornya ke PostgreSQL.
-**Dukungan Multi-Database Dinamis:** Mendukung PostgreSQL dengan *connection pooling* (`CONN_MAX_AGE=600`) pada production dan fallback otomatis ke SQLite lokal pada development.
-**Panduan Deployment Server Lengkap:** Dokumentasi resmi `docs/DEPLOYMENT.md` mencakup Nginx Reverse Proxy, Gunicorn Systemd, SSL Certbot gratis, dan skrip deploy 1-klik (`deploy.sh`).
---
## 3. Arsitektur & Struktur Direktori
```text
portal_khansia/
├── docs/ # Dokumentasi spesifikasi proyek
│ ├── DEPLOYMENT.md # Panduan deployment production (Nginx, Gunicorn, SSL)
│ ├── DESIGN.md # Spesifikasi sistem desain & UI/UX tokens
3. Setelah berhasil login, Anda akan diarahkan ke **Dashboard Manajemen Portofolio** (`/manage/`).
4.**Operasi yang Tersedia:**
-**Tambah Baru:** Klik tombol `+ Tambah Portofolio` (`/manage/create/`). Anda dapat mengunggah gambar file banner lokal atau memasukkan URL gambar langsung.
-**Edit Portofolio:** Klik tombol `Edit` pada kartu aplikasi yang ingin diubah (`/manage/edit/<key>/`).
-**Hapus Portofolio:** Klik tombol `Hapus` pada kartu aplikasi, periksa dialog konfirmasi, dan setujui (`/manage/delete/<key>/`).
-**Lihat Langsung di Frontend:** Perubahan yang disimpan langsung terlihat seketika pada halaman utama publik (`/`).
---
## 7. Migrasi Database (SQLite ke PostgreSQL)
Jika Anda ingin beralih dari database lokal SQLite (`db.sqlite3`) ke server basis data **PostgreSQL**, gunakan utilitas otomatis berikut:
```bash
chmod +x migrate_to_postgres.sh
./migrate_to_postgres.sh
```
Utilitas ini akan:
1. Meminta parameter PostgreSQL (DB Name, User, Password, Host, Port) atau membaca otomatis dari `.env`.
2. Menguji koneksi dan membuat database target bila belum tersedia.
3. Menjalankan migrasi skema Django ke PostgreSQL.
4. Mengekspor data pengguna & log dari SQLite secara bersih (mengecualikan *contenttypes* dan *permissions* untuk mencegah bentrokan primary key).
5. Memuat data ke PostgreSQL dan memverifikasi integritas akun admin.
6. Menanyakan apakah Anda ingin mengaktifkan konfigurasi PostgreSQL ke dalam berkas `.env` secara otomatis.
---
## 8. Pengujian & Quality Assurance
Proyek ini dilengkapi dengan rangkaian unit testing komprehensif sebanyak **17 pengujian** yang memvalidasi seluruh fungsionalitas kritis:
```bash
.venv/bin/python manage.py test
```
### Ruang Lingkup Pengujian:
-**Katalog Publik:** HTTP 200, resolusi template, render metrik, dan validasi data aplikasi.
-**Pencarian & Filter:** Respons filter kategori, kata kunci, dan penanganan query kosong.
-**Autentikasi:** Form login, pengalihan login, pembatasan akses tanpa autentikasi, dan logout.
-**Pengiriman Aset Statis:** Validasi bahwa `logo.png`, `favicon.ico`, `portal.css`, dan `portal.js` selalu mengembalikan status HTTP 200 OK dengan MIME type yang tepat.
Untuk panduan lengkap deployment ke server VPS / Cloud berbasis **Ubuntu Linux** dengan Nginx, Gunicorn, PostgreSQL, dan sertifikat SSL Let's Encrypt, silakan baca dokumentasi terpisah di:
👉 **[`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md)**
### Ringkasan Alur Pembaruan di Production:
Cukup jalankan satu perintah berikut di server produksi:
```bash
./deploy.sh
```
Skrip ini secara otomatis menarik kode terbaru dari git, memperbarui dependensi, menjalankan migrasi database, mengumpulkan file statis, dan me-restart service systemd.