FRM← back to projects05 / 10

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.

STATUS
CAPSTONE
INPUT
COURSES
OUTPUT
ACCESS

BUILT WITH

  • React
  • Express
  • Redux Toolkit
  • Midtrans
  • PostgreSQL
visit live site ↗

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.

  1. 01PICK COURSE
  2. 02CHECKOUT
  3. 03MIDTRANS
  4. 04PAYMENT STATUS
  5. 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.

PAYMENTMidtrans, real transactions.
AUTHJWT on every endpoint.
MATERIALFile uploads through Multer.

DECISIONS

Why it is builtthis way.

  1. 01
    Real Midtrans transactions

    A checkout that pretends to succeed is far easier. Real transactions force every payment status to be handled until the material opens.

  2. 02
    JWT and Multer

    The REST API is secured with JWT authentication, and course material uploads go through Multer.

  3. 03
    Moved 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.

Vidio Belajar storefront: hero banner over a grid of course cards.
The storefront half: browse, then enrol. The easy half.
Admin panel listing courses with their category, author, price and discount.
Admin side: courses, prices, and the discount each one carries.

NEXT PROJECT

Voltrip06 ↗