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.
Source Code
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.git2. Install dependencies
npm install3. Run development server
npm run dev