BITLAB adalah aplikasi web untuk melacak portofolio aset kripto dalam satu dashboard terpusat, dengan harga pasar real-time dalam Rupiah (IDR). Aplikasi ini dibangun dengan Next.js dan menggunakan PocketBase sebagai backend.
-
Dashboard Portofolio
- Ringkasan nilai total portofolio dalam IDR
- Visualisasi alokasi aset dengan chart donut (Chart.js)
- PNL (profit & loss) dan persentase per aset
-
Manajemen Transaksi
- Catat transaksi buy dan sell
- Riwayat transaksi per aset
- Perhitungan realized PNL per transaksi
-
Smart Rebalance
- Set target persentase alokasi per aset
- Hitungan otomatis berapa yang perlu dibeli / dijual untuk mencapai target (berbasis IDR)
-
Settings Aset
- Tambah aset berdasarkan CoinGecko ID
- Simpan wallet address atau nama exchange
-
Autentikasi
- Register & login user via PocketBase
- Session disimpan di client via PocketBase auth store
- Next.js 16 (App Router)
- React 18
- Tailwind CSS
- Chart.js
- PocketBase sebagai backend dan auth
-
Clone repo
git clone https://github.com/Createch-Studio/CryptoPortofolio.git cd CryptoPortofolio -
Install dependency
npm install
-
Set environment variable
Buat file
.env.localdi folderbitlab-next(sudah dicontohkan di repo):NEXT_PUBLIC_PB_URL=https://urlpcketbaseanda
ganti dengan URL instance PocketBase kamu sendiri.
-
Jalankan dev server
npm run dev
Aplikasi akan berjalan di
http://localhost:3000.
Untuk deployment di Vercel, set environment variables berikut di Project Settings:
NEXT_PUBLIC_PB_URL– URL instance PocketBase (public, dipakai di client)
Pastikan nilai ini mengarah ke backend PocketBase yang sudah dikonfigurasi dengan koleksi:
userscryptostransactionsasset_stats
Struktur koleksi mengikuti skema yang dipakai di kode (misalnya field symbol, coingecko_id, wallet_address, total_qty, target_pct, dll).
Di package.json terdapat script:
npm run dev– menjalankan Next.js dev servernpm run build– build aplikasi untuk productionnpm run start– menjalankan hasil buildnpm run lint– menjalankan linting
- PocketBase diakses langsung dari komponen client (
"use client"), dengan auto cancellation dimatikan untuk menghindari error pada Next.js 16. - URL PocketBase tidak lagi hard-coded di kode, seluruhnya membaca dari
process.env.NEXT_PUBLIC_PB_URL. - Chart donut di dashboard menggunakan
Chart.jsdengan controllerDoughnutControlleryang sudah diregistrasi.
Proyek ini dirilis di bawah lisensi MIT.
Lihat file LICENSE untuk detail lengkap.