SahrulRamadhani29/portfolio

JokiIT.Online

Private sourceDalam pengembangan

Platform pengelolaan pesanan layanan IT: brief, negosiasi, invoice, penugasan, penyerahan hasil, dan revisi.

SoloKontrak/domain backend, file private, worker, auth, dan frontend publik/auth/pesanan
Source code private

Sorotan kontribusi saya

Baca seluruh 8 modul kontribusi
Daftar isi · 8 modul kontribusi

Gambaran alur utama

6 langkah

Alur domain menghubungkan brief, penawaran, pengerjaan, dan revisi. Kemampuan backend dipisahkan dari antarmuka serta provider yang masih dalam pengembangan.

  1. 01Ajukan kebutuhan pekerjaan

    1. Buat pesanan dan brief

      Pelanggan
    2. Validasi lampiran private

      API berkas & worker
  2. 02Tinjau scope dan penawaran

    1. Review, quote, dan invoice

      Backend · admin
    2. Kelola payment attempt

      Abstraksi provider pembayaran
  3. 03Kerjakan dan tinjau hasil

    1. Penugasan dan delivery

      Backend · tim internal
    2. Terima atau minta revisi

      Pelanggan & handler revisi
Rincian proses dan percabangan
  1. Buat pesanan dan briefPelanggan

    Pelanggan masuk ke akun, menyampaikan kebutuhan layanan, dan memantau pesanan melalui halaman pelanggan.

  2. Validasi lampiran privateAPI berkas & worker

    Upload intent, finalisasi, pemeriksaan berkas, dan hak akses menghubungkan lampiran dengan pesanan tanpa menjadikannya otomatis public.

  3. Review, quote, dan invoiceBackend · admin

    Handler backend mengatur peninjauan brief, penawaran, invoice, serta perubahan scope. Antarmuka admin belum seluruhnya selesai.

  4. Kelola payment attemptAbstraksi provider pembayaran

    Backend menyediakan status, receipt, dan rekonsiliasi; gateway pada snapshot masih UNCONFIGURED.

    Provider siap dipakai?

    • Belum dikonfigurasi · snapshot ini. Pembayaran belum dapat dipresentasikan sebagai checkout produksi yang berhasil.
    • Jika nanti dikonfigurasi. Integrasi perlu diverifikasi sebelum melanjutkan alur pembayaran nyata.
  5. Penugasan dan deliveryBackend · tim internal

    Modul domain mendukung penugasan pekerja, publikasi hasil, notifikasi background, dan pencatatan perubahan status pesanan.

  6. Terima atau minta revisiPelanggan & handler revisi

    Backend menyediakan penerimaan hasil, permintaan revisi, dan keputusan revisi sesuai aturan pesanan.

    Keputusan atas hasil?

    • Diterima. Penerimaan hasil dicatat pada alur pesanan.
    • Revisi. Permintaan ditinjau dan pengerjaan dilanjutkan melalui alur revisi.

Frontend admin/operasional masih dikembangkan; gateway pembayaran berstatus UNCONFIGURED. Modul backend sudah memuat alur penawaran, delivery, dan revisi.

CASE_STUDY.mdProduk & kontribusi saya

Tentang JokiIT.Online

JokiIT.Online adalah platform pemesanan layanan IT yang menghubungkan brief pelanggan, lampiran private, penawaran, invoice, pengerjaan internal, penyerahan hasil, dan revisi. Pelanggan memiliki halaman untuk mengirim serta mengikuti pesanan, sedangkan modul backend mengatur perubahan status dan proses operasionalnya.

Saya mengerjakan spesifikasi, backend, kontrak API, worker, autentikasi, dan frontend secara bertahap. Halaman publik, auth, serta pesanan pelanggan sudah dibangun; antarmuka admin/operasional masih dikembangkan dan gateway pembayaran belum dikonfigurasi.

Kontribusi saya

Modul domain dan kontrak API

