Food and Beverage billing system


This project is a computer network based software that allows hotel / restaurant customers place orders for drinks and foods from their tables remotely. Customers interact with the client version of the software while the server version is controlled by the hotel / restaurant staff. Any order placed on the client systems is displayed to the staff on the server computer.

Order Now


Working to make our lives easier with the use of technology has been the aim of most engineers. We try to solve problems by leveraging technology. Although some technological applications can sometimes appear to be unnecessary initially, but with steady use, we start to wonder how we had coped performing the same task all along without using such technology. In this project, we try to integrate technology into the usual way ordering for food, drinks or services in a hotel or restaurant. The objective of this project is to implement a software application that can help manage the billing and stock keeping of food and beverages sold in a five star hotel. Customers in the hotel can place order for food or beverages through tablet computers connected to a central network. The tablet computer displays a menu of available foods and beverages on the screen. Customers can then interact with the software to place order for items they are interested in. Once a customer is satisfied with the items he wants and acknowledges it to the software, the data is sent to a server computer located at the staff section. The staff take note of the order placed by the customer as well as the room or table from which the order was placed, and finally the items are sent to the customer including a bill of the items cost. The software has been developed in visual basic and uses the windows sockets API for Network communications and also Microsoft Access database for data storage and retrieval.


The project is designed to meet specifications necessary to implement a workable, reliable, attractive, economic and flexible system suitable for a five-star hotel. Some of the specifications include:

  1. Compatibility with several versions of Windows OS
  2. MS ACCESS database file
  3. Multi-user / Staff Accounts
  4. Daily Sales Records
  5. User Customizable
  6. Remote (Network) food / beverage Ordering system
  7. Printing of POS (Point-of-sale) Receipts
  8. Easy to use GUI (Graphical User Interface)


Block diagram of the food and beverage billing system

Block diagram of the food and beverage billing system


From the block diagram above, it can be seen that the software is in two parts; server and client applications. These will be explained in this section. The components of the block diagram are listed as follows:

  1. MS ACCESS database
  2. Network
  3. Windows Socket (WINSOCK)
  4. Server Application
  5. Client Application

MS ACCESS Database

A computer database is a structured collection of records or data that is stored in a computer system so that a computer program or person using a query language can consult it to answer queries. For our project, we made use of Microsoft Access as the database system.

Microsoft Access is a relational database management system from Microsoft which combines the relational Microsoft Jet Database Engine with a graphical user interface and software development tools. Access offers the ability to answer questions. The answer to these questions and many more are found in the database, and Access can find the answers quickly. When you pose a question to Access, the question is called a query. A query is simply a question represented in a way that Access can understand.

The main reason we used the access database is due to the fact that an access database file can be viewed and edited using the Microsoft Office ACCESS application software. Combining the access database with visual basic made it really easy to add, update records on the access database.

With visual basic one can connect to and use any database file, application, or system. This is achieved through the use of ODBC which stands for open database connectivity. With ODBC, visual basic connects and sends commands to any database system. Also aiding in the use of databases with visual basic is what is knows as ActiveX Data Objects. ActiveX Data Objects (ADO) are an easy-to-use yet extensible technology for adding database access to your applications. You can use ADO to write compact and scalable codes for connecting to Open Database Connectivity (ODBC) compliant databases and OLE DB compliant data sources. If one is a beginner in programming with a modest understanding of database connectivity, one will find ADO’s command statements uncomplicated and approachable. Likewise, if one is an experienced database programmer he/she will appreciate ADO’s advanced, language neutral connection and query manipulation features.

To successfully connect to and read from a database (data source) using ADO, below are the required elements:

  • Connection
  • Command
  • Recordset
  • Field

Connection: Access from your application to a data source is through a connection, the environment necessary for exchanging data. Your application can gain access to a data source directly (sometimes called a two-tier system), or indirectly (sometimes called a three-tier system) through an intermediary like the Microsoft Internet Information Server. The object model embodies the concept of a connection with the Connection object. A transaction delimits the beginning and end of a series of data access operations that transpire across a connection. ADO ensures that changes to a data source resulting from operations in a transaction either all occur successfully, or not at all. If you cancel the transaction or one of its operations fails, then the ultimate result will be as if none of the operations in the transaction had occurred. The data source will be as it was before the transaction began. The object model does not explicitly embody the concept of a transaction, but represents it with a set of Connection object methods.

Command: A command issued across an established connection manipulates the data source in some way. Typically the command adds, deletes, or updates data in the data source, or retrieves data in the form of rows in a table. The object model embodies the concept of a command with the Command object. The existence of a Command object gives ADO the opportunity to optimize the execution of the command.

