05 / CASE STUDY
BOOTCAMP CAPSTONE
Vidio Belajar.
A checkout that actuallytakes the money.
A course platform with a genuine Midtrans payment flow, built as my Harisenin bootcamp capstone.
BUILT WITH
- React
- Express
- Redux Toolkit
- Midtrans
- PostgreSQL
The checkout button on this platform actually processes payment through Midtrans.
01 / CONTEXT
I set that baron myself.
As a bootcamp capstone this could have stopped at a checkout button that pretends to succeed. I refused to stop there: the transaction had to be genuinely processed, with every bit of status handling that follows from it.
02 / EXECUTION
From picking a courseto opening the material.
The Midtrans payment gateway was integrated end to end for real transactions, the REST API was secured with JWT authentication, course material uploads were handled with Multer, and client state was managed with Redux Toolkit.
- 01PICK COURSE
- 02CHECKOUT
- 03MIDTRANS
- 04PAYMENT STATUS
- 05MATERIAL ACCESS
OPEN
03 / LEARNED
The first refactordriven by deployment.
Built as the capstone, then migrated from Railway to Vercel + Neon PostgreSQL when the free tier changed. It was my first taste of rewriting part of a system whose code was already correct, because the place it runs changed.
DECISIONS
Why it is builtthis way.
- 01Real Midtrans transactions
A checkout that pretends to succeed is far easier. Real transactions force every payment status to be handled until the material opens.
- 02JWT and Multer
The REST API is secured with JWT authentication, and course material uploads go through Multer.
- 03Moved off Railway
Railway's free tier changed, so the app moved to Vercel + PostgreSQL on Neon even though the code was already correct.
SCREENSHOTS
Taken straight from the application while running.


NEXT PROJECT
Voltrip06 ↗