Oriental Buffet Online

Abstract: Oriental Buffet Online is a restaurant website where customers can find information about the menu, location, and hours. Customer also can order online either for pick-up or delivery. Customers also can fill up our online survey to improve our customer service. Guest book also provided for customers who love to give comments either positive or negative comments. Customers also can buy our gift certificate online. Currently there is no Asian restaurant website who offers these extensive services. Most of them just provided the information of their restaurant. One major restaurant website that offers the same services as ours is Pizzahut.com. So, we will be the first Chinese restaurant website who offers online ordering to our local community.

Introduction:

My parents own two Chinese restaurants in VenturaCounty. They are located in Ventura and Camarillo. We offer a variety of Chinese traditional food. Our restaurants mainly serving all you can eat buffet. We have over 50 items for our lunch and dinner buffet. Beside buffet we also serve regular menu, pick-up and delivery orders. Generally, regular menu generates more profit than buffet, so we want to focus our sales toward that. There are two ways to increase regular menu sales. One, we need improve our regular menu advertising either online or at location. We need to make the menu more attractive with nice pictures. Two, we need to increase sales in pick-up orders and delivery orders.

The solution is to create a website where customers can easily order online either for delivery or pick-up. Most restaurants in our neighborhood do not have a website. Some of them have, but do not provide online ordering. Most of the restaurant website available now just provided basic information on their website. Pizza Hut and other pizza companies are the only ones have online ordering on their website.

Technological Background:

MyMarket CMS

MyMarket is a fully functional online shopping catalog system, built using PHP and MySQL. It was created by Ying Zhang for the purpose of teaching people about the basics of creating an E-Commerce site. The latest version of MyMarket is 1.72.

PHP 5.0.4

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. It can be used on all major operating systems, including Linux, UNIX, Windows, etc. PHP is quite simple to learn for newcomer but offers many advanced features for a professional programmer.

PHP code is executed on the server therefore the client has no way of determining what the underlying code may be. We can even configure the web server to process all HTML files with PHP, and then there is really no way that users can tell what you have up your skin. Installation was easy, simply download the source code from and install it to your server machine.

Apache Web Server 2.0.54

Apache has been the most popular web server on the Internet since April of 1996. The February 2005 Netcraft Web Server Survey found that more than 68% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined. The original version of Apache was written for UNIX, but there are now versions that run under OS/2, Windows and other platforms. The name is a tribute to the Native American Apache Indian tribe, a tribe well known for its endurance and skill in warfare.

MySQL 4.0

MySQL has become the most popular open source database and the fastest growing database in the industry. This is based on its dedication to providing a less complicated solution suitable for widespread application deployment at a greatly reduced Total Cost of Ownership (TCO).It offers several keys advantages:

  1. Reliability and performance.
  2. Ease of use and deployment
  3. Freedom from platform lock in
  4. Cross platform support

Macromedia Flash MX 2004

A tool developed by Macromedia to create flash animation. It also supports powerful ActionScript 2.0, timeline effects, and easy to import video clips. The latest release makes it possible to design an entire Web site quickly and with exciting effects using Flash.

PayPal

Founded in 1998, PayPal, an eBay Company, enables any individual or business with an email address to securely, easily and quickly send and receive payments online. PayPal's service builds on the existing financial infrastructure of bank accounts and credit cards and utilizes the world's most advanced proprietary fraud prevention systems to create a safe, global, real-time payment solution.
PayPal has quickly become a global leader in online payment solutions with 71 million account members worldwide. Available in 45 countries around the world, buyers and sellers on eBay, online retailers, online businesses, as well as traditional offline businesses are transacting with PayPal.

PayPal has received close to 20 awards for technical excellence from the internet industry and the business community at large -most recently the 2003 Webby Award for Best Finance Site and the 2003 Webby People's Voice Award for Best Finance Site.
Located in San Jose, California, PayPal was acquired by eBay Inc. in October, 2002.

System Architecture:

Oriental Buffet Online was built using PHP scripting language. I used MyMarket Content System Management for ease and organization purposes. MyMarket Content Management System has a working shopping cart which I modified to display the items pictures. Basically the shopping cart works very well, but I had to add some features and fix some bug in order for it to function properly.

I am using Apache Web Server since this one is supported by MyMarket CMS. I set the port number to 8050 and create a virtual server on my router, so other people can access my website from anywhere in the world. MySQL was used for this website because I just need to create simple database. MySQL is very easy to use for small database system; therefore it fit perfectly with this website which doesn’t required big database.

Design and Implementation Details:

1. Website Design:

First page display flash animation with sound. I created this flash page using Macromedia Flash MX 2004. Originally I plan to have a flash intro page, but I am having difficulties in setting that up. So, I decided to insert that intro flash page to the first page.

There is a site navigation frame which is used to navigate the website. These are some of the links in navigation frame:

