website pengelola wisata pemandian air panas
Go to file Use this template
ardhikaxx a189d988d9 fix(booking): samakan fitur pembayaran dengan ticketing 2026-03-09 01:20:20 +07:00
app fix(dashboard): hitung penjualan hanya dari transaksi yang sudah dikonfirmasi, bukan pending atau rejected 2026-02-25 04:27:16 +07:00
bootstrap feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
config feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
database refactor(seeder): update user data with Indonesian names and gmail emails 2026-02-26 21:59:53 +07:00
flowcharts docs(flowchart): tambah flowchart sistem lengkap 2026-03-09 01:14:48 +07:00
public chore: tambahkan file payment proof dan qr code yang baru 2026-02-25 04:31:00 +07:00
resources fix(booking): samakan fitur pembayaran dengan ticketing 2026-03-09 01:20:20 +07:00
routes feat(user): implementasi halaman riwayat tiket dan booking dengan dropdown menu user 2026-02-25 03:31:43 +07:00
storage feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
tests feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
.editorconfig feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
.env.example feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
.gitattributes feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
.gitignore feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
README.md docs(readme): remove documentation badge link 2026-02-26 22:13:22 +07:00
activity-diagram.md docs: tambahkan dokumentasi 5 activity diagram lengkap dengan panduan draw.io 2026-02-25 08:12:49 +07:00
artisan feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
composer.json feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
composer.lock feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
database.md docs: tambahkan dokumentasi lengkap struktur database dengan relasi antar tabel 2026-02-25 08:06:48 +07:00
package-lock.json feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
package.json feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
phpunit.xml feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
rule-web.md feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00
usecase.md docs: tambahkan dokumentasi use case diagram lengkap dengan panduan draw.io 2026-02-25 08:09:13 +07:00
vite.config.js feat(admin-ui): implementasi tema teal modern dengan UI elements yang lebih baik 2026-02-24 15:29:59 +07:00

README.md

🎫 Banyu Biru Ticketing & Booking System

Features Tech Stack Installation License


📋 Table of Contents


🎯 Tentang Sistem

Banyu Biru Ticketing & Booking System adalah sistem manajemen tiket dan booking berbasis web untuk objek wisata Banyu Biru di Nganjuk. Sistem ini memudahkan pengunjung untuk membeli tiket masuk dan melakukan booking pendopo secara online, serta membantu admin dalam mengelola transaksi dan verifikasi pembayaran.

🎯 Tujuan Sistem

Tujuan Deskripsi
🚀 Digitalisasi proses pembelian tiket dan booking pendopo
💳 Mempermudah pengunjung dalam melakukan transaksi online
📈 Meningkatkan efisiensi pengelolaan transaksi oleh admin
📱 Menyediakan sistem verifikasi tiket dengan QR code
📊 Memberikan laporan statistik penjualan real-time

Fitur Utama

👥 Fitur User (Pengunjung)

🎟️ Pembelian Tiket

Fitur Deskripsi
📋 Lihat daftar tiket yang tersedia dengan harga
📅 Pilih tanggal kunjungan dan jumlah tiket
📲 Generate QR code otomatis untuk setiap tiket
💰 Upload bukti pembayaran transfer
📄 Download tiket dalam format PDF setelah dikonfirmasi
🖨️ Print tiket langsung dari browser

🏛️ Booking Pendopo

Fitur Deskripsi
📆 Cek ketersediaan tanggal booking secara real-time
📝 Form booking dengan data pengunjung lengkap
💳 Upload bukti pembayaran booking
📊 Lihat status booking (pending/confirmed/rejected)
🔔 Notifikasi status verifikasi

📜 Riwayat Transaksi

Fitur Deskripsi
📋 Lihat riwayat pembelian tiket
📑 Lihat riwayat booking pendopo
🔍 Filter berdasarkan status transaksi
⬇️ Download ulang tiket yang sudah dikonfirmasi

👤 Manajemen Profil

Fitur Deskripsi
✏️ Edit profil (nama, email, telepon, alamat)
🔑 Ubah password dengan verifikasi password lama
👁️ Lihat informasi akun

🔐 Fitur Admin

📊 Dashboard

Fitur Deskripsi
🎫 Statistik total tiket terjual (confirmed)
💵 Penjualan bulan ini (tiket + booking)
💰 Total pendapatan dari transaksi terkonfirmasi
📈 Chart penjualan 6 bulan terakhir
📋 Daftar order dan booking terbaru

Verifikasi Pembayaran

Fitur Deskripsi
📋 Lihat daftar order tiket dengan status
🔎 Lihat detail order dan bukti pembayaran
✓️ Konfirmasi pembayaran tiket
Tolak pembayaran dengan alasan
✔️ Verifikasi pembayaran booking

