Abstract: A system for food ordering and table management may include a processor, a communication port and programming instructions that, when executed, will cause the processor to receive a food order, generate a table arrangement schedule and a food preparation schedule based on the information of the food order. The system may automatically update the table arrangement and food preparation schedule based on customer arrival data. The system may also use the customer arrival data to automatically update table tracking information and food preparation tracking information in a database. The system may transmit the information associated with the food order, including the table number and an estimated time that the selection of food will be ready, to a customer device.
[0001] The present invention generally relates to a food ordering system and more specifically relates to systems and methods for food ordering and table management in restaurant settings.
[0002] Food ordering in restaurants is usually a manual process. It involves the waiters handing the menu to the customers, noting down the orders from the customers, transferring the orders to the kitchen, serving the menu items, and finally preparing bills. This process is prone to human errors and delays, resulting in unsatisfactory customer experience. The advent of wireless technology and mobile devices has led to automation in the hospitality industry. The competition in restaurant businesses has increased with the developments in food ordering techniques. Food ordering through online systems is becoming increasingly popular.
[0003] Some online systems and methods have been developed for tracking ingredients, ordering supplies, and delivering services. However, these systems and methods do not provide ways to coordinate table arrangement and food preparation schedules with customer arrival information. Very often, the table and food are not ready upon customers' arrivals.
[0004] This disclosure describes systems that address at least some of the technical issues discussed above, and/or other issues.
SUMMARY
[0005] A system for food ordering and table management includes a processor, a communication port and programming instructions that, when executed, will cause the processor to perform certain functions. The system may receive a food order from a customer device. The food order may include food ordering information, such as a unique customer identification code
of a customer, a selection of food, a number of diners, a desired date, and a desired time. The system may use the food ordering information to create a table arrangement schedule that contains a table number and an estimated time that a table is needed. The estimated time that the table is needed may be within a period of the desired time of the desired date. The system may also create a food preparation schedule that contains an estimated time that a food preparation station is needed. The food preparation schedule may also contains identification of one or more food preparation stations for preparing the selection of food so that the selection of food will be prepared within a period of the desired time of the desired date.
[0006] In some scenarios, the system may also automatically receive customer arrival data, and use the customer arrival data to automatically update the table arrangement schedule, table tracking information in a database, the food preparation schedule, and food preparation tracking information in the database. The customer arrival data may include an estimated time of arrival for the customer and/or a current location of the customer. The system may determine an estimated time the customer will be arriving at the restaurant based on a distance between the current location of the customer and a physical location of the restaurant. In determining the estimated time the customer will be arriving, the system may receive an alert that indicates that the customer has started a trip to the restaurant. Upon receiving the alert, the system may use a time when the alert is received to determine the estimated time the customer will be arriving at the restaurant, and automatically update the table arrangement schedule, the table tracking information in the database, the food preparation schedule, and the food preparation tracking information in the database.
[0007] The table tracking information in the database for each table in the restaurant may include a table number and an estimated time that the table will be ready for the next customer. The food preparation tracking information in the database for each food preparation station in the restaurant may include a food preparation station number and an estimated time the food preparation station will be ready for preparing a new menu item. The system may update the table tracking information in the database by determining whether the estimated time that a table will be ready for a given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order. The
system may assign the given table to the food order, upon determining that the estimated time that a table will be ready for the given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order.
[0008] The system may also update and the food preparation tracking information in the database by determining whether the estimated time a food station will be ready in the food preparation tracking information of a given food preparation station is within a period of the estimated time food will be needed in the food preparation schedule of the food order. The system may assign the food preparation station to the food order, upon determining that the estimated time a food station will be ready in the food preparation tracking information of the given food preparation station is within a period of the estimated time food will be needed in the food preparation schedule of the food order.
[0009] In updating the table tracking information in the database, the system may update the estimated time that a table is needed in the table arrangement schedule, before determining whether the estimated time that a table will be ready for a given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order. The system may update the estimated time that a table is needed in the table arrangement schedule by determining whether a food preparation station is assigned to the food order. Upon determining that a food preparation station is assigned to the food order, the system may update the estimated time that a table is needed in the table arrangement schedule based on the time the assigned food preparation station will be ready.
[0010] In updating the food preparation tracking information in the database, the system may update the estimated time that food will be needed in the food preparation schedule, before determining whether the estimated time a food station will be ready in the food preparation tracking information of a given food preparation station is within a period of the estimated time food will be needed in the food preparation schedule of the food order. The system may update the estimated time that food will be needed in the food preparation schedule by determining whether the food order has an assigned table. Upon determining that the food order has an assigned table, the system may update the estimated time that food is needed based on when the assigned table will be ready for that food order.
[0011] In some scenarios, the system may also determine whether a customer has arrived at the restaurant. Upon determining that the customer has arrived at the restaurant, the system may transmit information associated with the food order, containing the table number and an estimated time that the selection of food will be ready, to the customer device.
[0012] In receiving the food ordering information, the system may transmit an order associated with the food ordering information to a restaurant device. The restaurant device may receive a restaurant action that is indicative of a confirmation or a rejection of the order. The system may transmit the restaurant action to the customer device. In receiving the food ordering information, the system may further receive a modification of the ordering information from the customer device or a restaurant device after the customer arrives at the restaurant.
[0013] The system may also calculate a total cost based on the selection of food, and split the bill for the customer based on the total cost of the order, a bill sharing method, and the number of bill sharing partners. The system may receive from the customer device the selection of one or more bill sharing partners from a contact list and transmit an invitation message of splitting bill to the mobile device of each bill sharing partner. The bill sharing partners may accept or deny to split the bill on each of their devices and send their responses to the system. Based on the responses from all of the bill sharing partners, the system may adjust the bill and distribute the remaining shares of the bill among the consenting bill sharing partners who accepted to split the bill. The system may receive the payment from each consenting bill sharing partner. In the event that the system does not receive the payment from a consenting bill sharing partner, the system may prompt for a response that is indicative of waiting for an additional period of time, distributing unpaid amount among the bill sharing partners who have already paid, or canceling the order.
[0014] Various methods for food ordering and table management may also be implemented in the above illustrated systems.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] FIG. 1 is a block diagram of an example system for food ordering and table management in a restaurant.
5 [0016] FIG. 2 is a flowchart of an example of a process for receiving restaurant details
and menu details from a restaurant device.
[0017] FIG. 3 is a flowchart of an example of a process for generating a table arrangement schedule and a food preparation schedule by the system in FIG. 1.
[0018] FIG. 4 is a flowchart of an example of a process for receiving an order from a
10 customer device.
[0019] FIG. 5 is a flowchart of an example of a process for communicating with a restaurant device of an order placed by a customer device.
[0020] FIG. 6 is a flowchart of an example of a process for tracking the arrival time of a customer and updating the status of an order.
15 [0021] FIG. 7 is a flowchart of an example of a process for splitting bills for customer
order.
[0022] FIG. 8 depicts various embodiments of one or more electronic devices for implementing the various methods and processes described herein.
DETAILED DESCRIPTION
20 [0023] In this document, the singular forms “a,” “an,” and “the” include plural references
unless the context clearly dictates otherwise. The term “comprising” means “including, but not limited to.” Similarly, the term “comprises” means “includes, and is not limited to.” The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise. Unless defined otherwise, all technical and scientific terms used in this document have the same
6
meanings as commonly understood by one of ordinary skill in the art. Similarly, the term “(s)” following a noun contemplates the singular or plural form, or both.
[0024] The term “and/or” means any one of the items, any combination of the items, or all of the items with which this term is associated.
5 [0025] The phrases “in one embodiment,” “in various embodiments,” “in some
embodiments,” and the like are repeatedly used. Such phrases do not necessarily refer to the same embodiment, but they may unless the context dictates otherwise.
[0026] As used in this document and in the claims, the terms “processor” and “processing
device” may refer to a single processor or any number of processors in a set of processors that
10 collectively perform a process, whether a central processing unit (CPU) or a graphics processing
unit (GPU) or a combination of the two.
[0027] In FIG. 1, a system 100 for food ordering and table management includes one or more internet-based server devices 110 that are capable of communicating with one or more remote devices 120, 122, 130, 132 via a communication network 140. The server device 110
15 may be coupled to the communication network via any suitable connections, wired or wirelessly
and in any suitable communication protocols. Similarly, the remote devices may also be coupled to the communication network 140 via any suitable connections, wired or wirelessly and in any suitable communication protocols. Examples of communication networks include Local Area Networks (LAN), Wide Area Networks(WAN), telephone networks, the Internet, or any other
20 wired or wireless communication networks. In some embodiments, the remote device and the
server system may directly be connected via a wireless or direct-wired connection.
[0028] The server device 110 may include one or more processors 112, memory 114
(e.g., registers, cache, RAM, and ROM), computer-readable storage medium 116, and a
communication interface 118. The computer-readable storage medium stores one or more sets of
25 programming instructions (e.g., operating system, application program) including the
programming instructions embodying the methods disclosed herein. The communications interface 118 includes a communication port that may be used to couple the server device to the communication network 140. Remote devices 120, 122, 130, and 132 may each include a
7
processor, a memory, a computer-readable storage medium, a display, and a communication
interface that couples the remote device to the communication network. In some embodiments,
the remote devices are mobile devices. Examples of mobile devices include mobile telephones,
smartphones, tablets, personal digital assistant or PDA, and laptop computers. In some
5 embodiments, the remote devices are desktop computers or servers. The remote devices can be in
communication with other remote devices that are on the communication network. The remote
devices can be restaurant devices 130, 132, which can be used by restaurants to perform certain
operations associated with providing services to customers. The remote devices can also be
customer devices 120, 122, which can be used by customers to perform certain operations
10 associated with ordering food from restaurants.
[0029] In some embodiments, a remote device may include a web browser application configured to allow a user to communicate with a server device 110 on the communication network, transmit user information to the server device and receive information from the server device. The remote device may also include a custom-developed application that is configured to
15 communicate with the server device. The remote device may include a mobile application
specially developed for implementing the system and method disclosed herein. In a non-limiting example, the customer devices 120, 122 may send a food order to a service device 110. The server device 110 may also receive from one or more customer devices 120, 122 a customer food order or a modification of an existing order. This can also be implemented in a web browser
20 application or a custom-developed application installed on the customer device. In another non-
limiting example, a server device 110 may receive from one or more restaurant devices 130, 132 menu information of a restaurant, transmit a food order that was received from a customer device to a restaurant device, and receive a response from the restaurant device that is indicative of receiving, accepting, or rejecting the food order. In some scenarios, the above process can be
25 implemented in a web browser application or a custom-developed application installed on the
restaurant device.
[0030] In some scenarios, the system may establish merchant accounts for one or more restaurants. The system may provide a merchant account for each restaurant and associate registration information with each merchant account. The registration information for each
8
merchant account may include, for example, restaurant name, physical address of the restaurant,
GPS coordinates of the restaurant, email contact of the restaurant, telephone number of the
restaurant, and username and password of the restaurant account associated with the system. The
system may receive this registration information from a restaurant device via a login registration
5 process. The registration process may also include automatic or manual verification of
registration information that is received from the restaurant device. For example, the registration
may be reviewed by a system administrator, followed by a due diligence process. After the
agreement between a restaurant and the system administrator is signed, the system may activate
the merchant account for the restaurant, and assign a unique restaurant identification code to the
10 restaurant.
[0031] The system may use the merchant account to process payments for restaurants.
For example, the system may receive payments from a customer device 120, 122 for a food order
from a restaurant, which has an associated merchant account with the system. The system may
send the payments from the customer device 120, 122 to the restaurant device 130, 132
15 associated with the merchant account. The payment may be in the form of credit card
information, a voucher, a credit issued by the restaurant or other organizations, or a digital currency that allows for instantaneous online transactions
[0032] Similarly, the system may also establish customer accounts for one or more customers. The system may receive from customer devices 120, 122 registration information to
20 open a customer account for ordering food and for sending payments to restaurants. The
registration information may include, for example, customer name, home address, email address, telephone number, username and password of the customer. The registration information may also include allergy information and dietary preferences. The registration information may further include credit card information, such as credit card account numbers, cardholder name,
25 and card expiration date. After the system receives the registration information, the system may
activate the customer account, and assign a unique customer identification code that is associated with the customer account.
[0033] In some embodiments, the account registration process may require additional verification steps to verify the registration information of the customers. For example, the system
9
may send a verification code to the customer, e.g., via email or text message, and wait to receive
the verification code entered by the customer via the customer device. The system may compare
the verification code that was sent to the customer and the verification code that was received
from the customer device. If the two verification codes match, the system may authenticate the
5 customer login; otherwise, the system may deny the customer login.
[0034] In FIG. 2, a restaurant login process may be implemented on the server device. The server device may be configured to prompt a restaurant user to login 201. For example, the server device may transmit a login page to the restaurant device which displays a login prompt for a user to enter login credentials. The login credentials may include username and/or
10 password. In some embodiments, the login credentials may additionally include a verification
code provided by the system. The system may generate the verification code that is associated with the login process, and transmit the verification code to an email address or a phone number of the restaurant user. The system may use a similar verification method as with verifying user login from a customer device described above. The system may receive restaurant user login
15 credentials 203. Upon verification of the user login credentials, the system may then prompt the
restaurant user to enter the restaurant details 205 from the restaurant device. Examples of the restaurant details include a brief description of the restaurant, one or more photos of the restaurant and/or certifications or service awards that the restaurant has earned in the past. In receiving restaurant details from the restaurant device, the server may generate a new window
20 that the restaurant user may display on the restaurant device and use to enter additional
information or modify information that has already been entered.
[0035] Alternatively, and/or additionally, the server device may also prompt the
restaurant user to enter restaurant menu details 207 from the restaurant device. Menu details may
include, for example, categories (e.g., appetizers, entrees, lunch specials, dinner combination,
25 chef’s specialties, deserts) and subcategories (e.g., vegetable, poultry, beef, seafood), menu
items, menu item identification numbers, ingredients, calorie count, photos, allergy warning, price, descriptions and promotion information of each menu item. The server device may also prompt the restaurant user to change menu details (e.g., add, delete, or modify menu information) 209 and/or prompt the user to specify operational schedule of the restaurant 211,
10
through the restaurant device. The operation schedule may include business hours. The operation schedule may also include daily specials, coupons, promotions, and menu information of the restaurant.
[0036] In addition to receiving restaurant details from the restaurant device(s), the server
5 device may also collect additional information about the restaurant from other sources, such as
online restaurant sites (e.g. Yelp.com) or online restaurant reservation sites (e.g. Table.com).
Additional information about the restaurant may include restaurant reviews, rankings, popular
menu items etc. In collecting the additional information about the restaurant, the server device
may use the name of the restaurant, along with the physical address or the name or zip code of
10 the town in which the restaurant is located, to search one or more online databases to find the
additional information that is associated with the restaurant.
[0037] Alternatively, and/or additionally, the system may also receive ratings or reviews for a restaurant and/or a menu item from customer devices via a mobile application. The system may include a database that contains ratings and reviews for each restaurant. The system may
15 provide a customer satisfaction survey for customers to enter their ratings and reviews. The
customer satisfaction survey can be delivered to email addresses of customers or the mobile application on customer devices. The system may update a restaurant rating based on the aggregated ratings received from the customers of a given restaurant. The reviews from the customers for each restaurant will be added to the restaurant details. The system may provide
20 incentives, such as redeemable coupons or vouchers, to the customers who provide ratings and
reviews.
[0038] Referring to FIG. 3, a process of a system for food ordering and table
management may include receiving food ordering information 301 from a customer device. The
food ordering information may include a unique customer identification code of a customer, the
25 customer’s name, the selection of food by the customer, the number of diners, and the desired
date and desired time the customer wishes the food to be ready. The system may use the food ordering information to create a table arrangement schedule 303. The table arrangement schedule contains information specific to each order and may include, for example, an assigned table number for serving the food and number of diners in the food order, if any. The table
11
arrangement schedule may also include the table size suitable for the number of diners, the
desired table location in a premise of the restaurant, and a preference of smoking or non-smoking
section. The table arrangement schedule may also include an estimated time that a table is
needed. In some embodiments, the estimated time a table is needed is based on the estimated
5 customer arrival time.
[0039] In some scenarios, the system may include a database configured to store the table arrangement schedule for each order. The database may further be configured to store table tracking information for each table in the restaurant. The table tracking information may include, for example, a table number, the table size, the table location on the restaurant premises, and
10 whether smoking is allowed or not allowed for that table. The table tracking information may
also include the status of a table (e.g., ready, not ready, assigned). If the status of the table is “not ready,” the table tracking information may also include an estimated time that the table will be ready for the next customer. The system may dynamically update the table tracking information in the database at a time interval. For example, the system may update the table tracking
15 information every 30 seconds, every minute, or every five minutes. Other time intervals may also
be used.
[0040] In some scenarios, at each update of the table tracking information, for each given table, the system may check whether the food order that is served to the given table is ready, and if ready, the system may estimate the time that food will be consumed (which is when the table
20 will be ready for the next customer). For example, the system may add an average of 40 minutes
(or any suitable time) to the time the food order was ready to derive an estimated time that food will be consumed (or that the table will be ready for the next customer). If the food order that is served to the given table is not ready yet, the system may estimate when the food order will be ready, and add that estimate with an average meal consumption time (or a duration of an average
25 meal) to derive the estimated time that the food will be consumed.
[0041] In some scenarios, the system may also use other ways to estimate when the food for a given table will be consumed. For example, the system may use the time at which each menu item in the food order arrived at the table, and average these times to derive an average time the entire food order has arrived. The system may add an average duration of a meal to the
12
estimated food arrival time to estimate the time when the food will be consumed. In other
scenarios, the system may determine the time the last menu item arrived and add a time period.
The time period to be added may vary depending on what the last menu item was. For example,
if the last menu item arrived is an appetizer, the system may add 35 minutes to derive an
5 estimated time when the table will be ready for the next customer. If the last menu item arrived is
a coffee, the system may add 10 minutes to derive the estimated time when the table will be ready for the next customer.
[0042] In creating the table arrangement schedule 303, the system may further determine a table number that is assigned to the food order. In determining the assigned table, the system
10 may compare the table tracking information with the table arrangement schedule for each order.
If the estimated time that a given table will be ready in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for an order, the system may assign the table to that order. Accordingly, the system may set the table number in the table arrangement schedule as the assigned table number. For example, when the estimated
15 time that a table will be ready in the table tracking information is within five minutes (may be
before or after) of the estimated time that a table is needed in the table arrangement schedule for the food order, the system may determine to assign the table to the food order. Consequently, the system may update the table arrangement schedule to include the assigned table number. The system may also update the tracking information for that assigned table and set the status of the
20 table to “assigned.”
[0043] In some embodiments, the system may update the estimated time that a table is
needed for a given food order according to new customer arrival data. The system may modify
the assignment of table for that food order accordingly, based on the new customer arrival data.
For example, the system may update the estimated time a table is needed in the food order to
25 reflect the new customer arrival time. Consequently, at each update of the table tracking
information, or when the customer arrival time of a particular food order has changed, the system may re-evaluate the estimated time a table is needed in the food order and the estimated time the assigned table will be ready in the tracking information. If the difference between these two time values exceeds a threshold, for example, five minutes, then the system may unassign the table to
13
the food order. Subsequently, the system may reassign another table to the food order using the above-illustrated process.
[0044] The system may also use the food ordering information to create a food
preparation schedule 305. The food preparation schedule may include an amount of materials for
5 preparing the selection of food, an estimated time that the food preparation station is needed, an
estimated time that the food is needed, and an identification of one or more food preparation stations for preparing the selection of food. The estimated time that a food preparation station is needed may be based on the customer’s estimated arrival time. For example, the estimated time that a food preparation station is needed may depend on the estimated time that food is needed
10 minus the amount of time needed to prepare the food, which may depend on specific menu items
in the food order. In some embodiments, each menu item has an assigned preparation time value that indicates how much time is needed to prepare that menu item. In some scenarios, the system may add up the preparation time values for all menu items in the food order to derive an estimated time that a food preparation station is needed, to allow sufficient time for the food
15 preparation to complete.
[0045] In some or other scenarios, the system may assign multiple food preparation
stations to a food order so that multiple stations may prepare the menu items in the food order in
parallel. If multiple food preparations are assigned to a food order, the system may assign each
menu item to one of the assigned food preparation stations and estimate the total food
20 preparation time needed for each station. The system may select the maximum time among the
multiple stations as an estimated time needed to prepare the food order.
[0046] In some embodiments, the database may be configured to store food preparation
tracking information for each food preparation station. The food preparation tracking information
for a given station may include, for example, the food preparation station number, the capacity of
25 the station, and the types of food that the food station can prepare. The food preparation tracking
information may further include, for each given food preparation station, the status for that food preparation station (e.g., ready, not ready, assigned) and an estimated time the food preparation station will be ready for preparing a new menu item. The system may update the food
14
preparation tracking information at a time interval, for example, at every 30 seconds, minute, two minutes, five minutes, etc. Other time intervals can also be used.
[0047] In creating and updating the food preparation schedule 305, the system may
compare the food station tracking information of a food preparation station with a food
5 preparation schedule of an order. If the estimated time the food station will be ready in the
tracking information of a given food preparation station is within a period (e.g., five minutes
before or after) of the estimated time food will be needed in the food preparation schedule of an
order, the system may assign the food preparation station to that order. Subsequently, the system
may update the food station tracking information and set the status for the given food preparation
10 station to “assigned.”
[0048] In some embodiments, the system may update the estimated time that food is needed and the estimated time that a food preparation station is needed according to new customer arrival information, such as the customer’s estimated arrival time. Accordingly, the system may modify the assignment of food preparation station based on the new customer arrival
15 data. For example, the system may update the estimated time a food preparation station is needed
in the food order to reflect the new customer arrival time. Consequently, at each update of the food station tracking information, or when the customer arrival time of a particular food order has changed, the system may re-evaluate the estimated time a food preparation station is needed in the food order and the estimated time the assigned food preparation station will be ready in the
20 tracking information. If the difference between these two time values exceeds a threshold, for
example, five minutes, then the system may unassign the station to the food order. Subsequently, the system may reassign another food preparation station to the food order using the above-illustrated process.
[0049] In some scenarios, the system may automatically retrieve customer arrival data at
25 a time interval 307 and determine whether any new customer arrival data is available 309. The
customer arrival data may include an estimated time of arrival for the customer. In retrieving the customer arrival data, in some scenarios, the system may receive an alert from the customer device indicating that the customer has started a trip to the restaurant. The system may optionally transmit the alert to the restaurant device for display on the restaurant devices. If the system
15
determines that no new customer arrival data is available, the system may continue retrieving
customer arrival data at a time interval 307. If the system determines that new customer arrival
data becomes available, the system may automatically update the table arrangement schedule
311 and also update the table tracking information 312 based on the new customer arrival data.
5 In this process, as described above, the system assigns a table to the food order. Similarly, the
system may also automatically update the food preparation schedule 313 and also update the food preparation tracking information 314 based on the new customer arrival data. In this process, as described above, the system also assigns a food preparation station for preparing the menu items in the food order.
10 [0050] In some embodiments, the system may update the food preparation tracking
information based on the table tracking information, or vice versa. For example, the system may update the estimated time that a table is needed for a given food order according to whether a food preparation station is assigned and the time the food preparation station will be ready for the food order. The system may use the time the food preparation station will be ready to modify the
15 assignment of the table for that food order accordingly. For example, based on the time when a
food preparation station will be ready, the system may add a time (e.g., 45 minutes for food preparation) thereto to update the estimated time a table is needed in the food order. Consequently, at each update of the table tracking information, the system may re-evaluate the estimated time a table is needed in the food order and the estimated time the assigned table will
20 be ready in the tracking information. If the difference between these two time values exceeds a
threshold, for example, five minutes, then the system may unassign the table to the food order. Subsequently, the system may reassign another table to the food order using the above-illustrated process.
[0051] In another non-limiting example, the system may update the food preparation
25 tracking information based on the table tracking information. For example, the system may
update the estimated time that food is needed and the estimated time that a food preparation station is needed according to whether the food order has an assigned table and when the assigned table will be ready for that food order. In some embodiments, the estimated time that food is needed may be set as the time when the assigned table will be ready. The system may
16
also add an offset time, e.g., five minutes or ten minutes, to allow the customers to sit down and
get ready before food is served. In such a case, the estimated time that food is needed may be the
time the assigned table will be ready plus five minutes. Accordingly, the system may modify the
estimated time that a food preparation station is needed based on the new estimated time that
5 food is needed as illustrated above. Consequently, at each update of the food station tracking
information, the system may re-evaluate the estimated time a food preparation station is needed
in the food order and the estimated time the assigned food preparation station will be ready in the
tracking information. If the difference between these two time values exceeds a threshold, for
example, five minutes, then the system may unassign the station to the food order. Subsequently,
10 the system may reassign another food preparation station to the food order using the above-
illustrated process.
[0052] In some scenarios, the system may further determine whether the customer who
has made the food order has arrived at the restaurant 315. If the system determines that the
customer has arrived at the restaurant, the system may transmit information containing table
15 assignment and estimated time that the food will be ready 317 to the customer device associated
with the customer. In other scenarios, the system may also transmit the table assignment and estimated food ready time to the customer device before the customer has arrived at the restaurant.
[0053] In some embodiments, the customer arrival data may further include the current
20 location of the customer. During a food ordering process, the system may receive a customer’s
consent from the customer devices for sharing the customer’s location information with the
restaurant. The location information may include GPS coordinates captured from a GPS sensor
installed on the customer device. When location sharing is enabled, a mobile application
associated with the system and that is installed on the customer device may include a location
25 service which automatically transmits to the system the GPS coordinates of the customer device,
which indicate the current location of the customer. Alternatively, the mobile application may extract the current GPS coordinates from one of the location services (e.g., Google Maps, Apple Maps) available on the customer device. The system may use the customer location information to determine the time at which the customer will be arriving at the restaurant. For example, the
17
system may use the distance between the current location of the customer and the physical location of the restaurant, divided by an average speed of traffic along that route from the customer location to the restaurant.
[0054] FIG. 4 shows an example of a process that is performed on the system for taking a
5 food order from a customer device. A system that is in communication with a customer device
may transmit options to the customer device for displaying thereon to allow a customer to search
for a restaurant from all restaurants in the city or nearby restaurants 401. The nearby restaurants
can be filtered from all restaurants in the city by selection criteria, such as zip code in which the
customer is currently located, the location of the user (e.g., the physical location or GPS
10 coordinates) and/or the distance from each restaurant to the customer.
[0055] In some embodiments, the system may receive a search query from a customer
device for a desired restaurant 403. The search query may include the type of restaurant (e.g.,
fast food, buffet, pizzeria, sushi bar, bistro), the type of cuisine (e.g., Chinese, French, Indian,
Italian, Mexican), the rating of the restaurant, which neighborhood the customer is interested in
15 dining, the price range, or the distance limit. Based on the search query, the system may return
one or more recommended restaurants to the customer device. The customer device may have a user interface to allow the customer to select the desired restaurant from the recommended restaurants provided by the system and transmit the selection to the system. As such, the step 403 may also include receiving the selection of the desired restaurant from the customer device.
20 [0056] With further reference to FIG. 4, the system may transmit menu information of
the desired restaurant to the customer device for display thereon. The system may also transmit food-related information that is specific to each menu item in menu information. For example, the food-related information may include categories of foods (e.g., fruit, vegetable, meat, seafood), subcategories of foods (e.g., apples, carrots, chicken, shrimp), specific dishes (e.g.,
25 sweet and sour pork, pepperoni pizza, shrimp scampi), condiments (e.g., ketchup, wasabi,
mayonnaise), spices (e.g., cinnamon, garlic, pepper), flavors (e.g., sweet, salty, bitter), and/or methods of preparation (e.g., boiled, fried, raw). The food-related information may also include related nutritional information (e.g., calories, sodium, fat, other ingredients) for each menu item. The food-related information may further include allergy warnings based on ingredients in the
18
menu item (e.g., eggs, peanuts). If the information about dietary restrictions (e.g., lactose intolerance, kosher, vegetarian) of a customer is available, the system may indicate or exclude the menu items that do not meet the dietary restrictions of the customer.
[0057] The system may receive a selection of menu items from the customer device 405.
5 Optionally, the system may receive special instructions from the customer device 407. For
example, the special instructions may be in accordance with the dietary restrictions for the order. The system may further receive the number of diners, desired date and time from the customer device 409. The system may finalize the order, calculate a total cost of a meal based on the selection of food. Alternatively, and/or additionally, the system may split the total cost of the
10 meal based on the number of diners 410, and transmit the split bill to each of the participating
customers. An example of the process for splitting bill is described in detail in FIG. 8. The system may receive payment for the order from customer device 411. In case of splitting bill, the system may receive payment from each of the participating customers. Payment may be of any acceptable payment methods, which include, for example, a credit card, a debit card, a gift
15 card, an electronic check, or a digital currency. In some scenarios, the system may maintain a
database of customer accounts that stores a customer account for each customer. The system may store one or more payment methods for each customer and store the payment methods associated with the customer account.
[0058] If the payment is successful, the system may place the order with the restaurant by
20 transmitting the order to a restaurant device associated with the selected restaurant from which
the customer ordered the food 413. Alternatively, and/or additionally, the system may transmit a
message to the customer device for display, where the display indicates that the order is pending
restaurant confirmation 415. Optionally, the system may send an email to the customer
containing the order receipt and/or providing instructions for the customer to track the status of
25 the order. After the food ordering process is completed, the customer device may insert a unique
customer identification code associated with the customer into the food order and transmits the food order to the system. The system may also receive a modification to the food order before or after the customer arrives at the restaurant.
19
[0059] An example of a process for verifying the food order by a restaurant device is
described in detail. Referring to FIG. 5, the system may place the food order with the restaurant
by transmitting the food order to a restaurant device for display on the restaurant devices 501.
For example, all of the food orders may be displayed on a dashboard of the restaurant device. In
5 some embodiments, the system may also transmit a new food order to the restaurant device 503,
and prompt the restaurant to approve the new order 505. The system may receive a response from the restaurant device that is indicative of whether the order has been approved by the restaurant 507. The decision by the restaurant device to accept or reject an order may be made based on the availability of dining tables and materials required for food preparation.
10 [0060] In a non-limiting example, in the event that the restaurant does not have enough
materials to fulfill the whole food order, the restaurant may modify the order in part or cancel the entire order. If the order is modified by the restaurant due to insufficient materials, the system may transmit a message to the customer device and prompt for a customer response that is indicative of approving or refusing the modification of the order by the restaurant. Accordingly,
15 the system may transmit a message to the restaurant device and display the message on the
restaurant device that indicates that the modification of the order has been accepted or refused. Alternatively, and/or additionally, upon receiving the prompt to approve or refuse the modification of the order by the restaurant, the customer device may allow the user to instead modify the order and send the modified order to the system. The system may process the
20 modified order from the customer device in a similar manner as the system processes a new
order. If the order has been approved by the restaurant, the system may transmit a confirmation message to the customer device and display a confirmation message on the customer device that indicates that the order has been accepted 509. If the food order has not been approved by the restaurant, the system may issue a refund to the customer by transmitting a refund of payment to
25 the customer device 511. The system may also transmit a message indicating a refund to the
customer device 513.
[0061] In some embodiments, the system may allow a restaurant device to track the time remaining to arrival for a customer in real-time and update the status of each food order accordingly. In FIG. 6, after the customer has made the food order with a customer device, the
20
system may receive a response from the customer device indicating that the customer has started
the trip to the restaurant 601. The response from the customer device may include the time the
response is transmitted, indicating the time when the customer has started the trip. The response
from the customer device may also include the physical location (e.g., the GPS coordinates) of
5 the customer when the response was sent. The system may generate and transmit an alert to a
restaurant device associated with the restaurant for which the food order is made 603, where the
alert includes information about the customer’s departure for the restaurant. The system may
calculate the remaining time to arrival for the customer based on the customer’s departure
information (e.g., the time the customer has started the trip and the location the customer has
10 started the trip), the restaurant location and the distance between the restaurant and where the
customer has started the trip. The system may allow both the customer device and the restaurant device to track the remaining time to arrival for the customer in real-time. For example, the system may transmit the time remaining to arrival for the customer to the customer device 605. The system may also transmit the time remaining to the restaurant device 607.
15 [0062] In response to receiving the alert and/or the customer’s time remaining to arrival,
the restaurant device may determine the new customer arrival time and use the new customer arrival time to initiate an ordering process or update an existing table arrangement schedule and/or food preparation schedule for the food order as illustrated above (in FIG. 3). The system may receive an order status update for each order from restaurant devices 609 and transmit the
20 order status update to each corresponding customer device associated with the order 611. Each
customer device may accordingly display the status of the order. The status information may include, for example, processed, pending, and no show.
[0063] Referring now to FIG. 7, in some embodiments, the system may split the bill of a
food order for the customer, based on a total cost of a food order, the number of bill sharing
25 partners, and a bill sharing method. For example, after receiving customer’s inputs of the
selection of restaurant 701 and the number of diners 703, the system may receive a customer’s input from the customer device indicating that the customer wants to split the bill 705. If the customer chooses not to split the bill, the system may receive the customer’s selection of menu items, desired date and time of the order 707, and the payment from the customer device 709. If
21
the customer chooses to split the bill, the system may allow the customer to select one or more
persons as bill sharing partners with whom the customer wants to split the bill 721. The bill may
be split among the bill sharing partners in any way that the customer may choose. In some
embodiments, the bill may be split based on a bill sharing method. For example, the bill may be
5 split equally among the bill sharing partners or based on a ratio (e.g., 2:1, 3:2:1) specified by the
customer. In some embodiments, the bill may be split by assigning a bill sharing partner to a selection of one or more menu items.
[0064] The bill sharing partners may or may not be the diners. The customer may select one or more bill sharing partners from a contact list (e.g., phone contacts, phonebook) in the
10 customer device. The customer device may transmit the information of the bill sharing partner to
the system. The information of the bill sharing partner may include phone numbers. After receiving the information of the bill sharing partners, the system may transmit a message that is an invitation of splitting bill to the mobile device of each bill sharing partner 723. The system may transmit the invitation message via Short Message Service (SMS), Multimedia Messaging
15 Service (MMS) or a push notification service available in the mobile application associated with
the system. If a bill sharing partner does not have an account with the system or the mobile application associated with the system on his mobile device, the system may transmit an invitation to his mobile device through which the bill sharing partner can open an account with the system and/or install the mobile application associated with the system. The system may also
20 receive customer’s inputs of selection of menu items, desired date and time of the order 725.
[0065] The bill sharing partners may accept or deny to split the bill on each of their
devices and send their responses to the system. The system may receive the responses from the
devices associated with the bill sharing partners that are indicative of accepting or denying to
split the bill 726. If the system does not receive the consent to split the bill from all of the bill
25 sharing partners, the system may adjust the bill and distribute the remaining shares of the bill
among the consenting bill sharing partners who accepted to split the bill 727. Optionally, the system may transmit the responses from the bill sharing partners to the customer device. In some embodiments, the remaining shares of the bill may be distributed evenly among the consenting bill sharing partners. The remaining shares of the bill may be distributed at any ratio
22
among the consenting bill sharing partners that the customer may choose. The system may
prompt the consenting bill sharing partners to pay for the amount of the bill that is allocated to
them. The system may receive the payment from one or more customer devices associated with
each consenting bill sharing partner 729. In the event that the system does not receive the
5 payment from a consenting bill sharing partner, the system may prompt the unpaying bill sharing
partner for a response that is indicative of waiting for an additional period of time. Alternatively,
and/or additionally, the system may adjust the bill by distributing unpaid amount among the bill
sharing partners who have already paid 731. Addtionally and or optionally, the system may
cancel the order if the system fails to receive the total payment within the additional period of
10 time 733. The additional period of time to wait for the payment may be a minute, two minutes,
three minutes, or five minutes.
[0066] The various embodiments illustrated above will enhance the existing methods for better accuracy and performance. FIG. 8 depicts an example of internal hardware that may be included in the server device or any of the remote devices (whether a restaurant device or a
15 customer device), which may implement various methods in the embodiments described in FIGs.
1-6. An electrical bus 800 serves as an information highway interconnecting the other illustrated components of the hardware. Processor 805 is a central processing device of the system, configured to perform calculations and logic operations required to execute programming instructions. Read-only memory (ROM), random access memory (RAM), flash memory, hard
20 drives and other devices capable of storing electronic data constitute examples of memory
devices 825. A memory device, also referred to as a computer-readable medium, may include a single device or a collection of devices across which data and/or instructions are stored.
[0067] An optional display interface 830 may permit information from the bus 800 to be
displayed on a display device 835 in visual, graphic or alphanumeric format. An audio interface
25 and audio output (such as a speaker) also may be provided. Communication with external
devices may occur using various communication devices 840 such as a transmitter and/or receiver, antenna, an RFID tag and/or short-range or near-field communication circuitry. A communication device 840 may be attached to a communications network, such as the Internet, a local area network or a cellular telephone data network.
23
[0068] The hardware may also include a user interface sensor 845 that allows for receipt
of data from input devices 850 such as a keyboard, a mouse, a joystick, a touchscreen, a remote
control, a pointing device, a video input device and/or an audio input device. Digital image
frames may also be received from an imaging capturing device 855 such as a video or camera on
5 a mobile device to take photos. Other environmental sensors 860, such as a GPS sensor, may be
installed on a customer device and communicatively accessible by the processor 805, either
directly (if the processor is part of the server) or via the communication device 840 (if the
processor is remote on the cloud). In other embodiments, the various sensors may be equipped
with a communication interface and software such that the readings of the sensors can be
10 remotely accessible by a processor.
[0069] Optionally, the hardware may not need to include a memory, but instead,
programming instructions are running on one or more virtual machines or one or more containers
on a cloud. For example, the various steps in table management as described in FIG. 3 may be
implemented by a server on a cloud that includes multiple virtual machines, each virtual machine
15 having an operating system, a virtual disk, virtual network and applications, and the
programming instructions for implementing various functions in the robotic system may be stored on one or more of those virtual machines on the cloud.
[0070] The illustrated system and method are advantageous over existing systems. The system simultaneously creates a table arrangement schedule and a food preparation schedule
20 according to customer food ordering information and automatically updates the schedules based
on the real-time customer arrival data. The system and method allows restaurants to maximize the capacity of the restaurant by coordinating table arrangement and food preparation, based on food ordering information and customer arrival data. The system provides an interactive order processing platform for customers to efficiently place an order with a preferred restaurant. The
25 system and method allows restaurants to streamline food preparation and table management to
ensure that tables and foods are ready when customers arrive at a restaurant. Because the food preparation is coordinated in accordance with the customer arrival data, the system and method also ensures that foods are freshly prepared when customers arrive at the restaurant.
24
[0071] The features and functions described above, as well as alternatives, may be combined into many other different systems or applications. Various alternatives, modifications, variations or improvements may be made by those skilled in the art, each of which is also intended to be encompassed by the disclosed embodiments.
WE CLAIM:
1. A system for food ordering and table management in a restaurant, comprising:
a processor;
a communication port; and
a non-transitory computer-readable storage medium containing programming instructions configured to cause the processor to:
receive, via the communication port, from a customer device a food order that includes food ordering information comprising a unique customer identification code of a customer, a selection of food, a number of diners, a desired date, and a desired time,
use the food ordering information to:
create a table arrangement schedule for the food order that contains a table
number and an estimated time that a table is needed, wherein the estimated time
that the table is needed is within a period of the desired time of the desired date,
and
create a food preparation schedule for the food order that contains an
estimated time that a food preparation station is needed, and identification of one
or more food preparation stations for preparing the selection of food so that the
selection of food will be prepared within a period of the desired time of the
desired date,
automatically receive customer arrival data via the communication port at a time interval,
upon receiving the customer arrival data at each time interval, use the customer arrival data to:
automatically update the table arrangement schedule, automatically update table tracking information in a database, automatically update the food preparation schedule, and automatically update food preparation tracking information in the database,
determine whether a customer has arrived at the restaurant, and upon determining that the customer has arrived at the restaurant, transmit information containing the table number of the table arrangement schedule for the food order and an estimated time that the selection of food in the food order will be ready to the customer device, wherein the customer device displays the transmitted information.
The system of claim 1, wherein the customer arrival data comprises an estimated time the customer will be arriving at the restaurant.
The system of claim 2, wherein:
the customer arrival data comprises a current location of the customer; and the programming instructions for updating the table arrangement schedule comprise programming instructions configured to cause the processor to determine the estimated time the customer will be arriving at the restaurant based on a distance between the current location of the customer and a physical location of the restaurant.
The system of claim 3, wherein the programming instructions for determining the estimated time the customer will be arriving comprise programming instructions configured to cause the processor to:
receive an alert that indicates that the customer has started a trip to the restaurant; and
upon receiving the alert, use a time when the alert is received to:
determine the estimated time the customer will be arriving at the restaurant,
automatically update the table arrangement schedule,
automatically update the table tracking information in the database,
automatically update the food preparation schedule, and
automatically update the food preparation tracking information in the database.
The system of claim 1, wherein:
the table tracking information in the database comprises, for each table in the restaurant, a table number and an estimated time that the table will be ready for a new customer;
the food preparation tracking information in the database comprises, for each food preparation station in the restaurant, a food preparation station number and an estimated time the food preparation station will be ready for preparing a new menu item;
the programming instructions for updating the table tracking information in the database comprise programming instructions configured to cause the processor to:
determine whether the estimated time that a table will be ready for a given table in
the table tracking information is within a period of the estimated time that a table is
needed in the table arrangement schedule for the food order, and
upon determining that the estimated time that a table will be ready for the given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order, assign the given table to the food order; and
the programming instructions for updating the food preparation tracking information in the database comprise programming instructions configured to cause the processor to:
determine whether the estimated time a food preparation station will be ready in the food preparation tracking information of a given food preparation station is within a period of the estimated time that a food preparation station is needed in the food preparation schedule for the food order, and
upon determining that the estimated time a food preparation station will be ready in the food preparation tracking information of the given food preparation station is within a period of the estimated time that a food preparation station is needed in the food preparation schedule of the food order, assign the food preparation station for the food order.
The system of claim 5, wherein the programming instructions for updating the table tracking information in the database comprise additional programming instructions configured to cause the processor to, before determining whether the estimated time that a table will be ready for a given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order, update the estimated time that a table is needed in the table arrangement schedule by:
determining whether a food preparation station is assigned to the food order; and
upon determining that a food preparation station is assigned to the food order, updating the estimated time that a table is needed in the table arrangement schedule based on the estimated time the assigned food preparation station will be ready.
7. The system of claim 5, wherein the programming instructions for updating the food
preparation tracking information in the database comprise additional programming instructions configured to cause the processor to, before determining whether the estimated time a food station will be ready in the food preparation tracking information of a given food preparation station is within a period of the estimated time that a food preparation is needed in the food preparation schedule of the food order, update the estimated time that food will be needed in the food preparation schedule by:
determining whether the food order has an assigned table; and
upon determining that the food order has an assigned table, updating the estimated time that food is needed, based on when the assigned table will be ready for that food order.
The system of claim 1, wherein the programming instructions for receiving the food ordering information further comprise programming instructions configured to cause the processor to:
transmit, via the communication port, an order associated with the food ordering information to a restaurant device, wherein the restaurant device is configured to: receive the order associated with the food ordering information, receive a restaurant action that is indicative of a confirmation or a rejection of the order, and
transmit the restaurant action to the customer device.
The system of claim 1, wherein the programming instructions further comprise programming instructions configured to cause the processor to: calculate a total cost based on the selection of food; split a bill based on the total cost and the number of diners; transmit the split bill to the customer device; and receive a payment of the split bill from the customer device.
10. The system of claim 1, wherein the programming instructions for receiving the food
ordering information further comprise programming instructions configured to cause the
processor to receive a modification of the food ordering information from the customer device or
a restaurant device after the customer arrives at the restaurant.
11. A method for food ordering and table management in a restaurant, comprising:
receiving, by a processor of a server device and via a communication port of the server
device, from a customer device a food order that includes food ordering information comprising a unique customer identification code of a customer, a selection of food, a number of diners, a desired date, and a desired time,
using the food ordering information to:
create a table arrangement schedule for the food order that contains a table number and an estimated time that a table is needed, wherein the estimated time that the table is needed is within a period of the desired time of the desired date, and
create a food preparation schedule for the food order that contains an estimated time that a food preparation station is needed, and identification of one or more food preparation stations for preparing the selection of food so that the selection of food will be prepared within a period of the desired time of the desired date;
automatically receiving customer arrival data via the communication port at a time interval;
upon receiving the customer arrival data at each time interval, using the customer arrival data to:
automatically update the table arrangement schedule, automatically update table tracking information in a database, automatically update the food preparation schedule, and automatically updating food preparation tracking information in the database, determine whether a customer has arrived at the restaurant; upon determining that the customer has arrived at the restaurant, transmit information containing the table number of the table arrangement schedule for the food order and an estimated time that the selection of food in the food order will be ready to the customer device, wherein the customer device displays the transmitted information.
The method of claim 11, wherein the customer arrival data comprises an estimated time the customer will be arriving at the restaurant.
The method of claim 12, wherein:
the customer arrival data comprises a current location of the customer; and
updating the table arrangement schedule comprises determining the estimated time the customer will be arriving at the restaurant based on a distance between the current location of the customer and a physical location of the restaurant.
14. The method of claim 13, determining the estimated time the customer will be arriving comprises:
receiving an alert that indicates that the customer has started a trip to the restaurant; and upon receiving the alert, using a time when the alert is received to:
determine the estimated time the customer will be arriving at the restaurant,
automatically update the table arrangement schedule,
automatically update the table tracking information in the database,
automatically update the food preparation schedule, and
automatically update the food preparation tracking information in the database.
The method of claim 11, wherein:
the table tracking information in the database comprises, for each table in the restaurant, a table number and an estimated time that the table will be ready for a new customer;
the food preparation tracking information in the database comprises, for each food preparation station in the restaurant, a food preparation station number and an estimated time the food preparation station will be ready for preparing a new menu item;
updating the table tracking information in the database comprises:
determining whether the estimated time that a table will be ready for a given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order, and
upon determining that the estimated time that a table will be ready for the given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order, assigning the given table to the food order; and updating the food preparation tracking information in the database comprises:
determining whether the estimated time a food preparation station will be ready in the food preparation tracking information of a given food preparation station is within a period of the estimated time that a food preparation station is needed in the food preparation schedule for the food order, and
upon determining that the estimated time a food preparation station will be ready in the food preparation tracking information of the given food preparation station is within a period of the estimated time that a food preparation station is needed in the food preparation schedule for the food order, assigning the food preparation station to the food order.
The method of claim 15, wherein updating the table tracking information in the database comprises: before determining whether the estimated time that a table will be ready for a given table in the table tracking information is within a period of the estimated time that a table is needed in the table arrangement schedule for the food order, updating the estimated time that a table is needed in the table arrangement schedule by:
determining whether a food preparation station is assigned to the food order; and
upon determining that a food preparation station is assigned to the food order, updating
the estimated time that a table is needed in the table arrangement schedule based on the estimated
time the assigned food preparation station will be ready.
17. The method of claim 15, wherein updating the food preparation tracking information
comprises: before determining whether the estimated time a food station will be ready in the
food preparation tracking information of a given food preparation station is within a period of the
estimated time that a food preparation station is needed in the food preparation schedule of the
food order, updating the estimated time that food will be needed in the food preparation schedule
by:
determining whether the food order has an assigned table; and
upon determining that the food order has an assigned table, updating the estimated time that food is needed, based on when the assigned table will be ready for that food order.
18. The method of claim 11, wherein receiving the food ordering information comprises:
transmitting, via the communication port of the server device, an order associated with
the food ordering information to a restaurant device, wherein the restaurant device is configured
to:
receive the order associated with the food ordering information, receive a restaurant action that is indicative of a confirmation or a rejection of the order, and
transmit the restaurant action to the customer device.
19. The method of claim 11, further comprising:
calculating, by the processor of the server device, a total cost based on the selection of food;
splitting, by the processor of the server device, a bill based on the total cost and the number of diners;
transmitting the split bill to the customer device; and
receiving, by the processor of the server device, a payment of the split bill from the customer device.
20. The method of claim 11, wherein receiving the food ordering information comprises
receiving a modification of the food ordering information from the customer device or a
restaurant device after the customer arrives at the restaurant
| # | Name | Date |
|---|---|---|
| 1 | 201711046374-STATEMENT OF UNDERTAKING (FORM 3) [22-12-2017(online)].pdf | 2017-12-22 |
| 2 | 201711046374-FORM 1 [22-12-2017(online)].pdf | 2017-12-22 |
| 3 | 201711046374-DRAWINGS [22-12-2017(online)].pdf | 2017-12-22 |
| 4 | 201711046374-DECLARATION OF INVENTORSHIP (FORM 5) [22-12-2017(online)].pdf | 2017-12-22 |
| 5 | 201711046374-COMPLETE SPECIFICATION [22-12-2017(online)].pdf | 2017-12-22 |
| 6 | abstract.jpg | 2018-01-17 |
| 7 | 201711046374-FORM 18 [06-12-2021(online)].pdf | 2021-12-06 |
| 8 | 201711046374-FER.pdf | 2022-05-05 |
| 9 | 201711046374-FORM 4(ii) [04-11-2022(online)].pdf | 2022-11-04 |
| 10 | 201711046374-OTHERS [05-12-2022(online)].pdf | 2022-12-05 |
| 11 | 201711046374-FER_SER_REPLY [05-12-2022(online)].pdf | 2022-12-05 |
| 12 | 201711046374-DRAWING [05-12-2022(online)].pdf | 2022-12-05 |
| 13 | 201711046374-COMPLETE SPECIFICATION [05-12-2022(online)].pdf | 2022-12-05 |
| 14 | 201711046374-CLAIMS [05-12-2022(online)].pdf | 2022-12-05 |
| 15 | 201711046374-US(14)-HearingNotice-(HearingDate-20-02-2025).pdf | 2025-01-27 |
| 16 | 201711046374-Correspondence to notify the Controller [19-02-2025(online)].pdf | 2025-02-19 |
| 17 | 201711046374-Written submissions and relevant documents [07-03-2025(online)].pdf | 2025-03-07 |
| 1 | 201711046374E_28-04-2022.pdf |