Aplikasi Pemesanan Makanan untuk Mahasiswa Kampus
KampusMeal adalah aplikasi mobile untuk memesan makanan dari berbagai stall/warung makanan di sekitar kampus. Aplikasi ini memudahkan mahasiswa untuk memesan, membayar, dan melacak pesanan makanan mereka.
| Fitur | Deskripsi |
|---|---|
| π Authentication | Register, Login, dan Logout dengan JWT |
| πͺ Explore Stalls | Jelajahi berbagai stall makanan di kampus |
| π Menu & Detail | Lihat menu lengkap dengan harga dan gambar |
| π Keranjang | Tambah, edit, dan hapus item dari keranjang |
| π³ Checkout & Payment | Pilih metode pengambilan (pickup/delivery) dan upload bukti bayar |
| π¦ Order Tracking | Lacak status pesanan secara real-time |
| π Notifikasi | Notifikasi lokal saat status pesanan berubah |
| β Review & Rating | Berikan ulasan dan rating untuk pesanan yang selesai |
| π€ Profile Management | Edit profil dan alamat pengiriman |
- Flutter
^3.9.2- Framework UI cross-platform - Dart
^3.0- Bahasa pemrograman
- Provider
^6.1.5- State management sederhana dan efektif
- Dio
^5.4.0- HTTP client dengan interceptors - Flutter Secure Storage
^9.0.0- Penyimpanan aman untuk token - Shared Preferences
^2.2.2- Penyimpanan lokal
- Flutter Local Notifications
^19.0.0- Notifikasi lokal - Image Picker
^1.2.1- Upload foto (bukti bayar, profil) - Intl
^0.18.1- Format tanggal dan mata uang
- Flutter Dotenv
^5.2.1- Environment variables
lib/
βββ main.dart # Entry point aplikasi
βββ constants/ # Konstanta dan konfigurasi
β βββ review_tags.dart
βββ models/ # Data models
β βββ cart.dart
β βββ order.dart
β βββ review.dart
β βββ stall.dart
β βββ stall_detail.dart
β βββ user.dart
βββ providers/ # State management
β βββ auth_provider.dart
β βββ cart_provider.dart
βββ services/ # API dan business logic
β βββ api_client.dart # HTTP client dengan interceptors
β βββ auth_service.dart # Authentication API
β βββ cart_service.dart # Cart management
β βββ notification_service.dart # Local notifications
β βββ order_service.dart # Order API
β βββ review_service.dart # Review API
β βββ stall_service.dart # Stall API
β βββ user_service.dart # User/Profile API
βββ screens/ # UI Screens
β βββ splash_screen.dart
β βββ welcome_screen.dart
β βββ login_screen.dart
β βββ register_screen.dart
β βββ home_screen.dart
β βββ explore_screen.dart
β βββ restaurant_detail_screen.dart
β βββ checkout_screen.dart
β βββ payment_screen.dart
β βββ payment_loading_screen.dart
β βββ order_history_screen.dart
β βββ review/
β β βββ review_order_screen.dart
β βββ profile_screen.dart
β βββ edit_profile_screen.dart
β βββ edit_address_screen.dart
β βββ address_screen.dart
β βββ about_screen.dart
βββ utils/ # Helper functions
- Flutter SDK
^3.9.2 - Dart SDK
^3.0 - Android Studio / VS Code
- Android Emulator atau Device Fisik
-
Clone repository
git clone https://github.com/your-username/kampusmeal-mobile.git cd kampusmeal-mobile -
Setup environment
cp .env.example .env
Edit
.envdan isi dengan konfigurasi yang sesuai:API_BASE_URL=https://your-api-url.com
-
Install dependencies
flutter pub get
-
Run aplikasi
flutter run
# Debug APK
flutter build apk --debug
# Release APK
flutter build apk --releaseAplikasi ini mendukung notifikasi lokal untuk update status pesanan:
| Status | Notifikasi |
|---|---|
waiting_confirmation |
"Pembayaran Terkirim π€" |
processing |
"Pesanan Dikonfirmasi π³" |
ready (pickup) |
"Pesanan Siap Diambil π" |
ready (delivery) |
"Pesanan Dikirim π΅" |
completed |
"Pesanan Selesai β " |
rejected |
"Pesanan Ditolak β" |
pending_payment β waiting_confirmation β processing β ready β completed
β
rejected
| Status | Deskripsi |
|---|---|
pending_payment |
Menunggu user upload bukti bayar |
waiting_confirmation |
Menunggu konfirmasi penjual |
processing |
Pesanan sedang diproses/dimasak |
ready |
Siap diambil (pickup) atau sedang dikirim (delivery) |
completed |
Pesanan selesai |
rejected |
Pesanan ditolak oleh penjual |
| Warna | Hex | Penggunaan |
|---|---|---|
| π Primary Orange | #FF7449 |
Warna utama, tombol, header |
| π‘ Secondary Orange | #FB923C |
Aksen, gradient |
| π’ Teal | #14B8A6 |
Status selesai, badge aktif |
| β« Text Dark | #1F2937 |
Teks utama |
| βͺ Background | #F9FAFB |
Background halaman |
| Nama | NIM |
|---|---|
| Muh. Fajri Farid | D121231038 |
| Irgiyansyah Ahmad Fahrezy | D121231115 |
| Andi Muhammada Abigail Ghalib Athallah Surya Putra | D121231109 |
Project ini dibuat untuk keperluan tugas kuliah Mobile Programming.
Made with β€οΈ using Flutter