End Users:

  1. Home: this link back to the first page
  2. Menu: Go to the menu section.
  3. Location: Display the map of the restaurant using Google mapping system.
  4. About: A bit history of our restaurant and also display the hours of operation and locations of both restaurant.
  5. Contact us: Page for customers to send email directly to us.
  6. Guestbook: Page for customer to enter their comment about the website or the restaurants.
  7. Survey: Online survey to improve our services.
  8. Gift Card: Page where customer can purchase gift card.
  9. Login: User can login to the system.
  10. Sign up: To sign up a new user.

Admin page:

When an administrator login the system, he will be able to do the following things:

a.Categories: place for administrator to add, delete, and modify categories.

b.Products: place for administrator to add and delete products.

c.Users: place for administrator to add, delete, and reset user password.

d.Orders: place for administrator to check order details such as time and date of the order, what the orders are, whether the payment is approve or not, whether order has been delivered or pick or not.

e.View Stats: administrator can see how many hits the site gets in any amount of days.

  1. Database Backend:

Create a database using MySQL to create 8 tables:

•TABLE users

Contains: username, password, priv, firstname, lastname, email, phone, and address.

  • TABLE products:

Contains: id, name, description, price, on_special

•TABLE Categories:

Contains: id, parent_id, name, description

•TABLE products_categories

Contains: product_id, category_id

•TABLE orders

Contains: id, username, o_timestamp, a_timestamp, status, status_details, custinfo, comments, amount

•TABLE order_items

Contains: order_id, product_id, price, qty

•TABLE binary_data

Contains: id, description, filename, filesize, filetype

•TABLE stats_day

Contains: date, hits

  1. Implementation Details (by Martin Shueh):

MySQL tables:

a. binary_data: to store the pictures for the menu catalog.

b. stats_day: to store date and hits for traffic monitoring purposes.

Survey page:

The survey page was built using PHP. There are 5 questions with 5 answer options. Customer’s answers are stored in text file and will be retrieved to display the result. The result display the total votes, percentage of customers votes, and graphical bar of the votes. The percentage is calculate by counting the answer for each question and divided by the total votes. The graphical bar is display using a gif image files. The width of the bar is depending on the percentage of the votes.

Guestbook page:

This page allows customers to submit their comments to the website. The information is stored in the text file and will be retrieved for guestbook display. I built the page using PHP with the exception of smiley icons which display using javascript. There is also bad words filter which automatically don’t display the bad words.

About page:

The about page contains the information and history of the restaurant. This is a simple html file.

Location page:

This page displays the map of the locations of the restaurant.

Contact us page:

This page allows customers to send email to the customer service or webmaster. The page was built using PHP. I used PHP mail function to hide our email address for security reason. Customers have the choice to send a copy of the email to themselves.

Gift card page:

This page provide direct link for the customers to purchase gift cards from the shopping catalog.

View stats page (admin only):

This page allows administrator to view the statistic of the site. The page was built using PHP. Dates and hits are stored in the stats_day table on MySQL database. This page display the server time and date, the first time hits was recorded, total hits, average hits, most hits, least hit, and the graphical bars of hits. The width of the bar is set by the comparison from previous day hits. For example, previous day hits are 20, today only 10. So it will show blue bar about 50 percent and red bar for another 50 percent.

Add picture page:

This page allows administrator to add pictures for the product catalog. The pictures are stored in the binary_data table on MySQL database. The pictures is retrieved base on the order of the product id number, therefore administrator must make sure the id match, otherwise product details will display wrong picture.

Email system:

I implemented all the email systems on the site such as: Reset password, new user, change password, submit order, and contact us. I retrieved all the information on the MySQL database and used PHP mail function to send the emails.

Payment system:

I implemented PayPal link to allow customers to pay with PayPal. The payment will link directly to my PayPal account.

Design part:

To enhance the appearance of the website, I created the followings:

Two flash animations to make the site more dynamic and interesting. The first one is located at the center of the default page. I add music on this one. The second located at the top frame of the page. All the animation was built using Macromedia Flash MX 2004.

Buttons for the links was created to make the site more dynamic and interesting instead just flat.

Bugs fixed:

The followings are bugs in MyMarket CMS:

Categories keep showing none: FIXED

Does not show customer comment of check out feature: FIXED

No tax calculation: ADDED

Amount display in the shopping cart and order details does not include tax: FIXED

Performance Evaluation

  1. Create a New Account
  2. To open a new account, the customer can click the site navigation link or top right link "Signup", a signup screen will appear.
  3. All fields can not be empty in new account sign up page.
  4. Keep emptying password field if user made mistakes.
  5. Forward to a confirmation page about new account after signed up successful.
  6. Login
  7. The customer has a setup account. He can click the navigation link or top right link "Sign in".
  8. When signing in, if the username does not exist or the password doesnot match, an error message is show.
  9. Forgot Password
  10. Email will be sent when user reset their password. (all is working fine). SEE WEBSITE FOR MORE DETAIL!
  11. Search Product
  12. TESTED, ALL WORK FINE. SEE WEBSITE FOR MORE DETAIL!
  13. Place Order
  14. Will send email to webmaster and customer showing order information. TESTED, ALL WORK FINE. SEE WEBSITE FOR MORE DETAIL!
  15. Contact us
  16. TESTED, ALL WORK FINE, SEE WEBSITE FOR MORE DETAIL!
  17. Survey
  18. Display the result. TESTED, ALL WORK FINE, SEE WEBSITE FOR MORE DETAIL!
  19. Guestbook
  20. Display the result. TESTED, ALL WORK FINE, SEE WEBSITE FOR MORE DETAIL!
  21. View statistic
  22. Display the statistic. TESTED, ALL WORK FINE, SEE WEBSITE FOR MORE DETAIL!
  23. Adding picture
  24. Store picture in the MySQL table. TESTED, ALL WORK FINE, SEE WEBSITE FOR MORE DETAIL!

