Mobile App Design and Development for Foodies

Home
breadCrumb image
Mobile App Design and Development for Foodies

Mobile App Design and Development



Introduction

The purpose of the app is to improve the foodie experience by providing a one-stop shop for all their food needs. This app is called “For foodies by foodies,” FFBF. This is food app for the London. There are three types of user for the app. Users, Critic and Admin. All users will be able to login to their accounts using their email address and password. App shows two lists of the restaurant and street food in the city. Restaurant has reviews given by critic type of users. A Users type of user of the application can review a restaurant but can review on street food, can add street food if it is not added in database. All the users of application can make reservation on any restaurant. Critic type user can’t register as critic but can be register by admin. If a user want to make a reservation in a restaurant than he will tap the Reservation button in restaurant info layout. The application uses firebase database for data storage.



Tools

Android Studio is used to create application. Android Studio helps to maintain the code and also helps to code faster.

Firebase Database is used to save and manage data of the hole application.

Admin Details

Username or Email = adminffbf@gmail.com

Password = 123456

Other Users

Any user can login in the application with their email and password after registration.



Wireframe Design

  1. Log In





  1. Home





  1. Restaurant List



  1. Street Food List



  1. User’s Profile (When user is a admin)



  1. User’s Profile (When user is a Critic user)



  1. When user see a another user profile



  1. Update self-profile





  1. Add a new User



  1. Add Restaurant



  1. Restaurant Full Information



  1. Give a Review to Restaurant


Class Diagram





Test Documentation

Test No

Test Name

Input

Output

Result

1

Login

Input value in home screen

Email = adminffbf@gmail.com

Password = 123456

Confirm Password = 123456

(And press the log in button)


User redirect to home screen with Toast message “log in successful”

Passed

2

Restaurant list

Tap the restaurant button in home screen

Redirected to Restaurant list

Screen from home screen.


Passed


3


Street food list

Tap the Street food button in home screen.

Redirected to Street food list

Screen from home screen.

Passed

4

Profile

Tap the Street food button in home screen or Profile in menu item.

Redirected to profile

Screen from home screen.


Passed

5

View Restaurant or Street food Information

Tap view in restaurant list in restaurant or street food list.

Redirected to Restaurant or Street food Information screen from home screen.

Passed

6

View Reviews

Tap Reviews button on the restaurant information screen.

Redirected to Reviews screen from restaurant information screen.


Passed

7

Reservation

Tap Reservation button on the restaurant information screen.

Redirected to a web page with current date from restaurant information screen.


Passed

9


Update Profile

1.Tap Update Profile text on the profile screen.

2.

First Name = Admin 2

Last Name = FFBF2

Address = Some

(Select image by taping image icon)

(And press the update button button)

1.Redirect to update profile screen.

2.

Redirect to profile screen with toast message “Update successfully”

Passed

10

Add Restaurant

(Tap the Add Restaurant button in admin profile and input the following data )

Name = The Led bury

Description = Veg Food

Address = Some

(Select image by taping image icon)

(And press the Add button button)

1.Redirected to Add Restaurant

Screen from profile screen.

2.Redirect to profile screen with toast message “Added successfully”

Passed

11

Register A User

(Tap the Register A User button in admin profile and input the following data )

(Select the user type by selecting radio button)

Email = some@gmail.com

First Name = Some

Last Name = User

Address = Users Address

(Select image by taping image icon)

(And press the Register button button)

1.Redirected to Register New User

Screen from profile screen.

2.Redirect to profile screen with toast message “Register user successfully”


Passed

12

Give A Review

1.Select a restaurant form the restaurant list

2.In restaurant screen tap add review button

3.Input =>

Great work and behaviour of the staff

(And press the done button)

1. Redirected to Restaurant list to Restaurant Information

2. A dialog box will appear with edit text showing users email.

3. Dialog box will disappear

Passed

13

Add a Street

Food shop

1.Click add street food in menu of the street food screen

2. Input the filed data

Select the radio button for type

Name = street food 1

Description = description

Address = Some city , first colony

(And press the Add button)

1.User redirect to add street food screen


2. Redirect to Street food list screen with toast message “Added successfully”

Passed

14

See a another users profile

Tap on users email in the review screen of any restaurant or street food.

User redirect to profile screen when update profile text is disabled.

Passed

15

Log out

Tap log out in home screen menu.

Redirect to log in screen

Passed












Development

Screen Shots

  1. Login



  1. Home



  1. Restaurant



  1. Profile (Admin-self)





  1. Add Restaurant



  1. Add new user

  1. Update profile





  1. Restaurant or Street food info

Activity

MainActivity(): This activity is the welcome activity of the application at first time. It has editBox for email and password and a button in UI, when user tap login button after entering the email address and password in the editor ,than the activity create or login the use and redirect him to home screen which is connected to Restaurant, Home and Profile activity.

Methods in the class

  1. Login() this method takes two argument email and password and create the user with the help of firebase in the database.

  2. UpdateUI() this method opens the another activity Home when user login is successful.

