Skip to content

Repository files navigation

PlayStation Rental Management System

Laravel 12 PHP 8.2 TailwindCSS 4 Midtrans


1. Tentang Aplikasi

PlayStation Rental Management System adalah aplikasi berbasis web yang dirancang untuk mengelola bisnis penyewaan konsol PlayStation, game, dan aksesoris secara terintegrasi. Aplikasi ini menyediakan platform lengkap untuk manajemen rental dengan multi-role user (Admin, Kasir, Pelanggan, dan Owner) serta integrasi payment gateway Midtrans untuk transaksi yang aman dan mudah.

Tujuan Aplikasi

  • Mengelola inventaris unit PlayStation, game, dan aksesoris
  • Memproses transaksi rental dengan sistem status yang jelas
  • Menyediakan dashboard real-time untuk monitoring bisnis
  • Mendukung pembayaran digital melalui Midtrans
  • Memberikan pengalaman booking yang mudah bagi pelanggan

2. Screenshots

Semua screenshot interface aplikasi tersimpan di folder:

docs/screenshots/

Note: Jika gambar tidak muncul, pastikan Anda sudah menjalankan php artisan storage:link dan file screenshot sudah ada di folder docs/screenshots/.


Authentication

Login Page

Login Page

Register Page

Register Page 1 Register Page 2


Public / Landing

Landing Page

Landing Page


Admin

Dashboard Admin

Dashboard Admin

Laporan Admin

Laporan Admin

Manajemen Unit PS

Tambah Unit PS Admin

Manajemen Game

Tambah Game Admin

Manajemen Aksesoris

Tambah Aksesoris Admin

Manajemen User

![Tambah Admin](docs/screenshots/tambah-akun admin.png) Tambah Kasir Tambah Pelanggan Tambah Pemilik


Kasir

Dashboard Kasir

Dashboard Kasir

Transaksi Rental

Transaksi Kasir

Daftar Sewa

Daftar Sewa Kasir


Pelanggan

Dashboard / Beranda Pelanggan

Beranda Pelanggan 1 Beranda Pelanggan 2 Beranda Pelanggan 3 Beranda Pelanggan 4

Sewa PlayStation

Sewa PS Pelanggan Sewa PS2 Pelanggan

Sewa Game

Sewa Game Pelanggan Sewa Game 2 Pelanggan

Sewa Aksesoris

![Sewa Aksesoris Pelanggan](docs/screenshots/halaman-sewa -aksesoris-pelanggan.png) ![Sewa Aksesoris 2 Pelanggan](docs/screenshots/halaman-sewa -aksesoris2-pelanggan.png)

Keranjang Belanja

Keranjang Pelanggan

Riwayat Sewa

Riwayat Sewa Pelanggan

Profil

![Profil Saya Pelanggan](docs/screenshots/profil saya-pelanggan.png)


Owner / Pemilik

Dashboard Pemilik

Dashboard Pemilik

Laporan Pendapatan

Laporan Pendapatan Pemilik

Laporan Transaksi

![Laporan Transaksi Pemilik](docs/screenshots/halaman-laporan transasksi-pemilik.png)

Status Unit

Status Unit Pemilik


Fitur Utama

Manajemen Katalog

  • Unit PlayStation: CRUD unit PS dengan nomor seri, status ketersediaan, dan kondisi
  • Game Library: Manajemen koleksi game dengan kategori, stok, dan nomor seri
  • Aksesoris: Pengelolaan aksesoris (controller, headset, dll) dengan tracking stok

Sistem Rental

  • Booking Online: Pelanggan dapat melakukan booking unit dan game secara mandiri
  • Multi-item Rental: Satu transaksi rental dapat mencakup unit, game, dan aksesoris
  • Status Tracking: Status rental (pending, active, returned, cancelled) dengan notifikasi
  • Durasi Fleksibel: Sistem perhitungan harga berdasarkan durasi penyewaan

Payment Gateway

  • Midtrans Integration: Integrasi dengan Midtrans untuk pembayaran digital
  • Multiple Payment Methods: Support credit card, e-wallet, bank transfer
  • Snap Token: Generate token pembayaran otomatis
  • Payment Status: Tracking status pembayaran real-time

Multi-Role System

  • Admin: Full access untuk manajemen seluruh aspek aplikasi
  • Kasir: Handle transaksi, pembayaran, dan return unit
  • Pelanggan: Booking rental, lihat riwayat, kelola profil
  • Owner: Dashboard analytics dan laporan bisnis

Dashboard & Reporting

  • Real-time Analytics: Statistik rental, revenue, dan okupansi unit
  • Laporan Transaksi: History lengkap semua transaksi
  • Export Data: Export laporan ke Excel (menggunakan Maatwebsite Excel)

