505 lines
70 KiB
Markdown
505 lines
70 KiB
Markdown
# Flowchart - Full Sistem Banyu Biru (SATU KESELURUHAN)
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ BANYU BIRU TICKETING & BOOKING SYSTEM │
|
||
│ FULL SYSTEM UNIFIED FLOWCHART │
|
||
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────┐ │
|
||
│ │ START │ │
|
||
│ └────────┬────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌───────────────────────────┐ │
|
||
│ │ USER ACCESSES WEBSITE │ │
|
||
│ │ (Buka browser, ketik URL) │ │
|
||
│ └───────────────┬───────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌────────────────────────────┐ │
|
||
│ │ {USER LOGGED IN?} │ │
|
||
│ │ (Cek Session) │ │
|
||
│ └─────────────┬──────────────┘ │
|
||
│ │ │
|
||
│ ┌─────────┴─────────┐ │
|
||
│ │ │ │
|
||
│ NO YES │
|
||
│ │ │ │
|
||
│ ▼ ▼ │
|
||
│ ┌─────────────────────────┐ │ ┌─────────────────────────────┐ │
|
||
│ │ SHOW HOME PAGE │ │ │ {CHECK ROLE} │ │
|
||
│ │ (Public Content) │ │ └─────────────┬─────────────┘ │
|
||
│ │ - Banner │ │ │ │
|
||
│ │ - Info Tempat │ │ ┌────────┴────────┐ │
|
||
│ │ - Layanan │ │ │ │ │
|
||
│ └────────────┬────────────┘ │ ADMIN USER │
|
||
│ │ │ │ │ │
|
||
│ ▼ │ ▼ ▼ │
|
||
│ ┌─────────────────────────┐ │ ┌─────────┐ ┌─────────────┐ │
|
||
│ │ USER CLICKS: │ │ │DASHBOARD│ │HOME PAGE │ │
|
||
│ │ - LOGIN │ │ │(Admin) │ │(User) │ │
|
||
│ │ - REGISTER │ │ └────┬────┘ └──────┬──────┘ │
|
||
│ │ - LIHAT TIKET │ │ │ │ │
|
||
│ │ - LIHAT BOOKING │ │ │ │ │
|
||
│ └────────────┬────────────┘ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ ▼ │ │ │ │
|
||
│ ┌─────────────────────────┐ │ ┌────┴────┐ ┌────┴──────┐ │
|
||
│ │ {ACTION SELECTED?} │ │ │ │ │ │ │
|
||
│ └────────────┬────────────┘ │ │ │ │ │ │
|
||
│ │ │ ▼ ▼ ▼ ▼ │
|
||
│ ┌────────────────────┼────────────────────┐ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ ▼ ▼ ▼ │ │ │ │ │
|
||
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │
|
||
│ │ LOGIN │ │ REGISTER │ │ LOGOUT │ │ │ │ │ │
|
||
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ ▼ ▼ ▼ │ │ │ │ │
|
||
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │
|
||
│ │ INPUT EMAIL & │ │ INPUT: NAME, │ │ DESTROY SESSION │ │ │ │ │ │
|
||
│ │ PASSWORD │ │ EMAIL, PASSWORD │ │ CLEAR AUTH │ │ │ │ │ │
|
||
│ └────────┬──────────┘ └────────┬──────────┘ └────────┬──────────┘ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ ▼ ▼ ▼ │ │ │ │ │
|
||
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │
|
||
│ │ VALIDATE & │ │ VALIDATE & │ │ REDIRECT TO │ │ │ │ │ │
|
||
│ │ CHECK CREDENTIAL │ │ CHECK EMAIL │ │ HOME PAGE │ │ │ │ │ │
|
||
│ └────────┬──────────┘ └────────┬──────────┘ └───────────────────┘ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ ▼ ▼ │ │ │ │ │
|
||
│ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │
|
||
│ │ {VALID?} │ │ {VALID?} │ │ │ │ │ │
|
||
│ └────────┬──────────┘ └────────┬──────────┘ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ ┌──────┴──────┐ ┌──────┴──────┐ │ │ │ │ │
|
||
│ NO YES NO YES │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │ │
|
||
│ ▼ ▼ ▼ ▼ │ │ │ │ │
|
||
│ ┌──────┐ ┌───────────────────┐ ┌──────┐ ┌───────────────────┐ │ │ │ │ │
|
||
│ │ERROR │ │ CREATE SESSION │ │ERROR │ │ HASH PASSWORD │ │ │ │ │ │
|
||
│ └──┬───┘ └────────┬──────────┘ └──┬───┘ └────────┬──────────┘ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │ │
|
||
│ │ ▼ │ ▼ │ │ │ │ │
|
||
│ │ ┌───────────────────┐ │ ┌───────────────────┐ │ │ │ │ │
|
||
│ │ │ {ROLE = ADMIN?} │ │ │ INSERT TO DB │ │ │ │ │ │
|
||
│ │ └────────┬──────────┘ │ │ CREATE SESSION │ │ │ │ │ │
|
||
│ │ │ │ └────────┬──────────┘ │ │ │ │ │
|
||
│ │ ┌──────┴──────┐ │ │ │ │ │ │ │
|
||
│ │ YES NO │ │ │ │ │ │ │
|
||
│ │ │ │ │ ▼ │ │ │ │ │
|
||
│ │ ▼ ▼ │ ┌───────────────────┐ │ │ │ │ │
|
||
│ │ ┌────────┐ ┌────────┐ │ │ REDIRECT TO │ │ │ │ │ │
|
||
│ │ │DASHBOARD│ │ HOME │ │ │ HOME │ │ │ │ │ │
|
||
│ │ └────────┘ └────────┘ │ └───────────────────┘ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ └────────────────────────────┴───────────────────────────────────┘ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ ▼ ▼ ▼ ▼ │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ ADMIN MENU OPTIONS │ │
|
||
│ │ ┌──────┬──────┬──────┬──────┬────┐ │ │
|
||
│ │ │ Tiket│ Bank │ Order│Book │QR │ │ │
|
||
│ │ │ Mgmt │ Akun │ Verif│ing │Scan│ │ │
|
||
│ │ └──┬───┴──┬───┴──┬───┴────┴────┘ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ │ ▼ ▼ ▼ ▼ ▼ │ │
|
||
│ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐│ │
|
||
│ │ │CRUD │ │CRUD │ │Verif│ │Verif│ │Scan││ │
|
||
│ │ │Tiket│ │Bank │ │Tiket│ │Book │ │QR ││ │
|
||
│ │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘│ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ └─────┼──────┼──────┼─────┼─────┼─────┘ │
|
||
│ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │
|
||
│ ▼ ▼ ▼ ▼ ▼ │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ USER MENU OPTIONS │ │
|
||
│ │ ┌──────┬──────┬──────┬──────┬────┐ │ │
|
||
│ │ │Beli │Upload│Downld│Book │Prof│ │ │
|
||
│ │ │Tiket│Bukti │Tiket│ing │ile │ │ │
|
||
│ │ └──┬───┴──┬───┴──┬───┴────┴────┘ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ │ ▼ ▼ ▼ ▼ ▼ │ │
|
||
│ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐│ │
|
||
│ │ │Buy │ │Upload│ │Print│ │Book │ │Edit ││ │
|
||
│ │ │Ticket│ │Proof │ │PDF │ │Date │ │Prof ││ │
|
||
│ │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘│ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ └─────┼──────┼──────┼─────┼─────┼─────┘ │
|
||
│ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │
|
||
│ ▼ ▼ ▼ ▼ ▼ │
|
||
│ ┌────────────────────────────────────────────┐ │
|
||
│ │ SHARED DATABASE │ │
|
||
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
|
||
│ │ │ users │ │tickets │ │places │ │ │
|
||
│ │ │bank_acc│ │ticket_ │ │bookings │ │ │
|
||
│ │ │ │ │orders │ │ │ │ │
|
||
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
|
||
│ └────────────────────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## UNIFIED FLOW - DETAIL
|
||
|
||
```
|
||
START
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ USER OPENS WEBSITE │
|
||
│ (URL: domain.com) │
|
||
└────────────────────────────────────────────────────────┬────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ {IS USER LOGGED IN?} │
|
||
│ (Check session/auth cookie) │
|
||
└──────────────────────────┬───────────────────────────────────────────────────────────────────────────────────┘
|
||
│
|
||
┌──────────────┴──────────────┐
|
||
│ │
|
||
NO YES
|
||
│ │
|
||
▼ ▼
|
||
┌─────────────────────┐ ┌───────────────────────────────────────────────────────────────────────────────┐
|
||
│ SHOW PUBLIC PAGE │ │ {WHAT IS THE USER ROLE?} │
|
||
│ - Home banner │ └────────────────────────────┬────────────────────────────────────────────────────┘
|
||
│ - Info tempat │ │
|
||
│ - Menu: Login │ ┌────────────────┴────────────────┐
|
||
│ Register │ │ │
|
||
│ │ ▼ ▼
|
||
│ ┌─────────────────┴─────────┐ │
|
||
│ │ USER CLICKS: │ │
|
||
│ │ - Login │ │
|
||
│ │ - Register │ │
|
||
│ └────────────┬────────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌─────────────────────────┐ │ ┌──────────────────────┐ ┌──────────────────────┐
|
||
│ │ LOGIN PROCESS: │ │ │ ADMIN USER │ │ REGULAR USER │
|
||
│ │ 1. Show login form │ │ │ │ │ │
|
||
│ │ 2. Input email/pass │ │ │ ┌──────────────┐ │ │ ┌──────────────┐ │
|
||
│ │ 3. Validate │ │ │ │ ADMIN │ │ │ │ USER │ │
|
||
│ │ 4. Check DB │ │ │ │ DASHBOARD │ │ │ │ HOME PAGE │ │
|
||
│ │ 5. Create session │ │ │ │ │ │ │ │ │ │
|
||
│ │ 6. Redirect │ │ │ │ ┌────────┐ │ │ │ │ ┌────────┐ │ │
|
||
│ └───────────┬───────────┘ │ │ │ │Statistics│ │ │ │ │ │MyTicket│ │ │
|
||
│ │ │ │ │ │ - Total │ │ │ │ │ │MyBookg │ │ │
|
||
│ │ │ │ │ │ - Revenue│ │ │ │ │ │Profile │ │ │
|
||
│ │ │ │ │ └────────┘ │ │ │ │ │Logout │ │ │
|
||
│ │ │ │ │ │ │ │ │ └────────┘ │ │
|
||
│ ▼ │ │ │ ┌────────┐ │ │ │ │ │ │
|
||
│ ┌─────────────────────────┐ │ │ │ │CRUD │ │ │ │ │ ┌────────┐ │ │
|
||
│ │ REGISTER PROCESS: │ │ │ │ │Tikets │ │ │ │ │ │BUY │ │ │
|
||
│ │ 1. Show register form │ │ │ │ └────────┘ │ │ │ │ │TICKET │ │ │
|
||
│ │ 2. Input data │ │ │ │ │ │ │ │ └────────┘ │ │
|
||
│ │ 3. Validate │ │ │ │ ┌────────┐ │ │ │ │ │ │
|
||
│ │ 4. Hash password │ │ │ │ │CRUD │ │ │ │ │ ┌────────┐ │ │
|
||
│ │ 5. Insert DB │ │ │ │ │Bank │ │ │ │ │ │BOOKING │ │ │
|
||
│ │ 6. Create session │ │ │ │ └────────┘ │ │ │ │ │PENDOPO │ │ │
|
||
│ │ 7. Redirect │ │ │ │ │ │ │ │ └────────┘ │ │
|
||
│ └───────────┬───────────┘ │ │ │ ┌────────┐ │ │ │ │ │ │
|
||
│ │ │ │ │ │VERIFY │ │ │ │ │ │ │
|
||
│ │ │ │ │ │Orders │ │ │ │ │ │ │
|
||
│ │ │ │ │ └────────┘ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ ┌────────┐ │ │ │ │ │ │
|
||
│ │ │ │ │ │VERIFY │ │ │ │ │ │ │
|
||
│ │ │ │ │ │Bookings│ │ │ │ │ │ │
|
||
│ │ │ │ │ └────────┘ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ ┌────────┐ │ │ │ │ │ │
|
||
│ │ │ │ │ │QR │ │ │ │ │ │ │
|
||
│ │ │ │ │ │Scanner │ │ │ │ │ │ │
|
||
│ │ │ │ │ └────────┘ │ │ │ │ │ │
|
||
│ │ │ │ │ │ │ │ │ │ │
|
||
│ │ │ │ │ ┌────────┐ │ │ │ │ │ │
|
||
│ │ │ │ │ │CRUD │ │ │ │ │ │ │
|
||
│ │ │ │ │ │Admins │ │ │ │ │ │ │
|
||
│ │ │ │ │ └────────┘ │ │ │ │ │ │
|
||
│ │ │ │ └──────┬───────┘ │ └──┼──────────────┘ │
|
||
│ │ │ │ │ │ │ │
|
||
│ └───────────────┼───┴───────────┴───────────┘ │ │
|
||
│ │ │ │
|
||
│ ▼ │ │
|
||
│ ┌─────────────────────────────────────────────────────────────┴────────────────────┘
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ │ BUY TICKET FLOW │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ 1. USER SELECTS: Visit Date, Ticket Type, Quantity (1-20) │ │
|
||
│ │ │ 2. SYSTEM CALCULATES: Total Price = qty × ticket_price │ │
|
||
│ │ │ 3. USER CLICKS: "Lanjutkan Pembayaran" │ │
|
||
│ │ │ 4. SYSTEM GENERATES: Order Code (AT-XXXXX), Ticket Codes (AT-XXXXX), QR Codes │ │
|
||
│ │ │ 5. SYSTEM SAVES: ticket_order + ticket_order_items to DB │ │
|
||
│ │ │ 6. USER SEES: Payment page with bank account info │ │
|
||
│ │ │ 7. USER TRANSFERS: Money to bank account │ │
|
||
│ │ │ 8. USER UPLOADS: Payment proof (jpg/png/pdf, max 5MB) │ │
|
||
│ │ │ 9. SYSTEM SAVES: Payment proof to /public/payment-proofs/ │ │
|
||
│ │ │ 10. USER WAITS: For admin verification │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ BOOKING FLOW │ │
|
||
│ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ 1. USER SELECTS: Booking Date │ │ │
|
||
│ │ │ │ 2. SYSTEM CHECKS: Is date available? (AJAX) │ │ │
|
||
│ │ │ │ 3. USER FILLS: Visitor Name, Phone, Address, Notes │ │ │
|
||
│ │ │ │ 4. USER CLICKS: "Booking Sekarang" │ │ │
|
||
│ │ │ │ 5. SYSTEM GENERATES: Booking Code (AB-XXXXX) │ │ │
|
||
│ │ │ │ 6. SYSTEM SAVES: booking to DB (status=pending) │ │ │
|
||
│ │ │ │ 7. USER SEES: Payment page with bank account info │ │ │
|
||
│ │ │ │ 8. USER TRANSFERS: Money to bank account │ │ │
|
||
│ │ │ │ 9. USER UPLOADS: Payment proof │ │ │
|
||
│ │ │ │ 10. USER WAITS: For admin verification │ │ │
|
||
│ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ ADMIN VERIFICATION FLOW │ │
|
||
│ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ 1. ADMIN OPENS: Order Tiket / Booking menu │ │ │
|
||
│ │ │ │ 2. ADMIN SEES: List of pending payments │ │ │
|
||
│ │ │ │ 3. ADMIN CLICKS: "Detail" on an order │ │ │
|
||
│ │ │ │ 4. ADMIN SEES: Customer info, items, payment proof │ │ │
|
||
│ │ │ │ 5. ADMIN DECIDES: │ │ │
|
||
│ │ │ │ ┌────────────────┬────────────────┐ │ │ │
|
||
│ │ │ │ │ KONFIRMASI │ TOLAK │ │ │ │
|
||
│ │ │ │ ├────────────────┼────────────────┤ │ │ │
|
||
│ │ │ │ │ - Update status│ - Input reason │ │ │ │
|
||
│ │ │ │ │ = 'confirmed'│ - Update status│ │ │ │
|
||
│ │ │ │ │ - Set confirm │ = 'rejected' │ │ │ │
|
||
│ │ │ │ │ _at = now() │ │ │ │ │
|
||
│ │ │ │ └────────────────┴────────────────┘ │ │ │
|
||
│ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ QR SCANNER FLOW (Admin) │ │
|
||
│ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ 1. ADMIN OPENS: Verifikasi Tiket page │ │ │
|
||
│ │ │ │ 2. ADMIN CHOOSES: Scan QR / Input Manual │ │ │
|
||
│ │ │ │ 3. SYSTEM READS: QR Code / Manual Input │ │ │
|
||
│ │ │ │ 4. SYSTEM QUERIES: ticket_order_items by ticket_code │ │ │
|
||
│ │ │ │ 5. SYSTEM CHECKS: Is ticket valid? (not used) │ │ │
|
||
│ │ │ │ 6. SYSTEM SHOWS: Ticket info + Valid/Used status │ │ │
|
||
│ │ │ │ 7. ADMIN CLICKS: "Tandai Sudah Dipakai" (if valid) │ │ │
|
||
│ │ │ │ 8. SYSTEM UPDATES: is_used = true, used_at = now() │ │ │
|
||
│ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ DOWNLOAD TICKET FLOW (User after confirmed) │ │
|
||
│ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ 1. USER OPENS: My Tickets / Download page │ │ │
|
||
│ │ │ │ 2. USER CLICKS: Download/Print button │ │ │
|
||
│ │ │ │ 3. SYSTEM GENERATES: PDF with QR Code │ │ │
|
||
│ │ │ │ 4. USER DOWNLOADS/PRINTS: Ticket PDF │ │ │
|
||
│ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ PROFILE & HISTORY FLOW │ │
|
||
│ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ USER CAN: View/Edit Profile, Change Password, View Ticket History, View Booking │ │ │
|
||
│ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ ┌─────────────────────────────────────────────┐ │
|
||
│ │ │ LOGOUT PROCESS │ │
|
||
│ │ │ 1. User clicks Logout │ │
|
||
│ │ │ 2. System destroys session │ │
|
||
│ │ │ 3. System redirects to home page │ │
|
||
│ │ └─────────────────────┬───────────────────────┘ │
|
||
│ │ │ │
|
||
│ └────────────────────────────────────────────────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌────────┐ │
|
||
│ │ END │ │
|
||
│ └────────┘ │
|
||
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## SUPER SIMPLE UNIFIED FLOW (One Page)
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ SISTEM PARKIRAN & BOOKING WISATA BANYU BIRU │
|
||
│ (FULL FLOWCHART) │
|
||
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌───────┐ │
|
||
│ │ START │ │
|
||
│ └───┬───┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌──────────────────────┐ │
|
||
│ │ USER BUKA WEBSITE │ │
|
||
│ └──────────┬───────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌───────────────────────────┐ │
|
||
│ │ SUDAH LOGIN? │ │
|
||
│ │ (Cek Session) │ │
|
||
│ └─────┬──────────────┬──────┘ │
|
||
│ ┌───────┴──────┐ ┌───────┴────────┐ │
|
||
│ NO │ NO │YES │
|
||
│ │ │ │ │
|
||
│ ▼ ▼ ▼ │
|
||
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐ │
|
||
│ │ TAMPILKAN HAL. │ │TAMPILKAN HAL. │ │ CEK ROLE: │ │
|
||
│ │ PUBLIK │ │ LOGIN/REGISTER │ │ ADMIN / USER │ │
|
||
│ │ (Banner, Info) │ │ │ └─────────┬───────────┘ │
|
||
│ └────────┬────────┘ └────────┬────────┘ │ │
|
||
│ │ │ ┌───┴───┐ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ADMIN USER │
|
||
│ │ │ │ │ │
|
||
│ │ │ ▼ ▼ │
|
||
│ │ │ ┌─────────┐ ┌─────────┐ │
|
||
│ │ │ │DASHBOARD│ │HOME │ │
|
||
│ │ │ │ADMIN │ │USER │ │
|
||
│ │ │ └────┬────┘ └────┬────┘ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ┌───────┴───────┴───────┐ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ▼ ▼ │
|
||
│ │ │ ┌──────────┐ ┌──────────┐ │
|
||
│ │ │ │ADMIN MENU│ │USER MENU │ │
|
||
│ │ │ │──────────│ │──────────│ │
|
||
│ │ │ │•Tiket │ │•Beli Tiket│ │
|
||
│ │ │ │•Bank │ │•Booking │ │
|
||
│ │ │ │•Order │ │•My Tiket │ │
|
||
│ │ │ │•Booking │ │•My Book │ │
|
||
│ │ │ │•QR Scan │ │•Profile │ │
|
||
│ │ │ │•Admin │ │•Logout │ │
|
||
│ │ │ │•Logout │ │ │ │
|
||
│ │ │ └────┬─────┘ └────┬─────┘ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ ┌─────────────┘ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ▼ ▼ │
|
||
│ │ │ ┌─────────────────────────┐ │
|
||
│ │ │ │ DATABASE (MySQL) │ │
|
||
│ │ │ │ ─────────────────────│ │
|
||
│ │ │ │ • users │ │
|
||
│ │ │ │ • tickets │ │
|
||
│ │ │ │ • ticket_orders │ │
|
||
│ │ │ │ • ticket_order_items │ │
|
||
│ │ │ │ • places │ │
|
||
│ │ │ │ • bookings │ │
|
||
│ │ │ │ • bank_accounts │ │
|
||
│ │ │ └─────────────────────────┘ │
|
||
│ │ │ │ │
|
||
│ │ │ │ │
|
||
│ └────────────────────┴────────────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ ALUR LENGKAP (Dari Login sampai Logout): │ │
|
||
│ │ │ │
|
||
│ │ 1. USER LOGIN → 2. PILIH MENU → 3. LAKUKAN AKSI → 4. ADMIN VERIFIKASI → 5. SELESAI → LOGOUT │ │
|
||
│ │ │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ JIKA USER MEMILIH "BELI TIKET": │ │ │
|
||
│ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │
|
||
│ │ │ User Pilih Tanggal → Pilih Tiket → Pilih Jumlah → Hitung Total → Bayar → Upload Bukti │ │
|
||
│ │ │ ↓ │ │
|
||
│ │ │ Admin Verifikasi (Terima/Tolak) → User Download Tiket → Scan QR saat datang │ │
|
||
│ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ JIKA USER MEMILIH "BOOKING PENDOPO": │ │ │
|
||
│ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │
|
||
│ │ │ User Pilih Tanggal → Cek Ketersediaan → Isi Data → Booking → Bayar → Upload Bukti │ │
|
||
│ │ │ ↓ │ │
|
||
│ │ │ Admin Verifikasi (Terima/Tolak) → BookingConfirmed │ │
|
||
│ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ JIKA ADMIN MEMILIH "VERIFIKASI": │ │ │
|
||
│ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │
|
||
│ │ │ Admin Lihat Daftar Pending → Klik Detail → Periksa Bukti → Konfirmasi / Tolak │ │
|
||
│ │ │ ↓ │ │
|
||
│ │ │ Status diUpdate → User Dapat/notifikasi │ │
|
||
│ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ JIKA ADMIN MEMILIH "QR SCANNER": │ │ │
|
||
│ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │
|
||
│ │ │ Admin Scan QR / Input Manual → Sistem Cek Validitas → Tampilkan Hasil (Valid/Used) │ │
|
||
│ │ │ ↓ │ │
|
||
│ │ │ Jika Valid → Tandai Sudah Dipakai │ │
|
||
│ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌───────┐ │
|
||
│ │ END │ │
|
||
│ └───────┘ │
|
||
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## KETERANGAN:
|
||
|
||
### Aktor:
|
||
- **GUEST** = Pengunjung yang belum login
|
||
- **USER** = Pengunjung yang sudah login (membeli tiket/booking)
|
||
- **ADMIN** = Petugas yang mengelola sistem
|
||
|
||
### Menu Admin:
|
||
| Menu | Fungsi |
|
||
|------|--------|
|
||
| Dashboard | Lihat statistik & chart |
|
||
| Tiket | CRUD data tiket |
|
||
| Rekening Bank | CRUD rekening bank |
|
||
| Order Tiket | Verifikasi pembayaran tiket |
|
||
| Booking | Verifikasi pembayaran booking |
|
||
| QR Scanner | Scan & verifikasi ticket |
|
||
| Admin | CRUD admin lain |
|
||
|
||
### Menu User:
|
||
| Menu | Fungsi |
|
||
|------|--------|
|
||
| Beli Tiket | Pembelian tiket masuk |
|
||
| Booking | Pemesanan pendopo |
|
||
| Tiket Saya | Lihat riwayat & download |
|
||
| Booking Saya | Lihat riwayat booking |
|
||
| Profil | Edit profil & password |
|
||
|
||
### Status:
|
||
- **pending** = Menunggu verifikasi
|
||
- **confirmed** = Diterima/confirmed
|
||
- **rejected** = Ditolak
|
||
|
||
---
|
||
|
||
**Dibuat**: 9 Maret 2026
|
||
**Sistem**: Banyu Biru Ticketing & Booking System
|
||
**Tipe**: Unified Flowchart (Semua jadi satu)
|