📱 QR Scanner Verifikasi Tiket

Fitur Deskripsi
📷 Scan QR code tiket menggunakan kamera
⌨️ Input manual kode tiket
🔒 Verifikasi validitas tiket
✓️ Tandai tiket sebagai sudah dipakai
📊 Cek status tiket (valid/sudah dipakai)

🎫 Manajemen Tiket

Fitur Deskripsi
CRUD tiket (Create, Read, Update, Delete)
💵 Set harga tiket
🔄 Toggle status aktif/nonaktif tiket
📝 Deskripsi tiket

🏦 Manajemen Rekening Bank

Fitur Deskripsi
CRUD rekening bank untuk pembayaran
🔄 Set rekening aktif/nonaktif
👁️ Tampilkan rekening di halaman pembayaran user

👨‍💼 Manajemen Admin

Fitur Deskripsi
CRUD akun admin
👥 Assign role admin ke user
✏️ Edit profil admin
🔑 Ubah password admin

🛠️ Teknologi yang Digunakan

Backend

Technology Description
PHP Framework
Programming Language
Database
Role & Permission

Frontend

Technology Description
CSS Framework
Data Visualization
Beautiful Alerts
Icons
QR Code Scanner

Libraries & Tools

Library Description
🔲 SimpleSoftwareIO/simple-qrcode QR Code Generator
📄 Barryvdh/laravel-dompdf PDF Generator
🔐 Laravel Breeze Authentication Scaffolding

📋 Persyaratan Sistem

Requirement Description
🟢 PHP >= 8.2
📦 Composer
🗄️ MySQL >= 8.0
📦 Node.js & NPM (untuk asset compilation)
🌐 Web Server (Apache/Nginx)

📦 PHP Extensions Required

BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, GD

🚀 Instalasi

1 Clone Repository

git clone https://github.com/ardhikaxx/banyu-biru-nganjuk.git
cd banyu-biru-nganjuk

2 Install Dependencies

composer install
npm install

3 Konfigurasi Environment

cp .env.example .env
php artisan key:generate

Edit file .env dan sesuaikan konfigurasi database:

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

4 Migrasi Database

php artisan migrate

5 Seed Data (Opsional)

php artisan db:seed

6 Compile Assets

npm run build
# atau untuk development
npm run dev
php artisan storage:link

8 Jalankan Server

php artisan serve

🌐 Akses: http://127.0.0.1:8000


👤 Default Login

Role Email Password
🔴 Admin admin@banyubiru.com password
🔵 User 1 pengguna1@banyubiru.test password
🔵 User 2 pengguna2@banyubiru.test password
... ... ...
🔵 User 8 pengguna8@banyubiru.test password

⚠️ Penting: Ubah password default setelah login pertama kali!


📁 Struktur Folder

📂 wisata-web/
├── 📂 app/
│   ├── 📂 Http/Controllers/
│   │   ├── 📂 Admin/          # Controller untuk admin
│   │   ├── 📂 User/           # Controller untuk user
│   │   └── AuthController.php
│   ├── 📂 Models/             # Eloquent Models
│   └── 📂 Support/            # Helper functions
├── 📂 database/
│   ├── 📂 migrations/         # Database migrations
│   └── 📂 seeders/           # Database seeders
├── 📂 public/
│   ├── 📂 css/                # Compiled CSS
│   ├── 📂 images/             # Static images
│   ├── 📂 payment-proofs/     # Bukti pembayaran
│   └── 📂 qrcodes/            # Generated QR codes
├── 📂 resources/
│   ├── 📂 css/                # Source CSS
│   ├── 📂 js/                 # Source JavaScript
│   └── 📂 views/              # Blade templates
│       ├── 📂 admin/          # Admin views
│       ├── 📂 auth/           # Auth views
│       ├── 📂 user/           # User views
│       ├── 📂 layouts/        # Layout templates
│       └── 📂 partials/      # Reusable components
├── 📂 routes/
│   └── web.php               # Web routes
├── 📂 flowcharts/            # Flowchart documentation
├── 📄 database.md            # Database documentation
├── 📄 usecase.md             # Use case documentation
└── 📄 activity-diagram.md    # Activity diagram documentation

🎨 Tema & Desain

🎨 Color Palette

Color Hex Code Usage
🟦 Primary #0f766e Main buttons, headers
🟦 Secondary #14b8a6 Accents, highlights
🟩 Accent #5eead4 Hover states
Background #f0fdfa Page background

