Develop a database-driven application

Develop a database-driven application

Software Engineering
Chick Cafe is a very popular cafeteria in the center of Islington that offers made to order food and drinks. The business has been steady, but recently customers have voiced their dissatisfaction about the long waiting time, in particular during breakfast and lunch, when long queues build up since many of the office workers from the nearby offices would make orders.

Therefore, the cafe management proposes some changes to the business by introducing a computerized system to help them manage their customer service. In summary, they want to increase the sales and customer satisfaction by allowing its customers to avoid spending time queuing and be able to place orders and record payments electronically in advance. They also need the system with a useful reporting functionality to better monitor the business – this is a very important part of the system.

The system must have an appropriate graphical user interface, too. In response to the above, Chick Cafe organized a public tender and your consultant has won the contract from them to assess their requirements in full, produce necessary documentation and implement a prototype of the system they need: “catering on demand (CoD) application for food and drinks”.

Your team has been tasked with doing the job. Your team consultant asks you to set up an appointment, as soon as possible, to interview Mr. Neko, the owner of Chick Cafe, in order to elicit the requirements further.

CATERING ON-DEMAND (COD) APPLICATION, STUDENT’S BRIEF 13 CoD must be easy to use, but may run on any hardware/software platform that it is convenient to use. For example, it can be a Java desktop application, or a web application (e.g. using PHP or other web technologies). Also Chick Cafe management want to see, as a medium-term goal, a system that can be easily reused in other establishments of that kind.

Chick Cafe will assess the quality of your application in the end of this project. Based on the outcome of this assessment they will consider inviting your company at a later stage to do further enhancements, e.g. customize the software to be used in other establishments, etc. You can create your own menus and also change the name of the Cafe – for example ethnic cuisine restaurant, hamburger cafe, etc. 8.1 Initial Statement of Requirements In your project you will create a database-driven application which allows for members of the public to order food or drinks, pay for the order using the application, and then receive a notification to collect their food/drink.

A software like this would be particularly useful in crowded places where people do not want to queue for a long time, without being certain when they can receive their food and / or drink. Chick cafe has an owner, and employs 2 managers and 6 waiting/kitchen staff. The waiting/kitchen staff work both on the floor and in the kitchen preparing the orders. Chick Cafe has a different menu for breakfast, lunch and dinner, with its specials updated every day.

The cafe owner wants the menus to be easily updated on the system, and wants orders made via the system in real-time.

Mr. Neko would like the content of the menus, but not necessarily the format, to be similar to the ones shown on the following webpages: – http://www.cookbookcafe.co.uk/menus.php.

– http://www.ridinghousecafe.co.uk/menus/lunch-dinner/ . – http://www.ridinghousecafe.co.uk/menus/breakfast/ . The minimum number of items for the breakfast menu is as follows: 8 food items, 4 cold drinks and 6 hot drinks. For the lunch and dinner menu the following is required: 12 food items (of which 4 must be starters and 3 desserts), 8 cold drinks and 6 hot drinks.

The application should allow the customers to:

(1) order food and drinks from Chick Cafe, (2) have their payments recorded, as well as record possible refunds, (3) receive notifications when their orders are ready for collection. The application should allow the cafe’s staff to: (1) respond to customer orders, including recording of the payments, (2) view orders, (3) change the content and availability of the items on the current menus. This ought to include updating daily specials – it is to be done from the manager dashboard. (4) view various reports about the customers’ orders and staff performance (5) send notifications to customers when the respective orders are ready for collection

MENUS Chick Cafe is open on Monday – Saturday, 7am – 10pm, and on Sunday, 8am – 9pm. It has 4 menus for different times of the day: • Breakfast menu: from opening – 11am • Lunch menu: 12pm – 5pm • Dinner menu: 6pm – until closing • Drinks menu: Available all day Customers ordering from the application should see the current menus, available for that specific time of the day. However, they should also be able to see future menus of the same day – this will enable them to make advance orders if they want (see Section ORDERS). The manager is responsible for adding the daily specials and making changes to the menus in the database.

CATERING ON-DEMAND (COD) APPLICATION, STUDENT’S BRIEF 14 He will be able to use a dashboard to manage the titles, descriptions, prices and availability of the items as well as the intended durations needed to make each order – this will be available for inspection only to the cafe’s staff. If an item is missing, the manager will make an order for it via the cafe’s suppliers; consequently he/she will update the cafe’s stock.

The other employees can view the menus and daily specials but they cannot make changes to them, nor update the cafe’s stock. ORDERS Customers can place orders from the software and their orders will be added to the existing queue. By default, the order preparations will be dealt with on a first-come-first-serve basis. However, the priority of the order can be changed at extra cost: if the customer is prepared to pay an additional one-off charge of 5% of the order, his/her order will be placed at the beginning of the queue.

However, no order for a lunch can be made before all the breakfast orders have been dealt with. The analogous requirement needs to be satisfied for the relationship between lunch and dinner orders. The software will allow customers to make advance orders on the same day, e.g. a customer can order a set lunch at 10am in the morning (he/she will be able to choose items from the lunch menu, in addition to the breakfast menu). His/her order will be added to the lunch queue and he will be able to collect from the cafe after 12pm. Customers cannot place orders for a future date.

