Kembali ke daftar proyek
  • Web App
  • Aug-Oct 2026

Semina

Full-Stack Developer · Proyek pribadi

Proyek website untuk pembelian tiket event, dikembangkan dari materi kelas MERN BuildWithAngga. Kontribusi saya mencakup CMS React untuk pengelolaan event dan backend API untuk checkout tiket. Checkout melalui antarmuka web peserta belum terintegrasi.

Dark event-platform landing page promoting technology events with a green Browse Now button.
  • KontribusiCMS event dan API checkoutCMS React dengan alur event dan order di backend.
  • ImplementasiAlur CMS dan transaksiForm event dinamis dan validasi checkout di sisi server.
  • Konteks proyekProyek pembelajaran mandiriDikembangkan dari materi kelas BuildWithAngga.

Gambaran umum

Semina adalah proyek website untuk pembelian tiket event. Proyek ini mencakup CMS React untuk mengelola kategori, speaker, metode pembayaran, event, dan daftar order, serta backend API untuk autentikasi peserta, riwayat order, dan checkout tiket.

Proyek pembelajaran mandiri ini dikembangkan dari materi backend BuildWithAngga melalui kelas Full Stack Developer — MERN Website Event. Materi kelas menjadi cakupan awal, lalu saya mengembangkannya menjadi alur kerja yang dijelaskan di sini.

Antarmuka sisi peserta masih berupa template HTML statis, sehingga registrasi dan checkout peserta melalui antarmuka web belum terintegrasi. Tidak ada deployment publik yang terverifikasi, dan repository backend menjadi satu-satunya tujuan kode publik.

Tanggung jawab saya

  • Membangun CMS React untuk kategori, speaker, metode pembayaran, dan event dengan React Bootstrap, Redux, dan Redux Thunk.
  • Menambahkan pencarian dengan debounce, filter kategori dan speaker, serta upload gambar pada daftar CMS.
  • Membangun form event dengan key points dinamis dan kategori tiket, harga, stok, status aktif, serta status Draft atau Published.
  • Mengintegrasikan session persistence, route guard berbasis role, autentikasi JWT, dan penanganan HTTP 401 di frontend.
  • Mengimplementasikan token CMS dan peserta yang terpisah, hashing kata sandi dengan bcrypt, otorisasi berbasis role untuk owner, organizer, dan admin, serta pembatasan data per organizer di backend.
  • Membangun checkout dengan transaksi MongoDB yang memvalidasi event, metode pembayaran, status tiket, jumlah, dan stok, dengan harga dan total dihitung di server.
  • Menambahkan daftar order di CMS dengan pagination dan filter rentang tanggal.
  • Mengintegrasikan aktivasi OTP dan email konfirmasi checkout melalui Nodemailer dan Mustache, ditambah upload JPEG dan PNG hingga 3 MB melalui Multer serta penanganan error terpusat.
Kembali ke daftar proyek