Food Ordering Stand for Kurdish Best Kebab House
TABLE OF CONTENTS
ABstract 3
Introduction 4
Reason For Application 5
Application Requirements 5
Subsection 1.1.c #
waterfall methodology #
Section 1.3 #
#
ABstract 3
Introduction 4
Reason For Application 5
Application Requirements 5
Subsection 1.1.c #
waterfall methodology #
Section 1.3 #
#
ABSTRACT
The project aims to develop a Food Ordering program for Kurdish Best Kebab House which is a restaurant/takeaway located in Edinburgh the heart of Scotland. The Program has been requested by the boss/manager. The Food ordering application will be designed to allow its walk-in customers to place orders inside the business with just a few clicks, due to the business being very successful and busy it will be a great idea for reducing the cost for labor/less staff required.
The application will be displayed on a small screen for the customers, the application will provide the category, images, price, quantity, cart and name of foods/drinks. The manager will have an administration view of the application, which will allow him to add, delete or update the food orders/information. The application will only give access to the administrator with the correct username and password which will be pre-set.
The employees and customers view/make the order through the ordering application which will be displayed on a screen, the user interface will be plain (user friendly) and easy to use without any help feature added for better efficiency to the business.
Running a business is very difficult and requires a lot of motivation and high-quality service to keep the customers happy. Due to the rapid growth of food businesses in recent years, there is now a high competition between businesses, which means customers only choose the best. Many businesses in Edinburgh manage customer orders manually by employing certain staff for taking orders on paper and giving the order paper to the chefs, this can lead to errors by misunderstanding the customer properly.
In today’s industry, the rates for labor is increasing which makes it very difficult to find staff when required. Also, the managers don’t have to manually go through all the sales in each day or week by calculating receipts, it will all be designed in the application automatically.
This application will solve all these issues by;
The main advantage of this application is that it helps the business function faster and accurately, therefore it makes things easier for the customers, employees and the manager in the business as the process is automated hence employees can work at their best. The programming language which will be used to build the application is Java.
The application menu will be up to date as the manager has access to the administration which they can choose to add/update foods, it will not allow access to any employees.
Customers can choose more than one food/drink and place it in their cart, once customers have chosen their order, they can view it before proceeding to payment where the total price is calculated and includes a 5% charge for orders under £5. After the checkout is completed and payment is collected, the order is sent to the kitchen on a large screen which will allow the chefs to read the orders and begin making the food immediately without any confusions or delays. Each processed order by customers will be saved in a database which can be viewed by the manager.
Reason for application
The reason the developer focused on this application came from my dad, he’s been involved in the food industry at a very young age and made me start alongside him. One of the main reasons for developing this application is because the business was getting busy and there were queues leading outside the entrance, personally I hate long waits for my food, so rather than orders manually done on paper by staff, this application would be a great idea for my boss which solves this problem.
The application will be fit for purpose (Validating data) by;
Problem with the existing process;
The existing way of storing customer details manually requires a lot of work as orders can be easily lost and daily sales will not be added up properly. A lot of takeaways/restaurants in Edinburgh hold their customer details in a manual way, which is a drawback and mistakes can happen because there’s a huge number of customer orders to take. For the managers point of view, it is very hard/time consuming to view orders and count the till at the end of each day. This application will maintain all customer orders and transaction daily.
There is a lot of food complaints from customers because the food was not made to a high standard. This application will solve a very big problem which allows the manager to keep an eye on the kitchen rather than having to worry about taking orders manually as the chefs can easily become tired and lose concentration. The main reason customers visit the takeaway is for good quality food, giving bad food to customers will have a big impact on the business’s reputation which means good management is a vital role for the manager.
Future of this application: this application can be made available for storing employee details in the future, it can also be used to integrate many screens in the business. As the developer, if this application is used by the businesses, there will be many requests to enhance the application by adding new features to it. This application will be evolving constantly and many other businesses in Edinburgh will start bringing this system into their own business environment. As tourist visits are increasing the application can include food translators, so foreign customers can order foods in their own language.
Data constraints;
Future adaptation is the process of coming back (Iteration) to the application to make modifications required by the manager in the future, e.g. the manager may request to enhance the application by allowing customers to place orders and collect their order at times which suit them best, requesting to change their username/password which will be done by the developer at an extra cost.
Customer ordering process: Manager Login process:
Application Requirements
When gathering the requirements of the application, we will use the MoSCoW analysis which is a great technique used for the developer to decide what we will do and won’t do in the application.
Must: we must include them in the application, if we don’t do them the application will fail, they are integral to what the application is about.
Should: if we do them, we can get a big benefit for a relatively modest incremental cost and effort.
Could: good reasons to do them if appropriate resources are available but we don’t have need to.
Wont: would do it if we could but it exceeds the timescale, may be implemented later.
The functionalities of the application include;
Must have:
– Customer enters menu
– Customer selects food and drinks from menu
– Customer receives order confirmation
– Manager can access administration
Should have:
– Customer can remove foods and drinks from order
– Customer proceeds to payment
– Manager can view daily or weekly sales
Could have:
– Customer reviews order before paying
– If order is under £5 apply 5% charge
Won’t have (maybe included in future):
– Manager(administrator) update/adds food
– Manager(administrator) update prices of foods
Once the functionality of the application is complete, the developer will configure the application before giving it out to the business and allowing customers to use it, it is very important all functionalities are fully configured to avoid any loss to the business. Also updating the food menu properly means the developer doesn’t have to go back and correct errors they made.
Required software:
Component |
Requirement |
Operating System |
windows, OS X, Linux |
Database |
Microsoft MySQL server 2012 |
Language |
Java Runtime Environment |
Development kit |
Java SE Development Kit (JDK) |
Software name |
NetBeans IDE |
Required hardware;
Component |
Requirement |
Processor |
800MHz Intel Pentium |
Memory |
512 MB |
Hard disk |
750MB available space/ CD-ROM |
Ports |
USB for backup copy |
Monitor |
15” color screen |
The application will be developed using NetBeans IDE, IDE stands for integrated development environment which can be used to develop many languages such as java, PHP, C++ or many other programs related to java. Java is very easy to download from oracle by accepting license agreement and downloading windows .exe files. JDK must be installed to start using NetBeans IDE. NetBeans is a very easy to use building tool for java which includes compilers for source code, easy GUI builder and much more.
Metrics
A matric is a measurement of software characteristics e.g. time it takes to execute, quality of the software, which are countable. Software metrices are important for measuring the performance of the software, planning, measuring productivity, debugging, estimating cost. They are simple, consistent and unambiguous, independent of programming language, easily adaptable and cost effective to obtain. Every matric has a base standard of who saw an ad and how many times they seen that ad, this measures the affect/reach of impressions.
“You can’t control what you can’t measure” – Tom DeMarco
During the testing phase of the waterfall methodology we generate: testing plans, execute test cases, report test outputs, cases passed and failed.
Testing cases metrics:
Waterfall model
Waterfall methodology will be used when developing the application, following this methodology properly ensures the application meets the requirements and the right application is delivered. The method is done in a sequential manner one after another therefore the phases do not overlap, each phase has specific deliverables. This method is great for developing small application as its easy to understand and manage due to the rigidity model.
There are six important stages to this methodology:
The Requirements Analysis:
The first stage is the requirements analysis which involves gathering requirements from the customer and analyzing them. The requirements document is created which specifies the functional and non-functional requirements of the application, this document is reviewed and must be signed before the next step can begin.
Application Design:
In this phase the user interface of the application is designed, there are two designs physical and logical. The physical design refers to hardware components such as storage. The logical design is an abstract view of the application showing the data flow (Inputs and outputs). Also, blueprints will be designed for the application to better understand the layouts. Once the design phase is completed the implementation can begin.
Implementation
This stage involves building the design into the actual application, coding must reflect exactly what’s stated in the requirements documents. Developer will start by coding modules which will then be integrated into complete software. At the end of this phase the developer will review and sign of the product.
Testing
The testing team will perform testing on the developed application to ensure that it meets the requirements as stated in the software specification document. The verification and validation test done at this stage will ensure the quality of the product. if the software does not meet the requirements in the requirements document it is sent back to the programmers for further implementations. Once the testing is complete, they can sign of the product. It doesn’t matter who is doing the testing, its more important on how it is been done.
The types of testing include:
Black Box testing: These can be functional or non-functional tests without looking at the internal structure. Black box testing is performed by the end users since it is based on external exceptions. There are three type of testing strategies which are integration, system and acceptance testing, this involves testing the level of the software to make sure it’s acceptable. Black box testing chooses inputs from the requirements specification or test cases without looking at the actual coding. The downsides of this type of testing include:
White Box testing: This testing method is a better type as the internal structure of the source code is known to the tester. The three testing strategies are unit, integrated and system testing but mainly it is focused on unit testing, this type is suitable for testing algorithms. It’s a great way of choosing inputs from the requirements, executing the test cases to see what the expected output is and what isn’t. It looks through the codes to find any gaps to analyze that’s not found by the test cases.
Code coverage analysis is automated (refers to metrics), this involves writing the test cases, creating a condition for the error and allowing the software to tell you the percentage of code that is executed. The downsides of this type of testing include:
Acceptance testing proceeds until the developer and client agree that the application is acceptable and meets the requirements
Beta Testing involves many users that agree to use it, they test the product when using it and report problems which were not seen by the developers
Unit testing involves testing each module independently, it is used in white box testing and focuses on units of the source code as its implemented
Validation testing: this test ensures that all functions of the software is tested and correct outputs are thrown.
System testing refers to functionalities to ensure the system meets the requirements of the client. The integrated and complete software is tested.
Deployment
Team of experts will deploy the product into their world without any hassles.
Maintenance
Maintenance is the phase in which initial issues are resolves. Additional testing carried out to verify acceptable deployment. In this phase software is regularly updated and issues are passed by a team assigned to perform maintenance activities, if any requirements change then the project moves back to the requirements stage and again must produce the requirements specification document.
This manual is provided to give assistance to people using the application from a technical point of view.
The UML activity diagrams below describes how the functional requirements of the application flows as a customer’s point of view:
Customer places order through application; this function allows customers to select food and add it to their shopping card
administration access; allows the manager to update the menu and view the daily/weekly sales on a database.
Order received; the final part after the order has been confirmed is to display it in the kitchen on a screen.
Ethics
Programming engineers should oblige themselves in the software development life cycle. The analysis, requirement specification, design, implementation, testing and maintenance of programs as they should respect their profession. Software engineers have 8 principles:
1. Public – Software engineers will act reliably towards the public interest. This refers to taking full responsibility of your own work.
2. Client and employer – Software engineers will act in a way that is to the greatest advantage of their end users and employer is reliable with the public interest. This refers to using the client or employer’s property as authorized to do so.
3. Product – Software engineers will guarantee that their items and related changes meet the most astounding profession as possible. This refers to ensuring work completed meets the scope and objectives.
4. JUDGMENT – Software engineers will keep up integrity and freedom in their expert judgment. Not take part in improper financial practices such as bribery
5. Management – Software designing employers and developers will buy in to and elevate an ethical way when dealing with the management of software improvement and maintainability. This refers to good management for projects on which you work on e.g. reducing risks.
6. Profession – Software engineers should act with integrity and not ruin the name of the company to the public interest. This refers to helping the company by acting ethically to improve the reputation of the institution.
7. Colleagues – Software engineers should be reasonable and help of their fellow employees. This refers to helping employees follow the code of conduct of the company and give full credit to the work of others.
8. Self – Software engineers should be involved and show interest in continuous learning as a profession. They should respect moral views when practicing as a profession. This refers to the improvement of their knowledge as a profession when working on projects. Also, not influencing others to take part in actions which will breach the code of conduct of the company/organization.
References;
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more