Small Asian restaurant

Introduction:

Iranian Restaurant is a small Asian restaurant provides all food services inside the premises. The limited space of seating and tables cause the restaurant critical problem which has a negative impact on its customers especially when they are placing orders for the food. The manager wants to provide its services for take way and advance ordering of the food through their web site. The online presence with advance ordering system, and table reservation system will enhance our productivity which will results in providing ease of access for the customers, and will also increase the number of orders taken in a short time, which will result in the improvements of the business and hence will have more profit.

This web site will show all the meals available in the restaurant and will also provide the facility of online purchase that is ordering food, online payment of the food, and table reservation. The web site will provide access to an online food store of the restaurant, in which the prices and pictures of all the meals will be displayed. The customer can Place an order online and make payment online and have the meal delivered to their premises. Or the customer can also place an order, select a time, book a table, and wake into the restaurant on their schedule time to enjoy their email inside the restaurant.

As my client is not an IT professional and hence I show him that how will I developed this web site and give him the basic idea of the work flow in the web site. I also give him an idea of the technologies I am using this web application.

Now if we analyze this work, it is a full fledge e-commerce project. It includes a proper understanding of the database work, must have hands on expertise on services side scripting language in my case I chose PHP and MySQL.

Similarly daily transactions will be monitored in accounts of restaurant. So it is very interesting for me and I do it completely and successfully and I get online ecommerce project experience.

Aims

The aim of the project is to develop a web based application that will be able to keep the restaurant online. The users will be able to browse and select the meal from our site. They will be able to place online orders on the restaurant site and pay online through their credit or debit cards. The users will reserve table of the restaurant for specific time without any payment. So when they will arrive at the restaurant they will have no problem of any vacancy. The users must give their personal information so that the management authority will be able to keep track of them.

The users can also submit tickets in which they can ask any type of questions from our support team our support team will always be available to support them. The users then will be in contact with our support team through his/her ticket number issued by our team.

Similarly the users can trace their orders by logging in and looking their orders they will have no right to update or delete the order they can only trace the status of their orders whether the order is still pending or has been processed.

The manager of the restaurant will be able to store all the personal information's of the customers in a centralize database and also their credit card information. He will be able to look at all the orders at a glance and full fill the orders requirements.

The manager will have the right to delete or drop any order because of not sufficient information that are required by the managing authority. He will be able to see all the tickets submitted by the customers and the reply of the support team.

In short it is a complete web based ecommerce site having the shopping cart facility the users will fill the cart and then order at lost.

AVAILABLE TECHNOLOGIES

Database Systems

I study the following Database Management Systems so that to select one of the following that full fill my requirements better than all the others. I used internet, my library books and my project supervisor to gain knowledge about all these Database Management Systems.

  • MS Access
  • ORACLE
  • SQL Server
  • PostgreSQL
  • MySQL
  • DB2

ORACLE, SQL and DB2 are all developed by major IT corporations, ORACLE is developed by Oracle Corp, SQL server by Microsoft Corp and DB2 by IBM. They are all designed for the client server environment and all three support standard SQL. They are also well established database servers with good reputations.

Oracle and DB2 are available for the UNIX operating system and MS Windows while SQL Server is only available for MS Windows.

All these are best option for organizations or corporations where cost or money is no problem

But as I m a student and cost is a major problem for me so I have to choose one which is almost free without cost.

So the other database systems available are PostgreSql and MySQL. Both are open source software and are freely available.

MySQL is an open source database and is widely used throughout the world for web applications because it is a light weight database and can be used on all platforms. So MySQL is the best option for my project I select MySQL as database Management System.

Web Technologies

There are a wide variety of web technologies among which I have to chose one for the development and implementation of my project these technologies include ASP, ASP.net, ColdFusion, Perl, JSP and PHP.

Active Server Pages (ASP and ASP.net)

ASP is a server side scripting technology developed by Microsoft. It uses .asp extension and uses VBScript as a default language. Asp uses ODBC to connect with the database and it can easily be connected to SQL Server database because of same vender products. Its code is re usable and it allows the programmers to access Computer Object Modelling (COM). It has a compiler which can easily recognised errors so the error handling is easier in ASP as compared to other web technologies like PHP.

