Sebuah aplikasi e-commerce seluler native Android yang dibangun menggunakan Kotlin dan Jetpack Compose. Aplikasi ini dirancang dengan arsitektur multi-peran yang kompleks untuk melayani berbagai jenis pengguna.
Seluruh backend aplikasi ini didukung penuh oleh Firebase, memanfaatkan:
- Firebase Realtime Database untuk persistensi semua data (produk, pengguna, pesanan, dll.).
- Firebase Authentication untuk manajemen login dan registrasi pengguna.
Aplikasi ini tidak menggunakan Firebase Storage untuk gambar. Sebaliknya, aplikasi ini mengadopsi alur kerja yang efisien:
- Gambar di-hosting di layanan Cloudinary.
- URL publik dari gambar di Cloudinary tersebut disimpan sebagai
Stringdi Firebase Realtime Database bersama dengan data produk lainnya. - Aplikasi kemudian menggunakan library Coil untuk memuat dan menampilkan gambar secara dinamis dari URL Cloudinary tersebut.
Aplikasi ini menyediakan fungsionalitas yang berbeda berdasarkan peran pengguna:
- Autentikasi: Layar Login dan Registrasi berbasis Firebase Auth.
- Chat Real-time: Fungsionalitas obrolan antar pengguna yang didukung oleh Firebase Realtime Database.
- Dashboard: Menjelajahi produk dari Firebase.
- Manajemen Keranjang: Menambah dan mengelola item di keranjang belanja.
- Proses Checkout: Menyimpan pesanan ke Firebase.
- Riwayat Pesanan: Mengambil riwayat pesanan dari Firebase.
- Wishlist & Review: Menyimpan produk yang diinginkan dan memberikan ulasan.
- Manajemen Produk: Menambah dan mengedit produk di Firebase, termasuk menyediakan URL Cloudinary untuk gambar produk.
- Manajemen Pesanan: Melihat dan mengelola pesanan yang masuk dari Firebase.
- Manajemen Pengguna: Mengelola semua pengguna (peran, profil) di Firebase.
- Tambah Supervisor: Menambahkan pengguna baru dengan peran supervisor ke Firebase.
- Dashboard Analitik: Melihat ringkasan data dan grafik dari data Firebase.
- Panel Supervisor: Panel kontrol khusus untuk supervisor.
- Bahasa: Kotlin
- UI: Jetpack Compose
- Backend & Database: Firebase
- Firebase Realtime Database (untuk semua data aplikasi)
- Firebase Authentication (untuk manajemen pengguna)
- Image Hosting: Cloudinary (disimpan sebagai URL)
- Image Loading: Coil (untuk memuat gambar dari URL)
- Navigasi: Compose Navigation
Untuk menjalankan proyek ini secara lokal, ikuti langkah-langkah berikut:
-
Clone Repositori
git clone [https://github.com/faizaqeel07/ecommerceproject]
-
Buka di Android Studio
- Buka Android Studio dan pilih "Open an existing project".
- Arahkan ke direktori tempat Anda meng-clone repositori.
-
Siapkan Firebase (Langkah Kritis)
- Buka Firebase Console.
- Buat proyek Firebase baru.
- Tambahkan aplikasi Android ke proyek Firebase Anda dengan nama paket (package name)
com.example.ecommerceproject. - Unduh file
google-services.jsonyang dihasilkan. - Ganti file
app/google-services.jsondi dalam proyek dengan file yang baru saja Anda unduh. - Di Firebase Console, aktifkan layanan berikut:
- Authentication (Aktifkan metode Sign-in Email/Password).
- Realtime Database.
- PENTING: Buka tab Realtime Database dan ubah Aturan Keamanan (Security Rules) agar dapat dibaca/ditulis (untuk pengembangan):
(Catatan: Untuk produksi, Anda harus menggunakan aturan keamanan yang lebih ketat).
{ "rules": { ".read": true, ".write": true } }
-
Sync dan Jalankan
- Tunggu Android Studio menyelesaikan sinkronisasi Gradle.
- Pilih emulator atau perangkat fisik, lalu klik "Run".
Kontribusi sangat diterima! Silakan fork repositori ini dan ajukan pull request untuk setiap perbaikan atau penambahan fitur.