DineOut is an Android based Restaurant Management System that aims to digitalize the process of various restaurant operations including ordering, billing kitchen, hall and inventory management.
The main purpose is to improve the performance of the restaurant by eradicating the daily paperwork. With this system the tasks would be performed in less amount of time and more efficiently. An additional benefit of this software is that during the rush hours the load can be balanced effectively, and restaurants would perform better than usual. In addition to this, human error that occurs when performing tasks manually is also minimized and presence of queues in the system to assign tasks to chefs can reduce congestion in the kitchen. The system would also result in reduction of labor which would result in the reduction of expenses of the restaurant. Feedback module would help the restaurant check for how well they are performing, and monthly/yearly figures can be checked by the billing module to see the trends in sales and profits. These benefits can potentially result in generation of more revenues for the restaurant.
For complete details regarding the Functional, Non-Functional Requirements and Analysis Models, you can refer to the detailed Software Requirements Specification document.
This application was developed as a final project for our Software Engineering (CS303) Course. The whole class was divided into teams of 4-5 members and each team was assigned a particular module of this Restaurant Management System. Besides coding our own module, at the end, our team was also given the responsibility to meet other teams, discuss and resolve the issues that they are facing in the application and ultimately take their developed modules and integrate all the modules together into one working application. This exercise made us familiar with the issues that occur during the integration of modules in real software projects like following consistent database schema, variable names, libraries versions etc.
It was really fun to work with these awesome geeks to get the job done:
- Ramsha Siddiqui
- Hassaan Elahi
- Mahnoor Kashif
- Shafaq Arshad
- Marriam Sajid
- All members of the Software Engineering class of Spring 2018 :)
There are five types of users for our system.
Customers interact with our system directly in order to place order, modify order, get bill and give feedback. We do not store any information related to customers in our system. The process of order taking starts from customers placing order and then the other series of events begin.
Head Chef can mark a dish as prepared when a chef tells him to do so. He can approve the cancellation of an order whenever a customer edits or removes a dish from his order. He can also assign a dish to a particular chef based on the specialty of the chef.
Chefs donβt interact with the system. They just have to look at the dishes present in their queues and prepare the dishes accordingly. Chefβs name, address and specialty etc. are stored in the database.
Adminβs job is to manage the inventory and other information related to menu and chefs in the system.
Hall Managers will provide its input when he marks the bill as paid when customers pay for their order or get the bill printed. Moreover, he gets a notification whenever a particular order is complete, or some customer asks for help through the system. Hall manager can also see tables in the hall and their status i.e. empty or filled.
In order to have a look at the code files and understand the working, simply download this repository and open Android Studio and browse to the downloaded project and open it. It will load the project files and the code will be ready to run.
Before running the app, use your Google Account to register this Application on Firebase Console, with any name you want. I have provided a copy of the Firebase Database Firebase Realtime DB Backup. Download it and import it in the Firebase console. Then you will have a working Database for the app. After that using your Google Account, login to Android Studio. Then you can run the project.
The login credentials for Admin, Hall and Kitchen Manager's interfaces are:
All have the password: 123456
If you find any bugs, have suggestions, or face issues:
- Open an Issue in the Issues Tab to discuss them.
- Submit a Pull Request to propose fixes or improvements.
- Review Pull Requests from other contributors to help maintain the project's quality and progress.
This project thrives on community collaboration! Members are encouraged to take the initiative, support one another, and actively engage in all aspects of the project. Whether itβs debugging, fixing issues, or brainstorming new ideas, your contributions are what keep this project moving forward.
With modern AI tools like ChatGPT, solving challenges and contributing effectively is easier than ever. Letβs work together to make this project the best it can be! π
Copyright (c) 2018-present, harismuneer, rmsharks4, Hassaan-Elahi, mahnoorkashif, shafaq15, marriamsajid, Software Engineering class of Spring 2018
Hey there, I'm Haris Muneer π¨π»βπ»
-
πΈοΈ Founder of Cyfy Labs: At Cyfy Labs, we provide advanced social media scraping tools to help businesses, researchers, and marketers extract actionable data from platforms like Facebook, Instagram, and X (formerly Twitter). Our tools support lead generation, sentiment analysis, market research, and various other use cases. To learn more, visit: www.cyfylabs.com
-
π Open Source Advocate: Iβm passionate about making tech accessible. Iβve open-sourced several projects that you can explore on my GitHub profile and on the Open Source Software PK page.
-
π« How to Reach Me: You can learn more about my skills/work at LinkedIn. You can also reach out via email for collaboration or inquiries. For Cyfy Labs related queries, please reach out through the company website.