ASP.net is the Advanced form of ASP it user VB.net as the default language and it has made the coding very simple by using Visual Studio And .net Platform but still it is a vendor specific and licence specific.

Perl

Pearl is and open source scripting language. It works with HTML. It uses C as a default language its syntax is very similar to c language but still it is not so common language.

As the client makes a request, a new CGI process needs to be loaded, causing a delays and inefficiency for the user causing a disadvantage to them. There are methods of improving the speed and performance by the use of programs such as Fas tCGI and mod Perl.

Although PERL is a cross platform programming language, CGI programs are vulnerable to problems with portability.

Java Server Pages (JSP)

Java Server Pages (JSP) technology enables Web developers and designers to rapidly develop and easily maintain, information-rich, dynamic Web pages that leverage existing business systems. As part of the Java technology family, JSP technology enables rapid development of Web-based applications that are platform independent. JSP technology separates the user interface from content generation, enabling designers to change the overall page layout without altering the underlying dynamic content.

Java Server Pages technology is an extension of the Java Servlet technology. Servlets are platform-independent, server-side modules that fit seamlessly into a Web server framework and can be used to extend the capabilities of a Web server with minimal overhead, maintenance, and support. Unlike other scripting languages, servlets involve no platform-specific consideration or modifications; they are application components that are downloaded, on demand, to the part of the system that needs them.

PHP (Hypertext Pre-processor)

PHP (Hypertext Pre-processor) initially derived from Personal Home Page is now a days the most common and widely used server side scripting language. It is open source and wide community is connected with the development of this language that is why it is now the most commonly used language throughout the word.

PHP has support for almost all the Database Management Systems in the world but most commonly MySQL is used with it. PHP/MySQL combination is the best combination for development of online dynamic applications.

That is why I also selected this tremendous combination for the development of my project also both are open source improving day by day and easily available without any cost

Macromedia Dream weaver/ HTML

Dreamweaver is a powerful editor for web development. With the help of the Dreamweaver you can develop the web pages without writing any html code. The understanding of html code is a must because you will then be unable to remove even a small error but it will save your time you work in Dreamweaver in the GUI form just like word processor software.

Dreamweaver incorporate all the other web technologies like you can create CSS, PHP, JSP, ASP, ColdFusion and all the other web technologies, client side Scripting like java script Ajax simply you can work in any web technology using this powerful editor by Adobe Corporation.

Chosen Technologies

By Investigation of all the existing Database Management Systems and web Technologies finely I m able to chose one of them for my web based project. So I chose the following Technologies. First I will learn these technologies to wide my knowledge area.

MySQL

  1. Extremely wide support
  2. Huge development community
  3. More powerful enhanced features above (5.0) versions
  4. Super fast and stable
  5. Good security features
  6. Open source
  7. Multi platform (UNIX, LINEX, Mac, Window)
  8. Wide variety of GUI tools both free and commercial

PHP

  1. Extremely wide support
  2. Huge development community
  3. Good application performance
  4. Quick development time
  5. Wide support for connecting all the databases

Dreamweaver

  1. Powerful website construction editor
  2. Advance Knowledge of HTML and DHTML not required
  3. Simple do modify any site
  4. Simple to use because of GUI
  5. Have support for about all web technologies

System Data Analysis

This is one of the most vital phases of software development life cycle. The data collected in investigation phase needs to be manipulated and converted in to the form that can be used by the analyst and his team members in order to understand the system in its true sense.

The most important thing in the whole process is the data that have to be collected through website from customers. Then comes the stage of data analysis. In data analysis, different techniques are applied to combine different entities togeth7er to identify relationships between them, and identify their attributes and properties.

The first step is to study the environment and the legal & proper working process. Then a site analysis (study) report is generated to help in the data analysis and modeling process.