HomeActivity(): This is home UI of the application. In the home layout this has three button and home is connected to Restaurant page, Street Food page and profile page. When user wants to see restaurant list he will tap the Restaurant button, for street food he will tap Street Food button and for profile he will tap Profile button.

Methods in the class

  1. Profile() this method opens the profile page when user taps the profile button. This method use Intent for open a new activity.

  2. StreetFood() this method opens the Street food when user taps the Street Foid button. This method use Intent for open a new activity.

Profile(): This is the profile page of the user where user can see his data like profile, name, email, address and a update button to update his data on data base.

If the user is admin than he has two more button “Register A User” and “Add Restaurant”.

When user want to see another user’s profile the update profile text will be removed. For this activity use string which is passed with the intent.

Methods in the class

  1. UserData() receive and set the data of the user which is saved in data base.

  2. If-else this find the user type by comparing the string value ,

To know the whose profile user want to see, like his or another user’s.

RestaurantList() this activity shows the restaurant save in the data with the help of recycler view. This activity shows restaurant in list with image, name and some description and a view button. When user want to see more info about any restaurant he will tap view button than he will directed to restaurant info page.

StreetFood() this activity shows the street food save in the data with the help of recycler view. This shows the street food as restaurant list.

AddNewUser()

  1. this activity help admin to register a new user in database and here admins select the user type and input the email, first name, last name , address, and select image of the user and click register button to register a new user. If the all values all not null than this values are added to database.

  2. With the help of this activity users can also register them as users when opens the app first time and select the Register button in welcome screen. They will see only Users type to register them.

AddNewRestaurant() this activity help admin to add a new restaurant or any user to add a street food. Here the admin will select the type of object like restaurant or street food and a user will see only street food to select the user type. Next enter the name, address, description and image than will tap on add button. If the value not equal to null than the object will be added.

RestaurantInfo() This activity shows the image, name and description of the restaurant or street food with three button “Reviews”, “Add Review” and “Reservation”.

When the user is users than the add review button will invisible.

If the information is about a street food than there is menu item called add street food , with the help of this menu button all users can add the new street food to the app database, if they try to add existing street food shop then the street food can’t be add.

Classes

Review

This class will store the review of a review on any restaurant or street food in strings. The values of review are username email who gave the review, review text and date. This class has three method which return the string when they called .

getUserName()= return the email of the user string

getReviwText() = return the review text as string

getTime() = return the date of the review as stirng

Restaurant

This class will store the data of any restaurant or street food in strings. This class will store image url, description, reviews, restaurantName, userType(current), Type of the restaurant or street food (as Restaurant or Street Food).

This class has six method which return values when they are called

getUrl()=return the url of the cover image of the restaurant as string

getType() = return the Type of the restaurant as string

getDeiscription() = return the description of the restaurant as string

getRestaurantName() = return the name of the restaurant as string

getUserType() = return the type or role of the current user as string

RestaurantAdapter

This class extends RecyclerView.Adpate r<RestaurantReviewAdapter.ViewHolder>. This class takes list of restaurant class and context as argument. This class add data of the restaurant in recyclerview in layout.

RestaurantReviewAdapter

This class extends RecyclerView.Adpate r<RestaurantAdapter.ViewHolder>. This class takes list of review class and context as argument. This class add data of the review in recyclerview in layout.



Conclusion

This application is for foodies by foodies. Here when user log in first time than, the role of the user will “Users”. Only admin can register a new user as “Users” and “Critic” as their role and all information. If the user of the app has role of admin than he will see two button “Add Restaurant” and “Register New User” else button will be invisible. All users can add a street food in application in street food screen by taping the add street food button. A user with users role cannot give review to a restaurant he can only see them. User can update self-profile from profile section.



Reference

  1. 2021. [online] Available at: <https://developer.android.com/guide/components/activities/intro-activities> [Accessed 06 January 2021].

  2. 2021. [online] Available at: <https://developer.android.com/guide/components/intents-common#ViewUrl> [Accessed 07 January 2021].

  3. Firebase. 2021. Manage Users In Firebase. [online] Available at: <https://firebase.google.com/docs/auth/android/manage-users> [Accessed 08 January 2021].

  4. Firebase. 2021. Add Data To Cloud Firestore  |  Firebase. [online] Available at: <https://firebase.google.com/docs/firestore/manage-data/add-data> [Accessed 08 January 2021].

  5. Firebase. 2021. Get Data With Cloud Firestore  |  Firebase. [online] Available at: <https://firebase.google.com/docs/firestore/query-data/get-data> [Accessed 07 January 2021].

  6. Firebase. 2021. Upload Files On Android  |  Firebase. [online] Available at: <https://firebase.google.com/docs/storage/android/upload-files> [Accessed 07 January 2021].

  7. 2021. [online] Available at: <https://developer.android.com/guide/topics/ui/menus.html?hl=en> [Accessed 07 January 2021].

  8. 2021. [online] Available at: <https://developer.android.com/guide/topics/ui/declaring-layout?hl=en> [Accessed 08 January 2021].



FAQ's