You are on page 1of 15

FOOD DELIVERY APP

Major project submitted to

UNIVERSITY SCHOOL OF INFORMATION, COMMUNICATION &


TECHNOLOGY
In partial fulfillment of the requirements for the degree of

BACHELORS IN TECHNOLOGY

By
Rishab Goel
Programme- B.TECH (CSE) [8 semester]
Enrollment no-00716403219

Under the supervision of


Prof R. Rama Kishore

UNIVERSITY SCHOOL OF INFORMATION, COMMUNICATION &


TECHNOLOGY
DECLARATION

I RISHAB GOEL, a student of Computer Science and Engineering, VIIIth


semester in University School of Information, Communication & Technology,
Dwarka hereby declare that the work presented in this project report entitled
“Major Project” was undertaken under the guidance of my mentor Prof R.
Rama Kishore. The matter embodied in this project report has not been
submitted by me or anybody else to any institution for award of any other
degree or diploma except to University School of Information, Communication
& Technology, for the fulfilment of the requirements for the award of degree of
Bachelors of Technology.

(i)
ACKNOWLEDGEMENT

I am thankful to “University School of Information and communication


technology” for providing me an opportunity of minor project. It is a great
value addition in my curriculum. It is my duty to record my sincere thanks and
gratitude towards my mentor at University School of Information and
communication technology who helped me in understanding the concepts of
app development through informal lectures and assessments. I would to
express my gratitude towards my teachers at University School of Information
Communication and Technology for encouraging students in developing their
skills, my parents for their consistent support and fellow collegeas for their
support in making my dream come true.

(ii)
TABLE OF CONTENTS

S. TOPIC Pg-no
NO.
1. DECLARATION (i)

2. ACKNOWLEDGEMENT (ii)

3. INTRODUCTION 1-1

4. PROBLEM STATEMENT 1-1

5. OBJECTIVE 1-1

6. TECHNOLOGY USED 1-2

7. PROPOSED WORK 2-2

6. WORK DONE TILL NOW 2-9

7. WORK TO BE DONE 9-9

8. CONCLUSIONS 10-10

9. REFERENCES 10-10
1. INTRODUCTION
The Project presented in this report is a food delivery app that provides food
delivery at your door in very less time and with the best packaging. Providing food
from every famous food place near you. It helps users order food with the best user
experience.

2. PROBLEM STATEMENT

The traditional ordering system suffers from many problems like long waiting
time,and no customizations as per customer’s needs,no tracking of order, no
information for comparision of prices for the service provided by different service
providers and unavailability of many restaurants providing food items.

Our proposed system is an online food ordering system that enables ease for the
customers. It overcomes the disadvantages of the traditional queueing system. Our
proposed system is a medium to order online food hassle free from restaurants as
well as mess service. This system improves the method of taking the order from
customer. The online food ordering system sets up a food menu online and
customers can easily place the order as per their wish. The app considers the need
of the customers who have moved to new cities, and do not have the time to
prepare food themselves. The app provides all the information and details about
food at a single platform and customers can view different food items and
compare their prices and select the best option that suits their needs. The admin
lists the food items and prices collected from different hotels and mess.

3.OBJECTIVE

Users should be able to log in and after logging in,user is presented with
information about list of available food items.User then sees amount to be paid.
After that user can leave review/comment.This system will lead to increase in
ticket booking efficiency,and will make the process easy,simple,user friendly,less
time consuming as compared to manual work.

4. TECHNOLOGY USED

4.1 FLUTTER

It is used to create beautiful UI, generate clean code, and deploy the app stores or
web with custom functions.

4.2 FIREBASE

Firebase is used to store user authentication data, database related to project, and
integrate frontend of the project with backend as firebase. (1)
5. PROPOSED WORK

Our food delivery app consists of user sign in/sign up page with credentials like
email and password validated at client side. Then user is presented with
dashboard that contains a list of food items. Each food item has a separate page
which contains list of restaurants providing the same. User can see description of
each food item,its location,price and add to cart the required quantities of it to the
cart.He can mark food items as favourite and that list is stored in favourites
section.User can also leave review about food item he/she can then place order
and check the bill to be paid and enter the location of delivery.

6. WORK DONE TILL NOW

6.1 Implemented Sign up page for new users containing fields like
name,email,password, phone no with validations for email and password.

Fig 1: Sign in Page

6.2 Implemented Sign in page for existing users containing fields like
email,password, with validations for email and password.The user data
from sign in and sign up is stored at firebase backend. (2)
Fig 2: Sign up Page

6.3 Implemented homescreen showing list of food items,dashboard in the


appbar.List of a particular food item in the appbar is below in the body
section showing image,favourite button and name of restaurant and food
item.The bottomnavigation bar also contains icon for different pages
like cart profile.

Fig 3: HomeScreen Page


(3)
6.4 Implemented description page showing Image,name,price,location of
restaurant,name of restaurant,description,translator button for different
language description,review button,add to cart button.

Fig 4: Food Item description Page

6.5 CODE

Main.dart
Import 'dart:developer'; (4)
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:food_delivery_app/config/app_theme.dart';
import 'package:food_delivery_app/splash_screen.dart';
import 'firebase_options.dart';

void main()async{
try {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
} catch (e,s) {
log("ERROR : Initialization Error , $e",stackTrace: s);
}

runApp(const MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Food',
debugShowCheckedModeBanner: false,
theme: Themes.lightTheme,
home: const SplashScreen()
);
}
}

Dashboard.dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:food_delivery_app/controllers/bottom_nav_controller.dart';
import 'package:food_delivery_app/screens/cart_screen.dart';
import 'package:food_delivery_app/screens/home_screen.dart';
import 'package:food_delivery_app/screens/profile_screen.dart';
import 'package:food_delivery_app/widgets/app_drawer.dart';
import 'package:get/get.dart';

class Dashboard extends StatefulWidget {


(5)
const Dashboard({ Key? key }) : super(key: key);

@override
_DashboardState createState() => _DashboardState();
}

class _DashboardState extends State<Dashboard> {


final _bottomNavController = Get.put(BottomNavController());
final _scaffoldKey = GlobalKey<ScaffoldState>();

@override
void initState() {
super.initState();
}

@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: ()async{
if(_bottomNavController.currentIndex!=0){
_bottomNavController.changeRoute(index: 0);
return false;
}
return true;
},
child: Scaffold(
key: _scaffoldKey,
appBar: PreferredSize(
preferredSize: const Size(double.infinity,55),
child: Obx((){
int index=_bottomNavController.currentIndex;
return AppBar(
leading: IconButton(
icon: Icon(
CupertinoIcons.bars,
size: 30,
),
onPressed: (){
_scaffoldKey.currentState?.openDrawer();
},
),
title: Text(
index==0
? "Foodie"
: index==1
? "Cart" (6)
: "Profile",
style: const TextStyle(
fontWeight: FontWeight.w600,
fontSize: 20
),
),
actions: [
// if(index==0)
// CustomIconButton(
// onPressed: (){
// // AppNavigator.push(context, NotificationScreen());
// },
// icon: Icons.notifications_on_rounded,
// )

]
);}
),
),
drawer: AppDrawer(),

body: PageView(
controller: _bottomNavController.pageController,
children: [
HomeScreen(),
CartScreen(),
ProfileScreen(),
],
onPageChanged: (index) {
_bottomNavController.setIndex=index;
},
),

bottomNavigationBar: Obx((){
return Container(
decoration: BoxDecoration(
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.grey.withOpacity(0.8),
blurRadius: 16,
),
],
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(12),
topRight: Radius.circular(12),
), (7)
),
child: ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(12),
topRight: Radius.circular(12),
),
child: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
// backgroundColor: Themes.colorPrimary,
currentIndex: _bottomNavController.currentIndex,
items: const [
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.home),
label: "Home"
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.cart, size: 22,),
label: "Cart"
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.person),
label:"Profile"
),
],
onTap: (int index) {
_bottomNavController.changeRoute(index: index);
},
),
),
);
})
),
);
}
}
(8)
6.6 DATA FLOW DIAGRAM

Fig-5: Data flow diagram showing interaction of user with system and flow of
data between different components.

7. WORK TO BE DONE

7.1 Implement favourite page showing the list of food items marked
favourite by the users.

7.2 Implement cart page showing list of different food items and their
quantity added by the user.

7.3 Implement order page showing ordered food items,net amount to be


paid, and order history.
(9)
8. CONCLUSIONS

The Project presented in this report addresses the inefficiencies of traditional


system,and attempts to create convienance for users. The Project would benefit all
the stakeholders be it restaurants,users,or developers and provides a new and
unique way for ordering food items.

9. REFERENCES

[1]. Adithya R., Abhishek


Singh.Online_Food_Ordering_System.Researchgate.https://www.researchgate.net
/publication/321844341_Online_Food_Ordering_System

[2]. Shivangi Shrivastava.case study online food


delivery.Medium.https://bootcamp.uxdesign.cc/ux-case-study-online-food-
delivery-aac10a67d2e

(10)

You might also like