Skip to content

PressToCode/GameQueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

89 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GameQueue - Sistem Reservasi Game Console

Platform Language SDK Database

๐Ÿ“‹ Deskripsi

GameQueue adalah aplikasi Android untuk sistem reservasi game console yang memungkinkan pengguna untuk mereservasi waktu bermain pada berbagai konsol game seperti PlayStation, Xbox, PC Gaming, Nintendo Switch, dan Steam Deck. Aplikasi ini dilengkapi dengan panel admin untuk mengelola permintaan reservasi.

โœจ Fitur Utama

๐Ÿ‘ค Untuk Pengguna

  • Autentikasi - Login/Register dengan email/password atau Google Sign-in
  • Browsing Console - Melihat daftar konsol game yang tersedia
  • Sistem Reservasi - Mereservasi console dengan jadwal dan waktu tertentu
  • Multi-Step Form - Proses reservasi 3 langkah (Jadwal โ†’ Identitas โ†’ Dokumen)
  • Status Tracking - Melihat status reservasi (Pending, Approved, Rejected, Completed)
  • History - Riwayat reservasi sebelumnya
  • Profile Management - Mengelola profil dan mengubah password

๐Ÿ‘จโ€๐Ÿ’ผ Untuk Admin

  • Dashboard Admin - Panel khusus untuk mengelola reservasi
  • Review Requests - Mereview dan approve/reject permintaan reservasi
  • Console Management - Mengelola ketersediaan konsol
  • Real-time Updates - Notifikasi real-time untuk permintaan baru

๐Ÿ› ๏ธ Tech Stack

  • Platform: Android (API 30+)
  • Language: Java
  • Architecture: MVVM (Model-View-ViewModel)
  • Database: Firebase Realtime Database
  • Authentication: Firebase Auth
  • UI Components: Material Design Components
  • Image Handling: ImagePicker Library
  • Navigation: Bottom Navigation, ViewPager

๐Ÿ—๏ธ Arsitektur Aplikasi

app/
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ firebase/          # Firebase utilities
โ”‚   โ”œโ”€โ”€ model/            # Data models
โ”‚   โ”œโ”€โ”€ repository/       # Data repositories
โ”‚   โ””โ”€โ”€ sharedViewModel/  # Shared ViewModels
โ”œโ”€โ”€ ui/
โ”‚   โ”œโ”€โ”€ main/            # Activities
โ”‚   โ”œโ”€โ”€ fragment/        # Fragments
โ”‚   โ””โ”€โ”€ adapter/         # RecyclerView adapters
โ”œโ”€โ”€ utils/               # Utility classes
โ””โ”€โ”€ widgets/             # Custom widgets

๐Ÿ“ฑ Screenshots & Fitur Detail

๐Ÿ” Autentikasi

  • Login dengan email/password
  • Register akun baru
  • Google Sign-in integration
  • Auto-login untuk session yang masih aktif

๐ŸŽฎ Console yang Tersedia

  • PlayStation (PS4 Pro, PS5, PS5 Digital)
  • Xbox (Series X, Series S)
  • PC Gaming (Alienware Aurora, Custom Gaming Rig)
  • Nintendo Switch (OLED, Lite)
  • Steam Deck

๐Ÿ“… Sistem Reservasi

  1. Pilih Jadwal: Memilih hari (Senin-Jumat) dan waktu (09:30-16:00)
  2. Input Identitas: Nama, NIM, No. Telpon, Program Studi
  3. Upload Dokumen: KTP/KTM sebagai verifikasi identitas

๐Ÿ“Š Status Reservasi

  • Pending: Menunggu review admin
  • Approved: Disetujui dengan kode verifikasi
  • Rejected: Ditolak oleh admin
  • Completed: Selesai menggunakan console
  • Canceled: Dibatalkan pengguna

๐Ÿ”ง Setup & Installation

Prerequisites

  • Android Studio Arctic Fox atau lebih baru
  • Android SDK 30+
  • Firebase project

Langkah Instalasi

  1. Clone Repository

    git clone https://github.com/your-username/gamequeue.git
    cd gamequeue
  2. Setup Firebase

    • Buat project di Firebase Console
    • Aktifkan Authentication (Email/Password & Google)
    • Aktifkan Realtime Database
    • Download google-services.json ke folder app/
  3. Konfigurasi Database

    Firebase Realtime Database Structure:
    โ”œโ”€โ”€ consoles/
    โ”œโ”€โ”€ reservations/
    โ”œโ”€โ”€ requests/
    โ””โ”€โ”€ admins/
    
  4. Build & Run

    ./gradlew assembleDebug