Authentication & Authorization

  • Google OAuth: Login menggunakan akun Google (Laravel Socialite)
  • Role-based Access: Permission system berdasarkan role user
  • Profile Management: Kelola profil user dengan avatar upload

Shopping Cart

  • Cart System: Tambah item ke keranjang sebelum checkout
  • Quick Checkout: Proses rental dari cart dengan mudah

Teknologi

Backend

Teknologi Versi Deskripsi
PHP ^8.2 Bahasa pemrograman utama
Laravel ^12.0 Web application framework
Eloquent ORM - Database ORM Laravel
Laravel Socialite ^5.23 OAuth authentication (Google)
Maatwebsite Excel ^3.1 Export/import Excel
Midtrans PHP ^2.6 Payment gateway integration

Frontend

Teknologi Versi Deskripsi
Blade Templates - Laravel templating engine
Tailwind CSS ^4.0 Utility-first CSS framework
Vite ^7.0.7 Build tool & dev server
Axios ^1.11.0 HTTP client untuk AJAX

Database

Teknologi Deskripsi
MySQL / MariaDB Database utama
SQLite Database development/testing

Development Tools

Tools Deskripsi
Composer PHP dependency manager
npm JavaScript package manager
Laravel Sail Docker development environment
Laravel Pail Log viewer
PHPUnit Testing framework
Laravel Pint Code style fixer

Instalasi

Prerequisites

  • PHP >= 8.2
  • Composer
  • Node.js & npm
  • MySQL/MariaDB atau SQLite
  • Git

Langkah Instalasi

1. Clone Repository

git clone <repository-url>
cd ProjectPI_Playstation

2. Install Dependencies

# Install PHP dependencies
composer install

# Install Node.js dependencies
npm install

3. Environment Setup

# Copy environment file
cp .env.example .env

# Generate application key
php artisan key:generate

4. Database Configuration

Edit file .env dan sesuaikan konfigurasi database:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=playstation_rental
DB_USERNAME=root
DB_PASSWORD=your_password

5. Run Migrations & Seeders

# Run migrations
php artisan migrate

# (Optional) Seed database dengan data awal
php artisan db:seed

6. Storage Link

# Create symbolic link untuk storage
php artisan storage:link

7. Build Assets

# Build untuk production
npm run build

# Atau jalankan development server
npm run dev

8. Jalankan Aplikasi

# Development mode (menjalankan server, queue, logs, dan vite secara bersamaan)
composer dev

# Atau jalankan server Laravel secara manual
php artisan serve

Aplikasi akan berjalan di: http://localhost:8000


Instalasi Ngrok untuk Webhook

Ngrok diperlukan untuk expose aplikasi lokal ke internet agar webhook Midtrans dapat mengirim callback ke aplikasi Anda.

Langkah Instalasi Ngrok

1. Download & Install Ngrok

2. Setup Authtoken

# Daftar akun gratis di https://ngrok.com
# Dapatkan authtoken dari dashboard
ngrok config add-authtoken YOUR_AUTHTOKEN

3. Jalankan Ngrok

# Jalankan ngrok ke port 8000 (port default Laravel)
ngrok http 8000

4. Dapatkan URL Ngrok

Setelah dijalankan, ngrok akan menampilkan URL seperti:

Forwarding: https://abc123.ngrok.io -> http://localhost:8000

5. Konfigurasi Webhook Midtrans

  1. Login ke Midtrans Dashboard
  2. Masuk ke Settings > Configuration
  3. Di bagian Payment Notification URL, masukkan:
    https://abc123.ngrok.io/api/midtrans/callback
    
  4. Di bagian Finish Redirect URL, masukkan:
    https://abc123.ngrok.io/payment/success
    
  5. Simpan konfigurasi

6. Update Environment File

Edit .env dan update URL aplikasi:

APP_URL=https://abc123.ngrok.io

7. Test Webhook

# Test webhook callback
curl -X POST https://abc123.ngrok.io/api/midtrans/callback \
  -H "Content-Type: application/json" \
  -d '{"order_id":"TEST-001","transaction_status":"capture"}'

Tips Ngrok

  • URL Berubah: URL ngrok gratis akan berubah setiap restart. Gunakan ngrok premium untuk URL tetap.
  • Logs: Cek logs ngrok di http://127.0.0.1:4040 untuk melihat request yang masuk
  • Auto-restart: Gunakan ngrok http 8000 --log=stdout untuk logging

License

The Laravel framework is open-sourced software licensed under the MIT license.

Made with love using Laravel

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages