# PROPOSAL PERURI CONNECT WEB3 - ID

> Tanggal draf: {{TANGGAL}}\
> Disiapkan untuk: **PERURI — Departemen TI/HR**\
> Disiapkan oleh: **Peruri Digital Security × Voyage**\
> Versi: {{VERSI}}

***

## 0) Ringkasan Eksekutif

**Tujuan.** Membangun sistem **Reward** karyawan yang **tercatat, bisa diverifikasi, dan aman** di atas **Blockchain** privat (permissioned). Sistem ini menyatu dengan **Peruri Connect** (login/SSO) dan aplikasi mobile yang sudah ada.\
**Manfaat utama.**

* Semua penerbitan Reward, transfer antar rekan (peer‑to‑peer), dan **redeem** (voucher/merch/fasilitas internal) **tercatat otomatis** dan **bisa diaudit**.
* **Aturan & kuota** dapat dikontrol (siapa boleh memberi, berapa banyak per hari/minggu/bulan).
* **Dashboard** untuk HR/Manajemen: laporan, grafik, dan ekspor CSV untuk audit.\
  **Target go‑live.** {{TANGGAL\_GO\_LIVE}} dengan pilot {{JUMLAH\_PENGGUNA\_PILOT}} pengguna.

> Catatan: Di dokumen ini, istilah yang umum dan teknis seperti **Reward**, **Blockchain**, **API**, **Dashboard**, **Token**, **Node** tetap menggunakan Bahasa Inggris agar konsisten dan mudah dikenali.

***

## 1) Sasaran & Indikator Keberhasilan

* **S1 — Verifiable Rewards.** Semua fungsi (issue/transfer/redeem) terekam di ledger dan mudah dilacak.
* **S2 — P2P Recognition.** Karyawan dapat memberi Reward ke rekan kerja sesuai **kebijakan & kuota**.
* **S3 — Integrasi Mulus.** Login pakai **Peruri Connect**; UI/UX konsisten di mobile app.
* **S4 — Kontrol & Tata Kelola.** Role & approval flow yang jelas; bisa **pause/resume** saat darurat.
* **S5 — Audit & Laporan.** Dashboard real‑time, ekspor data, dan jejak audit per transaksi.

**KPI contoh (bisa disesuaikan):**

* SLA layanan ≥ **99,5%**; p95 waktu respons API < **2 detik**.
* Finality transaksi < **5 detik** di jaringan privat.
* UAT pass rate ≥ **95%**; kepuasan pengguna (CSAT) ≥ **80%**.

***

## 2) Ruang Lingkup Pekerjaan (Scope of Work)

### 2.1 Analisis & Desain

* Memetakan alur Reward saat ini (aktor, peran, kuota, pengecualian).
* Mendesain **model token Reward** (mint dari Treasury → user, P2P dengan batasan).
* Menentukan mekanisme **redeem** (katalog, settlement, refund, anti‑fraud).

### 2.2 Blockchain Core & Smart Contracts

* **Jaringan:** **Hyperledger Besu** (Blockchain privat/permissioned) + konsensus **IBFT 2.0** (finality cepat).
* **Kontrak inti:** `RewardToken.sol` (token), `Treasury.sol` (kas), `Redemption.sol` (penukaran), `PolicyRegistry.sol` (kebijakan).
* **Fitur kunci:** mint/burn; transfer P2P dengan kuota & cooldown; **pause/resume**; **role‑based access**; event untuk audit/log.

### 2.3 Integration Layer (Services/API)

* Backend **Node.js + TypeScript** (REST/GraphQL) sebagai gerbang ke Blockchain.
* **Auth** via **Peruri Connect** (OAuth 2.0 + JWT).
* **OpenAPI** (spesifikasi) + contoh request/response, serta **webhook** untuk mitra redeem.

### 2.4 Treasury & Admin Tools

* Dashboard admin (atur penerbit, kuota, kebijakan, katalog redeem, laporan).
* Rekonsiliasi on‑chain/off‑chain & alert bila ada anomali.

### 2.5 Keamanan & Audit

