CMS Penjualan Tiket Online

Aplikasi CMS penjualan tiket online full-stack dengan React frontend dan Express backend. Mencakup manajemen event, kategori, talent, payment, order, serta sistem autentikasi multi-role (owner, organizer, admin, participant). Dilengkapi upload gambar, refresh token JWT, dan notifikasi email OTP.

React 18Redux (redux-thunk)React Router v6Bootstrap 5AxiosExpress 4MongoDBMongoose 7JWT (jsonwebtoken)bcryptjsMulterNodemailerMustache (Email Templates)
GitHub

Source Code

CMS Penjualan Tiket Online

Pendahuluan

Proyek ini adalah sistem CMS (Content Management System) untuk penjualan tiket online yang terdiri dari dua bagian utama. Frontend dibangun dengan React 18, Redux, dan Bootstrap 5 yang menyediakan antarmuka bagi organizer untuk mengelola event, kategori, talent, pembayaran, dan melihat order. Backend menggunakan Express 4 dengan MongoDB sebagai database, dilengkapi autentikasi JWT multi-role, upload file dengan Multer, dan pengiriman email otomatis untuk OTP dan konfirmasi order melalui Nodemailer.

Fitur

Manajemen Event CRUD

Buat, edit, hapus event dengan dukungan tiket bertingkat (Presale, Normal, VIP), status Draft/Published, dan filter pencarian

Manajemen Kategori

Kelola kategori event dengan nama unik per organizer

Manajemen Talent

Kelola pembicara/artis dengan upload avatar dan filter keyword

Manajemen Pembayaran

Kelola metode pembayaran dengan upload icon

Manajemen Order

Lihat semua order dengan filter tanggal dan pagination

Manajemen Pengguna

Buat dan kelola akun organizer dan admin dengan role-based access

Autentikasi Multi-Rol

Login dengan role owner, organizer, admin (CMS) dan participant (publik)

Refresh Token JWT

Sistem refresh token otomatis saat access token expired

Upload Gambar

Upload avatar talent, icon payment, thumbnail event dengan validasi format dan ukuran

Registrasi Participant

Pendaftaran dengan verifikasi OTP via email

Checkout Tiket

Pembelian tiket dengan pengurangan stok otomatis dan konfirmasi email

Role-Based Access Control

Setiap endpoint dilindungi middleware authorizeRoles

Pagination & Filter

Semua halaman list mendukung pagination dan filter keyword

SweetAlert2 Notifikasi

Konfirmasi hapus dan notifikasi sukses/error di seluruh fitur

How to Start this project

1. Clone using git

git clone https://github.com/username/cms-penjualan-tiket.git

2. Install dependencies

npm install

3. Run development server

npm run dev