The second step of analysis is data analysis. For this purpose, different data modeling techniques are applied like DFDs, ERDs etc. These show the overall structure of data. The main objectives of analysis are:

  • To describe what is required.
  • To establish the basis for software design.
  • To define set of requirements for validating the software.

We have used two different types of analysis modeling performed in this phase, described as under:

  • Data analysis modeling
  • Functional analysis modeling

Data analysis modeling solely focuses on the data entities. It does not describe the flow of data. For this purpose ERD (Entity Relationship Diagram) is used as a description tool. It views the real world as a set of basic objects and relationship among these objects. It is intended primarily or the database design process by allowing the specification of an enterprise scheme. This represents the overall logical structure of the database.

An ERD is a detailed, logical representation of the data for an organization or for a business area. It is a notation that is used to conduct the data modeling activity. An ERD contains three types of information.

Data Entities or Data Objects show almost any composite information that is understood by the software. By composite information, we mean something that has some properties or attributes. It is denoted by a labeled rectangular symbol.

Attributes define the properties of a data entity that can take on some value assigned to it. It is denoted by a labeled elliptical symbol.

A Relationship is a logical and meaningful connection among one or more entities. It is the connection that holds together various components of ERD. It is denoted by a labeled straight line. This label can be shown in a diamond symbol.

The functional analysis modeling focuses on the main function of the system and the detailed functionality. The main entity in the functional modeling is flow model.

Information is transformed as it flows through the computer system. Different types of inputs are given to the system, some process is performed and some output is generated. This generated output is the transformed input. The functional modeling began as the information flows through the system. The tool used for functional modeling is DFD (Data Flow Diagram).

A DFD is a graphical technique that depicts information flow and the transform that is applied to as data flow through the system. It may be used to represent the system or software at any level of abstraction. In fact, it may be partitioned into levels that represent increasing information flow and functional details. Therefore, it provides a mechanism for functional analysis modeling.

It is constructed as various degree of detail about the process of function. At the first level (level-0), also called fundamental system model or context model, we represent the entire elements of the system or software as a single bubble (ellipse or circle) with one or many input and output data objects indicated by incoming and outgoing arrows respectively. Levels of DFD

Must be increased up to an extent i.e, until each process is fully refined and more refinement is not possible.

DFDs can also specify any external or internal entities that either feed the data to the system or consume the data from the system. These can be denoted by a labeled rectangular symbol.

A data store is just like a physical store or buffer that is used as repository of data that is stored for use by one or more processors or transformers. A double line symbol, labeled between them, is used for its denotation.

A process is the transformer of the system that gets input from the end-user and transforms it to some output. It is denoted by a labeled elliptical or circular symbol called bubble.

The data flow shows the flow of data through the system. Arrows labeled with the input or output data are used to denote the data flow.

DATABASE DESIGN

The most common miracles of software engineering are the transitions from the analysis to design and from design to code. Design is the one of the most vital phase of the software development life cycle.

It can be defined as a process of applying various techniques and principles for the purpose of defining a device, process or software in sufficient detail, to permit its physical realization. It is represented at high level of abstraction, a level that can be directly traced to the specific system objective and more detailed requirements.

The design ultimately affects the success of software construction and as important, the ease with which the software can be maintained.

The design phase is a solution, "How To" approach as compared to "What is" approach of analysis phase; it translates the system requirements into ways of operating them.

Each of the elements of the analysis model provides information that is necessary to create the design models required for the complete specification of design.

The importance of software design can be stated with a single word "Quality". It is the phase, where the quality is fostered in software engineering. It provides us with the representation of software that can be assessed for quality. It is the only way by which we can accurately transit the requirements into a finished software product or system. It serves as a foundation for all the software engineering and software support steps that, without the design, are prone to the risk of building an unstable system.

INTERFACE AND DESIGN

As a web based project I have to make the design and interface so attractive that attract the users towards our site and the interface must be very simple because of the grand variety of the customers ranging from an uneducated man to a professor.

My project is market based so in the market we have a lot of competitors so my project will focus on the simplicity because I want no user to left my site because of the difficulty or any issue that he could not understand. Most of the work will be done by the software the user will just click and the software will do the job for him.

