/barMate

Week 5 Epicodus project aimed at increasing efficicency of food and drink orders at bars and restaurants

Primary LanguageJavaScript

barMate Logo

By Robert Bruce, Rohan Moore, Ngan Nguyen, Chris Rudnicky

Description

An app to help people place orders and help businesses maintain an efficient workflow. barMate provides customers with a way to order drinks without approaching an employee, easing lines and reducing crowding in the main room. For the bar, it provides a total overhaul of existing workflow, providing clear, easy to read displays to make customer orders intuitive. When the drink is ready, a button can be pressed to notify the customer without having to leave the bar, reducing work needed to bring drinks across the seating area.

Setup/Installation Requirements

  • Log in to GitHub
  • Clone GitHub URL in terminal
  • Open the html file in your Web Browser
  • Open file in Atom

barMate in Action

Home Screen Customer Side

Specifications

  • Create drink object with name and price
Input: new Drink("Beer", 7)
Expected Output: [object Drink]
  • Create order/ticket/tab
Input: new Order(name, age, phone number)
Expected Output: order = {name, age, phone number, price, drinkArray}
  • Add drinks to order
Input: order.addDrink(new Drink)
Expected Output: Order.drinkArray = [Drink]
  • Remove drinks from order
Input: order.removeDrink(name)
Expected Output: order.drinkArray = []
  • Calculate order total
Input: order.totalCost
Expected Output: "$5"
  • Add order to ticketList
Input: ticketList.addOrder(order)
Expected Output: ticketList.tickets = [order]
  • Remove order from ticketList
Input: ticketList.addOrder(order)
Expected Output: ticketList.tickets = []
  • Signal when order is ready
Input: ticketList.readyTicket(order)
Expected Output: readyList.tickets = [order]
  • Create TicketManager object to handle interacting with pending and ready orders
Input: var ticketManager = new TicketManager()
Expected Output: ticketManager = {TicketList, TicketList}
  • Add functions to modify pending tickets in accordance with previous specs
Input: ticketManager.readyTicket(order), ticketManager.addOrder(order), ticketManager.addOrder(order)
Expected Output: readyList.tickets = [order], ticketList.tickets = [order], ticketList.tickets = []
  • Write ticket contents to HTML upon changes
Input: ticketManager.writeTicketList()
Expected Output: lists of pending and ready orders in the HTML
  • Everytime page content is generated, clear previous html contents first
Input:  TicketManager.clearTicketLists
Expected Output: $("#ticketList").html(""); $("#readyList").html("");
  • Provide button to move an order from pending list to ready list
Input:  a ready button of an order is clicked
Expected Output: move object from pending list to ready list
  • Provide button to remove an order from pending list
Input:  a remove button of an order is clicked
Expected Output: remove object from pending list  

Technologies Used

GitHub, HTML, CSS, Bootstrap, Javascript, JQuery

License

Copyright (c) 2018 RB RM NN CR GNU General Public License 3.0