Proyek ini merupakan tugas mata kuliah Rekayasa Perangkat Lunak (RPL) di semester 4, Institut Pertanian Bogor (IPB).
| Name | NIM | Job |
|---|---|---|
| Ludwig Alven Tama Lumban Tobing | G6401231006 | UI/UX Designer |
| Kivi Adelio | G6401231047 | UI/UX Designer |
| Jofattan Faiz Betryan | G6401231066 | UI/UX Designer |
| Jason Bagaskara Mulyono | G6401231088 | UI/UX Designer |
| Insan Anshary Rasul | G6401231132 | Mobile Apps Developer |
Proyek ini adalah aplikasi kasir yang dirancang untuk membantu warung makan mencatat hasil penjualan dan mengelola stok barang. Setiap kali pelanggan membayar, transaksi akan dicatat oleh aplikasi. Selain itu, aplikasi ini juga memungkinkan pengguna untuk menambah atau mengurangi data stok sesuai kebutuhan. Terakhir, aplikasi juga menerima pencatatan pesanan dari WhatsApp.
- Pencatatan Penjualan: Mencatat setiap transaksi penjualan yang dilakukan oleh pelanggan.
- Manajemen Stok: Menyimpan data stok barang dan memungkinkan penambahan atau pengurangan stok sesuai kebutuhan.
- Integrasi WhatsApp & Notifikasi:
- Menerima pesanan melalui WhatsApp yang tersinkronisasi dengan Firebase Firestore
- Notifikasi real-time untuk pesanan baru dengan badge indicator
- Manajemen status pesanan (Pending, On Work, Selesai)
- Firebase Integration: Sinkronisasi data pesanan online menggunakan Cloud Firestore
- Push Notifications: Notifikasi lokal untuk pesanan baru bahkan ketika aplikasi aktif
- Analisis Keuangan: Melihat laporan keuntungan dan kerugian untuk membantu pengelolaan keuangan.
- UI yang Responsif: Antarmuka pengguna yang mudah digunakan dan ramah pengguna.
- Framework: Flutter 3.29.2
- State Management: Flutter Bloc (v9.1.0)
- Local Database: SQLite (sqflite v2.4.2)
- Cloud Database: Firebase Firestore (v5.6.8)
- Backend Services: Firebase Core (v3.13.1)
- Notifications: Flutter Local Notifications
- Navigation: GoRouter (v14.8.1)
- Charts & Visualization: FL Chart (v0.64.0)
- UI Components: Custom widgets with Lexend font family
- Flutter SDK: 3.29.2
- Dart: 3.7.2
- Android Studio / VS Code with Flutter plugins
- Firebase project setup (for WhatsApp integration and notifications)
- WhatsApp Business API access (optional, for full WhatsApp integration)
-
Clone the repository:
git clone <repository-url> cd the_djenggot
-
Firebase Setup:
- Create a new Firebase project at Firebase Console
- Enable Firestore Database
- Download
google-services.jsonand place it inandroid/app/ - Update Firebase configuration in
lib/firebase_options.dart
-
Install dependencies
flutter pub get
-
Run the app
flutter run
-
WhatsApp Integration (Optional):
- Set up your WhatsApp bot to send order data to your Firestore collection
- Orders should be stored in the
orderscollection with the following structure:{ "nama": "Customer Name", "phoneNumber": "+1234567890", "makanan": "Order Items", "pembayaran": "Payment Method", "status": "Pending", "timestamp": "2025-01-01T00:00:00Z" }
NOTE: If you use windows, please change the line dart.flutterSdkPath on the settings.json
![]() |
![]() |
![]() |
![]() |
lib/
├── bloc/ # State management with Flutter Bloc
├── database/ # Local database operations with SQLite
├── models/ # Data models for the application
├── repository/ # Repository pattern implementation
├── routing/ # App navigation with GoRouter
├── screens/ # UI screens of the application
├── services/ # External services integration
├── utils/ # Helper functions and utilities
├── widgets/ # Reusable UI components
└── main.dart # Entry point of the application
- State Management: flutter_bloc
- Navigation: go_router
- Local Database: sqflite
- Cloud Database: cloud_firestore
- Firebase: firebase_core
- Notifications: flutter_local_notifications
- Icons: iconsax
- Speed Dial: flutter_speed_dial
- Charts: fl_chart
- Data Handling: equatable, intl, uuid
- File Operations: image_picker, path_provider, file_picker
- Permissions: permission_handler
- External Communication: url_launcher, share_plus
Aplikasi ini menyediakaan dummy data untuk development. Untuk menggunakannya pastikan pada line ini tidak di-comment di pubspec.yaml
# Comment this if you want release mode
- assets/dummy_images/For WhatsApp integration and notifications to work properly:
-
Firestore Database Structure:
orders/ (collection) ├── document_id/ │ ├── nama: string │ ├── phoneNumber: string │ ├── makanan: string │ ├── pembayaran: string │ ├── status: string ("Pending", "On work", "Selesai!") │ └── timestamp: timestamp -
Firestore Security Rules (Example):
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /orders/{document} { allow read, write: if true; } } }
-
Notification Features:
- Real-time badge indicator on the notification icon
- Local notifications when new orders are added to Firestore
- Order status management with visual feedback
- Local notification hanya berfungsi jika aplikasinya berjalan (foreground/background)
- Jika aplikasi tertutup sepenuhnya, Firebase Cloud Messaging (FCM) dibutuhkan
- Integrasi WhatsApp bot harus dibuat sendiri. Untuk projek ini silahkan mengacu kepada https://github.com/insanansharyrasul/the-djenggot-wweb-bot
- Apabila sebuah item menu terhapus, menu tersebut akan hilang dari riwayat transaksi.
For questions or feedback, please contact the project maintainers. Untuk pertanyaan atau feedback, silahkan kontak project mantainer.
2025 TheDjenggot Team | Made at Institut Pertanian Bogor






