You are on page 1of 3

Cafeteria (Café)

1. Description

The given system is designed for choosing and ordering lunch at the cafeteria in advance by
company employees. It allows reducing time spent on dishes selection on-site and preventing
from over-consumption of food supplies. On top, it allows paying for orders by deducting the
order amount from salary.

2. Generic System view

Any user originally lands on the authorization page. After providing the credentials (login and
password), the user gets directed to the corresponding application interface page, depending on
his/her rights. The system comprises of two application parts: the users’ one (for users without
privileges) which allows placing an order only; and the administrative one (for users with
administrative rights) which allows creating the menu and viewing the orders.

3. Functional requirements

3.1 Types of Users

There are two types of users in the system: employees who place orders, and administrators
who create the menu and view the orders. The users are created and stored in the database (see
4.1).

3.2 User Application

3.2.1 Main Screen

Upon authorization, a regular user gets directed to the user application interface. Immediately,
the system checks whether the current time is within the timeslot allowed for placing an order
(see 3.2.3) and whether the user already placed any order. If an order has already been made, the
user gets directed to the order screen (see 3.2.2). If the current time does not meet the allowed
slot, a notification appears “Sorry, unfortunately we do not accept any more orders for today”. If
the time is acceptable and yet no orders are made, then the screen displays the list of dishes (the
menu) available for today; the multiline field with selected dishes (empty by default); two
arrows: the right one – which moves a selected dish from the menu list into the order field, and
the left one – which returns the selected dish from the order area back into the menu; and the
buttons “Order” and “Log off”.
The menu represents the list of dishes split into the categories: soup, meat, side dish, and
dessert. Each dish has its price marked in its line. The price might consist of 5 digits. To move
the selected dish from the menu into the order area, the user needs to highlight the dish and click
the right arrow. To remove any dish from the order area, the user needs to highlight it and click
the left arrow. To confirm the order, the user needs to click the button “Order”. The payment for
the order is done in accordance with section 3.4 rules. The user gets directed to the order screen
(see 3.2.2). To exit the system, the user needs to click the button “Log off”.

3.2.2 Order screen

The given screen displays the information on the ordered dishes, the total order sum and
locates the buttons “Edit”, “Cancel” and “Log off”. The button “Edit” serves to edit the existing
order; once the user clicks the button, he/she is redirected to the Main screen of the user
application. The button “Cancel” will cancel the placed order. The action is available up till
12:00:00 pm. If the current time is past 12:00 pm, the button “Cancel” gets disabled. The button
“Log off” will log off the user from the application.

3.2.3 Defined Timeslot for placing orders

An order can be placed every working day from 7:00 am till 12:00 pm in the morning. If a
user started placing an order before 11:59:59 am and finished at 12:00:00 pm and later, such an
order is not accepted.

3.3 Administrator application interface

Upon authorization, a user with administrative rights gets directed to the Administrator
application interface, which consists of two tabs: “Menu creation” and “Today’s Orders”. By
default, the user gets to the menu creation tab.

3.3.1 “Menu creation” tab

The given tab consists of: the dropdown list with the menu categories, the dish name, the
price, the multiline menu field, the buttons “Add to menu”, “Remove from menu”, “Publish” and
“Log off”.
The menu categories list the following: soup, meat, side dish, dessert. By default, the first
value is selected – soup. The dish name’s field can be of 120 characters length, including all the
Cyrillic and Latin letters, numbers and the following special symbols: ( ) , . / : ; ! ?. The price
field can contain from 2 to 6 characters, and supports only digits.
The button “Add to menu” checks for the dish name and price values to be filled in within the
current field; and if the latter ones are present, adds the given dish into the corresponding menu
category and displays it in the multiline menu field. If the dish name field and / or price is empty,
the error message dialog pops up “Please check, you might have forgotten to fill in the dish name
field and / or price field” with OK button.
The multiline menu field appears as the following tree-like hierarchy: a category is displayed
first, then all its belonging dishes, then next category comes with all of its dishes displayed, etc.
If any of the dishes has to be removed from the menu, the user needs to highlight it and click
the button “Remove from menu”. If no entries in the menu are highlighted, the button “Remove
from menu” is disabled.
The button “Publish” allows making the current menu visible in the user application interface.
The menu has to be published starting from 12:00:00 pm of a current day when placing an order
gets already unavailable for users, till 6:59:59 am next day. Friday – is an exception, when the
menu can be published from 12:00:00 pm on Friday till 6:59:59 am on Monday. In this case at
7:00:00 am the menu becomes visible and available in the user application interface. If by this
time the menu is not published, an empty menu list is displayed in the user application interface.
The button “Log off” allows exiting the application.

3.3.2 Tab “Today’s Orders”

The current page displays all the information about the orders placed for today. It gets
updated every working day at 12:00:00 pm when users can no longer make an order.
The page consists of: the table with the orders, the inactive field “Total orders sum” and the
button “Log off”.
The table with the orders represents a regular menu view (the same as in the user application
interface), but each dish now has the number of ordered portions to the right.
The inactive field “Total orders sum” displays the total sum for all the orders placed for today.
The button “Log off” allows exiting the application.

3.4 Order Payment

Upon clicking the button “Order”, the system records the user’s order information into the
database. If the user edits his/her order by 12:00:00 pm, the database entries are also modified.
At 12:00:00 pm, all data on the orders is sent via e-mail to the accounting department, where the
order sum is deducted from the employee’s salary.

4. Non-Functional Requirements

4.1 Platform

4.2 Computer / Hardware Requirement

The application is designed to work with the screen resolution of 1024 x 768, though it can
also support a higher resolution. It requires 150 MB of space on the hard drive, and the processor
with the frequency of at least 800 MHz.

You might also like