Description
The case study of this application is about a vegetable shop, similar to a grocery store. The framework used to build this application is Flutter version 3.22.2 with Firebase as a Backend as a service (BaaS). There are 2 applications created, one for admin and one for customers. The platform focus of this code is Android, so you need to do some additional configuration so that it can run on other platforms.
There are several features based on who the application is for. The Firebase services used include Firebase Authentication, Firestore Database, Firebase Storage, and Firebase Messaging for push notifications. Plus Google products, namely Google Maps.
For Admins, there is an authentication feature that can only be accessed by admins, vegetable management and vegetable promotions. Admins can also see a list of orders made by customers, and then update the status of the order whether it is being packaged, sent, or has been received by the customer. The admin can use the analytical features to monitor sales over a certain period, as well as total revenue and sales graphs.
For customers, there is an authentication feature that can only be accessed by customer accounts. There is an account management feature, so customers can make profile settings such as updating their name, and photo, or even deleting their account. Customers can look at the promotions that are being held then choose the vegetables they want to put in their basket and then order them. Before ordering vegetables, customers are required to select an address with the help of Google Maps and organize a list of addresses to be saved. The payment feature still uses a dummy wallet, which you can later develop and integrate with your desired payment gateway.
A very helpful feature of this application is a chat between Customers and Admins. Customers can ask for details of the vegetable products being sold and ask about orders that have been made.
The form and contents of this code include using a clean architecture structure, Bloc state management, routing management with go_router, FCM for notifications, using a service locator as an injection for singleton code, and several additional flutter packages.
The files you get include source code for admin applications and customer applications, documentation in the form of markdown files which you can open using the Code Editor, and several application screenshots.