* Review kode & **audit kontrak**; **penetration test** untuk API.
* **Monitoring** (Prometheus) & **visualisasi** (Grafana); log terpusat.
* Backup & Disaster Recovery (RPO/RTO disepakati).

### 2.6 Enablement

* Pelatihan untuk admin/ops/dev; runbook; handover; sesi **knowledge transfer**.

### 2.7 Support & Maintenance

* **Hypercare** pasca rilis; patch minor & perbaikan sesuai SLA.

***

## 3) Arsitektur Teknis — Penjelasan Gamblang

### 3.1 Kenapa **Hyperledger Besu** + **IBFT 2.0**?

* **Besu** adalah **Ethereum client** open‑source untuk **public** maupun **private/permissioned** network. Di mode privat, kita bisa membatasi **validator** (hanya node yang disetujui).
* **IBFT 2.0 (Proof‑of‑Authority)** memberi **finality cepat** (blok yang disetujui tidak fork), cocok untuk transaksi internal perusahaan.

> Referensi resmi:\
> • **Hyperledger Besu (docs)**: <https://besu.hyperledger.org/\\>
> • **Besu — Private (Permissioned) Networks**: <https://besu.hyperledger.org/private-networks\\>
> • **Tutorial — Create an IBFT 2.0 network**: <https://besu.hyperledger.org/private-networks/tutorials/privacy>

### 3.2 Topologi Dasar

* **Validator Nodes:** {{N\_VALIDATORS}} (contoh 2–4; bisa ditempatkan di TI PERURI & PDS).
* **Transaction Nodes (API‑facing):** {{N\_TX\_NODES}} untuk melayani aplikasi.
* **BAS/Indexer (opsional):** untuk analitik dan pencarian cepat.
* **Monitoring:** **Prometheus** (kumpulkan metrik) + **Grafana** (grafik/dashboards).
* **Spesifikasi VM awal (per node):** 4 vCPU, 8 GB RAM, 200 GB SSD (disesuaikan hasil uji beban).

> Referensi resmi:\
> • **Start Besu / System Requirements**: <https://besu.hyperledger.org/private-networks/get-started/start-node\\>
> • **Prometheus (official)**: <https://prometheus.io/\\>
> • **Grafana (official)**: <https://grafana.com/>

### 3.3 Identitas & Akses

* User masuk lewat **Peruri Connect**; sistem memetakan role HR/Manajemen/Admin ke **role on‑chain** (mis. Minter, Policy Admin).
* Aksi kritikal (ubah kebijakan, mint besar) dapat diproteksi **multisig** atau approval berjenjang.

### 3.4 Data & Privasi

* **On‑chain** hanya menyimpan data minimal (saldo token, event transaksi).
* **PII** tetap di database **Peruri Connect** (off‑chain). Untuk audit, bisa simpan **hash/pointer** di on‑chain.

### 3.5 Kontrak API (Sketsa Awam)

* `POST /rewards/issue` — HR/Admin menerbitkan Reward ke karyawan.
* `POST /rewards/transfer` — karyawan A memberi Reward ke karyawan B (sesuai kuota).
* `POST /rewards/redeem` — menukar Reward ke item katalog (voucher/merch/benefit).
* `GET /ledger/tx/:id` — cek detail transaksi.
* `GET /reports/summary` — ringkasan agregat (periode, unit kerja, dsb.).

**Teknologi pendukung API:**

* **Node.js** (runtime JavaScript untuk server) + **TypeScript** (pengetikan statis agar kode lebih aman/terbaca).
* **OpenAPI** (standar deskripsi API) untuk dokumentasi otomatis.
* **OAuth 2.0** (protokol otorisasi) + **JWT** (format token) untuk akses aman.

> Referensi resmi:\
> • Node.js: <https://nodejs.org/\\>
> • TypeScript: <https://www.typescriptlang.org/\\>
> • OpenAPI Initiative: <https://www.openapis.org/\\>
> • OAuth 2.0: <https://oauth.net/2/\\>
> • JWT (RFC 7519): <https://datatracker.ietf.org/doc/html/rfc7519>

***

## 4) Kebutuhan Fungsional (Functional Requirements)

### 4.1 Issue (Penerbitan)

* **Siapa** yang boleh menerbitkan (role Issuer/HR/Admin).
* **Kuota** per periode (bulanan/kuartal), dan **batas per orang**.
* **Aturan pembatalan** (burn/revoke) bila ada kesalahan input.

### 4.2 P2P Recognition (Transfer)

* **Batas harian/mingguan** dan **cooldown** per pengguna.
* **Filter penerima** (mis. unit kerja/kontrak aktif).
* **Pencegahan penyalahgunaan** (mis. anti “saling kirim” berulang).

### 4.3 Redeem

* **Katalog** item (voucher, merchandise, fasilitas internal).
* **Proses settlement** (siapa yang memotong stok, siapa yang mengganti biaya).
* **Anti‑fraud** (cek duplikasi/timing). **Refund** bila gagal.

### 4.4 Admin & Reporting

* **Role matrix**, approval flow, ekspor CSV, dan **audit trail**.
* **Anomaly detection** (mis. lonjakan transfer di jam tidak lazim).

### 4.5 Integrasi Mobile

* Komponen UI sederhana: daftar Reward, form transfer, katalog redeem, riwayat transaksi.
* **Error state** yang jelas (kuota habis, jaringan offline, dsb.).
* **Offline handling** (antrian, retry).

***

## 5) Non‑Functional Requirements (NFR) — Bahasa Sederhana

* **Security:** Standar praktik aman aplikasi web (contoh panduan OWASP ASVS), manajemen kunci, rotasi rahasia.
* **Performance:** Target respons cepat (p95 < 2 detik), dan proses transaksi selesai < 5 detik.
* **Availability:** Target ketersediaan ≥ 99,5%; jika ada gangguan, layanan **degrade gracefully**.
* **Compliance/Audit:** Logging, retensi data, jejak perubahan terkelola.
* **Observability:** Metrik + log + alert yang ditindaklanjuti tim on‑call.

***

## 6) Deliverables (Apa yang PERURI terima)

1. **Blockchain core & Smart Contracts** (source code, test, skrip deploy).
2. **API service** (containerized) + **OpenAPI docs**.
3. **Admin dashboards** (issuer/treasury/reports).
4. **Dokumentasi lengkap:** BRD, FSD, Arsitektur, Runbook, UAT, User/Admin Manual.
5. **Pelatihan & KT** (bahan + rekaman bila diizinkan).
6. **Laporan bulanan**, **Final report**, **Masa garansi & support** sesuai SLA.

***

## 7) Organisasi Proyek & Peran

* **Project Manager** — timeline, risiko, koordinasi stakeholder.
* **Blockchain Architect** — desain jaringan, keamanan, tata kelola.
* **Smart Contract Developer** — pengembangan Solidity + review/audit.
* **Backend/API Developer** — service, integrasi, monitoring.
* **QA (Fungsional)** — rencana uji, otomasi, UAT.
* **QA/Security** — pen‑test, SAST/DAST, hardening.
* **DevOps** — CI/CD, IaC, environment.
* **UI/UX** — desain dashboard & alur mobile.

> Lengkapi dengan nama personil, ringkas CV, dan alokasi FTE per fase.

***

## 8) Timeline (Contoh)

* **Phase 0 — Discovery (2–3 minggu):** BRD/FSD, persetujuan desain.
* **Phase 1 — Build (6–8 minggu):** chain + contracts + API + dashboards.
* **Phase 2 — UAT (2 minggu):** skenario uji, perbaikan, persetujuan.
* **Phase 3 — Launch (1 minggu):** produksi + **Hypercare** (4 minggu).

> Gunakan tanggal absolut agar sinkron dengan **change window** TI PERURI.

***

## 9) Budget (BOQ Skeleton)

### A. Implementation (Man‑Months)

