Skip to main content

App Features(Customer)

Here, we talk about the Customer's side of the app:

The customer Homepage contains a fragment that displays the corresponding layout of the item clicked in the sidebar. As soon as the customer is logged in OutletList Fragment is called which displays the list of outlets present, where clicking on a particular outlet, will take them to the particular menu of the outlet. We've used Firebase UI in all fragments. Firebase UI is a class provided by Firebase SDK to make a query in the database to fetch appropriate data.

Based on the customer's requirements and usability, we have developed an exclusive set of fragments.

    1. OutletList: This fragment will be called after the user is logged in. It will consist of a list of eateries that are open at any given time. It contains a recycler view, which populates itself using outletList_adapter by querying the List of Vendors in the Database using Firebase UI. 

    2. OutletMenu: On selecting one of the outlets, this fragment is called which displays the menu of the respective outlet. OutletMenu contains a recycler view, which populates itself using OutletMenu_Customer_adapter by querying the Menu of the particular Outlet using Firebase UI. The customer can choose the food item which they want and can add it to the cart.

    3. CartFragment: This fragment displays the final list of items and the Total Amount in the Cart before checkout. It also contains a quantity modifier where the user can increase, decrease or delete items from the cart, where upon the total is readjusted based on the final items in the cart. CartFragment contains a recycler view, which populates itself using CartAdapter by querying the Cart details of the particular User using Firebase UI. The customer can also check the total bill before paying. 

    4. Payment Window(Additional Feature): The payment integration was done using the Easy UPI Payment Library. Upon clicking the PlaceOrder Button, the user is redirected to the PaymentActivity, whereby after entering required UPI information, the transaction takes place successfully. After the transaction takes places successfully, it is added to the Transaction History of the Customer and the Vendor. The Transaction ID is generated using the System.currentTimeMillis().

    5. TransactionHistory_Customer: This fragment displays information regarding the previous transactions made by the user. It displays the Total Amount, TransactionID, and the Outlet from which they had purchased.  This fragment contains a recycler view, which populates itself using TransactionHistory_Customer_Adapter by querying the Transaction History details of the particular User using Firebase UI. 

    6. Customer Profile: This fragment displays the details of the customer stored by us in the Database, which includes Name, Email, and Phone Number.






Comments

Popular posts from this blog

App Architecture

App architecture is a consistent plan that needs to be made before the development process starts.  App architecture offers a road map for how the various application components must be set up and connected. It defines how the UI, database and background tasks interact to make the required job possible. We have used MVC(Model View Control) architecture to build our app.  MVC is known for handling multiple views and huge volumes of data effectively. There are three  components in MVC: Model : The model contains data about the application. All the information which must be stored or displayed and access specifications are mentioned here.  model.java serves as our model class. View : View forms the UI part of the app. Views displays model data to the users and allow them to modify the data. The Layouts form the view.  Controller : The controller handles user requests and controls user navigation within the app. It processes user input. The Activities and the Fragme...

Database Design

Database designs provide the blueprints of how the data is going to be stored in a system.  Database design is a vital component of any app, and it determines what data to be stored and how the different data elements interact. A proper database affects the overall performance of an application. We're using a Firebase Database for our app. We prefer Firebase over SQLite since this is a multi-user app and FireBase is preferred over SQLite for Multi-User Apps.  Google Firebase is Google-backed application development software that allows developers to develop Android, IOS, and Web apps. It can be used for user authentication and to host a real-time database. The database design for our app is given below. The root node of our Database is Users, which branches into two children i.e. Customer and Vendor. We store all the information corresponding to the customer using the Customer's Mobile Number as the Key, and for vendor, we store all the information using the OutletName as the ...

App Launch Screen

The app splash screen is the brief introductory screen that appears as the app loads after the user has just opened the app. When the application is launched, Main Activity sends an intent to the Splash Activity, which displays the App Logo for 2000 milliseconds, from where the control comes back to the Main Activity.   The MainActivity consists of three options: Login: Users can log in using their Username. The user is directed to the Login Activity for authentication. The User first selects what type of user (i.e., Customer or Vendor) in the Spinner on the Login page. The Username for the customer would be their PhoneNumber, and for the Vendor, it would be their OutletName. Once the user clicks on the Login button, we verify if such an account with the given Username exists in the Database or not. If it doesn't exist, we display a Toast message saying, "No Account found". If the username is valid, then we verify the Passwo...