UI/UX Features

  • 📱 Responsive - Mobile, tablet, dan desktop
  • 🌙 Dark Sidebar - Dengan gradient teal
  • 🃏 Modern Cards - Dengan border teal
  • 🔘 Rounded Buttons - Desain modern
  • Animations - Smooth transitions
  • 🔔 SweetAlert - Konfirmasi yang indah
  • 👁️ Password Toggle - Show/hide password
  • Loading States - User feedback

📊 Database Schema

📋 Tabel Utama

No Tabel Deskripsi
1 users Data user dan admin
2 tickets Master data tiket
3 ticket_orders Order pembelian tiket
4 ticket_order_items Detail tiket per order
5 bookings Data booking pendopo
6 places Master data tempat (pendopo)
7 bank_accounts Rekening bank untuk pembayaran
8 roles & permissions Role-based access control

📖 Lihat dokumentasi lengkap: database.md


🔐 Keamanan

Feature Description
🔒 Password hashing menggunakan bcrypt
🛡️ CSRF protection pada semua form
👥 Role-based authorization (admin/user)
Input validation & sanitization
🗄️ SQL injection protection (Eloquent ORM)
🚫 XSS protection
📁 File upload validation (type & size)
Session management

📱 Fitur QR Code

🔲 Generate QR Code

Feature Description
Otomatis generate saat pembelian tiket
📐 Format: SVG (scalable)
🔢 Berisi kode tiket unik (AT-XXXXX)
📁 Disimpan di /public/qrcodes/

📷 Scan QR Code

Feature Description
📷 Menggunakan library html5-qrcode
📸 Akses kamera untuk scanning
🤖 Auto-detect dan submit
⌨️ Fallback: input manual kode tiket

🔄 Workflow Sistem

📈 Alur Pembelian Tiket

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│  Login   │───▶│  Pilih   │───▶│  Jumlah  │───▶│ Generate │
│          │    │  Tiket   │    │  Tiket   │    │   QR     │
└──────────┘    └──────────┘    └──────────┘    └──────────┘
                                                      │
                                                      ▼
┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│ Download │◀───│ Verified │◀───│ Upload   │◀───│  Payment │
│  Tiket   │    │   (✓)    │    │  Bukti   │    │          │
└──────────┘    └──────────┘    └──────────┘    └──────────┘

🏛️ Alur Booking Pendopo

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│  Login   │───▶│  Cek     │───▶│   Isi    │───▶│  Upload  │
│          │    │Ketersediaan│  │  Form    │    │  Bukti   │
└──────────┘    └──────────┘    └──────────┘    └──────────┘
                                                      │
                                                      ▼
                   ┌──────────┐    ┌──────────┐    ┌──────────┐
                   │ Booking  │◀───│ Verified │◀───│ Admin    │
                   │Confirmed │    │   (✓)    │    │ Verifikasi│
                   └──────────┘    └──────────┘    └──────────┘

📷 Alur Verifikasi Tiket

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│   Scan   │───▶│  Cek     │───▶│ Tampilkan│───▶│ Tandai   │
│    QR    │    │ Validitas│    │  Info    │    │ Dipakai  │
└──────────┘    └──────────┘    └──────────┘    └──────────┘

🐛 Troubleshooting

Error: Class "SimpleSoftwareIO\QrCode\Facades\QrCode" not found

composer require simplesoftwareio/simple-qrcode
php artisan storage:link

Error: Permission denied pada folder storage

chmod -R 775 storage bootstrap/cache

📷 QR Scanner tidak bisa akses kamera

  • Pastikan browser memiliki izin akses kamera
  • Gunakan HTTPS (atau localhost)
  • Coba browser lain (Chrome/Firefox)

🤝 Kontribusi

Kontribusi sangat diterima! Silakan:

1. 🍴 Fork repository ini
2. 🌿 Buat branch fitur (`git checkout -b feature/AmazingFeature`)
3. 💾 Commit perubahan (`git commit -m 'Add some AmazingFeature'`)
4. 📤 Push ke branch (`git push origin feature/AmazingFeature'`)
5. 🔀 Buat Pull Request

📝 License

License

Sistem ini menggunakan framework Laravel yang berlisensi MIT license


👨‍💻 Developer

Ardhika
🔗 GitHub
📦 Repository

📞 Kontak & Support

Jika ada pertanyaan atau masalah, silakan:

Contact Link
🐛 Buat Issue
📧 Email

🙏 Acknowledgments

Thanks To Description
🦁 Laravel Framework
🎨 Bootstrap Team
🔰 Font Awesome
📊 Chart.js
🔔 SweetAlert2
🔲 SimpleSoftwareIO QR Code
📷 html5-qrcode Library

Views

Made with ❤️ for Banyu Biru Nganjuk

© 2026 Banyu Biru Ticketing & Booking System