Recordset: If your command is a query that returns data as rows of information in a table (that is, it is a row-returning query), then those rows are placed in local storage. The object model embodies this storage as a Recordset object. However, there is no object that represents a single row of a Recordset. The Recordset is the primary means of examining and modifying data in the rows. The Recordset object allows you to:

  • Specify which rows are available for examination.
  • Traverse the rows.
  • Specify the order in which the rows may be traversed.
  • Add, change, or delete rows.
  • Update the data source with changed rows.
  • Manage the overall state of the Recordset.

Field: A row of a Recordset consists of one or more fields. If you envision the Recordset as a two-dimensional grid, the fields line up to form columns. Each field (column) has among its attributes a name, a data type, and a value. It is this value that contains the actual data from the data source.



Every network based application uses some form of medium to exchange data between the server and the client computers on a network. In addition to this, a communication protocol is also required. Think of protocols as a series of rules that govern how data is transmitted or received over a network of computers. Today, the common communication media is cables and radio waves. Cables includes cat-5, cat-5e, cat-6 and fiber optic. Radio waves refer to the use of Wi-Fi. The most common protocol used is the TCP/IP protocol. The food and beverage billing application requires the network to receive request orders from customers on client computers and to furnish the client computer systems with the required menu information to display.


Windows Socket (WINSOCK)

A WinSock control allows you to connect to a remote machine and exchange data using either the User Datagram Protocol (UDP) or the Transmission Control Protocol (TCP). Both protocols can be used to create client and server applications. Like the ADO control, the WinSock control doesn’t have a visible interface at run time. The Winsock control, invisible to the user, provides easy access to TCP and UDP network services. It can be used by Microsoft Access, Visual Basic, Visual C++, or Visual FoxPro developers. To write client or server applications you do not need to understand the details of TCP or to call low level Winsock APIs. By setting properties and invoking methods of the control, you can easily connect to a remote machine and exchange data in both directions. The WINSOCK control find application in the following situations:

  • Create a client application that collects user information before sending it to a central server.
  • Create a server application that functions as a central collection point for data from several users.
  • Create a “chat” application.

When using the WinSock control, the first consideration is whether to use the TCP or the UDP protocol. The major difference between the two lies in their connection state:

  • The TCP protocol control is a connection-based protocol, and is analogous to a telephone — the user must establish a connection before proceeding.
  • The UDP protocol is a connectionless protocol, and the transaction between two computers is like passing a note: a message is sent from one computer to another, but there is no explicit connection between the two. Additionally, the maximum data size of individual sends is determined by the network.

The nature of the application you are creating will generally determine which protocol you select. Here are a few questions that may help you select the appropriate protocol:

  1. Will the application require acknowledgment from the server or client when data is sent or received? If so, the TCP protocol requires an explicit connection before sending or receiving data.
  2. Will the data be extremely large (such as image or sound files)? Once a connection has been made, the TCP protocol maintains the connection and ensures the integrity of the data. This connection, however, uses more computing resources, making it more “expensive.”
  3. Will the data be sent intermittently, or in one session? For example, if you are creating an application that notifies specific computers when certain tasks have completed, the UDP protocol may be more appropriate. The UDP protocol is also more suited for sending small amounts of data.

When creating an application that uses the TCP protocol, you must first decide if your application will be a server or a client. Creating a server means that your application will “listen,” on a designated port. When the client makes a connection request, the server can then accept the request and thereby complete the connection. Once the connection is complete, the client and server can freely communicate with each other.

Server Application

The server side of the food and beverage billing system is written using visual basic programming language under the visual basic integrated development environment (IDE). Applications development with the Visual Basic IDE is a three-stage problem. The first being the design of a Graphical User Interface (GUI) with controls and forms .This interface provides means of interaction with back end program codes like the database.

The second stage is the actual coding operation, where the functionalities of the objects on the user interface are properly defined and characterized.

Below are illustrations of the Various GUI of the server of the Software program.


Server GUI of the food and beverage billing system

Server GUI of the food and beverage billing system



Splash screen of the food and beverage billing system software


