No one likes waiting in queues, especially for food. We wanted to come up with a solution for restaurants so that they can manage long queues efficiently and also benefit patrons by removing the need to stand in a queue for a long time.
What it does
Restaurants have a kiosk which is a gateway to a web application where they can create seating requests. When a customer arrives, they indicate how many people are in their party. A seating request is created in the system, and a QR code is generated for the customer. They can either scan this code with their smart phone, or follow a short url that takes them to a web page which shows them approximately how long they need to wait. This is continuously updated in real time. From the web page, the customer can check out nearby points of interest (food, drinks), to keep them occupied during the wait. Any updates to wait times are pushed to the customer in real time, unlike current systems that send out text messages to give updates.
Since this is entirely a web application, this system has a very low barrier for entry for restaurants and their customers.
Currently the kiosk is operated by the restaurant staff, where wait times are determined based on the wait staff's intuition and observations.
How we built it
The system consists of two angular.js web apps running on node.js. They both integrate with a cloud-based, no-SQL database called firebase. We chose this approach because lots of functionality came out of the box for us (e.g. user authentication, real time updates) and allowed us to rapidly prototype our ideas.
The applications required a lot of front-end and back-end development which we split among the team. We took inspiration from agile techniques such as pair programming, kanban, and lean/MVP.
Challenges we ran into
Initially we did not know what problem we wanted to solve, much less what we wanted to build. We spent the first 4 hours brainstorming and getting feedback from mentors.
We ran into many small technical issues with integrating angular and firebase. We used a sample code generator known as Yeoman which helped us overcome a lot of the integration issued we were having.
Accomplishments that we're proud of
For our first hackathon, we are very proud of how much we were able to accomplish. Even though we did not implement all of our ideas, we are able to present a very solid MVP to the judges.
We are also very proud of how our UI turned out.
A key achievement was when we were able to synchronise our two angular applications to our firebase database.
Towards the end of the hackathon, we were able to successfully deploy one of our applications live on a firebase host.
What we learned
Overall, our web development skills grew throughout the night. We also learnt the value of spending time coming up with a solid idea that we can work on throughout the hackathon.
What's next for Dequeue
The primary features that we would like to work on next include:
- Making the kiosk more automated based on previous data and analytics to predict waiting times without the need for the wait staff
- Location based notifications for customers (e.g. if the customer walks too far away from the restaurant)
- Using the Google API (or similar) to display current events and points of interest for the customer
- Make the queueing logic smarter and more responsive