Conclusion and Future Works:

I have come to the conclusion that this project is close to be done. All the important features such as shopping cart, payment systems, and email system have been done and function properly. Extra features such as survey, guestbook, site statistic also function properly. The website also has a very good design with flash as default page. Customers will be pleased because the website is easy to navigate and dynamic.

Future work will be installing Socket Secure Layer (SSL) to make the website more secure. So customers can feel safe giving up their information in our website. Web service such as checking the distance between customer address and restaurant address also need to be implemented. Only customers located within 10 miles from our restaurant are allowed to register. This will protect us from out of boundary customers mistakenly order from our website.

Hopefully, this website will help attract more prospectcustomers and help them learn more about the restaurant. So they will know that the restaurant is more than a simple buffet restaurant but it also offers a full range of menus selection.

Without a doubt, having this website will help the restaurant to give faster service to their valuable customers. Thus, creating a competitive advantage compared to other restaurants without a website.

REFERENCES

Meloni, Julie C. Sams Teach Yourself PHP, MySQL and Apache in 24

hours. Indiana: May 2003.

APPENDIX

README

INSTRUCTIONS

------

Step 1. Create the MyMarket database

Create a new database called "mymarket" and grant normal user

privileges (SELECT, INSERT, UPDATE, DELETE) to the appropriate user

accounts. For example, in MySQL you would run:

mysql> CREATE DATABASE mymarket;

mysql> GRANT select, insert, update, delete

-> ON mymarket.*

-> TO mymarket@localhost IDENTIFIED BY 'password'

Step 2. Create MyMarket tables

#

# Table structure for table 'categories'

#

CREATE TABLE categories (

id int(11) DEFAULT '0' NOT NULL auto_increment,

parent_id int(11) DEFAULT '1' NOT NULL,

name varchar(25) DEFAULT '' NOT NULL,

description varchar(255) DEFAULT '' NOT NULL,

PRIMARY KEY (id),

KEY parent_id (parent_id),

KEY name (name)

);

#

# Table structure for table 'order_items'

#

CREATE TABLE order_items (

order_id int(11) DEFAULT '0' NOT NULL,

product_id int(11) DEFAULT '0' NOT NULL,

price float(5,2) DEFAULT '0.00' NOT NULL,

qty int(11) DEFAULT '0' NOT NULL,

PRIMARY KEY (order_id,product_id)

);

#

# Table structure for table 'orders'

#

CREATE TABLE orders (

id int(11) DEFAULT '0' NOT NULL auto_increment,

username varchar(16) DEFAULT '' NOT NULL,

o_timestamp datetime,

a_timestamp datetime,

status tinyint(4),

status_details varchar(255),

custinfo text,

comments text,

amount float(5,2),

PRIMARY KEY (id),

KEY username (username)

);

#

# Table structure for table 'products'

#

CREATE TABLE products (

id int(11) DEFAULT '0' NOT NULL auto_increment,

name varchar(25) DEFAULT '' NOT NULL,

description varchar(255) DEFAULT '' NOT NULL,

price float(5,2) DEFAULT '0.00' NOT NULL,

on_special tinyint(4) DEFAULT '0' NOT NULL,

timestamp timestamp(14) NOT NULL,

PRIMARY KEY (id),

KEY name (name)

);

#

# Table structure for table 'products_categories'

#

CREATE TABLE products_categories (

product_id int(11) DEFAULT '0' NOT NULL,

category_id int(11) DEFAULT '1' NOT NULL,

PRIMARY KEY (product_id,category_id)

);

#

# Table structure for table 'users'

#

CREATE TABLE users (

username varchar(16) DEFAULT '' NOT NULL,

password varchar(32) DEFAULT '' NOT NULL,

priv varchar(5) DEFAULT '' NOT NULL,

firstname varchar(64) DEFAULT '' NOT NULL,

lastname varchar(64) DEFAULT '' NOT NULL,

email varchar(128) DEFAULT '' NOT NULL,

phone varchar(32) DEFAULT '' NOT NULL,

address varchar(255) DEFAULT '' NOT NULL,

PRIMARY KEY (username),

UNIQUE email (email)

);

#

#create table for statistic

#

CREATE TABLE stats_day (

date date DEFAULT '0000-00-00' NOT NULL,

hits mediumint(8) unsigned DEFAULT '0' NOT NULL,