๐Ÿ”ฅ Firebase Configuration

Database Rules

{
  "rules": {
    "consoles": {
      ".read": "auth != null",
      ".write": "auth != null"
    },
    "reservations": {
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    },
    "requests": {
      ".read": "auth != null",
      ".write": "auth != null"
    },
    "admins": {
      ".read": "auth != null"
    }
  }
}

Database Structure

gamequeue-db/
โ”œโ”€โ”€ consoles/
โ”‚   โ””โ”€โ”€ [consoleId]/
โ”‚       โ”œโ”€โ”€ title: "PlayStation 5"
โ”‚       โ”œโ”€โ”€ specificationOne: "4K HDR Gaming"
โ”‚       โ”œโ”€โ”€ specificationTwo: "120Hz Refresh Rate"
โ”‚       โ”œโ”€โ”€ specificationThree: "DualSense Controller"
โ”‚       โ”œโ”€โ”€ lendingStatus: false
โ”‚       โ””โ”€โ”€ lenderUid: ""
โ”œโ”€โ”€ reservations/
โ”‚   โ””โ”€โ”€ [userId]/
โ”‚       โ””โ”€โ”€ [reservationId]/
โ”‚           โ”œโ”€โ”€ consoleId: ""
โ”‚           โ”œโ”€โ”€ consoleName: ""
โ”‚           โ”œโ”€โ”€ date: "2024-01-15"
โ”‚           โ”œโ”€โ”€ time: "10:30"
โ”‚           โ”œโ”€โ”€ lenderName: ""
โ”‚           โ”œโ”€โ”€ lenderEmail: ""
โ”‚           โ”œโ”€โ”€ lenderPhone: ""
โ”‚           โ”œโ”€โ”€ lenderNIM: ""
โ”‚           โ”œโ”€โ”€ lenderProdi: ""
โ”‚           โ”œโ”€โ”€ status: "pending"
โ”‚           โ””โ”€โ”€ verificationCode: ""
โ”œโ”€โ”€ requests/
โ”‚   โ””โ”€โ”€ [reservationId]/
โ”‚       โ”œโ”€โ”€ userId: ""
โ”‚       โ””โ”€โ”€ consoleId: ""
โ””โ”€โ”€ admins/
    โ””โ”€โ”€ [adminUserId]: true

๐Ÿ‘ฅ User Roles

Regular User

  • Dapat melihat console yang tersedia
  • Dapat membuat reservasi
  • Dapat melihat status dan history reservasi
  • Dapat mengelola profil

Admin

  • Dapat mereview semua permintaan reservasi
  • Dapat approve/reject reservasi
  • Dapat melihat semua data reservasi
  • Akses ke dashboard admin

๐Ÿ”’ Security Features

  • Authentication: Firebase Auth dengan validasi email
  • Authorization: Role-based access (User/Admin)
  • Data Validation: Input validation pada semua form
  • Secure Storage: Data tersimpan di Firebase dengan security rules
  • Session Management: Auto-logout dan session handling

๐Ÿ“ Development Notes

Important Classes

Activities

  • MainActivity - Main container dengan bottom navigation
  • AuthActivity - Authentication flow
  • ReservationProcessActivity - Multi-step reservation process
  • AdminActivity - Admin dashboard
  • ReservationDetailActivity - Detail reservasi dengan status tracking

ViewModels

  • ConsoleSharedViewModel - Manage console data
  • ReservationSharedViewModel - Manage user reservations
  • RequestSharedViewModel - Manage admin requests
  • ReservationFormSharedViewModel - Handle reservation form data

Key Features

  • Real-time Updates: LiveData dengan Firebase listeners
  • Offline Support: Firebase persistence enabled
  • Image Upload: ImagePicker dengan compression
  • Multi-step Forms: ViewPager dengan fragment navigation
  • Status Tracking: Real-time status updates

๐Ÿ“ž Contact

  • Developer:
  • Muhammad Olfat Faiz
  • Ketut Bagus Wedanta Ananda Murti
  • Pande Gede Natha Satvika
- **Project Link**: https://github.com/PressToCode/GameQueue
Made with โค๏ธ for Olfat, Wedanta, and Natha

About

GameQueue App (Java)

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages