A food ordering Mobile Application for both Android & iOS built on Flutter for a Quick Service Restaurant Ćrepito99.
This project intends to make a holistic mobile phone application for a Quick Service Restaurant, Crepito99, which is based in Valencia Town, Lahore. The application will enable customers to directly order food from Crepito 99 online without any intervention by any third party application.
A standard coding style is used in the development. A mixture of object-oriented, and procedural programming is used.
Built in Flutter using dart programming language. Backend and Database managed at Firebase implemented with Flutter.
- Make User Profile
- View Latest Deals
- View Menu Items
- Add Items in Cart
- Place Order
- Redeem Loyalty Points
- View Order Status
- View Previous Orders
class _TrackOrderState extends State<TrackOrder> {
String order;
_TrackOrderState(this.order);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
actions: <Widget>[
IconButton(
//Icon button to go to profile
icon: Icon(Icons.account_circle),
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => Profile_page()));
},
)
],
backgroundColor: Colors.white,
title: Text("Tracking",
textAlign: TextAlign.center, style: TextStyle(color: Colors.black)),
iconTheme: IconThemeData(color: Color(0xFFDB2C27)),
),
body: order == null
? Center(
child: Column(children: <Widget>[
CheckList(0, progress[0][0], "Order accepted"),
CheckList(1, progress[0][1], "We are preparing your food!"),
CheckList(2, progress[0][2], "Your food's on its way!"),
CheckList(3, progress[0][3], "Order delivered!"),
Padding(
padding: const EdgeInsets.all(63.0),
child: Center(
child: RaisedButton(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Order More",
style: TextStyle(color: Colors.white),
),
),
onPressed: () {
print("pressed");
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => HomePage(1)));
},
color: Color(0xFFDB2C27)),
),
)
]),
)
: StreamBuilder(
stream: Firestore.instance
.collection("orders")
.document(order)
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return Text("loading");
return Center(
child: Column(children: <Widget>[
CheckList(0, progress[snapshot.data["status"]][0],
"Order accepted"),
CheckList(1, progress[snapshot.data["status"]][1],
"We are preparing your food!"),
CheckList(2, progress[snapshot.data["status"]][2],
"Your food's on its way!"),
CheckList(3, progress[snapshot.data["status"]][3],
"Order delivered!"),
Padding(
padding: const EdgeInsets.all(63.0),
child: Center(
child: RaisedButton(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Order More",
style: TextStyle(color: Colors.white),
),
),
onPressed: () {
print("pressed");
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => HomePage(1)));
},
color: Color(0xFFDB2C27)),
),
)
]),
);
}),
drawer: Drawer(
// Drawer that contains additional options at left
child: ListView(// 4 Options in Drawer
children: <Widget>[
CustomDrawerHeader(), // Displays drawer header information
CustomListItem(
Icons.flip_to_front,
'My Orders',
() => Navigator.of(context).push(MaterialPageRoute(
builder: (context) =>
My_orders()))), // Displays Option in drawer
CustomListItem(Icons.star, 'Rate us', () => {}),
CustomListItem(Icons.phone_android, 'Contact us\n03157008877',
() => launch("tel://03157008877")),
CustomListItem(
Icons.face,
'Sign Out',
() => Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => LoginScreen()))),
])),
bottomNavigationBar: bottombar(),
);
} }
- Install Flutter.
- Install Android Studio.
- Add flutter plugin to Android Studio.
- Clone this GITHUB repository and add it to your Flutter Project.
- Run the project on either an iOS or an Android emulator.
API's generated from Google Firebase for User Authentication, Database and Storage for the efficient communication of the app with its cashier web-app portal.
- Install Flutter.
- Install Android Studio.
- Add flutter plugin to Android Studio.
- Clone this GITHUB repository and add it to your Flutter Project.
- Run the project on either an iOS or an Android emulator.
- Build an apk Android app using 'flutter build apk'.
- It will be located in build/app/outputs/apk/release/app-release.apk.
- Download and install it on an Android Device.
- Run and kindly report if any bugs found.
Contributors:
Sahibzada Sarmad Mansoor Bugvi https://github.com/mrsahibzada
Hoshi Hamza https://github.com/HoshiHamza
Ahmad Hassaan Mirza https://github.com/AhmedHassaanMirza1
Muteeullah Baig https://github.com/MuteeullahBaig
Qutaiba Rohan Ul Haq https://github.com/QutaibaRohan