Skip to content

ell487/event-ticketing

Repository files navigation

🎫 TIXEVENT - Event Ticketing Platform with Smart Queue System

Laravel Tailwind CSS MySQL

TIXEVENT adalah platform manajemen dan penjualan tiket acara (event ticketing platform) berbasis web yang dirancang untuk mengoptimalkan proses transaksi antara Admin, Event Organizer, dan Pengguna. Fitur unggulan dari platform ini adalah Smart Waiting List & Queue Automation System, yang membantu mengatasi masalah kehabisan tiket pada event dengan tingkat permintaan tinggi melalui sistem antrean otomatis yang adil dan terstruktur.


πŸ“Œ Project Overview

Sistem ini menyediakan manajemen tiket secara end-to-end yang mencakup:

1. Multi-Role Access Management

Memisahkan hak akses berdasarkan peran pengguna:

  • Admin β†’ Mengelola event, kategori, dan data pengguna.
  • Organizer β†’ Mengelola tiket, kuota, dan waiting list.
  • User β†’ Membeli tiket dan bergabung ke daftar tunggu.

2. Dynamic Ticket Quota Control

Organizer dapat menambah kuota tiket kapan saja apabila kapasitas acara ditingkatkan.

3. FIFO Queue System

Menggunakan prinsip First In First Out (FIFO) untuk menjaga keadilan antrean ketika tiket habis terjual.

4. Automated Email Notification

Sistem mengirimkan email otomatis menggunakan Mailtrap kepada pengguna yang berada di urutan teratas waiting list ketika tiket tersedia kembali.


βš™οΈ Technologies Used

Technology Description
Laravel Backend Framework
PHP Programming Language
MySQL Database Management System
Tailwind CSS Frontend Styling
Mailtrap Email Testing Service
Blade Template Engine Laravel View Engine

πŸš€ Installation & Local Setup

1. Clone Repository

git clone https://github.com/USERNAME/TIXEVENT.git
cd TIXEVENT

2. Install Dependencies

composer install
npm install
npm run dev

3. Configure Environment File

Salin file .env.example menjadi .env

cp .env.example .env

Kemudian sesuaikan konfigurasi database dan Mailtrap pada file .env.

Database Configuration

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tixevent_db
DB_USERNAME=root
DB_PASSWORD=

Mailtrap Configuration

MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=YOUR_MAILTRAP_USERNAME
MAIL_PASSWORD=YOUR_MAILTRAP_PASSWORD
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@tixevent.com
MAIL_FROM_NAME="TIXEVENT"

Generate application key:

php artisan key:generate

4. Database Migration & Seeding

Buat database bernama:

tixevent_db

Kemudian jalankan:

php artisan migrate --seed

5. Run Application

php artisan config:clear
php artisan serve

Aplikasi dapat diakses melalui:

http://127.0.0.1:8000

πŸ” Main Features

Event Management

  • Membuat event baru
  • Mengubah data event
  • Menghapus event
  • Menampilkan detail event

Ticket Management

  • Menambah jenis tiket
  • Mengatur harga tiket
  • Mengatur kuota tiket
  • Memantau tiket terjual

Waiting List System

  • User dapat bergabung ke waiting list ketika tiket habis.
  • Sistem menyimpan urutan antrean secara otomatis.
  • Organizer dapat memanggil pengguna teratas ketika kuota tersedia.

Email Notification

  • Mengirim email otomatis kepada pengguna yang dipanggil.
  • Berisi informasi event dan link pembelian tiket.

🧠 Smart Queue Workflow

Tiket Sold Out (Quota = 0)
            β”‚
            β–Ό
User Klik "Masuk Daftar Tunggu"
            β”‚
            β–Ό
Data Disimpan ke waiting_lists
(Status = waiting)
            β”‚
            β–Ό
Organizer Menambah Kuota Tiket
            β”‚
            β–Ό
Organizer Klik "Panggil"
            β”‚
            β–Ό
Sistem Mengirim Email Notifikasi
(Status = notified)
            β”‚
            β–Ό
User Membeli Tiket
            β”‚
            β–Ό
Status Menjadi "done"

πŸ’Ύ Database Schema Overview

users

Menyimpan data akun dan hak akses pengguna.

Field Type
id bigint
name varchar
email varchar
password varchar
role enum(admin, organizer, user)

events

Menyimpan informasi acara.

Field Type
id bigint
title varchar
description text
location varchar
event_date datetime
banner varchar

ticket_types

Menyimpan data jenis tiket.

Field Type
id bigint
event_id bigint
name varchar
price decimal
quota integer
sold_quantity integer

waiting_lists

Menyimpan data antrean pengguna.

Field Type
id bigint
user_id bigint
event_id bigint
status enum(waiting, notified, done)
created_at timestamp

🎯 Results and Conclusion

TIXEVENT berhasil mengimplementasikan sistem penjualan tiket yang terintegrasi dengan fitur waiting list otomatis untuk menangani kondisi tiket habis (sold out).

Melalui penerapan sistem antrean FIFO dan notifikasi email otomatis, proses distribusi tiket menjadi lebih transparan, adil, dan efisien. Selain itu, organizer memiliki fleksibilitas untuk menambah kuota tiket tanpa mengganggu integritas data maupun urutan antrean pengguna.

About

Projek Laravel Event-Ticketing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages