Fyp Report
Fyp Report
Abstract
The aim of this project is to produce a working e-commerce bakery themed website with
working functionalities and requirements specified. Upon completion of this project, the website
will be working as any other standard e-commerce business to consumer website with
customizable cake product options. The main motivation of pursuing this project is to
accomplish e-commerce website for bakery with options to customize cake product. Also, by
embracing and using latest technologies and concept such as Model View Controller (MVC)
concept Don’t Repeat Yourself (DRY) coding techniques and responsive user interface design is
great driving force in completing this project. One of main problem that I am trying to tackle is
to produce e-commerce website look similar between different media such as smartphone, tablet
and desktop. Also, another problem is to implement product customization which works well
between different types of media. In order to solve different media issue on viewing website, an
technique called responsive user interface design was implemented so that website looks great in
different medias such as smartphones and tablets. By implementing this techniques and
implementation of requirements, production of Vinn Cake House website was successful with
MVC implementation, responsive user interface design and defined requirements.
Table of Contents
Authorship Declaration....................................................................................................................2
Acknowledgements..........................................................................................................................3
Abstract............................................................................................................................................4
Table of Contents.............................................................................................................................5
List of Figures..................................................................................................................................8
List of Tables...................................................................................................................................9
Chapter 1: Introduction..............................................................................................................10
Chapter 2: Analysis...................................................................................................................15
2.1.1 E-Commerce............................................................................................................16
2.1.5 Authentication..........................................................................................................18
2.1.6 Authorization...........................................................................................................18
2.1.7 Encryption................................................................................................................18
2.2.1 PHP..........................................................................................................................20
2.2.2 HTML......................................................................................................................22
2.2.3 JavaScript.................................................................................................................23
2.2.4 MySQL....................................................................................................................23
2.3.2 XAMPP....................................................................................................................24
2.5 Methodology...................................................................................................................32
2.7 Conclusion......................................................................................................................36
Chapter 3: Synthesis..................................................................................................................37
3.4 Implementation...............................................................................................................49
3.5 Testing.............................................................................................................................56
Chapter 4: Evaluation................................................................................................................57
4.1 Evaluation of Product......................................................................................................57
4.1.5 Conclusion...............................................................................................................59
4.2.4 Conclusion...............................................................................................................61
5.1 Conclusion......................................................................................................................62
5.2 Recommendations...........................................................................................................63
Appendixes....................................................................................................................................68
E-commerce features direct interaction but it is slightly different than traditional approach. E-
commerce store lists all available information to user, also, by implementation of live chat with
sales representative and displaying similar items creates an interaction between store and user.
Operating e-commerce website cost is very low compare to running brick and mortar store. Also,
reach of e-commerce is considered globally with advertisement and help of search engine.
E-commerce is no longer strange to internet user in Malaysia. On 2010, RM 1.8 billion are spent
on e-commerce, by 2014 is it predicted to reach RM 5 billion in Malaysia (Wong, 2012). With
this rapid progression, creation of e-commerce for bakery with customized product will boost
and help bakery to make more turnover annually. Malaysia internet penetration are at 60.7% out
of 29.2 million population on year 2012, which roughly translate into 17.7million online users
(InternetWorldStats, 2012).
There are number of e-commerce solutions available, which most of them are available as open
source web application, for example, OpenCart, PrestaShop, WooCommerce and osCommerce.
These open source platform web applications provide great range of options and functionality to
web developer. These open source e-commerce web application provides generic product
placement, it is not very suitable for bakery type of store as customization of product is needed.
With keeping their implementation and structure design, a much suitable e-commerce web
application will be developed where it can cater for bakery type of e-commerce alongside with
product customization.
Besides standard e-commerce functions, product customization are to allow end user to modify
and make their own cake based on subset option provided by system administrator. This allows
more interactive features and personalization option are included to user. A user can make their
own cake by selecting their own toppings, flavors and shapes. In order to create successful
bakery e-commerce web application, extensive research will be done on HCI concepts
particularly on User Experience (UX) and User Interface (UI) and available current open source
solutions.
Vinn cake house allows free delivery within the great state of Penang, Malaysia. For the rest of
people outside of Penang state, they can opt to use TA-Q-BIN delivery services where Vinn
Cake House will send their cake via cold logistic services. Also, user are able to pick up their
cake at physical location of Vinn Cake House store. User is presented with two payment methods
which are by paying using third party payment system called Paypal and manual bank transfer.
Once payment are transferred to Vinn Cake House, the user can view the order invoice and their
order status will be updated by Administrator to show the status of cake.
For the backend management of Vinn Cake House, administrator can modify product
information which will be shown to frontend users. Administrator can create multiple categories
to show different types of cakes. The displayed product has to be added by administrator so that
the user can view them. Besides that, the order submitted by user are visible to administrator, the
administrator can update the cake information and print invoice to send to baker. Administrator
also can manage blogs to post latest updates and promotions about Vinn Cake house visible to
everyone. Also, administrator can view earning reports of particular date range to see how much
website have generated profit for Vinn Cake House.
1.5 Project Scope
This project scope mainly is to develop an electronic commerce business to consumer website
for Vinn Cake House. Standard e-commerce business to consumer functionality is observed after
researching implementation of similar websites. Also, business logic from Vinn Cake House is
translated into requirement specification to be implemented on website. Delivery and
coordination between Vinn Cake House staff of using website is not included in scope of project.
Also the bank transfer manual payment handling is not included in the project scope as well.
Chapter 2: Analysis
There is plenty of e-commerce website out there which caters for various businesses. Revolving
from traditional e-commerce which requires physical present at store to selling product digitally
without needing physical present, anyone with internet connection and acceptable payment
method can purchase any item from anywhere. A user from Malaysia can buy products sold by
merchant in UK by paying using credit card. The merchant then would ship the item by using
delivery company such as FedEx or DHL. The entire process of buying product has become
easier with e-commerce.
Specialized e-commerce website for bakery in Malaysia is quite rare and low in amount. By
developing e-commerce website for bakery, I can show that they are many ways e-commerce
system can be used to attract visitors to purchase cake and make their own cake design via
website. No longer visitor have to physically present at cake store to purchase cake or to give
specified order as visitor can design their cake and view cake product within the website. Each of
e-commerce website has unique or special function which can be used and integrated on e-
commerce bakery website I am developing. As any website available on internet, e-commerce
website are prone to attack by malicious users and hackers due to confidential and sensitive data
such as user information and payment information. Finding and research from experts regarding
security breach on e-commerce website will be given extra emphasize and will be implemented
on website.
The e-commerce website for bakery developed can be used by any cake house as website
contents including title, contents can be dynamically changed by system administrator without
have to modify source files. As such, the system will be developed for fictional company called
Vinn Cake House. Vinn Cake House is conducting their business via traditional method where
user has to walk in to purchase products. After completion of this system, Vinn Cake House can
sell their products online by showing products digitally and ability to allow user to create their
own cakes.
2.1 Literature Review
2.1.1 E-Commerce
According to Rouse (2005), Electronic commerce (e-commerce) can be defined as usage of
internet together with web to make business transaction digitally. E-commerce features direct
interaction but it is slightly different than traditional approach. E-commerce store lists all
available information to user, also, by implementation of live chat with sales representative and
displaying similar items creates an interaction between store and user. Operating e-commerce
website cost is very low compare to running brick and mortar store. Also, reach of e-commerce
is considered globally with advertisement and help of search engine. E-commerce is no longer
strange to internet user in Malaysia. On 2010, RM 1.8 billion are spent on e-commerce, by 2014
is it predicted to reach RM 5 billion in Malaysia (Wong, 2012). With this rapid progression,
creation of e-commerce for bakery with customized product will boost and help bakery to make
more turnover annually. Malaysia internet penetration is at 60.7% out of 29.2 million population
on year 2012, which roughly translate into 17.7million online users (InternetWorldStats, 2012).
3. Always Online
Customer can visit and purchase product at any time even if physical shop not
operating. Bakery e-commerce shop are always online and sales transaction can be
conducted at any time. Instead of have to wait for shop operating hours and day,
customers can place order immediately.
2.1.6 Authorization
Authorization can be defined as giving permission for a type of users to perform special
functions assigned to that type (Rouse, 2006). An e-commerce system must have authorization
system to categorize type of users available on system. There are various types of users in an e-
commerce system, commons are customer and administrator. Customer type of user is able to
perform registration, checking product information, using shopping cart and buying products.
Administrator type of user handles the system by adding products, generating reports,
maintaining product data, liaising with sales team and checking system logs. Vinn Cake House
implements authorization function to allow administrator to perform system functions meanwhile
customers are able to checkout products.
2.1.7 Encryption
Encryption plays vital role in securing user data stored on database for e-commerce website.
Storing sensitive user data like password on plaintext will cause major problem if website is
compromised. Encryption can be defined as calculated process of conversion of data into
unreadable format by unauthorized person (Rouse, 2006).
Below are discussions about why the aforementioned programming languages are chosen and
used to build Vinn Cake House website.
2.2.1 PHP
PHP is one of web application development programming language. PHP is used as Vinn Cake
House programming language. The main reason why PHP was selected because of it easiness to
use and code and PHP doesn’t require complex setting it up as it comes as bundle with XAMPP
which will be discussed on tools section.
There are various MVC frameworks available for PHP language. Yii Framework is mainly
selected because of
1. Automatic code generation for create, update and view based on database entity
a. This helped fast creation of database entity to be shown to user without having to
manually input each entity into PHP form.
2. Detailed documentation
a. Yii framework user manual and documentation are very extensive and detailed.
Finding information about certain function is a lot easier due to detailed
documentation (YiiFramework, 2013)
Vinn Cake House is using Twitter Bootstrap as a framework to develop the website user
interface. All user interfaces on Vinn Cake House website are produced using HTML semantic
and CSS classes based on Twitter Bootstrap. By using this, Vinn Cake House are easy to
maintain throughout interfaces without having to change to implement custom CSS classes
which might not work very well on different browsers.
Twitter bootstrap provides reusable components which allow developer to reuse the components
on single page multiple time without any conflict (Cochran, 2012). This helps faster and
consistent approach to build website. Also according to Cochran (2012), Twitter Bootstrap has
been tested multiple times against cross browsers to produce similar output.
2.2.3 JavaScript
JavaScript is one of client-side scripting language. JavaScript are used to make modification to
HTML element on the fly without having to wait for server-side processing (Coyier, 2009).
JavaScript helps form validation to appear at once to user without having to wait for server
processing, this show instantaneous message to user without having to wait output from server.
Vinn Cake House website are using JavaScript to do form validation, inserting content based on
user selection of cake types and so forth.
2.2.3.1 jQuery
jQuery is one of JavaScript library, jQuery simplifies JavaScript coding by providing a lot of
functions to achieve what can be done in JavaScript in simpler and faster way (Dubois, 2010).
jQuery is used extensively on Vinn Cake House to provide form validation, html objects
modification, display of modal popup to user and so forth. Without jQuery, wirting in native
JavaScript is a lot harder and a lot of functions have to be written again which consumes a lot of
time. So by using jQuery, writing complex interaction between HTML have been simplified by
jQuery.
2.2.4 MySQL
MySQL is a database storage system used on website. MySQL allows developer to create
relational database to hold their database schema (Blue Moose, 2013). MySQL is popularly used
with PHP and other programming language to store data and retrieve data. Unlike Microsoft
Access database, MySQL is also open source database which means no license required to install
or run it (Blue Moose, 2013).. PHP will be used to communicate with MySQL to produce user
login system and many functionalities of Vinn Cake House. MySQL is chosen to be database
vendor for Vinn Cake House mainly because of no license required and MySQL available via
XAMPP tool for easier installation and integration.
2.3 Development Tools
2.3.2 XAMPP
XAMPP is a software bundle stack with Apache webserver, MySQL server and PHP
programming language (Thakral, 2011). This comes with windows executable format where
installing XAMPP just take seconds without needing of configuration. Installing Apache,
MySQL and PHP individually would be very troublesome for people without advance
knowledge. XAMPP provides easier path to allow them run together in synergy (Thakral, 2011).
Besides that, XAMPP allow developer to set MySQL and Apache to run as service, which
means, even after restarting computer, the Apache and MySQL runs automatically without
having to manually start again.
Another important reason for using XAMPP is that, phpMyAdmin web application comes with it
where managing and editing database on MySQL is a lot easier and faster without having to
install additional software to manage MySQL. This have obviously speeds up process of
deploying database and attributes for Vinn Cake House.
2.4 Requirements Specification
An analysis will be conducted on existing bakery websites to find out which requirements can be
implemented on Vinn cake house.
1. Kaori Decorative Cakes - http://kaoricake.com.my
2. SK Homemade Cakes - http://www.skhomemadecakes.com
3. Secret Recipe - http://www.secretrecipe.com.my
The above table shows the requirements that I have gathered by visiting and researching their
functions and also by logging in and meddling with their user functions. Based on the summary
of findings, functional requirements for Vinn Cake House can be established which will be
discussed on next section.
2. Security
a. Users’ data are safeguarded and encrypted with encryption method called sha1 to
prevent unauthorized access.
b. Website is protected from known exploit method such as SQL injection, XSS
attacks and Brute Force attack.
3. Usability
a. Website is following current trends and follows web 2.0 guidelines.
b. User interface and User Experience are designed to helps user to understand the
website without needing of training.
2.4.3 Use Case Diagram
Use case diagram can be defined as graphical explanation over interaction with elements, actors
and system (Rouse, 2013). Use case diagram shows system boundary where usually system
refers to system being developed. There are actors on use case diagram where actors responsible
to be owner of use cases. There are relationship between actors and uses cases such as extends,
includes, generalization and association.
Figure 1 shows Use Case Diagram for Vinn Cake House
Based on Use case diagram on figure 4, there are 4 actors in Vinn Cake House, the first actor are
Customer. Customer are main actor on this use case diagram. Administrator in charged with
handling backend of Vinn Cake House by Manage product, Manage Category and Generate
report use cases. Guest refers to Vinn Cake House visitor who haven’t logged in and just surfing
or viewing availability or product. Paypal system actor are actually system actor to handle
payment gateaway information between Vinn Cake House and paypal server.
Dynamic Systems Development Method (DSDM) does not required requirements to be well
constructed but allows for progressive requirement to be added or removed. This can hinder
development time if requirements are constantly changed by client. Also, DSDM requires
constant involvement from client for their input on the processes where Vinn Cake House client
are not readily available.
Based on research conducted and information collected from internet, Prototyping methodology
is selected to develop the online application Vinn Cake House. The main reason to select the
prototyping as project methodology is because of rapid development of prototype. Each features
or modules are break into prototype and prototype is developed for each module rather than
building entire part of Business to Consumer website. Figure 1.0 displaying prototyping model,
Design Phase, Prototype Phase, Evaluation Phase and Review Phase are constantly (Complex
Tester, 2012).
2.6 Product Constraints
There are few constraints and limitations in Vinn Cake House online system. Since Vinn Cake
House online application also part of E-commerce, there is some limitation and constraint of E-
commerce. Below are list of constrains for Vinn Cake House business to customer e-commerce
online system.
Connectivity Issue
In order to use Vinn Cake House, user must have an active internet connection and able to surf
Vinn Cake House website to purchase products. Without an internet connection, user cannot
make use of Vinn Cake House.
Payment Method
User must follow payment option provided by Vinn Cake House. Vinn Cake House accepts
PayPal and Bank transfer as payment options. Vinn Cake House online services do not accept
payment by cheques.
2.7 Conclusion
After thorough and extensive analysis conducted on similar websites, we know the strengths and
advantages can be used to implement into Vinn Cake House website. Based on software to build
in this system, PHP is selected as scripting language and usage of JavaScript and jQuery
facilitate website to be more interactive. Also, by using MySQL as database engine, performance
is guaranteed and support for MySQL can be obtained from normal forums in case any problem
occurred. Requirements divided into functional requirements and non-functional requirements,
requirements identified will facilitate in development and design phase of Vinn Cake House. By
using prototyping methodology, online application for Vinn Cake House can be use to built a
final model of website instead of building the entire website at once.
Chapter 3: Synthesis
All technical and design development are produced on synthesis chapter. Analysis model will
produce class diagram meanwhile design overview will produce entity-relationship diagram.
Also, data dictionary of entity-relationship diagram and use case description describing each use
case stories are produced on synthesis chapter. HCI considerations explains about user interfaces
usability and accessibility. Usability encompasses everything on websites, the way how it looks,
how the navigation formed and how is the color contrast. Meanwhile, accessibility refers to
people with disabilities can understand and interact with Vinn Cake House website.
Implementation section discusses about interesting and critical code of Vinn Cake House website
and also implementation problem and how these problems are solved. Final section of synthesis
chapter are testing, on this section, testing conducted on Vinn Cake House are discussed and
explored with deliverable of test case plan and strategies.
Based on requirement specification, Vinn Cake House requires two types of user which are
Customer and Administrator, Administrator class responsible to check user level and permission
to allow to access administrator panel of Vinn Cake House. Based on {figure} User class has
been generalized into two generalization class which are Customer and Administrator. Vinn
Cake House requires products to be displayed to users, Product class has matching attributes
such as images, description, title, price and so forth. This products requires to be matched with
categories, Category class holds each products to a category. Also, user able to create their
custom cakes, so Custom class handles their custom cake product. So one Category can have
many Product. Furthermore, Vinn Cake House requires administrator to create coupons, there are
two types of coupon. Coupon class generalized into Fixed class and Percentage class, where
fixed coupon reduce price by fixed amount whereas percentage coupon reduce price by
percentage amount.
Customers able to purchase products displayed on Vinn Cake House. Each product can be
purchased with different quantity and different cake text message, so Purchase class has one to
many Order. Order class responsible to handle different Product with different quantity amount
and update Purchase class. User must be able to select payment method from Paypal and bank
transfer. Payment class have been generalized into Paypal class and BankTransfer class to
operate different types of payment method.
Besides that, Vinn Cake House requirement stated that each user is able to have many addresses
associated to them. So, Address class has been generated with default attribute to select one
default address. Also, user who have purchased product must be able to leave reviews and
ratings of product. ProductComment class handles this information with rating of quality, tasty
and value. ProductComment class saves comment and getRatings summary for each particular
cake. Blog class have been created to handle latest news and posting from Vinn Cake House.
3.2 Design Specification
Design specification provides information regarding database design including its data dictionary
and HCI consideration taken while developing Vinn Cake House website.
Product entity stores all information about products such as product title, category, description,
price and type. Type attribute refers to whether the product is added by administrator or custom
product which created by user via do it yourself function. Each product must belongs to a
category. Categories entity can have one or many relationship with products entity. Each product
can have one or many relationship with Product_images, these images will be displayed on
product. Product entity can have reviews and ratings for product, this is connected by one to
many relationship with Product_comments, each ratings and reviews are saved under
Product_comments.
Users can make purchases where Purchases entity stores purchase information such as
shipping_type, payment_type, paid_status and so forth. This attributes responsible to store
purchase information whether the user has paid or not, user selects which shipping method and
payment method. Purchases entity can have one or many Orders, this Orders entity responsible to
store particular product, quantity and price. Price are stored to make sure that previous successful
purchases price doesn’t change if the admin decided to delete product or alter product price.
Requirement stated that each cake can have its own icing message, to store each messages for
cake and its quantity, Order has one or many relationship with Order_Messages. Purchases
required payment information to be stored, Payment entity has type, data, reference no, account
no and so forth attributes. Type attribute refers whether the payment is made via Paypal or bank
transfer. Payment entity and Purchase entity has one to one relationship.
Customers of Vinn cake house can apply coupons to their products. Coupons entity are related to
Purchases by one to one relationship where user can have one coupon applied to their purchase.
3.2.2 Data Dictionary
Data dictionary can be defined as accumulation of objects on a data model (Rouse, 2005). Data
dictionary shows comments and table type including whether the column is null or not. Data
dictionary are derived from database after implementation based on Entity-relationship diagram.
Please refer to Appendix C for data dictionary.
3.3 HCI Considerations
When designing user interfaces for website, there are a lot of considerations to be taken into
context to produce usable and friendly user interface. According to Rouse (2005), usability is a
measure of product designs to meets its objectives and goals.
According to Taylor (2013), responsive website design are important as one size to rule them all
because it enhances user experience and doesn’t cause mobile devices users to use desktop
version size of website. This increases higher chance for more people visit Vinn Cake House due
to availability of website on all available mobile devices size. Besides that, Taylor (2013),
assures that responsive website design is easier to manage than to create each size design for
devices.
Figure 5 displaying website view on desktop
Figure 6 showing website view on mobile devices
Vinn cake house as on iPhone4 simulator. The images are shrinked to fit the medias size and
navigation are hidden and shown as a button at right hand top, once pressed it will dropdown and
display all navigation vertically to fit into screen size of mobile device.
3.3.2 Website Navigation
Website navigation plays important role in presenting website pages and its depth. According to
research conducted by Nielsen (2000), navigation are very useful to determine structure of
website. Without navigation user are lost on where to go or what to do on website. Navigation
should be placed on top where the most visible area to user. Besides that, navigation must be
consistent throughout website in order not to confuse user (Nielsen, 2000). Vinn Cake House
navigation are statically fixed on top with consistent navigation throughout website page. Also,
Vinn Cake House navigation are stays at top even when scrolling down page to make it appear
consistent and persistent to user for quicker and faster navigation.
Figure 5 shows controller of product list, the dataProvider is set to display all product with status
of 1 which means only product added by administrator are shown on products list, custom
product created by user is not shown. In order to make product well aligned, pagination for
products list are set to 16 products, 16 products is selected to show 4 x 4 products on list.
Figure 6 shows all products display with sorting option, the sorting option is made use of Yii
Framework sorting option without having to write the sorting option function which saves time.
To prevent from writing repetitive code, Yii Framework allows itemView to be passed where
each product will make use of codes on {figure}to load each individual item.
Figure 7 shows individual each product to be generated based on the code. This each individual
item are formed together a collection of list. Coding shows that product image are loaded based
on image path saved on database, the image are stored on uploads folder. addToCartButton
function shows the button either add to cart to remove based on cart condition whether the
product have been added or not.
Figure 14 showing base function for latest products and similar products
Latest products and similar products displayed on sidebar when viewing product and product
information are actually using single base function to show different products. This function
accepts two arguments which are condition and limit. The condition can be passed to show
whatever product that have to be displayed. Type is always set to 1 to avoid custom product from
user to being fetched. Model are queried using Product::model() to show all active record of
product based on criteria supplied. This simplifies the process without having to call native PHP
MySQL function with string query.
Figure 16 displaying implementation of image zoom and carousel for multiple photos
Coding on figure 9 is jQuery code to initiate zoom function to all html classes of hasZoom, by
doing this, whenever, there is image with class of hasZoom, the image will be automatically has
zoom function. Figure 10, shows the implementation of zoom function on view product page. If
there is multiple image, images will be shown as carousel instead of single image, this is by
checking the count of productImage, if there is more than 1, then image carousel will be shown.
The second part of the problem was to integrate this custom product into shopping cart. As
custom product cannot be saved into database as normal product, so to overcome it, all products
with different types of cake are prepopulated into database, which means, any cakes user
selectable on do it yourself function are actually already exist on database, this acts as passive
product where it will not show up on normal products listing because of different types.
Figure 19 showing first part of final step on checkout and purchase save to database
function
Shopping cart are used from third party library for Yii Framework, this library are integrated
with Vinn Cake House to allow customers to add products to the shopping cart. First, the data
from previous information are stored on purchase session. This session are read on final
checkout, during final checkout, the selected coupon are calculated based on their type which are
fixed or percentage, then shipping type is evaluated and if it’s 1, RM 20 added to total price
based on their products quantity and amount. There will be validation occur to check whether
address is selected for shipping type of delivery and TA-Q-BIN shipping, meanwhile for self-
pickup option, time of pickup is checked. If these options are selected, the purchase model are
called upon and all data attributes belonging to them are set. Once data is set, the data is saved on
Purchases model and this save will populate database table purchases. Figure 14 will continue
the second part of the above function.
Figure 20 showing final step on checkout and purchase save to database function
Once the main purchase is saved as described on figure 13 explanation, the next step is to save
orders for each products with their quantity, this is done by setting up the orders model attributes,
the purchase id which are already saved on database is used to save all orders, so that the foreign
key links is there to identify which orders belongs to which purchases. Once order are saved,
then order message is called upon to save each quantity of particular products as multiple
messages can be saved for single product with more than 1 quantity. Lastly, Payment model is
called to save payment information, first Payment model attributes are linked to user submitted
form data and then purchase id are set, lastly save function is called to save into database. After
saving function is done, session information about shopping cart, purchase and coupon are
removed. Then a successful purchase message displayed to user and redirects to order page.
3.5 Testing
Testing is a process of checking system or its components with the idea on finding out whether it
completes and finishes the specified requirements or not (Pan, 1999). By running testing
procedures, the results can be categorized as expected, unexpected and differences between the
intended results of development. In a nutshell, testing is finding a problem within system in order
to identify any bugs or errors and the differences within specified requirements (Pan, 1999). The
main objective of doing testing is to make sure objective and requirements of the project are met
without any flaw or errors. For example, login system on Vinn Cake House must not allow
random username and password to login, each username and password must be checked against
database to ensure it is validity and a user cannot access administrator functions. To ensure this,
testing process must be carried out. There will be two testing method conducted to verify and
validate Vinn Cake House functions. One of the method are Black-box testing and another one is
white-box testing. Test case plan will be prepared before conducting test on Vinn Cake House
website.
Besides that, I have fixed the mentioned above bugs by going thru the implementation code and
the testing was redone again to produce test result. This time, the test was passed. Also, updating
cake quantity doesn’t show multiple text input for cake messages, this means even if 4 cakes
added into shopping cart, only message can be left for a single cake, the rest 3 cakes message
couldn’t be added. This have been rectified and messages can be added for all cakes.
By conducting testing a lot of bugs and errors can be identified and fixed in order to create better
working website for Vinn Cake House. Without using black-box and white-box testing, these
bugs couldn’t be found out and will cause error when user tries to buy cakes. Also, if there is
user acceptance testing, with this bugs, the clien’t will not accept the final product.
Chapter 4: Evaluation
Other important features of Vinn Cake House are shopping cart. Vinn cake house shopping cart
allows users to enter multiple cake icing messages despite allowing user to combine custom do it
yourself cake and with normal cake products. For example, setting 2 quantities to a cake, allows
text to be entered twice and the same applied to custom do it yourself product as well.
Besides that, another important feature is to implement Paypal payment gateaway with Vinn
Cake house system. User able to make payment to Vinn Cake House by utilizing Paypal
merchant system, this has been done by implementing Paypal Application Programming
Interface (API) codes. Vinn Cake House website also sends and receives input from Paypal
server. This codes will be saved and status of transaction will be displayed to administrator and
users.
4.1.2 Strengths and Weakness in Meeting Requirements
Even though some requirements are harder to be implemented onto product, this has been done
successfully. All requirements have been carefully planned and analyzed to save time from form
changing them frequently to fit development of e-commerce website. Also, starting the
development early in timeline helps to meeting requirements as plenty of time is available to
study and research each requirements and how to be implemented. One of weakness is that
during development, requirements changes to product requested by supervisor couldn’t be
implemented as fast due to multiple function prototypes is being develop simultaneously.
4.2.4 Conclusion
Developing Vinn Cake House website has been a good experience for me to learn about software
engineering processes and tools. Writing documentation has shown me that documentation are
equal important as development as strong documentation allow better technical understanding of
system. Given second chance, I would put more effort on researching a lot more on TOR level
and produce a more appropriate project planning by taking various problem into consideration as
mentioned before on previous section.
Chapter 5: Conclusion and
Recommendations
5.1 Conclusion
By undertaking this project, I have learned a lot of new interesting things to be added to my
arsenal. This project developing an e-commerce website for Vinn Cake House has helped me a
lot to gain new skills in researching and developing website.
The analysis phase of this project consist of literature review where I had researched about e-
commerce functions and its meaning. I have learned that authorization and authenication are
required for e-commerce website and how it can be implemented on the project I am doing. Also,
I have learned that encryption are standards to encrypt user senstivie data such as payment
information and user password. I too have learned about websites development programming
language such as PHP, HTML, JavaScript and jQuery. By learning this programming language, I
can develop websites now because of newly gained skills. Prototyping methodology have shown
me how to do prototypes for each smaller functions and built the system at once after all
prototypes have been completed instead of doing websites at on single round which consumes a
lot of time.
Synthesis phase of this project have taught me on how to do analysis model, analysis the
requirements into class diagram and also I have learned about design specification such as
entity-relationship diagram and its data dictionary. Futhermore, HCI techniques such as
responsive website design has taught me that using single design, I can cater for multiple devices
viewing.
Besides that, I have done evaluation on project and its processes. Evaluation helped me to
rethink my apporaches on developing the project and my project strength and weakness. Also,
evaluation done on processes helps me to consolidated methods used and on how to improve on
future projects and undertakings.
5.2 Recommendations
There are some requirements haven’t been explored at the stage of requirements specification.
This project can be extended by
Currently, the sales report for administrators are not very extensive and doesn’t show a lot of
information about sales reporting. This are one of shortcoming of this project. Besides that,
another shortcoming of this project that there are no dashboard for administrators of Vinn Cake
House. Dashboard showing latest orders, latest products, latest categories created and new users
all in a glance should be implemented to make administrating job easier.
References and Bibliography
Carnegie Mellon University. 1999. Software Testing. [online] Available at:
https://www.ece.cmu.edu/~koopman/des_s99/sw_testing/ [Accessed: 01 Jun 2013].
CSS-Tricks. 2009. You Know You Should Use JavaScript When... | CSS-Tricks. [online]
Available at: http://css-tricks.com/you-know-you-should-use-javascript-when/ [Accessed: 15 Jun
2013].
TechTarget. 2013. What is use case diagram? - Definition from WhatIs.com. [online] Available
at: http://whatis.techtarget.com/definition/use-case-diagram [Accessed: 15 Jun 2013].
W3.org. 2002. W3C QA - Recommended list of Doctype declarations you can use in your Web
document. [online] Available at: http://www.w3.org/QA/2002/04/valid-dtd-list.html [Accessed:
02 Jun 2013].
1st Web Designer. 2011. Introduction to Responsive Web Design. [online] Available at:
http://www.1stwebdesigner.com/design/introduction-responsive-web-design/ [Accessed: 24 Jun
2013].
Search Engine Watch. 2013. 3 Reasons Why Responsive Web Design is the Best Option For Your
Mobile SEO Strategy. [online] Available at: http://searchenginewatch.com/article/2253965/3-
Reasons-Why-Responsive-Web-Design-is-the-Best-Option-For-Your-Mobile-SEO-Strategy
[Accessed: 24 Jun 2013].
Project title
Development of electronic commerce website with customizable product for bakery shop
Background to Project
Electronic commerce also known as e-commerce can be defined as describes business that is
conducted over the Internet using any of the applications that rely on the Internet (Webopedia,
2013). Traditionally commerce is conducted direct interaction where a customer can walk into
any store and starts interact with salesman and view the products before purchasing it. Customer
could feel the product and try it before purchasing it. E-commerce have evolved the way of
transaction are being made. E-commerce has taken traditional approach and redefined it digitally.
A person can buy anything using internet with credit card or another suitable payment method.
There are thousands stores available that allow customer to purchase products from them.
E-commerce features direct interaction but it is slightly different than traditional approach. E-
commerce store lists all available information to user, also, by implementation of live chat with
sales representative and displaying similar items creates an interaction between store and user.
Operating e-commerce website cost is very low compare to running brick and mortar store. Also,
reach of e-commerce is considered globally with advertisement and help of search engine.
E-commerce is no longer strange to internet user in Malaysia. On 2010, RM 1.8 billion are spent
on e-commerce, by 2014 is it predicted to reach RM 5 billion in Malaysia (Wong, 2012). With
this rapid progression, creation of e-commerce for bakery with customized product will boost
and help bakery to make more turnover annually. Malaysia internet penetration are at 60.7% out
of 29.2 million population on year 2012, which roughly translate into 17.7million online users
(InternetWorldStats, 2012).
There are number of e-commerce solutions available, which most of them are available as open
source web application, for example, OpenCart, PrestaShop, WooCommerce and osCommerce.
These open source platform web applications provide great range of options and functionality to
web developer. These open source e-commerce web application provides generic product
placement, it is not very suitable for bakery type of store as customization of product is needed.
With keeping their implementation and structure design, a much suitable e-commerce web
application will be developed where it can cater for bakery type of e-commerce alongside with
product customization.
Besides standard e-commerce functions, product customization are to allow end user to modify
and make their own cake based on subset option provided by system administrator. This allows
more interactive features and personalization option are included to user. A user can make their
own cake by selecting their own toppings, flavors and shapes. In order to create successful
bakery e-commerce web application, extensive research will be done on HCI concepts
particularly on User Experience (UX) and User Interface (UI) and available current open source
solutions.
Aim of Project
To develop an electronic commerce web application with product customization option using
PHP as programming language and MySQL as database with jQuery as JavaScript library.
Objectives
1. Investigation and Research
a. Investigation and research into web application development.
b. Research into designing e-commerce web application for bakery
c. How to designing user interface as user friendly using HCI concepts
d. Web application security
e. MVC concept development
6. Project Evaluation
a. Evaluate the outcome of project
b. Evaluate the created website
c. Evaluate the documentation prepared
Oracle (2013) MySQL | The Most Popular Open-Source Database | Oracle. [online] Available at:
http://www.oracle.com/us/products/mysql/overview/index.html [Accessed: 14 Mar 2013].
Shea, D. (2013) css Zen Garden: The Beauty in CSS Design. [online] Available at:
http://www.csszengarden.com/ [Accessed: 18 Mar 2013].
Hardware:
Desktop PC (Acts as server and client)
• Chapter 1: Introduction
• Project Background
• Aims
• Objectives
• Product overview
• Project Scope
• Chapter 2: Analysis
• Literature Review
• Technologies Used
• Development Tools
• Requirements Specification
• Chapter 3: Synthesis
• Analysis Model
• Design Specification
• Implementation
• Chapter 4: Evaluation
• Evaluation of Product
• Evaluation of Project Process
Marking scheme
Report
+ Analysis (30 mark):
• Chapter 2
Alternative flows
Preconditions Customer must been logged in and is in active session
Post conditions
Extension points
Alternative flows
Preconditions Must have product on shopping cart
Post conditions Resets shopping cart items and redirect to account status
Extension points 1. Make Payment
2. Generate Invoice
Blogs
Column Type Null De fault Comments
id int(11) No
created date No
created_by int(11) No
title varchar(64) No
image varchar(128) No
description text No
status int(1) No 1
Categories
Column Type Null De fault Comments
id int(11) No
created datetime No
name varchar(32) No
description varchar(400) No
Coupons
Colum n Type Null De fault Com m e nts
id int(11) No
created date No
created_by int(11) No
name varchar(12) No
amount decimal(10,2) No f ixed amount or percentage value
unique int(1) No
type int(1) No type can be f ixed price or discount percentage
status int(1) No
Order_messages
Colum n Type Null De fault Com m e nts
id int(11) No
order_id int(11) No
message varchar(50) No cake message
Orders
Colum n Type Null De fault Com m e nts
id int(11) No
purchase_id int(11) No
product_id int(11) No
quantity int(1) No
price decimal(10,2) No save product price, if there is changes, still original price is saved to order
Payments
Colum n Type Null De fault Com m e nts
id int(11) No
purchase_id int(11) No
name varchar(64) No name of bank, name of paypal account holder
account varchar(64) No account no f or bank, account email f or paypal
ref erence varchar(64) No ref erence no f or banking or paypal ref erence no
date datetime Yes NULL
data text No additional dataset f or paypal
type int(1) No 1 f or paypal and 2 f or bank
Product_comments
Colum n Type Null De fault Com m e nts
id int(11) No
created datetime No
created_by int(11) Yes NULL
modif ied int(11) Yes NULL
modif datetime No
ied_by
product_id int(11) No
comment text No
quality decimal(2,1) No quality rating
value decimal(2,1) No value rating
taste decimal(2,1) No taste rating
Product_images
Colum n Type Null De fault Com m e nts
id int(11) No
product_id int(11) No
path varchar(400) No physical location to image f ile path
Purchases
Colum n Type Null De fault Com m e nts
id int(11) No
created datetime No
created_by int(11) No
address_id int(11) Yes NULL address to ship
coupon_id int(11) Yes NULL
shipping_type int(1) No shipping option (1 = ta-q-bin, 2= f ree delivery, 3 = pickup)
payment_type int(1) No credit card(1), bank transf er(2)
paid_status int(1) No 0 paid(1) or not
payment_date datetime No
ship_status int(1) No 0 shipped(1) or not
ship_date datetime Yes NULL
notes text No
remarks text No
status int(1) No completed/rejected/pending
Users
Colum n Type Null De fault Com m e nts
id int(11) No
username varchar(16) No
realname varchar(32) No
email varchar(32) No
passw ord varchar(128) No
last_login datetime No
level int(1) No buyer(1) and administrator(5)
status int(1) No active/suspended
Appendix D – Test Cases
User functions
ID Description Expected Result Actual Result
1 Website login without any information Please enter username and As expected result
password error shown
2 Website login with wrong username Error message showing As expected result
and password username and/or password
not exist
3 Website login with correct username Redirect to homepage with Redirects to homepage but
and password login successful message no message
4 User login Don’t display administrtor As expected result
option
5 User tries to run administrator function Show unauthorized access As expected result
6 Add product to shopping cart Add products to shopping No product added to
cart and display on sidebar shopping cart
7 Remove product from shopping cart by Delete product from As expected result
clicking Remove shopping cart
8 Update quantity of product on Calculate new subtotal and Subtotal correctly shown
shopping cart shows cake messages for but cake messages still are
new quantity one
9 Add higher quantity than 5 for cake Display error for big As expected result
quantity requires early
order by contact us
(business requirement of
Vinn Cake House)
10 Checkout without selecting shipping Display required shipping Went to next page without
type method without processing validating option
futher
11 Checkout without selecting payment Display required payment As expected result
method method without processing
further
12 Show pickup option if self-pickup Display date/time for user As expected result
shipping option selected to select pickup time
13 Pickup option show datepicker with Dipla datepicker only from Displayed all date
minimum date is 5 days ahead 5 days advances
(processing time)
14 Show address selection if free delivery Display all address created As expected result
selected by user via their addresses
book
15 Free delivery should display Penang Display all address from Displayed all addresses
address only Penng state only that
created by user
16 TA-Q-BIN courier selection shiping Display address selection As expected result
method
17 If payment selected as Paypal Redirect to Paypal website No redirection occur and
with item information no item have been passed
to paypal
18 If payment selected as Bank Transfer Show banking information As expected result
of Vinn Cake House and
bank transfer information
from user
19 Submit order and checkout Save orders information on Doesn’t remove shopping
purchases and remove cart data
shopping cart saved detail
20 User clicks order status Display no order found if As expected result
no purchases have been
made, if purchases been
made, display current data
of orders
21 Order status have three types, Shows order status As expected result
completed, rejected and pending according to category and
display the status data only
22 Print invoice Display order detail and Layout messed and not
printable invoice printable
23 Allow users who had purchased Show ratings and review on As expected result
product to leave ratings and reviews bottom of product page
Administrative functions
ID Description Expected Result Actual Result
23 Administrator login using admin Display administrator menu As expected result
account
24 Adminsitrator add category Display on top menu under As expected result
products and new category
created
25 Administrator add product Display on product menu As expected result
and allow to be added to
shopping cart
26 Administrator add product without Display error saying image Product created without
image must be uploaded image
27 Administrator set textable off When product added to As expected result
shopping, icing message
should not appear and
appropriate message
displayed
28 Administrator can update status of Allow administrator to set As expected result
orders payment date and shipping
status
29 Create blog to display news to users List news on top of blog As expected result
page