The server side of the application allows for core sales operations to be performed alongside receiving customer requests from the remote client computers. Once the software is run, the Log in dialog is displayed. The user is required to enter a valid username and password. On clicking the ‘OK’ button, the software authenticates the log in information. If successful, the user is granted access and certain or all software features are made available to the user depending on the account type of the user. A user can either have administrative right or basic right. An administrative right gives the user full access to all software application features. The basic right just provides limited access to the software. For instance, users with administrative rights can modify database records, add / remove menu items displayed on client computers, modify food and beverage types and prices. The software also allows for some level of customization. On first run, a dialog is displayed for the user to enter the Hotel details such as name of hotel, address, phone number, email and website. This information is displayed on the remote client computers and also used in the receipts printed. Receipts can be printed on request, anytime ala point of sales services. Several menu options / items have been included in the design of the software. Theses are explained below:



  • Print Sales Report: Allows for the day’s sales report or previous days reports to be printed
  • Print Receipt: Prints a receipt of the most current sale or previous sale
  • View Accounts: Shows all user accounts on the software
  • Add User: allows administrators to add a new user
  • Log Out: logs out the current user
  • Lock System: restricts immediate access to software by locking it for the current user. The last user that locked the system must enter his/her password to unlock
  • Exit: quits the application


  • Manage Items: Add / remove food or beverage items in the database. The items displayed on the menu on client computers can be set here as well.
  • Manage Inventory: View or modify sales inventory.
  • Edit Log in Info: Modify Usernames and password information, also delete users.


  • Log in Times: View Log in / Log Out periods of every user.
  • Items: View food and beverage items in database and items visible listed on client computer systems
  • Today’s Sales: View sales for the day.


  • Backup Database: Allows for backing up or exporting the application database file.
  • Hotel Details: Hotel information such as hotel name, address, phone number (s), email and website are entered here to customize the software.
  • Network: Configure server application port number for communication with client computers.


  • About: Information about the Software application.

In addition to the menu options listed above, a notification list also exists. The notification list shows requests made by customers from the remote client systems. Double clicking on any request allows it to be serviced. As the requests are made, they are updated on the database as well. These notifications can’t be deleted by the basic user, only the administrator has such ability.


Client Application

The client side of the food and beverage billing system was designed to be simple to use and require little configuration. The client application runs on remote tablet computers placed in the hotel rooms and tables in the restaurant or bar section of the hotel.

Client GUI of the food and beverage billing system when offline

Client GUI of the food and beverage billing system when offline


The image above shows the client side of the application running in offline mode i.e. with no connection to the server. No menu item is displayed. The client application derives all its data from the server. There is no preset menu information or data. This was done in order to allow all item menu configurations to be performed from the server instead of manually configuring the client programs individually; this will be a tedious task. Once the client program is executed, it displays the GUI and then tries to connect to the server using IP/port number information entered in the settings dialog. The settings dialog is shown below:

Settings dialog of the food and beverage billing system

Settings dialog of the food and beverage billing system


The port number is a unique port the server is listening on. This value must be the same with that of the server. The IP is that of the server the client application will connect to. Text entered in the ‘name’ text field is the name the computer will be identified with on the server, when a request or order is placed by a customer. It is best to use names that tell the location of the computer in the hotel. To avoid unauthorized access to the settings menu and unauthorized closing of the application, a username and password is requested each time the ‘Quit’ or ‘Settings’ button is clicked on. The username and password can be modified through the settings dialog. On successful connection to the server computer, the menu item information is read from the server as well as the hotel name information. The client application then looks as shown in the image below.

Client GUI of the food and beverage billing system when online

Client GUI of the food and beverage billing system when online


Just as in the server application, clicking the ‘show beverages’ or ‘show foods’ buttons shows beverage or food items currently available for sale. These items can be configured on the server side. Clicking on any of the menu buttons pops up a small dialog that allows the customer select the number of the selected item he/she wants to order. Clicking the ‘add’ button on this dialog adds the requested item to a list on the lower right side of the application. A summary of the requested items and the total cost is show here too. Clicking the ‘place order’ button sends the request to the server to be serviced by a staff or the waiter.


I am an Electical and Electronics Engineer / web designer and developer based in Nigeria. ProjectGICS was conceived out of my passion for Electronic Circuits and anything Computer related. I believe there are many out there that share this passion and would love to take it to greater heights. ProjectGICS is dedicated to students, designers and hobbyists in the field of Electronics and Computer who are eager to learn electronics and computer designs. ProjectGICS is all about circuit designs, programming and construction of things that can be fun, lucrative and can help solve a problem. The Electronic Components and Kits Store allows you shop items for your projects; Allowing you bring your project ideas to life without limitations. I can't wait to hear from you on the successes you have achieved through ProjectGICS.


Leave a reply

Your email address will not be published. Required fields are marked *