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.
- 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
- 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
- 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
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
- Login dengan email/password
- Register akun baru
- Google Sign-in integration
- Auto-login untuk session yang masih aktif
- PlayStation (PS4 Pro, PS5, PS5 Digital)
- Xbox (Series X, Series S)
- PC Gaming (Alienware Aurora, Custom Gaming Rig)
- Nintendo Switch (OLED, Lite)
- Steam Deck
- Pilih Jadwal: Memilih hari (Senin-Jumat) dan waktu (09:30-16:00)
- Input Identitas: Nama, NIM, No. Telpon, Program Studi
- Upload Dokumen: KTP/KTM sebagai verifikasi identitas
- Pending: Menunggu review admin
- Approved: Disetujui dengan kode verifikasi
- Rejected: Ditolak oleh admin
- Completed: Selesai menggunakan console
- Canceled: Dibatalkan pengguna
- Android Studio Arctic Fox atau lebih baru
- Android SDK 30+
- Firebase project
-
Clone Repository
git clone https://github.com/your-username/gamequeue.git cd gamequeue -
Setup Firebase
- Buat project di Firebase Console
- Aktifkan Authentication (Email/Password & Google)
- Aktifkan Realtime Database
- Download
google-services.jsonke folderapp/
-
Konfigurasi Database
Firebase Realtime Database Structure: โโโ consoles/ โโโ reservations/ โโโ requests/ โโโ admins/ -
Build & Run
./gradlew assembleDebug
{
"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"
}
}
}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
- Dapat melihat console yang tersedia
- Dapat membuat reservasi
- Dapat melihat status dan history reservasi
- Dapat mengelola profil
- Dapat mereview semua permintaan reservasi
- Dapat approve/reject reservasi
- Dapat melihat semua data reservasi
- Akses ke dashboard admin
- 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
MainActivity- Main container dengan bottom navigationAuthActivity- Authentication flowReservationProcessActivity- Multi-step reservation processAdminActivity- Admin dashboardReservationDetailActivity- Detail reservasi dengan status tracking
ConsoleSharedViewModel- Manage console dataReservationSharedViewModel- Manage user reservationsRequestSharedViewModel- Manage admin requestsReservationFormSharedViewModel- Handle reservation form data
- 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
- Developer:
- Muhammad Olfat Faiz
- Ketut Bagus Wedanta Ananda Murti
- Pande Gede Natha Satvika
Made with โค๏ธ for Olfat, Wedanta, and Natha