| Role                 |           Qty |        Durasi |          Rate |      Subtotal |
| -------------------- | ------------: | ------------: | ------------: | ------------: |
| Project Manager      |     {{Q\_PM}} |     {{D\_PM}} |     {{R\_PM}} |     {{S\_PM}} |
| Blockchain Architect |   {{Q\_ARCH}} |   {{D\_ARCH}} |   {{R\_ARCH}} |   {{S\_ARCH}} |
| Smart Contract Dev   |     {{Q\_SC}} |     {{D\_SC}} |     {{R\_SC}} |     {{S\_SC}} |
| Backend/API Dev      |     {{Q\_BE}} |     {{D\_BE}} |     {{R\_BE}} |     {{S\_BE}} |
| QA (Func)            |     {{Q\_QA}} |     {{D\_QA}} |     {{R\_QA}} |     {{S\_QA}} |
| QA (Sec)             |    {{Q\_SEC}} |    {{D\_SEC}} |    {{R\_SEC}} |    {{S\_SEC}} |
| DevOps               | {{Q\_DEVOPS}} | {{D\_DEVOPS}} | {{R\_DEVOPS}} | {{S\_DEVOPS}} |

### B. Validator/Node (Tahunan/Periode Proyek)

| Item              | Spec                     |        Qty |     Term |          Rate |     Subtotal |
| ----------------- | ------------------------ | ---------: | -------: | ------------: | -----------: |
| Validator Node VM | 4 vCPU / 8GB / 200GB SSD | {{Q\_VAL}} | {{TERM}} | {{RATE\_VAL}} | {{SUB\_VAL}} |
| Tx Node VM        | 4 vCPU / 8GB / 200GB SSD |  {{Q\_TX}} | {{TERM}} |  {{RATE\_TX}} |  {{SUB\_TX}} |
| BAS/Indexer       | 4 vCPU / 8GB / 200GB SSD | {{Q\_BAS}} | {{TERM}} | {{RATE\_BAS}} | {{SUB\_BAS}} |

### C. Dokumentasi & Pelatihan

| Item                     | Qty |     Subtotal |
| ------------------------ | --: | -----------: |
| BRD, FSD, Dev Plan       |   1 | {{SUB\_DOC}} |
| Source + Config Packages |   1 | {{SUB\_SRC}} |
| UAT Docs & Sessions      |   1 | {{SUB\_UAT}} |
| User/Admin Manuals       |   1 | {{SUB\_MAN}} |
| Monthly & Final Report   |   1 | {{SUB\_REP}} |

***

## 10) Acceptance & Handover

* **Kriteria UAT** disepakati HR + TI; hasilnya ditandatangani.
* **Serah terima operasional**: node, keys, runbook, dashboard monitoring.
* **Garansi**: {{MASA\_GARANSI}} dengan SLA/respon time terdefinisi.

***

## 11) Risiko & Mitigasi (Contoh)

* **Penyalahgunaan kuota** → batas harian/mingguan + alert anomali + audit rutin.
* **Kompromi kunci** → kebijakan HSM/penyimpanan aman, rotasi, multisig, prinsip least‑privilege.
* **Drift integrasi** → contract test, API versioning, staging yang disiplin.
* **Vendor lock‑in** → standar terbuka, serah‑terima source, **knowledge transfer**.

***

## 12) Glosarium (Untuk Pembaca Non‑Teknis)

* **Blockchain:** Buku besar digital (ledger) yang mencatat transaksi secara berurutan dan sulit diubah.
* **Permissioned Network:** Jaringan privat; hanya pihak yang diizinkan yang dapat menjadi **validator**.
* **Validator:** Server yang memvalidasi dan menyetujui blok transaksi.
* **IBFT 2.0:** Mekanisme kesepakatan (consensus) berbasis otoritas; blok yang disetujui bersifat final (tidak fork).
* **Reward Token:** Satuan poin digital untuk sistem penghargaan (bukan koin untuk trading).
* **API:** Antarmuka untuk aplikasi saling berkomunikasi (mis. mobile app ↔ backend ↔ blockchain).
* **OAuth 2.0 / JWT:** Mekanisme otorisasi & format token akses untuk memastikan hanya pengguna yang berhak yang bisa memakai API.
* **OpenAPI:** Cara standar menulis dokumentasi API yang bisa dibaca manusia & mesin.
* **Prometheus/Grafana:** Alat untuk mengumpulkan metrik dan menampilkan dashboard monitoring.

