๐ฏ Unit 1 โ Project Overview
Di akhir unit ini kamu akan:
- Tahu persis apa yang harus dibangun dan seberapa besar
- Punya definisi selesai yang jelas
- Sudah memilih ide proyek
- Punya rencana kerja yang realistis untuk sisa waktu camp
- โ TS-SDK Unit 4 selesai โ kamu bisa query dan broadcast transaksi
- โ Minimal satu contract sudah ter-deploy dari Phase 2
๐ Seberapa Besar Proyeknya?โ
Lebih kecil dari yang kamu pikirkan.
Kamu punya waktu sekitar satu minggu, dibagi dengan menyelesaikan Learning Track, menghadiri townhall, dan kemungkinan kuliah atau pekerjaan.
Peserta memilih ide ambisius, menghabiskan lima hari untuk arsitektur, lalu tidak punya apa pun untuk didemokan di hari terakhir.
Proyek kecil yang selesai dan berjalan mengalahkan proyek besar yang setengah jadi โ untuk kelulusan, untuk portofoliomu, dan untuk apa yang benar-benar kamu pelajari.
Kalau ragu antara dua ide, pilih yang lebih kecil. Kamu selalu bisa menambah fitur kalau waktunya cukup. Kamu tidak bisa menyelamatkan proyek yang tidak jalan.
โ Definisi Selesaiโ
Proyekmu dianggap selesai kalau memenuhi ini:
| Kriteria | Detail |
|---|---|
| Contract ter-deploy | Di Injective testnet, alamatnya tercatat |
| Frontend berjalan | Bisa dibuka dan dipakai, tidak harus cantik |
| Wallet terhubung | Pengguna bisa menghubungkan Keplr atau MetaMask |
| Minimal satu aksi tulis | Ada transaksi yang benar-benar mengubah state on-chain |
| Minimal satu aksi baca | Menampilkan data yang dibaca dari chain |
| Menangani error | Tidak crash saat transaksi gagal atau dibatalkan |
| README | Cara menjalankan, alamat contract, penjelasan singkat |
| Video demo | 2โ3 menit, menunjukkan fitur yang berjalan |
Antarmuka polos dengan fungsi yang benar-benar berjalan jauh lebih baik daripada antarmuka indah dengan tombol yang tidak melakukan apa-apa.
Kerjakan fungsinya dulu. Percantik hanya kalau waktunya tersisa.
๐ก Pilihan Ide Proyekโ
Opsi A โ Celengan Target (direkomendasikan)โ
Lanjutan langsung dari contract Celengan di Phase 2 Unit 1. Kamu sudah punya fondasinya, jadi bisa langsung fokus ke fitur dan frontend.
Fitur inti:
- Pengguna membuat target tabungan (nama + jumlah target)
- Siapa pun bisa menyetor ke sebuah target
- Progress bar menampilkan persentase tercapai
- Pembuat target bisa menarik dana setelah target tercapai
Kenapa bagus untuk camp: ruang lingkupnya jelas, membangun di atas kode yang sudah kamu pahami, dan mudah didemokan dalam tiga menit.
Opsi B โ Papan Komitmen On-Chainโ
- Pengguna menulis komitmen publik (misalnya "saya akan ship proyek ini")
- Menyetor sejumlah kecil INJ sebagai taruhan
- Menandai selesai untuk mengambil kembali taruhannya
- Papan menampilkan semua komitmen dan statusnya
Kenapa bagus: menunjukkan pola mapping, event, dan penarikan dengan syarat.
Opsi C โ Dashboard Pasar Injectiveโ
- Membaca daftar pasar spot dari indexer
- Menampilkan orderbook secara langsung
- Menghitung dan menampilkan spread
- Hanya baca, tanpa transaksi
Kenapa bagus: paling cepat dikerjakan, dan langsung memakai fitur khas Injective. Catatan: proyek ini murni baca. Kalau kamu memilih ini, tambahkan minimal satu aksi tulis (misalnya menyimpan daftar pasar favorit ke sebuah contract) supaya memenuhi definisi selesai.
Opsi D โ Ide sendiriโ
Dipersilakan. Ceklah dengan panitia di grup Telegram supaya ruang lingkupnya masuk akal.
Ingat pembahasan di Phase 1: antarmuka bahasa Indonesia, tampilan nilai dalam rupiah, alur onboarding untuk pengguna yang baru pertama kali punya wallet.
Ini bukan sekadar penyesuaian kosmetik โ ini celah nyata yang tidak digarap tim global, dan menunjukkan kamu memikirkan pengguna, bukan hanya kode.
๐๏ธ Arsitekturโ
Pilih jalur contractโ
| Solidity (EVM) | CosmWasm (Rust) | |
|---|---|---|
| Kalau kamu | Lebih nyaman dengan JS/Solidity | Ingin mendalami Rust |
| Deploy | Hardhat 3 / Foundry | injectived + Docker |
| Panggil dari frontend | wagmi + viem (atau ethers.js) | MsgExecuteContractCompat |
| Tingkat kesulitan | ๐ข Lebih mudah | ๐ก Lebih menantang |
Apa pun jalur yang kamu pilih, jangan pakai RPC https://k8s.testnet.json-rpc.injective.network/ yang masih beredar di banyak tutorial.
Endpoint itu menerima transaksimu โ transaksinya benar-benar masuk chain โ tapi tidak pernah mengembalikan receipt. Deploy dan setiap transaksi akan terlihat menggantung selamanya padahal sebenarnya berhasil.
Pakai ini: https://testnet.sentry.chain.json-rpc.injective.network/
Detail lengkapnya ada di Unit 2.
Pakai Solidity kecuali kamu punya alasan khusus untuk CosmWasm.
Kamu sudah menyelesaikan kedua jalur di Phase 2, jadi persyaratan Learning Track sudah terpenuhi. Untuk guided project, pilih jalur yang membuatmu selesai, bukan yang paling mengesankan.
๐ Rencana Kerjaโ
Sesuaikan dengan waktumu, tapi urutannya penting:
| Tahap | Isi | Perkiraan |
|---|---|---|
| 1. Scope | Tetapkan fitur, tulis definisi selesai sendiri | 30 menit |
| 2. Contract | Tulis, test lokal, deploy ke testnet | 3โ4 jam |
| 3. Frontend dasar | Setup project, koneksi wallet | 2 jam |
| 4. Integrasi | Sambungkan baca & tulis ke contract | 3โ4 jam |
| 5. Poles | Penanganan error, status loading | 1โ2 jam |
| 6. Dokumentasi | README, screenshot | 1 jam |
| 7. Demo | Rekam video 2โ3 menit | 1 jam |
Rekam video demo satu hari sebelum deadline. Selalu ada yang tidak beres saat merekam โ testnet lambat, faucet kosong, atau bug yang baru ketahuan.
Menyisakan satu hari penyangga adalah perbedaan antara lulus dan tidak.
๐ซ Batasi Ruang Lingkup Sekarangโ
Tulis daftar ini sebelum mulai ngoding, dan patuhi:
Yang akan saya bangun:
- ...
Yang TIDAK akan saya bangun (meski tergoda):
- ...
Contoh daftar "tidak" yang bagus: autentikasi, dukungan multi-bahasa, mode gelap, aplikasi mobile, dukungan multi-chain, panel admin.
Menetapkan batas ruang lingkup secara eksplisit adalah salah satu keterampilan paling berharga dalam rekayasa perangkat lunak.
Kalau kamu bisa menunjukkan daftar ini di showcase dan menjelaskan kenapa kamu memotong sesuatu, itu justru menunjukkan kedewasaan teknis โ bukan kekurangan.
โ Checklist Sebelum Mulai Ngodingโ
- Ide proyek dipilih
- Daftar fitur ditulis (maksimal 3โ4 fitur inti)
- Daftar "tidak akan dibangun" ditulis
- Jalur contract dipilih (Solidity atau CosmWasm)
- Definisi selesai versimu sendiri sudah tertulis
- Ada waktu penyangga di jadwal untuk merekam demo
๐ฏ Rangkumanโ
- Kecil dan selesai mengalahkan besar dan setengah jadi
- Definisi selesai: contract ter-deploy ยท frontend jalan ยท wallet terhubung ยท satu aksi baca dan satu aksi tulis ยท error tertangani ยท README ยท video demo
- Fungsi dulu, tampilan belakangan
- Pilih Solidity kecuali ada alasan khusus โ pilih jalur yang membuatmu selesai
- Tulis daftar "tidak akan dibangun" dan patuhi
- Rekam demo satu hari sebelum deadline, bukan di hari-H
Lanjut: Unit 2 โ Kontrak & Backend ๐