[๐ ] Log Pengembangan Secret Messenger #1: Flutter Web + Node (Tes Vibe Coding)
โจ Ringkasan GPT ใ
Hari ketika arsitektur teknis dan desain keamanan untuk messenger berfokus keamanan bagi pembelot Korea Utara di China selesai disusun, lalu rencana pengembangan MVP berbasis Flutter Web + Node ditulis.
๐งฎ Secret Messenger
Ini adalah messenger untuk pengguna pembelot Korea Utara yang hidup di China tanpa kartu identitas resmi.
- ๐ฑ Dapat diakses lewat browser tanpa instalasi
- ๐ฌ Dapat menerima informasi, melakukan percakapan rahasia, dan berbagi file
- ๐ก๏ธ Alat komunikasi berfokus keamanan berbasis Flutter Web
Proyek ini adalah eksperimen teknis untuk perlindungan hak asasi manusia dan dukungan bertahan hidup, bukan untuk tujuan politik. Tidak dibuat dengan asumsi distribusi publik atau pemanfaatan komersial. (๐ Dikelola hanya sebagai GitHub Private Repo.)
๐ Gambaran Proyek
| Item | Isi |
|---|---|
| Pengguna | Pembelot Korea Utara di China dengan literasi digital sangat rendah, dan ponselnya diawasi oleh aparat keamanan publik |
| Tujuan | Berbagi informasi, chat rahasia, dan berbagi file secara aman |
| Bentuk | Flutter Web SPA berbasis browser tanpa instalasi |
| Domain | https://???.net (disamarkan sebagai UI kalkulator) |
| Strategi penyamaran UI | Layar pertama terlihat seperti kalkulator โ saat operasi tertentu dimasukkan, permintaan masuk dikirim ke server |
| Cara masuk | Flutter Web mengirim entry key ke server lewat POST, lalu server menilai dan menerbitkan access token |
| Strategi keamanan kode | Kondisi/logika sensitif tidak dimasukkan ke client; semua keputusan dibuat di sisi server |
| Prioritas fitur | โ Penerimaan informasi โ โก Chat โ โข Berbagi file |
๐งช Proyek Eksperimen Vibe Coding
Pada saat yang sama, proyek ini adalah MVP untuk menguji kemungkinan penerapan nyata dan batas dari metode pengembangan bernama Vibe Coding.
- Desain dan implementasi dilakukan dengan bahasa alami, dan sebagian besar pembuatan kode dibantu AI.
- Pengguna berperan sebagai โperancang/koordinatorโ, bukan orang yang menulis kode secara langsung.
- Tujuannya adalah menilai efisiensi dan faktor risiko pengembangan yang dipimpin AI di dunia nyata.
Melalui eksperimen ini, aku ingin menjelajahi masa depan cara pengembangan berbasis AI dan memverifikasi apakah mutunya bisa diterapkan pada proyek hak asasi manusia sungguhan.
โ๏ธ Tech Stack
๐ท Frontend (Flutter Web)
-
Flutter 3.x(Web build) -
Material 3(optimal untuk penyamaran UI kalkulator) -
go_router(transisi halaman dan konfigurasi jalur masuk tersembunyi) -
Riverpod(manajemen state: UUID, sesi, dll.) -
http(komunikasi REST API)
๐ Strategi UI
- Layar awal:
TextField + grid tombolberbentuk kalkulator - Input operasi tertentu โ dikirim ke server โ jika valid, akses ke bagian internal diizinkan
- Trigger atau logika masuk tidak disertakan di client
๐ท Backend (Node.js + Express)
Node.js 18+-
Express.js(server REST API) -
SQLite(DB lokal berbasis file) -
Multer(upload file) -
node-cron(scheduler penghapusan berbasis TTL) - Middleware keamanan seperti
CORS,helmet, danrate-limit
๐ API Utama
-
POST /check-trigger- Server memeriksa string yang dikirim
- Jika cocok dengan kondisi trigger yang sudah didaftarkan, token sesi diterbitkan
-
GET /session/:idatau/inbox/:key- Hanya pengguna dengan session key yang diterbitkan server yang dapat mengakses fitur internal
-
POST /message,GET /messages- Menyimpan/mengambil pesan berbasis TTL
-
POST /upload,GET /file/:id- Mendukung upload file dan penghapusan otomatis
๐ท Infrastruktur / Deployment
-
Docker(menjamin konsistensi dan portabilitas lingkungan server) -
Ubuntu 22.04 LTS(Vultr VPS) -
Vultr VPS (region Hong Kong)โ untuk stabilitas akses dari China -
Cloudflare(DNS proxy + SSL + penyamaran IP) - Domain:
???.netโ domain untuk penyamaran kalkulator
๐ Strategi Keamanan
| Item | Penjelasan |
|---|---|
| Pemisahan kode | Kode sensitif seperti logika masuk dan trigger hanya ada di server |
| Pembatasan peran Flutter Web | Hanya merender UI dan mengirim input |
| Pemaksaan HTTPS | Cloudflare + Letโs Encrypt |
| Cloudflare proxy | Menyembunyikan IP server dan membantu pertahanan DDoS |
| Pembatasan CORS | Memblokir request dari domain di luar allowlist |
| Kebijakan no-cache | Menerapkan header no-store pada semua respons |
| TTL pesan | Penghapusan otomatis berdasarkan waktu pembuatan |
| TTL file | File dihapus dalam waktu yang ditentukan setelah upload, diproses oleh node-cron |
| Pembatasan penyimpanan lokal | Meminimalkan atau melarang penggunaan localStorage/cookie |
๐๏ธ Daftar Fitur
| Fitur | Status | Penjelasan |
|---|---|---|
| ๐ง UI penyamaran | ๐ข Sedang diimplementasikan | Disamarkan sebagai UI kalkulator, dengan kondisi masuk diterapkan lewat server |
| ๐ฅ Penerimaan informasi | ๐ข Sedang disiapkan | Pengumuman admin (hanya baca) |
| ๐ฌ Ruang chat | ๐ก Direncanakan | Chat grup anonim (berbasis TTL) |
| ๐ Berbagi file | ๐ก Direncanakan | Berbagi file dengan penghapusan otomatis |
| ๐ฅ Sistem penghapusan | ๐ก Direncanakan | Otomatisasi penghapusan TTL untuk pesan/file |
๐ Roadmap Pengembangan
- โ๏ธ Mendesain struktur sistem dan model keamanan
- ๐ Menetapkan tech stack + strategi penyamaran
-
๐ Membeli domain (
???.net) - ๐จ Scaffold kalkulator Flutter Web
- ๐จ Scaffold API Express + SQLite
- ๐ Membangun struktur pemrosesan entry key di server
- ๐ฆ Docker + otomatisasi deployment
- ๐ Deployment VPS + integrasi Cloudflare
- ๐งช Pengujian MVP
- ๐ฏ Stabilisasi dan distribusi internal
๐ Catatan
- Jangan pernah commit kode atau informasi sensitif ke GitHub.
- Kode Flutter untuk deployment masuk ke direktori
build/, dan kode server dijalankan hanya di dalam container Docker. - Semua komunikasi API dienkripsi melalui HTTPS, dan data pengguna otomatis dibuang setelah pengaturan TTL.
- Informasi sensitif seperti entry key kalkulator dan UUID pengguna tidak pernah dimasukkan ke frontend; semuanya diproses hanya berdasarkan private verification key di dalam server.
- Pemeriksaan kondisi masuk dan identifikasi pengguna disusun sebagai logika verifikasi satu arah yang hanya dilakukan di sisi server, sehingga meski kode Flutter Web terekspos, informasi keamanan tidak terbuka ke luar.
๐ค Catatan Developer
Proyek ini bukan sekadar aplikasi sederhana. Aku memulainya dengan kesadaran bahwa bagi sebagian orang, ini bisa menjadi alat bertahan hidup yang terhubung langsung dengan kehidupan.
Semoga teknologi tidak menjadi alat pengawasan, melainkan alat untuk kebebasan.
๐ญ Diary
Untuk apa aku hidup? Kekayaan dan kehormatan? Tidak. Hal-hal semacam itu sejak awal tidak layak menjadi tujuan. Semuanya hanya sarana.
Hidup seperti apa yang benar-benar kuinginkan? โฆ Entahlah, aku belum bisa mendefinisikannya. Bagaimanapun, jelas bahwa hidup itu termasuk dalam kategori besar mengasihi Allah / mengasihi sesama.
Bagaimanapun juga, melihat proyek ini membuat jantungku berdebar dan memberiku rasa girang, rasanya hal seperti inilah yang paling ingin kulakukan sekarang.
Jadi, untuk saat ini, mulai dari ini dulu.
Tinggalkan komentar