The employees can see a list of all the orders on the system dashboard, sorted either chronologically in regard to the calendar time of when the orders readiness, or in regard to the priority order (NB: paying the extra fee increases the priority of the order). Once they have finished preparing the order, they can send a notification to inform the customer to collect the order (this notification is a pop-up in the application itself). The staff will also be able to see the name and contact details of the customers along with their orders. When using the application for the first time, each customer will be required to register first – the customers’ details will be stored in the database. Only one employee must prepare the order.

However, there are multiple employees who can view and respond to the orders, and thus it is important that an appropriate Concurrency Control mechanism is used in the system so that no inconsistencies occur, e.g. the same order must not be prepared twice. For example, a status flag could be used to indicate whether an order has been prepared, or a notification for the order collection has been sent, etc. Mr. Neko wants to have regular reports of the orders made using the application.

The system must generate reports of all the individual orders made on a monthly basis automatically, or on demand for arbitrary periods – the minimum details necessary for such a report must include the following: Customer Name, Customer Surname, Customer ID, Order ID, Order Date, Order Time, Order Priority, Order status and the ID of employee who made the order.

An example of an excerpt of such a report is given in the appendix – “9.1 Orders Report – an excerpt”. In addition, the system should produce the following types of reports as well: – “Summary of customer spending” report in which each line must contain a record about a customer; at least the customer ID, customer name and the respective amount spent in a given time period, and – “Summary of staff performance” report, which contains the count of each order type made by a staff member in a particular period, with a minimum and maximum preparation time for each type. All types of reports must be viewable on screen and printable.

NOTIFICATION Once a customer has placed an order using the software, he will receive a notification from the cafe when his order is ready to be collected. This notification must be an in-app notification. Only for additional functionality the notification could also be in the form of an email, Facebook message, etc. Also the manager must be alerted of all the pending orders which preparation took longer than the intended duration.

Late orders must be discovered by the system and the cafe automatically prompted. The Manager should be alerted about late orders – if the Manager is logged-in, the system will generate alerts, e.g. pop-up messages in the application itself, warning at regular intervals of 1 minute until the Manager acknowledges the receipt of the warning.

CATERING ON-DEMAND (COD) APPLICATION, STUDENT’S BRIEF 15 PAYMENT/REFUND The application needs to support a creation of a virtual payment interface that will allow for payment recording. No interaction with a separate payment processor system is required. The payment must be recorded while the actual payment transaction will be dealt with separately, e.g. by a payment terminal which is not integrated with CoD.

The application must simulate the handling of at least the credit/debit card payment type, and direct bank transfer. When you implement the payment feature, the order can only be placed and appear on the application dashboard after the payment is successful. A customer might decide to return the order if the quality is on insufficient level. Accepting such a request can been made by the manager only. In this case, the payment should be refunded to customer.

The actual refund is not part of the CoD, but a record of such refund must exist in the system. A report about the refunds made must be available in the system; these reports should be made available automatically on a monthly basis, or on demand for an arbitrary time period.

CUSTOMERS The system keeps a record of the details of all the customers who have signed up in the application. Customers can only make orders after they have signed up and logged in. The application shows a history of all the orders a customer made in the application in the last month.

The manager can generate a report of customers currently logged in and the details of their pending orders. The minimum details necessary for such a report must include the following for each customer: Customer Name, Customer Surname, Customer ID, and if an order has been made since the customer logged in then also: Order ID, Order Date, Order Time, Order Priority and Order status. The application system must provide an extensive functionality to allow the cafe to improve their relationship with customers. The list of features which are required is as follows: – VIP Club: Depending on the total amount spent, the customer will be able to earn Silver, Gold, or Diamond status. –

The VIP club membership brings various sales incentives to the respective customers, e.g. – allows the respective customers to get free items (for example, free coffee with every sandwich), – 2-for-1 deals – etc. This depends on the customer’s status (Silver, Gold or Diamond). – The threshold for the amount of money spent for each VIP Club category must be configurable in the system.

The management feels that these values are likely to change over time, e.g. once the business grows, and new shops get opened. For the current version of CoD, however, the following VIP threshold values are specified: – If a customer spent over £1000 in the last 12 months, a Silver status can be granted. – If a customer spent over £2000 in the last 12 months, a Gold status can be granted. – If a customer spent over £5000 in the last 12 months, a Diamond status can be granted, – VIP customers can be given a discount, as a percentage of the respective orders amounts.

The discount plan is set/maintained by a manager and can be either fixed or flexible depending on the orders to the customer within a calendar month. A particular discount can be applied to one or many VIP customers. The discount can be paid to the customer at the end of the month or deducted from the amount due for future order(s). In either case, a record about this should be maintained in the system. •fixed discount – the same percentage of discount, e.g. 3%, is given to the customer for each order. •flexible discount – the percentage of the discount depends on the value of the sales to the same customer accumulated within a calendar month.

MISCELLEANEOUS The system is expected to provide functionality for maintaining the list of employees and general maintenance of the system database by a manager including creation, modification and deletion of employees’ accounts.

The system is expected to provide an adequate level of security. Appropriate technology must be used which provides adequate security mechanisms and allows users different levels of access to the system. For CATERING ON-DEMAND (COD) APPLICATION, STUDENT’S BRIEF 16 example, the waiting/kitchen staff will have access to view the stock (but not to update it) and to individual reports, the manager will have access to the whole stock and to all individual reports.

Managers are also the only users who can generate all reports, etc. The owner can perform all the functionality of the software. Also a database backup/restore facility is necessary.

Order from us and get better grades. We are the service you have been looking for.