The other main issue is of design the design must have soft and matching colours so that it keep best impression on users. No user must be hesitated by the design or colours of the site. Similarly the arrangement must be such that no user is confused by it all the links and buttons must be on their proper place.

User Interface

The interface must fulfil all the requirements of the user anything he want to do the interface must welcome him. The following figure shows the interface of my project for the users it has links to all the module are facilities provided by my client.

  1. This is the top menu it contains it help the user to access the home page the contacts. If the user wants to login and check his order status or update his profile information so he can login just by clicking the login button in this menu. If a user wants to contact the manager of the restaurant he can see the contact informations by clicking the contact button.
  2. This is the main banner area where the logo or banner of my client can be placed the colours user here must be matching and he can placed the picture of his best food here which will help to attract the users for him.
  3. This is the title bar of the main body area just giving the information to user that the available products are displayed in this following section of the site the colour is keep different just for the reason that this section attract the user attention fist.
  4. The top title bar of the left section gives the information to the user that we have different categories of the food which are displayed in the following section.
  5. All the different categories which are available with my client the products or food menus are divided in different categories for the purpose that the management will be easy for the manager and similarly the users can easily browse the food which he like much he will just click the name of the category in which his demanded food accurse.
  6. Description of the food having the Name of the dish the price of the dish so that the user can select the dish which they can afford. Similarly the category in which the dish is palaces is also displayed and the short description which describe the food for the users in such a way that the user unwillingly by it.
  7. This section allows the users to buy the food and specify the quantity in which they need the food. They will just inter the quantity in the text field and will click the add to cart button so the food will be added to their shopping cart.
  8. This panel is for the picture of the dish a beautiful picture of the dish will be taken and placed here which will attract the users towards it.

USER MANUAL

When the user initially enters the Iranian Restaurant site they are presented with the page as demonstrated in Figure 7.1. if they want to place an order they will select dishes and add them to their shopping cart by entering the required quantity in the text field and clicking the add to cart button. They can easily navigate between different categories by clicking the links in the category section of the site.

Shopping Cart

The users can any time give a look to his shopping Cart as he will click the Add to Cart button it will redirect him to his shopping cat where he will see his total product selected their prices and the grand total amount of his shopping Cart the figure 7.2 shows the shopping Cart interface

The user give a look to his shopping Cart here are a lot of control in the hand of user he can delete any product by clicking the cross image in the remove section. He can update the quantity of the product by just entering the required quantity in the text field and clicking the update button. The other options with the user here are clear cart he can clear his shopping cart by clicking the clearCart button his cart will become empty or he can move to shopping again by clicking continue shoping link.

When the user is satisfied with his shopping he will just click the Check Out button he will be directed the login page as shown in the figure 7.3. Now if he is a registered user he will login using his username and password otherwise he will entered his information in the new user panel as shown in the figure 7.3

After submitting the login page the user will be directed to a page where he will enter his credit card information and the shipping address. The shipping address information is keep here again for the existing users it their address has been changed then the will just update their address. For existing users the credit card information they have given to us will be there if they want to buy with that one they will just submit the page and if they want to use another one are the existing one has been expired they will enter new information and the existing information will be updated same is the case with shipping address. The layout of this page is shown in the figure 7.4

After entering the whole information the user will click checkout button and if his transaction is correct he will be given a message of Thank You for shopping with us your order has been successfully submitted. The information he has given and the product he gathered in his cart will be inserted into the database. Now his order will be available to the manager and he will fulfil his order.

Editing Profile

After entering the site a user can just login by clicking the login button on the top menu and now the register user will enter their username and password in the login page showing in the figure 7.5

By successful login the user will see and other menu having buttons profile, orders, submit ticket, view tickets, reserve table. The user will click on profile button he will see his profile information and he can edit his profile by clicking the edit showing in figure 7.6 the user can edit his personal information as well as his credit card information here

Submitting ticket