***

## 13) Referensi Resmi (Official Links)

* **Hyperledger Besu (Docs/Official):** <https://besu.hyperledger.org/>
  * Private/Permissioned Networks: <https://besu.hyperledger.org/private-networks>
  * Start node & system requirements: <https://besu.hyperledger.org/private-networks/get-started/start-node>
* **OpenAPI Initiative:** <https://www.openapis.org/>
* **OAuth 2.0 (official community site):** <https://oauth.net/2/>
* **JWT — RFC 7519 (IETF):** <https://datatracker.ietf.org/doc/html/rfc7519>
* **Node.js:** <https://nodejs.org/>
* **TypeScript:** <https://www.typescriptlang.org/>
* **Prometheus:** <https://prometheus.io/>
* **Grafana:** <https://grafana.com/>

***

### Lampiran A — Skema Kontrak (Garis Besar, Bahasa Umum)

* **RewardToken.sol**
  * Menyimpan saldo Reward per karyawan.
  * Event: `Issued`, `Transferred`, `Redeemed`, `Burned`.
* **Treasury.sol**
  * Tempat mint/burn resmi; kontrol oleh Admin/Issuer sesuai kuota.
* **Redemption.sol**
  * Menyimpan katalog dan memotong saldo saat redeem; event `RedeemRequested`, `RedeemSettled`/`Refunded`.
* **PolicyRegistry.sol**
  * Menyimpan aturan kuota/cooldown/role; bisa diperbarui lewat approval.

> Catatan: Implementasi teknis (Solidity, test, gas policy) akan dilampirkan di repositori teknis saat Development Phase.

***

### Lampiran B — Contoh Alur 1 Menit

1. **Login** ke mobile app via **Peruri Connect**.
2. Buka **Transfer Reward**, pilih rekan kerja, masukkan jumlah (mis. 5 poin).
3. Sistem cek **kuota** & **cooldown** → jika OK, transaksi dibuat.
4. Backend mengirim transaksi ke **Blockchain (Besu)** → **finality** < 5 detik.
5. Penerima melihat saldo bertambah; event muncul di **Riwayat** & **Dashboard**.

***

References:

* [Kajian Transformasi Sistem Reward Digital](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/project-sistem-reward-karyawan-peruri#kajian-transformasi-sistem-reward-digital)
* [Ringkasan Eksekutif](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/project-sistem-reward-karyawan-peruri#ringkasan-eksekutif)
* [Narasi Pitch Singkat](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/project-sistem-reward-karyawan-peruri#narasi-pitch-singkat)
* [Proposal Kerja](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/project-sistem-reward-karyawan-peruri#proposal-kerja)
* [Simulasi Tanggapan](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/project-sistem-reward-karyawan-peruri#simulasi-tanggapan)
* [Tanggapan & Jawaban Pertanyaan Follow-Up dari Peruri](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/08/respon-follow-up-dari-peruri)
* [Rencana Teknis Pengerjaan](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/08/peruri_connect_plan)
* [Peruri Connect Spec Eksekusi v1](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/08/peruri_connect_spec_v1)
* [Uraian SDM - Peruri Connect X Blockchain](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/08/peruri_connect_sdm)
* [Proposal Peruri Connect X Blockchain - EN](https://baca.endhonesa.com/all-notas-markdowns/archived-oioi/2025/08/peruri_connect_x_blockchain_proposal_template)

***

P.S. Read this document freely for information and guidance. Do not redistribute or restate—no quotes, summaries, paraphrases, or derivatives—without prior written permission from [**Prof. NOTA**](https://nota.endhonesa.com/). Sharing the link is allowed. So, share the link, not the text. Do not discuss or re-tell the contents in any form—written, spoken, or recorded—without prior written permission.

***
