Ram Digital Store
Private sourceToko produk digital dengan guest checkout, reservasi stok, pembayaran QRIS, invoice, dan pengiriman produk.

Produk digital. Alur belanja simpel. Jelajahi katalog di home, tinjau rincian belanja, lalu lengkapi formulir checkout. Home dan formulir checkout sebelum pesanan dibuat
Sorotan kontribusi saya
- Mengerjakan admin produk/stok/pesanan/popup, impor CSV/XLSX, ekspor stok, pencarian server, serta grafik yang dimuat tertunda.
- Mengintegrasikan KlikQRIS/Pakasir dengan verifikasi webhook dan konfirmasi status provider.
- Menangani callback terlambat, transaksi belum ditemukan, pembayaran setelah order expired, serta recovery admin.
Daftar isi · 8 modul kontribusi
Gambaran alur utama
6 langkahPembelian tanpa akun menghubungkan pilihan produk, reservasi stok, konfirmasi QRIS, dan pemenuhan digital. Status provider menjadi dasar penanganan pembayaran.
01Pilih dan pesan produk
Katalog dan keranjang
PembeliBuat order dan reservasi
Backend toko
02Verifikasi pembayaran
Bayar tagihan pesanan
Pembeli & provider QRISRekonsiliasi status
Backend toko
03Penuhi dan kirim pesanan
Pemenuhan sesuai jenis produk
Sistem & adminInvoice dan tindak lanjut
Pembeli & admin
Rincian proses dan percabangan
Katalog dan keranjangPembeli
Pilih produk, jumlah, serta beberapa item dalam satu keranjang. Checkout dapat dilakukan tanpa membuat akun.
Buat order dan reservasiBackend toko
Sistem memeriksa ketersediaan, mereservasi stok, dan menghubungkan item dengan order induk serta akses halaman pesanan.
Bayar tagihan pesananPembeli & provider QRIS
Tagihan QRIS dihubungkan dengan order. Status diterima melalui webhook dan pemeriksaan ke provider.
Rekonsiliasi statusBackend toko
Verifikasi callback dan status provider menentukan kelanjutan order, termasuk saat callback datang terlambat.
Apa hasil pembayaran?
- Pembayaran sah. Lanjut ke pemenuhan produk digital.
- Kedaluwarsa tanpa pembayaran. Reservasi dilepas agar stok tersedia kembali.
- Pembayaran terlambat / tidak sinkron. Gunakan rekonsiliasi dan recovery admin; jangan menganggapnya otomatis gagal.
Pemenuhan sesuai jenis produkSistem & admin
Order sah membuka detail/hak akses produk akun, atau mengikuti jalur upgrade akun pengguna sesuai jenis pembelian.
Invoice dan tindak lanjutPembeli & admin
Invoice serta email dihubungkan ke order. Admin menangani pengiriman ulang atau recovery ketika proses kirim bermasalah.
Reservasi stok, expiry, dan status provider dihubungkan melalui rekonsiliasi; pemenuhan produk mengikuti pembayaran sah serta jenis pesanan.
Tentang Ram Digital Store
Ram Digital Store adalah toko produk digital dengan katalog, keranjang, pembelian tanpa akun, pembayaran QRIS, pemenuhan produk, invoice, dan dashboard admin. Aplikasi membedakan pembelian produk akun dari layanan upgrade akun pengguna serta menghubungkan stok dengan status pembayaran.
Saya mengembangkan frontend, backend, database, integrasi pembayaran, pengiriman digital, dan pengujian proyek ini. Fokus teknisnya mencakup konsistensi reservasi stok dan penanganan perubahan status transaksi.
Kontribusi saya
Katalog, keranjang, dan guest checkout
Saya membangun halaman katalog, kategori, detail produk, pemilihan jumlah, serta keranjang multi-item. Saya mengerjakan checkout tanpa akun dan halaman pesanan berbasis token agar pembeli dapat mengikuti pembeliannya. Item keranjang dihubungkan dengan order induk untuk menyatukan status pembayaran dan keluaran pesanan.
Pengelolaan produk dan operasional admin
Saya mengembangkan pengelolaan produk, kategori, stok, pesanan, serta popup promosi. Saya menambahkan impor CSV/XLSX, ekspor stok, dan pencarian pesanan pada server. Pemuatan grafik dashboard ditunda agar komponen tersebut tidak ikut membebani pemuatan awal halaman admin.
Reservasi stok dan expiry pesanan
Saya mengerjakan perhitungan stok tersedia/terjual, reservasi ketika checkout, serta pelepasan reservasi saat pembayaran tidak selesai. Saya juga membedakan jalur pemenuhan produk akun dan upgrade akun pengguna. Validasi input impor membantu menjaga kesesuaian data stok dengan proses yang memakai data tersebut.
Integrasi QRIS dan verifikasi webhook
Saya menghubungkan provider pembayaran, termasuk pengembangan integrasi KlikQRIS, dengan tagihan pesanan. Saya memeriksa callback/webhook dan mengonfirmasi status kepada provider sebelum meneruskannya ke pembaruan order. Proses ini menjadi penghubung antara informasi pembayaran eksternal dan hak akses produk pada aplikasi.
Rekonsiliasi pembayaran dan recovery
Saya menangani callback terlambat, transaksi yang belum ditemukan, serta pembayaran yang terkonfirmasi setelah order lokal kedaluwarsa. Saya menambahkan rekonsiliasi dan recovery melalui admin agar perbedaan waktu antara polling, callback, serta job expiry dapat ditangani pada status pesanan yang terkait.
Pengiriman digital, invoice, dan email
Saya menghubungkan pembayaran sah dengan pemenuhan produk, pengungkapan detail, invoice, dan pengiriman email melalui Brevo. Saya memperbaiki pengiriman ulang invoice dari order induk keranjang, retry email, dan kontrol kirim admin. Masa tampil detail produk mengikuti resolver durasi akses yang ditetapkan aplikasi.
Database dan kontrol akses admin
Saya memigrasikan runtime penyimpanan ke PostgreSQL dan melepaskan ketergantungan runtime Supabase sebelumnya. Saya mengerjakan autentikasi admin, perlindungan mutasi same-origin, validasi Turnstile, dan pemeriksaan pembayaran. Saya juga menghubungkan kebutuhan penyimpanan objek, pengolahan gambar, dan spreadsheet dengan operasional toko.
Pengujian kasus transaksi
Saya menulis tes Vitest untuk verifikasi pembayaran, race condition, expiry, recovery, serta resolver durasi akses. Skenario tersebut membantu memeriksa hubungan order, stok, dan status provider ketika proses datang pada waktu berbeda, termasuk pada keranjang yang memiliki beberapa item dan pemenuhan yang terkait order induk.
Bidang & teknologi inti
Bidang proyek
Teknologi inti
73 commit dalam 12 bulan terakhir
Semua branch| Nov | Des | Jan | Feb | Mar | Apr | Mei | Jun | Jul | Agu | Sep | Okt | Nov | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Minggu | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Senin | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Selasa | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Rabu | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Kamis | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Jumat | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sabtu |
Cara perhitungan · 1 repo · 2 branch
Commit milik saya yang terjangkau dari seluruh branch remote saat sinkronisasi. Satu SHA dihitung sekali, termasuk jika ada di beberapa branch atau fork. Merge commit dikecualikan. Tanggal memakai waktu author dalam WIB, bukan waktu push. Streak saat ini tetap berjalan bila commit terakhir kemarin dan hari ini belum selesai.
Ini kalender commit dengan cakupan semua branch, sehingga angkanya dapat berbeda dari kalender contributions GitHub yang juga memiliki jenis aktivitas dan aturan branch sendiri. Kalender ini khusus untuk proyek yang sedang dibaca.
Riwayat kontribusi
73 commit non-merge milik saya · Seluruh branch · Data 3 November 2026.