Saya memisahkan aturan pesanan, identitas, berkas, pembayaran, serta hasil kerja menjadi modul domain. Saya menyusun OpenAPI, tipe/DTO, dan validasi Zod untuk menghubungkan request, response, serta error pada client dan server. Transisi status, idempotency key, dan audit event digunakan pada proses yang dapat melibatkan pengulangan tindakan.

Database, autentikasi, dan hak akses

Saya mengembangkan schema/migrasi PostgreSQL melalui Prisma, autentikasi lokal, session Auth.js/NextAuth, hash password Argon2, serta profil pengguna. Saya menambahkan pemeriksaan hak akses pada operasi yang terkait akun dan pesanan. Saya juga mengerjakan CSP berbasis nonce dan pembatasan mutasi pada jalur aplikasi.

Upload/download berkas private

Saya membuat upload intent, finalisasi, metadata berkas, pemeriksaan deklarasi/isi, checksum, dan izin unduh. Adapter object storage S3 menghubungkan penyimpanan dengan proses pesanan. Hak akses dan hubungan akun menentukan kapan berkas brief atau hasil dapat dibaca melalui alur yang tersedia.

Worker dan pemulihan pengiriman background

Saya membangun worker pg-boss untuk antrean scan, notifikasi/email, rekonsiliasi, expiry, serta cleanup. Saya mengerjakan outbox dengan status, lease, dan recovery agar pekerjaan kirim yang terputus dapat ditindaklanjuti oleh proses background tanpa kehilangan hubungan dengan perubahan status di aplikasi.

Review, penawaran, dan siklus hasil pekerjaan

Saya mengembangkan handler review pesanan, quote/invoice, penugasan pekerja, serta publikasi delivery. Saya juga membuat penerimaan hasil, permintaan dan keputusan revisi, usulan perubahan scope, pembatalan, serta refund. Modul ini menghubungkan tindakan pelanggan dan internal dengan aturan status yang berlaku pada pesanan.

Abstraksi pembayaran dan rekonsiliasi

Saya membuat boundary provider, payment attempt, receipt, dan penanganan pengecualian nominal/status. Proses rekonsiliasi dihubungkan dengan status order serta pembatalan/refund. Gateway masih berstatus UNCONFIGURED, sehingga integrasi provider merupakan bagian pengembangan berikutnya sebelum pembayaran nyata dapat digunakan.

Frontend publik, auth, dan dashboard pelanggan

Saya membangun halaman publik, katalog layanan, kebijakan, masuk/daftar, profil, dashboard pelanggan, serta detail pesanan. Saya menghubungkan antarmuka dengan kontrak backend dan akses lampiran private. Pembangunan frontend diteruskan bertahap ke kebutuhan review, penawaran, serta operasional admin.

Pengujian, backup, dan runbook

Saya menulis unit/integration test Vitest, pemeriksaan kontrak/HTTP, serta E2E Playwright untuk alur backend dan akses. Saya juga menyiapkan tooling backup/restore serta runbook agar prosedur pemeliharaan dan recovery memiliki langkah yang dapat diikuti ketika aplikasi dikembangkan atau dioperasikan.

Bidang & teknologi inti

Bidang proyek

Backend & APIFull-stack WebData & DatabasesSoftware Quality

Teknologi inti

Next.jsTypeScriptPostgreSQLPrismapg-bossOpenAPIVitestPlaywright

5 commit dalam 12 bulan terakhir

Semua branch
NovDesJanFebMarAprMeiJunJulAguSepOktNov
Minggu
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Arahkan ke kotak untuk melihat tanggal.
SedikitBanyak
Streak saat ini0 hari
Streak terpanjang dalam periode2 hari
Hari aktif dalam periode5 hari
Data terverifikasi · pembaruan dijadwalkan tiap jam.
Cara perhitungan · 1 repo · 1 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

5 commit non-merge milik saya · Seluruh branch · Data 3 November 2026.

Kembali ke semua proyek