The user can submit a ticket if he want any type of information from the support team he will just click submit ticket button and a new page will be appear where he can right his message in which he can asked for any king of support or he can give any suggestion. He can also upload a file if he has more text having any pictures etc he can give this information in the window showing in figure 5.7

View and reply ticket

Click the view tickets button in the menu for the register users a new page will appear which will show all the tickets you have submitted click any ticket code that has been assign to your ticket then you will be able to see the reply given to your ticket you can also give another reply to that ticket if you are not satisfied with the given answer if you are satisfied just close your ticket by checking the close ticket check box in the ticket reply page as shown in the figure 5.8

Reserving Table

The registered user can also reserve a table for a specific time on a specific date. The user cannot reserve a table for less than 1 hour. The user will click reserve table button which will direct have to a page having all the table of the restaurant with the number of seats of the table a small description of the table about its position. Then he will click the reserve button in the front of the table he want to reserve two windows will appear one showing him the time for which the table is already reserved and the other in which he can select the reservation start, end time and the date on which want to reserve the time. The figure 7.9 shows that page.

Admin Panel

The admin will manage all the orders table reservation and user accounts. Similarly the ticket submitted by the users will be given answers. So the admin must be able to see all the orders their status all the users and their information so for convenience the admin panel is divided in to three main section user management, ticket admin and restaurant management which will contain all the information about the orders, reserved tables dishes and their categories the figure 7.10 shows the main page as admin login into the admin panel and by clicking the specific icon he will enter the area of his interest.

By clicking the User Management icon he will see another page where he will be able to perform different actions like delete, update user change the password of the user or change his own password. The page where these actions can be performed is shown in figure 7.11

Similarly by clicking the Restaurant Management he will enter the restaurant page allowing him to see all the orders their status and other fields of interest like the reserved table the dishes already available etc. The admin can add other categories dishes; delete incomplete orders update the categories etc. He can perform a range of management operations which can be understood by looking at the figure 7.12 which shows the link to all the specific operations.

When the admin will click the view orders or view Reservation buttons so a page will appear which will show him all the orders or all the reservations. In case of orders the completed orders will be in one table and incomplete or on hold orders will be in other table so he can easily process the on hold orders. Similarly when he will click any of the above icons the related page will appear which will convey him the related information. The figure 7.13 shows the layout of the page how he will see the information.

The figure 7.13 shows how the admin will look at the orders. The admin has the delete and update options so he can delete and update the status of any order he want. Similarly by clicking the View Details link he will be able to see the details of any specific order. The figure 7.14 shows how the details look like.

TESTING

Black Box

This testing method is the overall testing of the software without knowledge of the internal functionality of the functions or modules of the software the tester which is mostly the users

Jus test the overall functionality of the software which is intended by them.

This testing technique needs the feedback from the tester/users that how he finds the software does it fulfil the user requirements or not. I test the software from my supervisor and my client they both give positive feedback to me.

White Box Testing

This is often known as 'clear box testing' 'or unit testing' here the tester test every unit of the software whether it is giving the desired result or not without mentioning the overall result. The overall result is taken out of the mind if each and every unit or function will give the desired result definitely the whole software will give the desired result. So after performing the black box testing and their satisfied result I also performed the white box testing on my software which gives the following results which are satisfactory.

EVALUATION

Critical Analysis

The aim of the project is to develop a web based application that will be able to keep the restaurant online. The users will be able to browse and select the meal from our site. They will be able to place online orders on the restaurant site and pay online through their credit or debit cards. The users will reserve table of the restaurant for specific time without any payment. So when they will arrive restaurant they will have no problem of any vacancy. The users must give their personal information so that the management authority will be able to keep track of them.

The users can also submit tickets in which they can ask any type of questions from our support team our support team will always be available to support them. The users then will be in contact with our support team through his/her ticket number issued by our team.

Similarly the users can trace their orders by logging in and looking their orders they will have no right to update or delete the order they can only trace the status of their orders whether the order is still pending or has been processed.

