# axeldavan/ukk-rpl-axel-aplikasi-parkir architecture

> Architecture diagram of the GitHub repository axeldavan/ukk-rpl-axel-aplikasi-parkir, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/axeldavan/ukk-rpl-axel-aplikasi-parkir
- Repository: https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir

## Overview

SafePark is a Laravel apartment-parking application for residents, gate staff, and administrators. Residents register vehicles, book a slot, pay, and manage booking details; they can also issue guest QR passes. Staff validate guest entry and exit, while administrators oversee parking, users, guests, and analytics. The graph reflects the sampled booking, payment, guest, and registration code plus README capabilities; several unsampled modules are represented only at their existing controller paths, so their internal wiring is not inferred.

Main entry points: [`app/Http/Controllers/PemesananController.php`](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PemesananController.php) (Slot booking), [`app/Http/Controllers/PaymentController.php`](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PaymentController.php) (Payment processing), [`app/Http/Controllers/TamuController.php`](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/TamuController.php) (Guest QR passes), [`app/Http/Controllers/Auth/AuthenticatedSessionController.php`](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Identity and access"]
  node_auth["Authentication"]
  node_registration["Resident registration"]
  node_users[("User records<br/>[User.php]")]
end

subgraph group_resident["Resident services"]
  node_vehicles[("Vehicle records<br/>[Kendaraan.php]")]
  node_vehicle_mgmt["Vehicle management"]
  node_booking["Slot booking"]
  node_slots[("Areas and slots<br/>[SlotParkir.php]")]
  node_bookings[("Booking records<br/>[Pemesanan.php]")]
  node_payment_flow["Payment processing"]
  node_payment_records[("Payment status<br/>[StatusPayment.php]")]
  node_resident_views["Resident pages"]
  node_guest_pass["Guest QR passes<br/>[TamuController.php]"]
end

subgraph group_gate["Gate operations"]
  node_guests[("Guest records<br/>[Tamu.php]")]
  node_guest_transactions[("Parking transactions")]
  node_gate_views["Gate screens"]
  node_gate_ops["Parking and tickets"]
  node_gate_exit["Exit processing"]
end

subgraph group_admin["Administration"]
  node_admin_ops["Parking administration"]
  node_admin_users["User administration"]
  node_admin_guest["Guest oversight<br/>[TamuController.php]"]
  node_admin_analytics["Reports and analytics"]
  node_admin_views["Administrator pages"]
end

node_resident_actor(("Resident"))
node_staff_actor(("Gate staff"))
node_admin_actor(("Administrator"))
node_gateway["Midtrans gateway"]

node_resident_actor -->|"registers"| node_registration
node_registration -->|"creates account"| node_users
node_registration -->|"creates vehicle"| node_vehicles
node_resident_actor -->|"signs in"| node_auth
node_staff_actor -->|"signs in"| node_auth
node_admin_actor -->|"signs in"| node_auth
node_auth -->|"authenticates"| node_users
node_resident_actor -->|"manages vehicles"| node_vehicle_mgmt
node_vehicle_mgmt -->|"reads and updates"| node_vehicles
node_resident_actor -->|"books a slot"| node_booking
node_booking -->|"reads"| node_vehicles
node_booking -->|"reads"| node_slots
node_booking -->|"creates booking"| node_bookings
node_booking -->|"creates payment"| node_payment_records
node_booking -->|"redirects to payment"| node_payment_flow
node_payment_flow -.->|"requests payment token"| node_gateway
node_gateway -.->|"sends webhook"| node_payment_flow
node_payment_flow -->|"updates status"| node_payment_records
node_payment_flow -->|"updates booking"| node_bookings
node_payment_flow -->|"updates slot status"| node_slots
node_resident_actor -->|"issues guest pass"| node_guest_pass
node_guest_pass -->|"creates and updates"| node_guests
node_staff_actor -->|"scans guest QR"| node_guest_pass
node_guest_pass -->|"records entry and exit"| node_guest_transactions
node_guest_pass -->|"reads guest status"| node_guests
node_staff_actor -->|"handles parking entry"| node_gate_ops
node_staff_actor -->|"handles parking exit"| node_gate_exit
node_admin_actor -->|"manages parking"| node_admin_ops
node_admin_actor -->|"manages users"| node_admin_users
node_admin_actor -->|"reviews guests"| node_admin_guest
node_admin_actor -->|"views analytics"| node_admin_analytics

click node_auth "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_registration "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_users "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/User.php"
click node_vehicles "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/Kendaraan.php"
click node_vehicle_mgmt "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/KendaraanOwnerController.php"
click node_booking "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PemesananController.php"
click node_slots "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/SlotParkir.php"
click node_bookings "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/Pemesanan.php"
click node_payment_flow "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PaymentController.php"
click node_payment_records "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/StatusPayment.php"
click node_resident_views "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/tree/main/resources/views/dashboard/owner"
click node_guest_pass "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/TamuController.php"
click node_guests "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/Tamu.php"
click node_guest_transactions "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/TransaksiParkir.php"
click node_gate_views "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/tree/main/resources/views/dashboard/petugas"
click node_gate_ops "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/KarcisMasukController.php"
click node_gate_exit "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/KarcisKeluarController.php"
click node_admin_ops "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/AreaParkirAdminController.php"
click node_admin_users "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PenggunaAdminController.php"
click node_admin_guest "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/TamuController.php"
click node_admin_analytics "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/AnalitikController.php"
click node_admin_views "https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/tree/main/resources/views/dashboard/admin"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth,node_registration,node_users toneBlue
class node_vehicles,node_vehicle_mgmt,node_booking,node_slots,node_bookings,node_payment_flow,node_payment_records,node_resident_views,node_guest_pass toneAmber
class node_guests,node_guest_transactions,node_gate_views,node_gate_ops,node_gate_exit toneMint
class node_admin_ops,node_admin_users,node_admin_guest,node_admin_analytics,node_admin_views toneRose
class node_resident_actor,node_staff_actor,node_admin_actor,node_gateway toneIndigo
```

## Components

### Identity and access

- [Authentication](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Resident registration](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [User records](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/User.php): `app/Models/User.php`

### Resident services

- [Vehicle records](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/Kendaraan.php): `app/Models/Kendaraan.php`
- [Vehicle management](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/KendaraanOwnerController.php): `app/Http/Controllers/KendaraanOwnerController.php`
- [Slot booking](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PemesananController.php): `app/Http/Controllers/PemesananController.php`
- [Areas and slots](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/SlotParkir.php): `app/Models/SlotParkir.php`
- [Booking records](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/Pemesanan.php): `app/Models/Pemesanan.php`
- [Payment processing](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PaymentController.php): `app/Http/Controllers/PaymentController.php`
- [Payment status](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/StatusPayment.php): `app/Models/StatusPayment.php`
- [Resident pages](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/tree/main/resources/views/dashboard/owner): `resources/views/dashboard/owner`
- [Guest QR passes](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/TamuController.php): `app/Http/Controllers/TamuController.php`

### Gate operations

- [Guest records](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/Tamu.php): `app/Models/Tamu.php`
- [Parking transactions](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Models/TransaksiParkir.php): `app/Models/TransaksiParkir.php`
- [Gate screens](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/tree/main/resources/views/dashboard/petugas): `resources/views/dashboard/petugas`
- [Parking and tickets](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/KarcisMasukController.php): `app/Http/Controllers/KarcisMasukController.php`
- [Exit processing](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/KarcisKeluarController.php): `app/Http/Controllers/KarcisKeluarController.php`

### Administration

- [Parking administration](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/AreaParkirAdminController.php): `app/Http/Controllers/AreaParkirAdminController.php`
- [User administration](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/PenggunaAdminController.php): `app/Http/Controllers/PenggunaAdminController.php`
- [Guest oversight](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/TamuController.php): `app/Http/Controllers/TamuController.php`
- [Reports and analytics](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/blob/main/app/Http/Controllers/AnalitikController.php): `app/Http/Controllers/AnalitikController.php`
- [Administrator pages](https://github.com/axeldavan/ukk-rpl-axel-aplikasi-parkir/tree/main/resources/views/dashboard/admin): `resources/views/dashboard/admin`

### Other components

- **Resident**
- **Gate staff**
- **Administrator**
- **Midtrans gateway**

## Connections

- Resident → Resident registration: registers
- Resident registration → User records: creates account
- Resident registration → Vehicle records: creates vehicle
- Resident → Authentication: signs in
- Gate staff → Authentication: signs in
- Administrator → Authentication: signs in
- Authentication → User records: authenticates
- Resident → Vehicle management: manages vehicles
- Vehicle management → Vehicle records: reads and updates
- Resident → Slot booking: books a slot
- Slot booking → Vehicle records: reads
- Slot booking → Areas and slots: reads
- Slot booking → Booking records: creates booking
- Slot booking → Payment status: creates payment
- Slot booking → Payment processing: redirects to payment
- Payment processing → Midtrans gateway: requests payment token
- Midtrans gateway → Payment processing: sends webhook
- Payment processing → Payment status: updates status
- Payment processing → Booking records: updates booking
- Payment processing → Areas and slots: updates slot status
- Resident → Guest QR passes: issues guest pass
- Guest QR passes → Guest records: creates and updates
- Gate staff → Guest QR passes: scans guest QR
- Guest QR passes → Parking transactions: records entry and exit
- Guest QR passes → Guest records: reads guest status
- Gate staff → Parking and tickets: handles parking entry
- Gate staff → Exit processing: handles parking exit
- Administrator → Parking administration: manages parking
- Administrator → User administration: manages users
- Administrator → Guest oversight: reviews guests
- Administrator → Reports and analytics: views analytics
