BookEat adalah aplikasi Android yang dirancang untuk menjembatani pelanggan dengan restoran. Aplikasi ini memiliki dua peran utama: satu untuk pelanggan (memesan makanan dan meja) dan satu lagi untuk pemilik restoran (mengelola menu, meja, dan pesanan).
Berdasarkan analisis file project, aplikasi ini memiliki fungsionalitas sebagai berikut:
-
Autentikasi Pengguna:
- Sistem registrasi dan login yang terpisah untuk "Pelanggan" dan "Restoran".
- Menggunakan Firebase Authentication untuk mengelola sesi pengguna.
- Fitur "Lupa Password" melalui email.
-
Fitur Sisi Pelanggan (Customer):
- Membuat Pesanan: Pelanggan dapat membuat pesanan baru.
- Pemilihan Meja: Memilih meja yang tersedia di restoran.
- Pemilihan Menu: Menambahkan item menu ke keranjang.
- Pembayaran: Integrasi dengan payment gateway Midtrans untuk proses checkout.
- Pelacakan Pesanan: Melihat status pesanan (diproses, selesai).
- Struk Digital: Melihat detail struk setelah pesanan selesai.
- Manajemen Profil: Mengedit data profil pengguna.
-
Fitur Sisi Restoran (Resto):
- Dashboard: Tampilan utama untuk mengelola pesanan yang masuk (diproses) dan riwayat pesanan.
- Manajemen Menu: Fungsionalitas CRUD (Create, Read, Update, Delete) untuk menu restoran.
- Manajemen Meja: Mengelola ketersediaan dan daftar meja.
- Manajemen Profil: Mengedit data profil restoran.
Project ini dibangun menggunakan tumpukan teknologi Android modern:
- Bahasa: Kotlin
- Arsitektur & UI:
- AndroidX (AppCompat, ConstraintLayout, RecyclerView, ViewPager2)
- Material Design (com.google.android.material)
- View Binding (diaktifkan di
buildFeatures) - Navigation Component (Untuk alur navigasi antar Fragment)
- Backend & Database (BaaS):
- Firebase Platform (BOM)
- Firebase Authentication (Autentikasi email/password)
- Firebase Realtime Database (Database NoSQL real-time)
- Firebase Storage (Menyimpan file seperti gambar menu)
- Firebase Platform (BOM)
- Pembayaran:
- Midtrans UIKIt (Integrasi Payment Gateway)
- Utilities:
- Glide (Untuk memuat dan menampilkan gambar)
- Kotlin Coroutines (Manajemen asynchronous)
Sebelum Anda dapat membangun dan menjalankan project ini, pastikan Anda memiliki:
- Android Studio (Rekomendasi versi terbaru, misal: Hedgehog atau Iguana).
- JDK 8 atau yang lebih baru (project dikonfigurasi untuk
jvmTarget = "1.8"). - Akun Firebase:
- Project Firebase yang sudah di-setup.
- File
google-services.jsonyang valid dari project Firebase Anda, ditempatkan di direktoriapp/. - Layanan (Authentication, Realtime Database, Storage) harus diaktifkan.
- Akun Midtrans:
- Kunci API (Client & Server Key) untuk mode Sandbox dari dashboard Midtrans.
Struktur file utama dalam project ini diatur sebagai berikut:
BookEat/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/jif/bookeat/
│ │ │ │ ├── activity/ (Contoh: LoginPage, RegisterPage, DashboardResto, BuatPesanan)
│ │ │ │ ├── fragment/ (Contoh: HalProses, HalRiwayat, MilihMeja, MilihMenu)
│ │ │ │ ├── adapter/ (Contoh: DaftarMenuAdapter, KelolaMejaAdapter, MilihMejaAdapter)
│ │ │ │ └── model/ (Contoh: DaftarMenuItem, KMejaItem, KeranjangItem, Pesanan)
│ │ │ ├── res/
│ │ │ │ ├── layout/ (File XML untuk layout Activity & Fragment)
│ │ │ │ ├── drawable/ (Ikon dan aset gambar)
│ │ │ │ └── navigation/ (Grafik navigasi untuk Navigation Component)
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle.kts (Konfigurasi build level aplikasi)
│ └── google-services.json (File konfigurasi Firebase - *Perlu ditambahkan manual*)
├── build.gradle.kts (Konfigurasi build level project)
└── settings.gradle.kts (Pengaturan project)
Untuk menjalankan aplikasi ini secara lokal:
- Clone repositori ini:
https://github.com/zoymelvin/BookEat
- Buka project di Android Studio.
- Siapkan Firebase:
- Buka Firebase Console dan buat project baru.
- Tambahkan aplikasi Android baru dengan nama paket (applicationId)
com.jif.bookeat. - Unduh file
google-services.jsonyang dihasilkan. - Tempatkan file
google-services.jsontersebut ke dalam direktoriBookEat/app/. - Aktifkan Authentication (Email/Password), Realtime Database (atur rules ke mode tes jika perlu), serta Storage.
- Siapkan Midtrans:
- Login ke Dashboard Midtrans Sandbox.
- Dapatkan Client Key dan Server Key Anda.
- Masukkan kunci ini di tempat yang sesuai dalam kode (kemungkinan besar di dalam file
BayarMidtrans.ktatau file constants lainnya).
- Sync Gradle dan Build Project.
- Run aplikasi pada emulator atau perangkat Android fisik (Min SDK 24).