The manager of the restaurant will be able to store all the personal information's of the customers in a centralize database and also their credit card information. He will be able to look at all the orders at a glance and full fill the orders requirements.

The manager will have the right to delete or drop any order because of not sufficient information that are required by the managing authority. He will be able to see all the tickets submitted by the customers and the reply of the support team.

In short it is a complete web based ecommerce site having the shopping cart facility the users will fill the cart and then order at lost.

The system provides the user with a calendar whereby they can select their required date for the current month; it displays the weekly view schedule for that requested date. If the user requires viewing a particular date of another month or year, they can select their specific date from the drop down menu under the calendar.

Another method of assisting the user is by the use of communication through colours and images.

Further Recommendations

After implementing my design and testing my system I found that there are some features which are recommended as further work to improve the system's usability and functionality. These features will help to assist the user further and will increase their use of the system.

The current system does not have the ability to give and alert or inform the user through SMS and email. The system can be improved by adding this facility as a user will by something from our restaurant we will inform him by sending an SMS to his/her mobile phone and also an email will be send to his email address.

The other feature is that of searching facility as in future the business of my client can be extended though now he does not need this facility. When his business will be expand and numerous amount of dishes and categories will be available with him then it will be difficult for the register user who always used to buy a specific dish to find it through browsing all the categories and dishes so he must just enter the name of the dish and the dish and its price and description will be available to him without wasting any time. So in future the search facility must be added in it.

There will be many scenarios whereby the users forget their password or needs to change their password to increase security. My system does not currently provide these means, but they would be very useful to assist a registered user and this would improve the system.

Problems Encountered

There were lots of problems that I encountered during the Design of this assignment. I have been having problems with my client of the Iranian Restaurant. In my 1st meeting with my client they just tell me that or site must display all our information and the users can just do shopping with us then gradually he upgraded his requirements then he tell me that the users should also be able to reserve tables online without cast.

Then in further meetings he also added with his requirements he want that the users should also asked for online support from us they will submit a ticket and we will reply to their message using that ticket number or code. When the project was about to complete he told me that there must be a date picker for the user where he has to enter the date.

Shortly with the passage of time during my implementation phase of my project the client changes their requirements every time I meet to them. This disturbed my project planning time because more they required the project need more time.

References

  1. www.i395-rt9-study.com/08_glossary.html
  2. http://php.net/manual/en/function.mysql-connect.php
  3. http://www.w3schools.com/PHP
  4. www.cbu.edu/~lschmitt/I351/glossary.htm
  5. www.321site.com/greg/courses/mis1/glossary.htm
  6. www.cbu.edu/~lschmitt/I351/glossary.htm
  7. http://www.mysql.com/
  8. Faulkner, C. The Essence of Human Computer Interaction. Prentice Hall
  9. Dix, A. Finlay, J. Abowd, G. Beale, R. Human Computer Interaction. Third Edition
  10. www.validationstation.com/glossary/glossarye.htm
  11. http://www.freelayouts.com
  12. http://www.colour-affects.co.uk/system.html
  13. PHP 5 Power Programming

Bibliography

  • http://c2.com/cgi/wiki?NonFunctionalRequirements
  • http://www.faqs.org/faqs/software-eng/testing-faq/section-13.html
  • http://www.cse.fau.edu/~maria/COURSES/CEN4010-SE/C13/glass.htm
  • Goodwill, G. Developing Java Servlets: Web Applications with Servlets and JSP. 2001, Sams Publishing
  • Lerdorf, R and Tatroe, K. Programming PHP. 2002. O' Reilly
  • Sklar, D and Trachtenberg, A. PHP Cookbook. 2003. O' Reilly
  • Tansley, D. Create Dynamic Web Pages Using PHP and MySQL. 2002. Addison- Wesley
  • Williams, H and Lane, D Web Database Applications: with PHP and MySQL 2002. O'Reilly

Please be aware that the free essay that you were just reading was not written by us. This essay, and all of the others available to view on the website, were provided to us by students in exchange for services that we offer. This relationship helps our students to get an even better deal while also contributing to the biggest free essay resource in the UK!