Professional Documents
Culture Documents
E-COMMERCE SYSTEM
ANALYSIS, DESIGN
AND DEVELOPMENT
By
Chris Nwaigwe Jr
22 April, 2010
Acknowledgements
In writing this report, I have to thank the management of Divine Foods, especially
Mrs. Rachel Davidson, Mr. T Ladipo and Richard Bola. Despite their busy schedule
they took the time to comprehensively specify the requirements of the Divine Foods
E-commerce system. My gratitude also goes to the other staff/personnel at DFs who
also helped by completing the questionnaire with great pace.
During the period of project research, I was guided and encouraged by my supervisor,
Mike Baskett of Liverpool John Moores University. His guidance and assistance were
great factors that facilitated the completion of this report. He always had a clear idea
about what to do and gave me extremely helpful suggestions when I was in need of
them.
I would like to say thanks to all the academic staff that taught and guided me
throughout my ICT and Multimedia Computing course at Liverpool John Moores
University. I would want to thank my sister, mum, friends and family for supporting
me throughout my studies.
Chris Nwaigwe
April, 2010
Table
of
Contents
Chapter 1 Introduction
...........................................................................................................
8
Subjects to be studied
..........................................................................................................
8
Background
......................................................................................................................
8
Target Audience
..............................................................................................................
9
Problems to be addressed
...............................................................................................
9
Aims, milestones and initial ideas.
.....................................................................................
9
Initial Ideas
....................................................................................................................
10
Software and hardware constraints.
............................................................................
10
An outline plan of action and a time table.
..................................................................
11
Milestones
.......................................................................................................................
11
Conclusion
......................................................................................................................
12
Chapter 2: Literature Review
..............................................................................................
13
Introduction to e-Commerce Systems
..............................................................................
13
Information and communication technology and business
............................................
14
EDI
..................................................................................................................................
15
EFT
..................................................................................................................................
15
Enterprise
resource
planning
(ERP)
........................................................................
15
e-Commerce
Systems:
Case
Studies
.................................................................................
18
ASDA
...............................................................................................................................
18
Tesco
..............................................................................................................................
19
e-Commerce
Success
and
Failure
.................................................................................
20
Requirements
of
an
e-commerce
system
....................................................................
20
e-Commerce
Advantages
and
Disavdantages
.............................................................
21
Advantages
....................................................................................................................
21
Disadvantages
..............................................................................................................
22
E-Commerce
System
Security
........................................................................................
23
Risk
Analysis
................................................................................................................
23
Types
of
e-commerce
system
attack
........................................................................
23
Securing
E-Commerce
Systems
.....................................................................................
25
Legal
and
Ethical
Issues
involved
in
e-Commerce
.....................................................
26
Electronic
Transactions
.............................................................................................
27
Privacy
&
Security
.......................................................................................................
28
Copyright
&
Trademark
.............................................................................................
29
4
Chapter 1 Introduction
Subjects to be studied
e-Commerce System Analysis, Design and Implementation
This study covers the analysis, design and implementation of an e-Commerce system
using common web practices, system analysis and design methodologies. The main
subject areas of interest are database design and web development; these subject areas
encapsulate the different database development strategies, web 2.0 development
methods and standards, e-Commerce systems architecture, design and implementation
as well as other subject areas studied during the school academic year which are
relevant to this project.
Background
The aim of this project is to develop an e-Commerce system which will enable sales
and marketing of products and services online. This system must be reliable, secure,
re-scalable, and user friendly. The stakeholder of the proposed e-Commerce system:
Divine Foods (herein known as DFs) is a local, family run food manufacturing
company based in South East London. Established in 2004, its main purpose is the
production, sales and distribution of traditional African food products.
The company is primarily controlled by Ms Rachel Davidson, she is supported by
two of her daughters and six fulltime employees; they operate from a small corner
shop, handling over 50 orders every week. The company has grown reasonably since
its conception four years ago and is still growing exponentially with customers now
scattered across the UK. This local company now operates both on a Business-toBusiness (B2B) and Business-to-Customer (B2C) basis where other businesses can
make wholesale purchases and private customers can place individual orders.
There are currently twelve fulltime and several part-time employees. There are about
7 major product lines and 67 products offered by DFs, they have several suppliers in
Africa, Europe and North America that provide the raw resources needed to
manufacture their products.
DFs have over 700 customers around UK, carrying out an average of 50 in-store
transactions and 7 telephone orders daily.
8
Target Audience
This system is aimed at the current and potential customers of DFs. Current customers
will be advised and encouraged to use the online ordering system, while online
marketing strategies will be utilised for the acquisition new users and retention of
existing users of the system. The website is intended for users around the UK, though
users from other countries can register and access the website, orders can only be
accepted by management once they are certain products can be delivered without
violating any international trade laws.
Problems to be addressed
DFs is growing continuously, with more customers, products and orders. All records
are currently held on a manual filing system; as a result of this expansion this system
of operation is becoming ineffective. Data retrieval is difficult, sometimes impossible
Customers are usually left waiting for orders due to delays in order processing and
payment arrangements; the consequence being decreased income from sales revenue.
There is a lack of competitive edge as major competitors have already taken
advantage of the online environment, using some sort of e-Business and/or ordering
systems. Since DFs operate a traditional brick and mortar business, they are limited
to certain geographical areas of the UK. This system of operation makes targeting a
larger geographical area and competition with major rivals almost impossible.
This growth has brought on many problems as the workload on the owner and
employees has increased tremendously in the last year. In some cases, customers are
left waiting for their orders due to delays and/or errors stemming from manual data
entry and paper based filing system. In other cases orders have had to be declined as
the company cannot guarantee they can meet these orders; due to shortage in staff and
the costs of hiring more staff.
Aims, milestones and initial ideas.
Given the problems faced by DFs the aim of this project is to develop an e-Commerce
system that will automate several processes and provide around-the-clock availability
of products and services to customers; enabling customers to place orders online,
providing efficient communication channels as well as marketing and advertising
techniques (e.g. Emails, newsletters, banner ads etc). This system will store detailed
9
information of products, customers and orders and also offer more flexible and easier
methods of payment.
The website will provide a form of interaction with users; i.e
i.
By incorporating a recipe blog into the website where users can post or view
recipe posts by other users
ii.
Initial Ideas
The e-Commerce system can be built using either one of the following database
management systems; Microsoft SQL Server, Microsoft Access, Oracle 11g, IBM
DB2 MYSQL along with either of the following web scripting languages: PHP,
ASP.NET, HTML, PEARL.
Whichever one of these methods is used, the website will incorporate a very unique
and professional design that makes it distinct from that of DFs competitors. The
system will offer both the customers and DFs more convenient alternative payment
options other than cash on delivery method. The system will create advertising
avenues by;
i.
creating a mailing list (with user permission), which will email monthly offers
to registered users
ii.
10
for access to LJMU SQL and PHP servers in order to transfer the developed system
by FTP to the hosting server.
Ajax and JavaScript programs will be used to add styles and for validation, i.e.
validation of customer registration details. The specific software for implementation
will be chosen during the Analysis stage of the project and reasons for the chosen
method of implementation will be explained in detail.
An outline plan of action and a time table.
The success of this project will be monitored through a number of ways:
i.
Use of action/project plan and timetables where there will be set monthly
targets and milestones. The action plan will be discussed in details in further
sections of this report.
ii.
iii.
Meetings with Divine Foods: Regular meetings will be held with the
management of DFs to discuss progress in the project and obstacles
encountered.
iv.
Milestones
The key stages of this project include:
i.
ii.
The Analysis of the current system - methods of operation, etc. Analysis of the
proposed system Financial analysis, feasibility studies, possible solutions to
current problems etc.
iii.
iv.
v.
vi.
Testing: Black box testing, white box testing, alpha and beta testing.
vii.
System Evaluation
The action plan will be developed in accordance with the above mentioned
milestones.
The initial plans discussed above are subject to changes after an in-depth interview
with the owner and employees of DFs. Questionnaires will be sent out to ensure the
end-user requirement is thoroughly understood. These interviews and subsequent
analysis will enable both the system designers and the end-users reach a compromise
on the system deliverables if all the desired or sometimes ambiguous user
requirements cannot be met.
Conclusion
This report aims to investigate the practices and issues involved in the development of
e-Commerce systems. It summarizes the authors six months research in e-Commerce
systems analysis, design and implementation methods while developing an eCommerce system for Divine Foods (DFs).
The rest of this report is structured as follows: Firstly, some literature regarding eCommerce systems, e-Commerce legal issues, Systems development life cycle
(SDLC) is reviewed in the next section. Then the System analysis section which
reviews the companys operations and its relation to IT systems, from here the
problems they currently encounter with the current operational methods are
established and the possible solutions to their current limitations are identified. Tasks
to be carried in order to achieve the proposed solution are also described in this
section. The requirement specifications of the proposed system are developed, based
on the employees opinions, captured by interviews and questionnaire.
Furthermore, based on client requirement, a database and a website are designed to
capture and store product, order, customer and other transactional information; enable
users and prospective customers gain uninterrupted access company and product
information
12
Besides B2B and B2C transactions, e-commerce transactions and interactions may
have other types:
Consumer-to-Consumer (C2C) e-commerce is used in organizations that provide
private sales and auctions between individual consumers.
Peer-to-Peer (P2P) e-commerce allows networked peer computers to share data and
processingwith each other directly; can be used in C2C, B2B, and B2C e-commerce.
Government-to-Business (G2B) and Government-to-Consumer (G2C) e-commerce
enable government organizations to provide information, interaction, business, and
services to companies and consumers respectively.
Business-to-Business-to-Consumer (B2B2C) e-commerce organizations provide
some products or services to client businesses that maintain their own customers.
eBay, for example, provides a virtual marketplace to its customers (business and
individuals) that sell products through eBay to their own customers.
Mobile Commerce (M-commerce) makes possible e-commerce transactions and
activities to be conducted in a wireless environment, for example, buying products
and services from a web site on a cell phone.
Location-based Commerce (L-commerce) provides m-commerce transactions
targeted at individuals in specific locations and at specific times, like navigation
systems in cars.
Intra-business e-commerce includes all internal organizational activities that involve
the exchange of goods, services, or information.
Collaborative Commerce (C-commerce) creates an environment where individuals or
groups communicate or collaborate online.
Information and communication technology and business
The use of Information and Communication Technology (IT/ICT) systems is an
integral part of work. It is estimated that 20 million of workers in the UK use some
form of ICT at work. Thus Keeping ICT running and delivering value is crucial to
business health. [5]
14
Enterprise systems are IT/ICT systems that connect the different functions of a
business. Examples of enterprise systems include Enterprise Resource Planning
(ERP), Customer Relationship Management (CRM), Supply Chain Management
(SCM), Product Lifecycle Management (PLM), etc. They are the integration tools that
(if properly implemented) could increase productivity by automating work process,
maintaining a single picture of corporate data and satisfying regulatory compliance
requirements. ICT further facilitates e-Commerce by providing channels for ecommerce architectures such as Electronic data interchange (EDI) and Electronic
Funds transfer (EFT).
EDI
EDI involves the exchange of information from one company to another using a
computer network, such as the Internet. Electronic data interchange involves
computer-to-computer exchanges of invoices, orders, and other business documents
and therefore effects cost savings and improve efficiency because it minimizes the
errors that can occur if the same information has to be typed into computers more than
once. At the same time, EDI provides an easily accessible mechanism for companies
to buy, sell, and trade information. In the B2B market, major corporations have
embraced EDI systems, and in order to reduce costs and improve efficiency and
competitiveness. In the retail market, the use of EDI systems allows the retailer to
implement quick response strategies that can reduce the time they must hold
merchandise in inventory, which can result in substantial cost savings for the retailer.
EFT
16
ii.
Wiki: a webpage or set of web pages that can be easily edited by anyone who
is allowed access. A well-known example is Wikipedia, the free Internet
encyclopedia.
iii.
iv.
17
v.
Social
networking:
professional
and
social
networking
sites
like
facebook.com and myspace. com that facilitate meeting people, finding like
minds, and sharing content.
vi.
RSS: a family of formats which allow users to find out about updates to the
content of RSS-enabled websites, blogs or podcasts without actually having to
go and visit the site. Information from the website (typically, a new storys
title and synopsis, along with the originating websites name) is collected
within a feed (which uses the RSS format) and piped to the user in a process
known as syndication.
ASDA is a part of the Wal-Mart group. ASDA were initially reluctant to invest
heavily into e-Commerce and online food delivery in the UK, but soon realised the
world is increasingly turning into a digital age and application of interactive web
solutions to their business choices were essential to maintaining a competitive edge.
[10] Since adopting e-commerce systems, especially between 2007 and 2008 ASDA
Grocery business grew from 180m to 300m, and Ecommerce and online home
shopping played a big part in this growth. [10] Technology deployed by the company
enabled customers to change the way they shop for example; ASDA took advantage
of emerging e-commerce techniques in improving tesco.com usability issues, this
enabled customers to cut online shopping time from an average of 1 hour to 30
minutes. [11] ASDA have used an online website to provide over 3 million homes
with over 600 general merchandise products. [10]
Ecommerce continues to be the fastest growing area of the ASDA business and the
firm is said it had invested more than 7m on e-commerce operations recently. The
benefits of such investment in e-Commerce became evident when roughly one-third
of UK households instantly had access to its online shopping service as a result. As a
result of ASDAs investment in e-Commerce, customer satisfaction scores have taken
a big leap and customer retention rates have also made big steps forward. [70]
18
Tesco
Tesco is regarded as UKs major online retailer. [11] In what the company called
"another excellent year" for its online food business, Tesco.com profits hit 124
million in the year to 23 February after improved order picking systems led to more
efficiency. Sales jumped 36 percent to 1.6 billion.
Tesco has invested heavily in IT and e-commerce over the years and this has played a
strong role in improving sales, the supply chain, and efficiency across the company.
The company has an in-house designed supply chain application, running on IBM
system p servers based on Unix.
In a year where profits rose 11 percent to 2.8 billion, chief executive Terry Leahy
thanked the breadth of the group and the strength of our business model for
delivering strong results. [12] The company's online sales grew across all its
divisions. Tesco, which serves over two-thirds of the online grocery market,
registered its one millionth web customer, a 20% increase on the previous year.
The company's two-year old warehouse in Croydon, which serves south-east London
customers only and is the first dedicated online hub, became profitable in 2008. The
warehouse handles orders with a value of over 1 million per week. [12]
Sales in non-food business Tesco Direct increased to 180 million from a virtual
standing start. The business, which is part of Tesco's general merchandise division
and has 11,000 items for sale online, had start-up costs and initial operating losses
totalling around 25m this year. Tesco said it is aiming to absorb these losses. [12]
19
The Internet has completely changed the way most businesses operate. E-commerce
uses inter-networked computers to create and transform business relationships. Web
applications provide business solutions that improve the quality of goods and services,
increase the speed of service delivery, and reduce the cost of business operations.
However, many ventures into web application development fail because the systems
are very complex and the user requirements are continuously hanging. Inefficient
communication between the end user and the developer is another contributing factor.
To successfully accomplish the development of a web application, one needs to
visually model the system s architecture. A visual model helps in coherently grasping
the changing user requirements and effectively communicates them to the
development team. Requirements analysis along with abstraction (i.e.,removing
unnecessary details) are critical factors in web application development. [13] It is
easier and more cost effective to correct an error at the requirement or design stage
than at the implementation or maintenance stage. Further, formal (i.e. rigorous)
specification provides unambiguous, precise and correct understanding of the user s
requirements.
There are some requirements that have to be met by any solution that offers to deliver
e-commerce functionalities, some of these which are specific to DFs e-commerce
system are outlined in:
i.
ii.
Scalability. The system will begin offering its service to a small number of
users but must be capable of being upgraded to a serve larger number of users
and process more transactions.
iii.
Robustness. The system should be able to operate and handle various types of
data needed to function properly.
20
iv.
v.
vi.
vii.
Advantages
The potential benefits of e-commerce are enormous. For the consumer Cyberspace
provides an environment of near perfect competition in which prices from many
suppliers can be compared within seconds; sites such as Dealtime.com and
comparthemarket.com enable consumers to find the best online deal for whatever they
want - free of charge. For the elderly, disabled or those simply short of time, goods
may be ordered online and delivered to their doorstep. The majority of e-commerce
models employ a real world shopping metaphor complete with shopping trolley and
checkout for ease of use even by the regular everyday internet users.
Cyberspace means businesses are no longer limited to a specific geographical
location; they have a potential worldwide audience, this has in turn led to value
creation.
As previously mentioned, the main reason for the growth and proliferation of ecommerce (pervasiveness and inexorability) is its ability to create value for an
organization that implemented the e-commerce solutions, for the customers of this
organization, and for its partners and suppliers. Value creation represents the
potential or expected and actual monetary and non-monetary results of utilizing an ecommerce business model. The main monetary results of value creation include
21
revenue enhancement through sales growth and price differentiation, and cost
reduction related to cost of goods sold, operating costs saved as a result of the system,
and asset intensity reduction
Revenue enhancement is the first aspect of value creation. E-commerce develops a
new online channel for selling a companys products and services along with existing
traditional channels. This potentially generates additional sales volume through this
channel, and, at the same time, can facilitate product sales through the existing
channels. For example, this is shown by ASDA and Tescos use of their existing
shops to act as processing centres for online food orders as opposed to developing a
separate warehouse for dealing with online orders. [10,11,12]
The revenue increase may be also associated with the ability to quickly adjust prices
depending on customer segments (for example, repeat customers will pay a higher
price than new customers will or prices of products expiring soon could be reduced
instead of
consumers like to experience them (by trying them on or listening to them) before
buying.
Legislation Dilemma: Electronic transactions separate e-business from traditional
types of businesses. When a transaction takes place, who has jurisdiction? Who has
the authority to apply law over the transaction?
For example, UK e-Commerce legislature requires organisations to comply with the
laws of every other country they provide services to. A little legislation can go a long
way toward helping parties to establish better boundaries to work within. When a
transaction that takes place between two different parties located in two different
countries goes wrong then a number of complex questions arise.
E-commerce system is an electronic system that automates the exchange of goods and
services over the Internet in a secure environment. E-commerce systems security is
more exacting for reasons of necessity to connection of internal and external
processes. Creating an infrastructure to protect a company, its trading partners, and its
customers is crucial if businesses are realized the full potential of the Internet. As
questions can be introduced for example what components are most critical but
vulnerable, what information is confidential and needs to be protected, how will
confidentiality be ensured, what authentication system should be used, what intrusion
detection systems should be installed, who has authority and responsibility for
installing and configuring critical e-business infrastructure, what plans need to be in
place to ensure continuity or minimum disruption of service etc. [14]
Due to the anonymous nature of the internet, E-Commerce raises concerns on issues
such as trust, security and privacy.
Types
of
e-commerce
system
attack
ii.
was not intended. Hacker can gain access to protected data, users accounts,
delete data in tables etc. SQL injection is the name given to a vulnerability
caused by poor input validation in an application. It's a serious vulnerability,
which can lead to a high level of compromise - usually the ability to run any
database query.
iii.
iv.
Weak Login Forms Vulnerability: Most shopping carts have two login pages,
one for customers, and one for merchants. Either of these secured areas may
be accessed by an account with a weak login combination. An attacker can
perform a brute force attack via the login form, using a proxy or a script on a
shared server to mask their identity.
v.
Price Manipulation: this occurs when hackers are able to change prices on the
website. Internet traders sometimes must find a balance between ease-of-use
for the customer, and security restrictions at the point of purchase. Payment
solutions and shopping carts offer various security features, but often they
prove too inflexible and the extra security is not enabled. If a customer does
manage to alter the price of an order, or mark an unpaid order as paid, it might
go undetected by the website software.
vi.
vii.
viii.
Denial of Service Attack: It's hard to control access to a public web server.
Although it's possible to try and control access by IP address, in practice a
24
malicious user can connect via almost unlimited free dial-up accounts,
originating from their country of choice. An e-commerce website may have
performance-intensive pages. Repeated, high-frequency requests to such pages
may cause such a strain on the web server as to severely disrupt normal
service for other users. This is a Denial of Service (DDOS) attack.
ix.
Spam Relaying and Harvesting: Contact forms sometimes contain the email
address of the recipient for the email, and this can be modified in the browser,
in order to relay spam or anonymous mail, or to "bomb" mailboxes by
overloading their capacity.
x.
xi.
xii.
i.
ii.
Despite these threats posed to e-Commerce applications, there are several methods
and technologies to help server, network administrators and web developers to protect
systems against any of the attacks mentioned above.
Securing
E-Commerce
Systems
25
Given the possible threats to e-Commerce system, there have been recent security
developments to combat and eradicate such threats. Some of the protection measures
include and are not limited to:
i.
ii.
iii.
iv.
Some federal, state and territory governments encourage the adoption of electronic
commerce by enacting and enabling legalisation. In the UK many bills and acts have
been passed to resolve legal issues and make electronic transaction more
authenticated, such as The Electronic Commerce (EC Directive) Regulations 2002
[19]. The Directive was introduced to clarify and harmonise the rules of on-line
business throughout Europe with the aim of boosting consumer confidence. The EC
Directive enables contractual dealings, such as offers, acceptances and invitations, to
be conducted electronically, also allowing people to use an electronic signature to
satisfy any legal requirement.
This directive has as expected boosted electronic commerce as an effective tool for
businesses to increase their efficiency. This has reduced administrative duties, storage
27
and operational costs for businesses. In McGinty's words," This is why it is crucial
that we ensure the legal infrastructure around cyberspace is beyond doubt" [18].
Under the e-commerce directive, Organisations have the responsibility to deal with
some of the legal issues such as how to form contracts, abide by consumer protection
laws, create privacy policies and protect databases. At the moment, there are no
comprehensive set of laws or regulations that exist on an international level electronic
commerce. [19] This is mainly due to the difficulty in establishing uniform worldwide
laws for e-commerce, as different countries have different legislation; what is
considered illegal in UK might not be so in India hence the need for some legislation
within individual countries.
Since this system development is an E-commerce system which involves sales of
products via the internet, the website must ensure its in compliance with the EC
Directive. Because the trader and customer are not face to face at any point, with
business conducted remotely, regardless of location, the website must ensure that
online contracts can be completed and are legally binding. The e-commerce website
Privacy
&
Security
28
The e-commerce system must also ensure the safety and security of a customer's
personal information. The e-commerce system should provide the customers with
information regarding the use of their personal information, and incorporate security
procedures to limit access to customer information by unauthorised parties. Privacy
policies and procedures should be clearly explained to customers. Customer data must
be collected, stored and manipulated in compliance with the Data Protection Act 1998
[21]
Copyright
&
Trademark
Conforming
to
e-Commerce
Legal
and
Ethical
Issues
The E-commerce Regulations identify specific information about businesses that must
be provided to recipients of online services, and set down guidelines regarding
advertising and promotions. All these information must be on the website
Contracting
online
Since all the contracts are online by electronic means, customers should be able to
print and store a copy of the terms and conditions.
All technical steps required to conclude the contract, e.g. ethical methods such as
'click this box', opt in or out, organisations terms and conditions, etc.
29
The website must be able to conclude contracts online and customers must be
informed whether an order can be met or not. Customers should be able to go back
and correct any mistakes made in their order before the order is placed.
Once a customer has placed an order electronically, their orders must be
acknowledged with a receipt.
Advertising
Or the system concerned advertising is a major form of revenue, therefore there are
advertising regulations (usually set by OFCOM in the UK) which will affect the
system in design. Commercial adverts must clearly identify the person on whose
behalf the marketing communication is sent, together with any promotional offer.
The Regulations also cover "unsolicited commercial communications", commonly
referred to as spam. They require that these communications are identifiable from the
subject line of the email, without the need to read the rest of the message. SMS
messages are not covered for these
Compliance
with
the
Data
protection
Act
The proposed system will allow users register and log-on to the website. The personal
information collected during registration must be secure and in compliance with the
Data protection Act of 1998. i.e. Personal data held must be accurate and not held for
longer than its required.
Distance
Selling
Regulations
The Distance Selling Regulations are designed to protect customers who are not
physically present with the seller at the time of purchase. They cover purchases made
via email and the internet, together with telephone and mail order.
Under the Regulations, customers of the proposed system will have the right to have:
details in writing about the supplier and the terms of the transaction
Consumers will have a cooling-off period of seven working days in which to cancel
the contract, starting from when the goods are received, without having to give a
reason. If no details of the cooling-off period have been given by the supplier to the
consumer, it is extended to three months.
The right to withdraw can be exercised by the consumer even after the goods have
been delivered, or the services have been provided. The consumer is entitled to
receive a full refund for a cancelled contract within 30 days.
Display the business' name, geographic address and other contact details
including your email address
Display details of any publicly available register in which you are entered,
together with your registration number or equivalent
Display details of any professional body with which you are registered
All prices must be clear and indicate whether they include tax and delivery costs. The
website must alo have a 'Legal info' page of the site where the T&Cs of the company
can be found.
Internet
Marketing
Helps in developing a direct contact between the consumer and business house and
also allows the business to advertise and sell their products and services in an ease
way. The B2C campaigns employ strategies and tactics such as targeted offers and
31
coupons; limited time deals, discounts, and/or vouchers to mobilize target markets to
buy, both online and offline. The system will recognize the importance of customer
loyalty and combine merchandising and education to keep customers coming back
using newsletters, web 2.0 techniques in the form of recipe blogs .
Branding
Giving the proposed system a unique identity amidst all the competition in the market
is tough. Heres where branding can help; personifying the business by leveraging on
brand awareness to build stronger relationships with customers. Ideally, the brand
should influence every aspect of the business operation because the successful brands
of today will be those capable of producing customer-centric business models
consistently.
32
33
Research
methodology
A research methodology is needed for requirements gathering on the proposed
system. In order to fully understand the end-user requirements, which will be the basis
of the system design and implementation; a suitable research methodology and system
analysis method must be employed. This section of the report will critically evaluate
the current research methods in use and select the best method most suited for this
project. There are three basic research paradigms -- positivism (quantitative, scientific
approach), interpretivism, and critical science [23]
Qualitative
Research
ii.
iii.
collects evidence
iv.
v.
34
Interactive interviewing
Written descriptions by participants
Observation
Analysis begins when the data is first collected and is used to guide decisions related
to further data collection.
Quantitative research
This type of research typically includes customer surveys and questionnaires. These
can be conducted face-to-face with a clipboard and pen, over the telephone, via post
or email, online. Survey questions are usually carefully considered so that the results
will provide meaningful data (which is not usually the case).
Features of Qualitative and Quantitative research methodologies
James Neil, [26] discussed the features and comparisons of both methods of research
as shown below;
Qualitative
Quantitative
The aim is to classify features, count
and
construct
statistical
Researcher
knows
clearly
in
of research projects.
The design emerges as the study All aspects of the study are carefully
unfolds.
or
equipment
to
statistics.
individuals Objective
seeks
precise
e.g.,
uses
surveys,
questionnaires etc.
to
become Researcher
tends
separated
to
remain
from
the
subject matter.
Critical science, or the critical approach, explores the social world, critiques it, and
seeks to empower the individual to overcome problems in the social world. Critical
science enables people to understand how society functions and methods by which
unsatisfactory aspects can be changed. [27]
36
37
The methods that will be employed in the requirements gathering for DFs system
include;
i.
ii.
iii.
38
SPIRAL LIFECYCLE
The spiral model starts with an initial pass through a standard waterfall lifecycle,
using a subset of the total requirements to develop a robust prototype. After an
evaluation period, the cycle is initiated again, adding new functionality and releasing
the next prototype. This process continues, with the prototype becoming larger and
larger with each iteration. Hence, the spiral.
The theory is that the set of requirements is hierarchical in nature, with additional
functionality building on the first efforts. This is a sound practice for systems where
the entire problem is well defined from the start, such as modeling and simulating
39
software. Business-oriented database projects do not enjoy this advantage. Most of the
functions in a database solution are essentially
independent of one another, although they may make use of common data. As a
result, the prototype suffers from the same flaws as the prototyping lifecycle
described below. For this reason, the spiral lifecycle is not considered for this
database project.
Spiral Model Strengths
Provides early indication of insurmountable risks, without much cost. Users see the
system early because of rapid prototyping tools, critical high-risk functions are
developed first. The design does not have to be perfect, users can be closely tied to all
lifecycle steps early and frequent feedback from users. cumulative costs assessed
frequently
Spiral Model Weaknesses
Time spent for evaluating risks too large for small or low-risk Projects. Time spent
planning, resetting objectives, doing risk analysis and prototyping may be excessive.
The model is complex, risk assessment expertise is required, spiral may continue
indefinitely. Developers must be reassigned during non-development phase activities.
May be hard to define objective, verifiable milestones that indicate readiness to
proceed through the next iteration
RAPID
APPLICATION
DEVELOPMENT
(RAD)
/
PROTOTYPING
LIFECYCLE
RAD is, in essence, the try before you buy approach to software development. The
theory is that end users can produce better feedback when examining a live system, as
opposed to working strictly with documentation. RAD-based development cycles
have resulted in a lower level of rejection when the application is placed into
production, but this success most often comes at the expense of a dramatic overruns in
project costs and schedule. The RAD approach was made possible with significant
advances in software development environments to allow rapid generation and change
of screens and other user interface features. The end user is allowed to work with the
screens online, as if in a production environment. This leaves little to the imagination,
and a significant number of errors are caught using this process. For this reason a pure
40
RAD approach will not be used on this project, but instead a blend limited
prototyping will me mixed with requirements and design development during a
conventional waterfall lifecycle (an example will be the web site story board which
will be modelled in PowerPoint).
RAD Strengths
Reduced cycle time and improved productivity with fewer people means lower costs.
Time-box approach mitigates cost and schedule risk. Customer involved throughout
the complete cycle minimizes risk of not achieving customer satisfaction and business
needs. Focus moves from documentation to code (WYSIWYG). Uses modelling
concepts to capture information about business, data, and processes.
RAD Weaknesses
Accelerated development process must give quick responses to the user. Risk of never
achieving closure, hard to use with legacy systems. Requires a system that can be
modularized, developers and customers must be committed to rapid-fire activities in
an abbreviated time frame.
V-Shaped SDLC
A variant of the Waterfall that emphasizes the verification and validation of the
product. Testing of the product is planned in parallel with a corresponding phase of
development.
41
V-Shaped Strengths
Emphasize planning for verification and validation of the product in early stages of
product development. Each deliverable must be testable, project management can
track progress by milestones. Easy to use
V-Shaped Weaknesses
Does not easily handle concurrent events, does not handle iterations or phases, does
not easily handle dynamic changes in requirements, does not contain risk analysis
activities
Chosen
SDLC
Method:
The
Waterfall
Model
The oldest model, that was originally regarded as "the Systems Development Life
Cycle" is the waterfall model; a sequence of stages in which the output of each stage
becomes the input for the next.
These stages generally follow the same basic steps but many different waterfall
methodologies give the steps different names and the numbers of steps seem to vary
depending on the system involved. The image below is the classic Waterfall model
methodology which will be used in the development of Divine Foods System; the
image illustrates the various phases involved in development life cycle.
42
Waterfall Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or Schedule
The reasons for the selection of the waterfall SDLC is justified in this section. The
work breakdown structure of proposed system fits perfectly into this design method,
this is elaborated below.
Feasibility
A feasibility study will be carried out to determine if the project can be undertaken
and delivered, this study also evaluates the methods of implementation to ensure there
are adequate resources to develop the Divine Foods System. This study determines if
the project gets the go-ahead from the stakeholders. If the project is to proceed, the
feasibility study will produce a project plan for the future stages of development.
Requirement Analysis and Design
The goal of systems analysis is to gather relevant information on the proposed system,
users products and services and determine the problem(s) with the current operational
methods and attempt to fix the highlighted problems. This step involves breaking
down the system in different pieces and using diagrams such as DFDs and Use-case
diagrams to analyze the situation, analyzing project goals, breaking down what needs
to be created and attempting to engage users so that definite requirements can be
defined.
43
Analysis gathers the requirements for the system. This stage includes a detailed study
of the business needs of the organization. Options for changing the business process
may be considered. Design focuses on high level design like, what programs are
needed and how are they going to interact, low-level design (how the individual
programs are going to work), interface design (what are the interfaces going to look
like) and data design (what data will be required). During these phases, the software's
overall structure is defined. Analysis and Design are very crucial in the whole
development cycle. Much care is taken during this phase. The logical system of the
product is developed in this phase.
In systems design section of DFs e-commerce system, and operations are described in
detail, including screen layouts, process diagrams (UML activity diagrams, UML
class diagram, DFD, ERD) and other documentation.
The design stage takes as its initial input the requirements identified in the approved
requirements document. For each requirement, a set of one or more design elements
will be produced as a result of interviews, workshops, and/or prototype efforts.
Design elements describe the desired software features in detail, and generally include
functional hierarchy diagrams, screen layout diagrams, tables of business rules,
business process diagrams, pseudocode, and a complete entity-relationship diagram
with a full data dictionary. These design elements are intended to describe the
software in sufficient detail that skilled programmers may develop the software with
minimal additional input.
Implementation
In this phase the designs are translated into code. The system will be developed
according to the pre-determined functions and designs. The database will be
developed and website created using different high level programming languages like
MySQL, PHP.
Testing
In this phase the system is tested. This stage of the development life cycle will run
almost concurrently with the system implementation. Components of the system (i.e
database and website links) will be tested as they are created. At the end of the
44
project, the overall DFs system will be tested to ensure that interfaces between
modules work (integration testing), the system works on the intended platform and
with the expected volume of data (volume testing) and that the system does what the
user requires (acceptance/beta testing).
Maintenance
Inevitably the system will need maintenance. Software will definitely undergo change
once it is delivered to the customer. There are many reasons for the change. Change
could happen because of some unexpected input values into the system. A good ecommerce system should be able to accommodate changes that could happen during
the post implementation period. The possible further development options will be
discussed in the Evaluation section of this report.
45
46
Divine Foods is a family run food manufacturing company based in South East
London. It was established as a petty African food producer five years ago by Mrs.
Rachel Davidson who acts as the manager; all processes and operations were carried
out in a London residential area. The main purpose of this organisation is the
production, sales and distribution of traditional African foods although a few other
categories of products have been added to their range.
Over the years the company has expanded reasonably and is still growing
exponentially with customers now scattered across the UK; the acquisition of several
new customers meant the business needed its own premises. As a result, a commercial
property was purchased two years ago where all food production, cash transactions,
administrative duties and all other operations are accomplished. The manager
currently has six fulltime and several part-time employees who assist with the day to
day running of the business; she is also assisted in food preparation by two of her
daughters.
This local company now operates both on a Business-to-Business (B2B) and
Business-to-Customer (B2C) basis where other businesses can make wholesale
purchases and private customers can place individual orders.
47
DFs operate in an agile market characterized by high variety and low volume
production systems. Their customers orders vary and it is understood that no one
order is ever the same, this implies that their customers require a high level of
customization and flexibility. In order keep up with customer requests, DFs has to
react with speed and agility to customer order demands.
After a several formal interviews with relevant personnel (both key users and other
administrative staff) it was observed that this company operates on an entirely manual
filed-based system; this is a very strenuous method of operation as records of
transactions with suppliers, product information, customer and order details are
manually stored, making retrieval of information very difficult. There are no
automatic processes or procedures, no ordering, e-commerce, accounting or payroll
system. Poor computer skills amongst staff, opposition to change and disinclination to
learn new procedures were cited as the main reasons why the management has been
reluctant to change or upgrade the current system. Current staffs have basic
understanding of the internet and some Microsoft office packages (e.g. Ms Word).
Divine Foods have several suppliers in Africa, Europe and America who provide the
resources needed for food manufacturing. Orders are placed on monthly basis
although the frequency of order changes depending on customer demand. When
orders are delivered, product manufacturing (or simply food production) is carried out
on large scale basis according their existing product stock-list. All products are
manufactured from raw materials purchased from suppliers in compliance with the
Food Standards Agency (FSA) standards which include the display of allergy and
nutritional contents on product packaging. [31] Manufactured products are preserved
for sale to customers. Product information including date of manufacture, use by date,
quantity in stock, ingredients, recommended serving methods, etc are manually
entered and stored in the product folder for future reference.
Orders are taken from customers over the phone or in store. Orders made in-stored are
picked up by customers, sometimes instantly if the orders can be met. Telephone
orders are becoming more popular with customers who order in bulk as transportation
of large quantities of products purchased in-store can be inconvenient since most
48
products are perishable. When telephone orders are received an employee refers to the
product folder for information on the ordered product; if the product(s) are in stock
and the order can be met, then the customer is contacted and a delivery date is agreed
upon. The order details which include delivery address, customer name, product
details, delivery date etc are then entered and stored in the order folder. Payment is
taken by the deliveryman on delivery, then an invoice and/or receipt is issued.
Once an individual or a business places an order they are given the option of being
registered as a customer where details such as customer name, address, telephone
number, etc are collected and stored in the customer folder. Registered customers who
regularly place orders are offered discounts and several incentives on sometimes
monthly basis.
49
Problem identification
The incessant growth of Divine Foods has brought on many problems; particularly
since they operate on a manual file-based system. The workloads on the owner and
employees have increased tremendously in the last year; customers are usually left
waiting for orders due to delays in order processing and payment arrangements.
Sometimes orders have to be declined as the company cannot guarantee they can meet
these orders, with administrative duties taking the most of staff time. The manual data
entry method has in the past, resulted in drastic loss in revenue from product sale; in
some errors arising from manual data entry have led to delays and cancellation of
orders as DFs could either not retrieve the customer and/or order information. In other
cases orders have had to be declined as the company cannot guarantee they can meet
these orders; due to the quantity of orders to be processed, shortage of staff and the
costs of hiring more staff.
A lot of employee time that should be spent on product optimisation or marketing
strategies are usually exerted on administrative duties; most times employees
physically go through the store-room or through incomprehensible product stock
folders to check for available product stock, due to the absence of a system to monitor
product inventory levels.
Since all records are currently held on a manual filing system, processes are carried
out manually i.e. orders are placed on the phone, order details manually stored and
payment being received by the delivery man when orders are delivered. This system
of operation makes targeting a larger geographical area and competition with major
rivals almost impossible. When large amounts of orders are received it usually creates
a back-log of order details to be entered into the filing system taking several weeks
and numerous staff time to resolve; thus costing the management lots of money in
employee salaries and overtime.
Divine Foods do not carry out credit/debit card transactions as this requires a
merchant account with a bank; therefore all orders made on the phone are paid for on
delivery. Not only does this create a geographic restriction on trade as they can only
accept orders for delivery in London, it also leads to losses of income/revenue as
targeting a wider geographical area will lead to more customers therefore more
50
51
Given the problems faced by DFs the aim of this project is to assist DFs in reviewing
their current business methods, designing and developing an e-Commerce system that
will automate several processes and provide around-the-clock availability of products
and services to customers; enabling customers to place orders online, providing
efficient communication channels as well as marketing and advertising techniques
(e.g. Emails, newsletters, banner ads etc). This system will include a database
component that will store detailed information of products, customers and orders and
also offer more flexible and easier methods of payment.
Project
objectives
of
E-commerce
On-line
ordering
system
i.
ii.
Customers are very sceptical about sharing their personal details with the
company, so the system must be trustworthy. The system should offer secure
connections to enable encryption and decryption of sensitive information (e.g.
customer passwords, credit card details) using Secure Lockets Layer (SSL).
iii.
iv.
v.
vi.
vii.
53
End-User
Requirements
From the analysis of problems faced by DFs previous sections as the results from Q1Q10 on the questionnaire (see appendix C and D) an end-user requirement was drawn
up with solutions to address and resolve the current limitations of DFs. The
management of Divine foods was initially asked for an end-user requirement, the user
requirement specified was faltering; though most of these requirements support the
broad organisation needs the others were ill defined wish list of system deliverables.
This is mainly due to their poor knowledge of IT and E-commerce systems.
Divine Foods require an E-Commerce system in form of a website that will automate
several processes; enabling customers to place orders online and provide efficient
communication, marketing and advertising techniques (e.g. Emails, newsletters,
banner ads etc). This system should hold detailed information of products, customers
and orders and also offer more flexible and alternative methods of payment. The
system should be secure and available 24 hours a day. The system should be easy to
use and in-house staff should be able to update the system following adequate
training. The system should comply with all legalities, DPA 1998, EU E-Commerce
Directive and all other relevant legislations.
The system should include a robust and secure database management system that can
hold and manipulate data. This system will store information on customers, products
and orders. The system should contain automatic procedures to handle day-to-day
necessary transactions e.g. calculation of total amount due on orders. The system
should automatically generate order acknowledgement letters and invoices for
customers as soon as an order is received. Once an order has been marked for delivery
indicating the customer requirements can be met, the system should automatically
generate and Email order acceptance letters as well as delivery information and
receipt (where necessary) as required by the EU Directive on E-comm. 1998/9
54
The system should allow customers to register and set up personal accounts online.
Customers should be able to create profiles, communicate with fellow customers, save
favourite products and recipes, post reviews on products and also upload product
recipes.
DFs require a system that can keep track of and easily reference previous orders or
invoices, monitor product sales rates (i.e the most purchased products). The total
number of products ordered by each customer should be recorded as this is required
for promotion purposes.
DFs require a professionally designed website product page. The product page needs
to be designed as a marketing tool. Since the products are the major items on offer,
the system should portray these products in an enticing fashion to customers.
Training procedure and help: if possible the potential new system should have an in
built user guide to offer instructions on how to use the system can be manipulated (i.e
entering new product details.
User friendly/simplicity: the new system should be easy and simple to use and the
interfaces should be user intuitive and user friendly, without long tiring steps to
perform a single activity, this could help reduce errors and user frustration that occur
as a result of system complexity.
Affordability/functionality: from the interviews and questionnaire, it is noted that
majority of DFs staff are of the opinion that cost is an important factor to consider in
selecting a new system, however a higher percentage indicate that functionality and
user friendliness are extremely important considerations in selecting a system, thus
the new system must be able to perform (in terms of scope and coverage of work
required by DFs) but still be within the a reasonable budget.
Better security rights: the new system must allow read and write only access rights to
the relevant personnel, this reduces the chances of unauthorised access to data; thus
regulating usage.
Compatibility: Since DFs do not have any computer hardware or infrastructure they
require a system that can be deployed over any operating system or computer
hardware they decide to purchase for use with the proposed system. Implementation
55
programs should be easily available and affordable. Open source software will be
used on the server to ensure the final system is not bound to a particular server-based
operating system.
It is imperative that the most modern web browser technologies are used to create the
site. This includes such strategies as using div tags and cascading style sheets to lay
out the pages, adding Ajax-style programming on layer presentations to make them
interactive and embedding Flash presentations to display animations, pictures and rich
media.
56
Direct Benefits
i.
ii.
iii.
Indirect Benefits
i.
ii.
iii.
User Friendliness and ease of use due to 24 hours availability of the system
Intangible benefits
i.
57
Certain system analysis and design methodologies exits to enable system designers
really understand and model system requirements and data flows. These
methodologies and briefly reviewed below. Some of them will be applied to the DFs
e-commerce system.
SSADM
58
for
an
Entity-Relationship
Model)
and
the
associated
59
Data flow diagrams (DFDs) will be used to describe how the DFs e-commerce system
transforms information. A Data Flow Diagram (DFD) is used to show the
relationships among the business processes within an organization to external
systems, external organizations, customers, other business processes. [33]
DFDs define how information is processed and stored and identify how the
information flows through the processes. [34] The DFs data flow diagram will enable
understanding of:
i.
The data processes involved in the system, where these processes pass
through, where they come from and where they go.
ii.
The inputs: what happens to the data once it enters the system?
iii.
iv.
Any delays occurring between the inputs and outputs (i.e., identifying the need
for data stores).
ii.
iii.
iv.
v.
Process represents a task in the system that processes data or performs some
action based on the data.
vi.
Data Store represents a repository where data is saved or retrieved, but not
changed. Examples of data stores include a database.
vii.
External Interactor represents an entity that exists outside the system being
modelled and which interacts with the system at an entry point: it is either the
60
source or destination of data. In this case, a human using the DFs e-commerce
system is the external entity.
61
Chapter
4:
Design
62
The site should present a simple interface that represents DFs as a reputable, modern
and exquisite provider of food products. DFs stressed the need for website's visual
design to reflect its branding, including the logo, colours, common images, and other
graphical elements that are used in existing marketing materials.
The home page should lead users to site's most important features; Latest products
and product offers should be accessible from here to capture attention. Product details
such as price, quantity in stock etc should be easy to change without having to directly
edit the site's web pages.
Users should be able to create profiles and user accounts; the website should include a
My Account page where customers can find order history, edit account details, reset
password, etc. Users should be allowed to post recipes and comments on the recipe
blog, any website user should be able to review products. Users should be given an
option to sign up for newsletter upon registration; this being a customer retention
strategy to keep users informed of special offers and newly added products.
The website should be built to support all modern web browsers and operating
systems to reach the broadest possible audience. The site should be functionally
identical and, as closely as possible, visually identical on all web browsers and
operating systems identified as being in common use by the target audience.
All server software should be available on multiple server platforms in the event of
later migration to another server operating system.
The functional requirements document was shared and reviewed with the stakeholder
who was satisfied.
63
A data entry form that allows the website visitor to search for products
A graphical display of three most recent products, where data for the media is stored
in a server-side database.
The site will be hosted initially on a local server with the Apple Mac OSX operating
system using Apache and PHP, but should be portable to Windows and other operating
systems that are compatible with Apache and PHP. The final website will be hosted on
the university cmsproj folder. All server software should be available on multiple server
platforms in the event of later migration to another server operating system. The site will
be built using PHP as the application server and all web pages will be built as PHP files.
A common look and feel will be achieved with the use of PHP-based header and footer
files.
The final website comprises of the following pages;
The Home page: with navigational links to all other pages and a data entry form that
allows visitors to search for products directly from here.
The Products Page: which dynamically displays products and their details such as
name and price.
The About Us page: which provides website visitors with information on DFs
The More Services page: which displays all the services covered by DFs.
The Recipe Blog page: which allows the DFs customers to post and review product
recipes.
The Special Offers Page: This page dynamically displays all the DFs products on
offer.
64
65
In this section of this report, we examine review and select a database design method
for the development of DFs e-Commerce system.
Object
Oriented
Databases.
database
systems.
For
example,
the
Computer
Integrated
require the application developer to force an information model into tables where
relationships between entities are defined by values.
Features of OODB
Object-Oriented DBMS (OODBMS) are DBMS which are based on an ObjectOriented Data Model. Such data models are often inspired by OO programming
languages, such as SmallTalk or C++. OODBMS are capable of storing complex
objects, I.e., objects that are composed of other objects, and/or multi-valued attributes.
The great advantage of OODBMS is that it is not necessary to transform the UML
classes into a logical schema (e.g.,relational). Their main disadvantage is that the
technology is immature and they are only used in niche applications, such as CAD.
Greater support for complex objects; No query language is required you just retrieve
individual objects like some giant key/value store.
No relational referential integrity: though you may have one object contain a
reference to another object.
Draw Backs
A key difference between relational databases and OO databases is the way in which
relationships are handled. In OO databases, the relationships are represented explicitly
with OIDs, which improves the data access performance. In relational databases,
relationships among tuples are specified by attributes having the same domain.
The main drawback of OODBMSs has been poor performance. Unlike RDBMSs,
query optimization for OODBMs is highly complex. OODBMSs also suffer from
problems of scalability, and are unable to support large-scale systems.
Relational
DBMS
(RDBMS)
The relational model was formally introduced by Dr. E. F. Codd in 1970 [2] and has
evolved since then, through a series of writings and later through implementations by
IBM and others. A relational database is composed of many relations in the form of
two-dimensional tables of rows and columns containing related tuples. Organizing
data into tables, the form in which data is presented to the user and the programmer, is
known as the logical view of the database. The stored data on a computer disk system
67
is called the internal view. The rows (tuples) are called records and the columns
(fields in the record) are called attributes. Each column has a data type (i.e., int, float,
date). There are various restrictions on the data that can be stored in a relational
database. These are called constraints. The constraints are domain constraints, key
constraints, entity integrity constraints, and referential integrity constraints. These
constraints ensure that there are no ambiguous tuples in the database.
RDBMSs use Structured Query Language (SQL, currently SQL2) as the data
definition language (DDL) and the data manipulation language (DML). SQL includes
statements for data definition, modification, querying and constraint specification.
The types of queries vary from simple single-table queries to complicated multi-table
queries involving joins, nesting, set union/differences, and others. All processing is
based on values in fields of records.
The main disadvantages of Relational Databases include their inability to handle
application areas like spatial databases objects e.g database applications involving
images, or special types databases (e.g. involving complex numbers, arrays, etc.) and
other applications that involve complex interrelationships of data. The SQL standard
enables users to easily migrate their database applications between database systems.
In addition, users can access data stored in two or more RDBMSs without changing
the database sub-language (SQL). The other merits include rapid data access and large
storage capacity [3].
68
The main objective of ORDBMS design was to achieve the benefits of both the
relational and the object models such as scalability and support for rich data types.
ORDBMSs employ a data model that attempts to incorporate OO features into
RDBMS. All database information is stored in tables, but some of the tabular entries
may have richer data structure, termed abstract data types (ADTs). The ORDBMS
has the relational model in it because the data is stored in the form of tables having
rows and columns and SQL is used as the query language and the result of a query is
also table or tuples (rows). The characteristics of ORDBMSs include;
Inheritance, and
ORDBMSs allow users to define data types, functions and operators. As a result, the
functionality of the ORDBMSs increases along with their performance.
An example schema of a product relation which ORDBMS supports is:
Product (productID, name, description, address, picture)
The extra attribute "picture" is not present in the traditional EMPLOYEE type of
relation of RDBMS. The datatype of "picture" is "image".
Object-relational extensions to relational DBMSs capture much of the advantages of
OODB, yet retain the relation as the fundamental abstraction. Object-Relational data
modeling supports some object-oriented concepts, while still supporting some
relational concepts:
Inheritance -- one table can have an IS-A relationship with another table.
Likewise custom data types support inheritance.
Referential integrity.
RDBMS
ODBMS
ORDBMS
Defining standard
SQL2
ODMG-2.0
program object to
Limited
the database
OK
Usage
support;
for
Easy to use
abstract datatypes
wide
variety of datatypes
and
data
complex
with
inter-
relationships
Performance
Product maturity
Very
good Relatively
performance
Abstract
datatypes
and
complex
relationships
performance
This concept is few
years old and so
relatively mature
Supports
very well
Still in development
stage so immature.
is
being
70
SQL
SQL,
but
additional
Complex incorporated in it
like
relatively types
simple
of
complex
query applications,
less coding
Low
to
query
applications
and
complex
ability
to
handle
performance
Ability
to
complex
complex
query optimization,
applications
inability to support
Low performance in
web applications
large-scale systems
It is considered to
be highly successful Presently
Support
vendors
vast
size
are
after
towards ORDBMS
Source: International Data Corporation, 1997 [40]
71
Based on the comparisons above, the selected database model for the implementation
of the e-Commerce system is the object relational model.
ORDBMS employ a data model that adds object oriented ideas to tables." All
persistent (database) information is still in tables, but some of the tabular entries can
have richer data structure. ORDBMS is a compromise between RDBMS and
OODBMS. ORDBMS maintains a relational feel while associated with new data
types that are not present in RDBMS. These data types for example, indexing,
storage, and retrieve records of multimedia contents (e.g., pictures). It is very
important that the database can store and easily retrieve pictures as this is an
important aspect of buying and selling online.
The regular feel of RDBMS is not lost when using ORDBMS as data is stored in
tables of rows and columns, and SQL is the language for data definition,
manipulation, and query. The target and result of a query are still tables or tuples.
The main attraction to this method of design is the fact that ORDBMS can handle
complex data as many unstructured and relational database unfriendly data types will
be used throughout this system.
Dr. Michael Stonebraker, Chief Technology Officer of Informix Software, has
classified the DBMS applications into four types: simple data without query, simple
data with query, complex data without query, and complex data with query. These
four types describe file systems, Relational DBMSs, Object-Oriented DBMSs, and
object-Relational DBMS, respectively. This is why he terms ORDBMSs as "the next
wave" [41].
72
PHP vs ASP.NET
PHP is one of the most widely used Web programming languages today. PHP is a
powerful server-side scripting language that can be used to create dynamic websites
and applications. PHP began as Personal Home Page, a simple Perl hack written by
Rasmus Lerdorf in 1994. Today, PHP has come to mean PHP: Hypertext
Preprocessor. The chosen implementation method was selected based on the
following criteria;
Cost
PHP is an open source program. Keeping with the notion of using the least expensive
hardware to develop the Dfs e-commerce system, PHP is regarded as the most
suitable scritping language. It requires no start up costs, neither are costs incurred
over the lifetime of the application. The Apache/PHP/MySQL combination on
provides cheap, low-end hardware and local server in form of WAMP (for windows )
and IMAP (for Mac). This is not the case for /ASP/SQL Servers.
Popularity
PHP has become one of the most widely used Web programming languages today.
[203] PHP is a powerful server-side scripting language that can be used to create
dynamic websites and applications. With over 4.5 million PHP developers and over
73
22 million Internet domains using PHP, it is easy to see the popularity of this
technology.
Platform Compatibility
PHP is platform independent, meaning it works with a wide range of operating
systems. ASP.Net is window based and only compatible with mostly Windows-based
DBMS.
Connection to Database
PHP allows connection to several types of databases as opposed to ASP.NET [39]
Platform comparison
SQL Server only works on Windows-based platforms. In comparison with SQL
Server the flexibility of MYSQL enables its deployment across various platforms.
Cost and licensing
The most obvious and enduring difference between MySQL and SQL Server is the
price tag. MySQL and its attendant client libraries are free under the GNU Public
License; all other database packages listed above require some form of payment for
acquisition.
Access is a Single-User Application while MYSQL is a Multi-User Application using
authentication for security
74
FrontPage
Vs
Dreamweaver
FrontPage has been built on top of the highly successful Microsoft Office suite. It
benefits from having a similar appearance to Microsoft Word and many of the other
Office based programs. Such a close resemblance to other office programs provides
an an easy-to-use menu system. Yet again this is only available on the Windows
platform.
[101]
FrontPage has many uses similar to a word processor. The functionality for inserting
images, tables and formatting text are very similar. So the step-up from a well known
word processor, to an equally well known web editor is not that daunting. FrontPage
also has an abundance of ready to use templates, particularly useful for the novice
user.
Adobe Dreamweaver products have been designed specifically with web design in
mind and Dreamweaver is the industry standard for web editors. Dreamweaver has a
nice blend of advanced tools mixed in with a tasteful graphical user interface.
Dreamweaver CS4, the most recent version, is part of the Adobe Creative Suite CS4
Master Collection. The tight integration between applications in the Suite is
encouraging as other web development programs such as Photoshop, fireworks, flash
etc can easily integrate with Dreamweaver. It is available on cross platforms.
Dreamweaver has an extensive collection of advanced tools and may at times be a
little too complex for those who wish to merely edit pages. Fortunately, Macromedia
Contribute is available and is part of the Macromedia Studio suite and enables easy
website maintenance. "Non techies" can edit the content of pages, whilst the coding
part of the page is protected - so no banana skins here!
75
FrontPage's simplicity and ease of use often generates lots of unwanted code which
can be difficult to manage. It has been designed specifically for Internet Explorer
(I.E.) and does not fully abide by the World Wide Web Standards. This means the
web pages look perfect in I.E. but often slightly out of sync in other leading browsers
such as Mozilla Firefox and Google Chrome. Another drawback of FrontPage is that
web servers need FrontPage extensions to get some features to work.
Dreamweaver is not as easy to use and may look a little foreign and intimidating to
the novice user. The lack of beginner tools and usability may frustrate inexperienced
users. Dreamweaver is also a little pricier than FrontPage.
Dreamweaver is a professional level web editor. It has been designed to be used in a
commercial environment and benefits from having advanced web design tools.
FrontPage on the other hand was intended for the average home user with a modest
interest
in
web
design.
It
is
ideal
for
beginners.
Given the reasons cited above, Dreamweaver will be used as the web editor for this ecommerce project.
AJAX
Ajax (shorthand for asynchronous JavaScript and XML) [35] is a group of interrelated
web development btechniques used on the client-side to create interactive web
applications. With Ajax, web applications can retrieve data from the server
asynchronously in the background without interfering with the display and behaviour
of the existing page. The use of Ajax techniques has led to an increase in interactive
or dynamic interfaces on web pages. Data are usually retrieved using the
XMLHttpRequest object. Despite the name, the use of XML is not actually required,
nor do the requests need to be asynchronous. [36]
Like DHTML and LAMP, Ajax is not a technology in itself, but a group of
technologies. Ajax uses a combination of HTML and CSS to mark up and style
information. The DOM is accessed with JavaScript to dynamically display, and to
allow the user to interact with the information presented. JavaScript and the
76
Justification of Use
An Ajax application eliminates the start-stop-start-stop nature of interaction on the
Web by introducing an intermediary an Ajax engine between the user and the
server.
Instead of loading a webpage, at the start of the session, the browser loads an Ajax
engine written in JavaScript and usually tucked away in a hidden frame. This
engine is responsible for both rendering the interface the user sees and communicating
with the server on the users behalf. The Ajax engine allows the users interaction
with the application to happen asynchronously independent of communication with
the server. [36]
77
Data Modelling
This is a preliminary sketch of the entities and attributes involved in the DFs database.
This draft is subject to changes after certain design strategies and methodologies are
applied to it. Normalisation will be applied to all tables and relationships in the
system.
ORDER
PRODUCT
CUSTOMER
TROLLEY
order_code
product_id
user_name
id
user_name
product_cat
password
user_name
product_id
product_name
first_name
product_id
product_name
product_desc
last_name
product_name
price
price
company
price
quantity
quantity_stock
address_1
quantity
date
product_details
address_2
date
order_amount
product_image
city
order_status
PRODUCT_CAT
man_date
county
cat_id
expiry_date
postcode
cat_name
serving_idea
UNREG_CUSTOMER
country
description
unreg_id
telephone
user_name
mobile
address
fax
timestamp
reg_date
purchases
logins
78
Normalisation
ii.
Create separate tables for each group of related data and identify each row
with a unique column or set of columns (the primary key).
79
ii.
Remove subsets of data that apply to multiple rows of a table and place them
in separate tables.
iii.
Create relationships between these new tables and their predecessors through
the use of foreign keys.
ii.
Remove columns that are not dependent upon the primary key.
ii.
DFs Example:
Assumption: A customer can have multiple orders and an order can include multiple
products.
0NF
CUSTOMER ORDER (CustomerID, OrderNo, ProdCode, ProdDesc, Qty, CustAddress, DateOrdered)
Achieving 1NF - remove multivalued attributes
CUSTOMER (CustomerID, CustAddress)
CUSTOMER ORDER (CustName, OrderNo, ProdCode, ProdDesc, Qty, DateOrdered)
2NF - remove partial dependencies
CUSTOMER (CustomerID, CustAddress)
ORDER LINE (OrderNo, ProdNo, Qty, DateOrdered)
PRODUCT (ProdNo, ProdDesc)
ORDER (OrderNo, CustomerID)
80
As above
Assumption: A customer can have multiple orders but an order can be for only 1 product. CustomerID
and OrderNo preassigned as keys.
0NF
CUSTOMER ORDER (CustomerID, OrderNo, ProdNo, ProdDesc, Qty, CustAddress, DateOrdered)
The same normalisation rules will be applied all over the database system where
many-to-many relationships occur. Therefore more entities will be created from the
original draft. A more comprehensive UML class diagram will be used to model the
entire system in further sections.
81
82
An entity type is any type of object that we wish to store data about. In an entityrelationship diagram an entity type is shown as a box. In Fig. 3.1, CUSTOMER is an
entity type. Each entity type is shown once. There may be many entity types in an
entity-relationship diagram as shown above. The name of an entity type is singular
since it represents a type.
An entity type is considered to be a set of objects. For this reason some people use the
alternative term entity set. An entity is simply one member or example or element or
instance of the type or set. So an entity is one individual within an entity type. For
example, within the entity type CUSTOMER, J. Smith might be one entity. He is an
83
individual entity within the type, an element in the set, an instance of the type
'customer'.
84
UML
Diagrams
UML
Class
Diagram
85
An important part of the Unified Modelling Language (UML) is the facilities for
drawing use case diagrams. Use cases are used during the analysis phase of a project
to identify and partition system functionality. They separate the system into actors
and use cases. Actors represent roles that can are played by users of the system. Those
users can be humans, other computers, pieces of hardware, or even other software
systems. The only criterion is that they must be external to the part of the system
being partitioned into use cases. They must supply stimuli to that part of the system,
and the must receive outputs from it.
Use cases describe the behavior of the system when one of these actors sends one
particular stimulus. This behaviour is described textually. It describes the inputs from
86
and outputs to other actors, and the behaviours that convert the inputs to the outputs.
The text of the use case also usually describes everything that can go wrong during
the course of the specified behaviour, and what remedial action the system will take.
87
UML activity diagrams are intended to model both computational and organisational
processes (i.e. workows) [40, 41]. However, if activity diagrams are to
succeed as a standard in the area of organisational process modeling, they should
compare favorably to the languages currently used for this purpose, that is, those
supported by existing Workow Management Systems (WFMS).
88
In this section, the attributes and domains of each entity is defined. The
implementation of this system will be strongly rooted on this design.
Table structure for table customers
Field
Type
Null Default
customer_id
int(11)
No
89
title
No
first_name
varchar(60)
No
last_name
varchar(60)
No
email_add
varchar(60)
No
login_pword
varchar(10)
No
address_line_1
varchar(40)
No
address_line_2
varchar(30)
No
town_city
varchar(30)
No
post_code
varchar(7)
No
county
varchar(30)
No
country
varchar(40)
No
telephone
varchar(15)
No
org_or_ind
enum('Individual', 'Organisation')
No Individual
organisation_name
varchar(30)
Yes NULL
newsletter
enum('No', 'Yes')
No Yes
other_info
varchar(250)
Yes NULL
Type
Null Default
delivery_ref
int(6)
No
order_code
int(6)
No
tracking_no
date_shipped
date
Yes NULL
ex_delivery_date date
Yes NULL
delivery_item_id int(6) No
delivery_ref
int(6) No
odrer_item_id
int(6) No
90
Field
Type
Null Default
invoice_number int(6)
No
order_code
int(6)
No
invoice_date
date
No
invoice_details varchar(150) No
Table structure for table invoice_line
Field
Type
Null Default
invoice_line_id int(6)
No
order_item_id
int(6)
No
invoice_number int(6)
No
product_code
varchar(5)
No
derived_cost
decimal(10,0) No
VAT
decimal(10,0) No
total_cost
decimal(10,0) No
other_details
Type
Null Default
news_customer_id int(6)
No
customer_id
int(6)
No
more_details
Type
Null Default
order_code int(6)
No
customer_id int(6)
No
order_date
No
date
Type
Null Default
order_item_id
int(6)
No
product_code
varchar(5)
No
91
product_quantity double
No 1
order_code
int(6)
No
unit_sale_price
decimal(10,0) No
sub_total
decimal(10,0) No
more_details
Type
Null Default
payment_ref
int(6)
No
invoice_number
int(6)
No
payment_method_code varchar(5)
No
payment_date
date
No
amount
decimal(10,0) No
Type
Null Default
varchar(40)
No
more_info
varchar(100)
Yes NULL
Type
Null Default
product_code
varchar(5)
No
product_name
varchar(30)
No
product_description varchar(250) No
p_cat_code
varchar(5)
No
units_in_stock
int(11)
No
unit_sale_price
date_manf
date
No
expiry_date
date
No
serving_sug
p_picture
(50)
nutrional_content
No
92
Type
p_cat_code varchar(5)
Null Default
No
p_cat_name varchar(30) No
p_cat_desc
Type
Null Default
recipe_ref
int(6)
No
product_code varchar(5)
No
recipe_name varchar(50)
No
recipe_desc
varchar(2500) No
recipe_author varchar(30)
Yes NULL
date_added
No
date
93
Website Design
Page Layout
There are several types of layouts can be used to structure web pages. Some of these
different page layouts are discussed below.
One-Tier Site:
All the information is on one page.
Two-Tier Site:
On the main page, there is a link to each
of the six items.
94
Three-Tier Site:
On the main page, there is a link to a
page
for
each
category.
The advantage of a one-tier site is that there are no internal links, and there is no
navigation. Everything is right there on that page. This is perfect for sites that have
very little information on them.
The two-tier site allows for a fair bit more information, but if you have a large site, it
will confront the visitor with an unsightly "Wall of Links". [42]
The DFs e-Commerce system will be a three-tier site. This format was chosen, as it
the most suitable for an e-commerce themed website. This system will enable
categorization of similar objects into the same page.
Web
Design
Issues
This web site acts as the store front for the products and service to be sold by DFs
online. The site users are assumed to be window shoppers and browsers. An effective
e-commerce web site's aim is to convert these browsers into buyers. This is what this
system is designed to achieve.
95
The web site will be designed to gently lead the users through the learning and sales
process. Sales text must be grammatically sound and spelled correctly. Poor spelling
loses credibility points straight away.
There will be plenty of well laid out textual content on the site to attract search
engines as well as to inform prospective clients.
Attracting search engines and targeted site traffic is a vital requirement of the system,
so the system must be built using keywords and clear headers to achieve this.
Cross Browser Compatibility
Internet Explorer isn't the only browser on the market. There are currently over 100
different brands of Internet browser currently available. IE's major competitor is
Firefox and what looks good in Internet Explorer may look terrible or even crash
other browsers. The website should be viewable on the most popular browsers such as
Firefox, Google chrome and IE.
Between these three browsers, over 90% of the internet market will be covered. By
paying attention to even simple things like browser compatibility issues, sales
potentials can be increased.
The use of images
All images used should clearly depict the product/service and where possible, pictures
must be optimised for clarity and for rapid download if necessary.
Images are a wonderful medium to assist in the online sale of DFs products/services,
especially useful to those clients with poor literacy levels or who are in a rush.
Site Navigation.
Site navigation will be simple and all the questions a customer may ask will be
answered along the way. Where possible, the "three click rule" will be used- that is, a
visitor should be able to access any information regarding DFs product or service
within 3 clicks of any other area of your web site. Pay close attention to cross-browser
compatibility issues as many complex menu systems play havoc with browsers.
About Us Page.
96
Web site flow chart diagrams will be used to model the divine foods e-commerce
website. This will show the navigational structure of the website. As explained earlier
a 3-Tier design approach will be used in the system development for DFs.
Fig 3.1 This is the navigational flow chart of DFs e-Commerce system.
A prototype website will be developed using PowerPoint. This method was chosen
instead of the traditional skeletal storyboard approach to ensure the stake holder stay
informed on the overall website appearance.
97
Fig 3.3: This the colour scheme and web design layout for the Home page so far
agreed with DFs. The overall page layout is not expected to change, but certain
colours on the page may change.
98
99
The product page was modelled to show the look and feel of the most imporatant page
of the website according to DFs. Subsequent site pages will look similar and follow
the same trends
100
101
Chapter
5:
Implementation
The DFs e-commerce system will be implemented using the selected programs
justified in the design section. The database will be created using the data definition
and the website designed according to the web flowchart and story board.
The entire system will be created on a local server using WAMP/Apache. The final
system will be transferred to the host server by FTP. The web address of the system
on completion will be:
The database tables were created and populated with data using Navicat 8 Lite; a free
DBMS for MySQL. Entity relationships and foreign keys were defined. This was a
simple procedure as the data to be entered were already defined.
All SQL codes and schema are included in the appendix of this report.
102
Website
Design
Changes to Design
Some of the colours used in the design of the preliminary storyboard generated were
changed due to requests from DFs.
The structure of the home page also had to be changed to facilitate and comply with to
web 2.0 Standards
This stage of implementation is not as straight forward as the database creation. Web
site standards have to be obeyed; the appropriate page sizes must be used to achieve
the best results. Web page sizes depend on the type of system being developed. For
this system, a page size of 1024 X 848 pixels will be used to ensure it can be
displayed by most computer screens.
Due to the professional nature of the system to be developed, the website was
designed using Adobe CS4 Master Collection.
The web design started in Adobe Photoshop CS4, where the website template was
built to be exported for slicing.
Fig 4.1 shows how Photoshop was used to re-create the story board prototype that was
created in the design section.
103
104
Most pages of the website were created this way and then re-used in Dreamweaver to
generate subsequent pages.
105
The designed web pages were exported to Fireworks for slicing in preparation for
coding in Dreamweaver. This process involves exporting the static (e.g. page
background, side bars) and some dynamic parts (e.g. picture placeholders) of the
website as picture files (JPG, PNG and GIF formats) to the images folder of the DFs
e-commerce web folder.
An advantage of using fireworks is that it automatically generates HTML tags and
CSS style sheets for every component sliced.
106
Coding
in
Dreamweaver
The web pages sliced in fireworks are finally exported into Dreamweaver for coding.
Dreamweaver has
development such as; PHP, JSP, XML, CSS and AJAX as built-in functions which is
of an advantage as it allows all coding to be done on here.
107
ii.
Incorporating the placeholder text from the original design into the home page.
iii.
iv.
Creating custom classes to add rules that will affect elements that reoccur on
the page.
v.
Using the Adobe BrowserLab service to check how different browsers render
the page on the Mac OS X and Windows XP platform.
vi.
vii.
Breaking down the page into reusable elements such as the header and footer.
viii.
Querying data from the MySQL database on the server, and present that data
dynamically on the home page.
108
ix.
Creating a PHP page that queries and returns data from a MySQL database in
XML format.
x.
Creating a PHP page that retrieves and presents the data dynamically using the
Spry framework for Ajax
xi.
Creating the product PHP page that uses the form request functionality to
query and display data from a MySQL database on the server.
xii.
Configuring a existing PHP pages to use with InContext Editing, a service that
allows addition and maintenance of a web page within a web browser.
xiii.
PHP scripts were created to enable User account creation, user login, user
password encryption, admin account management, shopping basket, check out
and more ( see Appendix).
109
Having successfully implemented the system according to the initial design, here final
previews of some of the web pages in a browser.
110
111
112
113
The analysis design and development of this system was deemed successful. This
assessment was made based on the functionality of the final system meeting the
requirements analysis. The system satisfactorily meets the core requirements set out
by DFs. Customers can easily register with the website using their email address as
the username along with secure encrypted passwords. Customers can adequately
manage their accounts online without any help from DFs; the system is robust enough
to handle large numbers of customers without crashing.
Though the initial specification evolved around web 1.0, the system was eventually
developed to web 2.0 standards; with facebook, twitter and Myspace elements
integrated into the site. There is a web blog where customers can interact with each
other, post recipes and comment on existing posts, products can also be reviewed. The
development of this system has resolved majority of the problems faced by DFs:
Processing time of the business and employee s transaction data was reduced. In the
past, employees managed order and delivery documents by writing directly on paper.
Moving the order and delivery system onto the Internet reduced the time needed to
process business/employee s transaction data by automating several processes that
would otherwise be carried out manually.
Product stock levels can be automatically monitored by the system, alerting the
management when products are running out of stock.
The extensive literature research carried out along with the systems analysis and
design methods employed enabled this system to be designed to a high standard an in
compliance with e-Commerce Regulations. Contracts can be started and finalised
online, the site incorporates DFs marketing identity, and clearly displays the
companys Terms and conditions an EC Directive requirement. Data flow diagrams
and UML class, activity and use case diagrams enabled the identification of data
processes and flows leading to the modelling and design of the overall system.
The system employs marketing strategy in form of form of regular newsletters with
promotional offers. The system with facilitate customer acquisition by using clear
page headers, descriptions and keywords to optimize search engine indexing.
114
Customer retention is achieved by providing personal user accounts and recipe blogs
to give customers reasons to always re-visit the website.
The overall time taken to develop the system was reduced by carrying-out testing
concurrently with implementation. Several types of testing were carried out as
specified in earlier sections of this report
115
Further
Work
Though the overall system was a success, are certain areas that could be enhance even
further.
The e-Commerce system can be further improved to include band carry out card
transactions. Customers should be able to pay by credit/debit card directly to DFs.
This feature was not included in this system mainly because DFs do not currently
have a merchant account with any banks; this is required to process card transactions.
This system can also be improved further into a B2B application. This will enable
DFs to really take advantage of the benefits of e-Commerce by directly integrating
their e-commerce system to a warehouse distribution system of their suppliers.
Complete autonomy can be achieved by the DFs system this way as it will
automatically order from suppliers when product inventory is low. This element was
not included in this system as it would have been complicated; this is because most
products are manufactured by DFs using raw materials ordered from suppliers and
majority of these suppliers either do not carry out business online or they do not
possess the infrastructure to run e-business systems. Since this is the case, it would
have been impractical to develop a B2B system if it cannot fully integrate with
supplier systems or if these systems are absent.
116
117
30. Roy, A.B. The SDLC and Six SIGMA: AN Essay on which is which and why? Florida
Gulf Coast University. http://www.iacis.org/iis/2004_iis/PDFfiles/Boggs.pdf 20/04/2010
31. Food Standards Agency. Labelling and Packaging http://www.food.gov.uk/foodlabelling/
Last accessed 21/04/2010
32. Chris Gane, Trish Sarson. Structured Systems Analysis: Tools and Techniques. 1979.
Prentice Hall, pgs 100 - 241 .
33. Pham T. Q, Chartier-Kastler, C. Merise in Practice. 1991. Scholium International,
Incorporated. Pgs 30-80
34. M. Abi-Antoun, D. Wang, and P. Torr. Checking Threat Modeling Data Flow Diagrams
for Implementation Conformance and Security. Technical Reportm CMU-ISRI-06-124,
Carnegie Mellon University, 2006.
119
120
Bibliography
Bibliography
SUCHNEK, P. E-business Development Key Areas. In 5-th International Symposium on Business
Administration. anakale: anakale Onsekiz Mart University, 2008. s. 537-543. ISBN 978-975-810078-1.
Thomas Gilmore, Jim Krantz and Rafael Ramirez, "Action Based Modes of Inquiry and the HostResearcher Relationship," Consultation 5.3 (Fall 1986): 161.
Stobart, S., Vassileiou, M. (2004) PHP and MySQL Manual Springer-Verlag London ISBN
1852337478
Connolly,T. Begg,C. Strachan, A. (2005) 'Database Systems, A practical approach to design,
Implementation and management.' 4th Edition Addison Wesley 0321210255
Date, C. J. (2003) 'An Introduction to Database Systems' 8th Edition Addison Wesley 0321189566
Scott Barker, F. (2003) 'Database programming with Visual Basic .Net and ADO.Net : tips, tutorials and
code' Sams 0672322471
Buyens, J. (2002) 'Web database development step by step [electronic resource]' 0585487278
Welling, L. and Thomson, L. (2004) 'PHP and MySQL Web Development' 3rd Edition Sams publishing
McManus J., Harper Wood T. (2002) 'Information Systems Project Management' Prentice Hall 027364990
Elmasri, R. Shamkant, B. and Navathe (2003) 'Fundamentals of database systems' 4th Edition
0321122267
[4] Fertalj K, Milainovic B. Estimation of feasibility for Business Information Systems. Journal of
Computing and Information Technology - CIT 13, 2005, 4, p. 271-277
Bernard HR. Research Methods in Anthropology, Second Edition. London: Sage Publications,
1995.Denzin NK, Lincoln YS (eds.). Handbook of Qualitative Research. London: Sage Publications,
2000.
Marshall PA. Human subjects protections, institutional review boards, and cultural
anthropologicalresearch. Anthropol Q 2003;76(2):269-85.
National Commission for the Protection of Human Subjects of Biomedical and BehavioralResearch.
The Belmont Report. Ethical Principles and Guidelines for the Protection of Human Subjects of
Research. Washington, DC: National Institutes of Health, 1979. Available:
http://ohsr.od.nih.gov/guidelines/belmont.html.
Nkwi P, Nyamongo I, Ryan G. Field Research into Social Issues: Methodological
Guidelines.Washington, DC: UNESCO, 2001.
Pelto P, Pelto G. Studying knowledge, culture and behavior in applied medical anthropology.Med
Anthropol Q 1997;11(2):147-63.
Pope C, Mays N. Qualitative Research in Health Care. London: BMJ Books, 2000.
121
Schensul, J, LeCompte M. Ethnographers Toolkit. Walnut Creek, CA: Altamira Press, 1999.
Sarpola Sami and Scott Judy E. Enterprise Resource Planning (ERP) software selection and success of
acquisition process in wholesale companies. HeSE print, Helsinki, Finland, 2003
Useful
Websites
Database Normalisation Basics
http://databases.about.com/od/specificproducts/a/normalization.htm
Description of the Database Normalisation basics. Microsoft Corporation. January, 2009.
http://support.microsoft.com/kb/283878 . Last Accessed April 20, 2010
Qualitative versus Quantitative Research: Key Points in a Classic Debate.
http://wilderdom.com/research/QualitativeVersusQuantitativeResearch.html#Features Last
accessed: 20/04/2010
The Privacy and Electronic Communications (EC Directive) Regulations 2003 .
http://www.opsi.gov.uk/si/si2003/20032426.htm. Last accessed 20/04/2010
http://www.fhi.org/NR/rdonlyres/etl7vogszehu5s4stpzb3tyqlpp7rojv4waq37elpbyei3tgmc4ty6dun
bccfzxtaj2rvbaubzmz4f/overview1.pdf
http://www.webdesign.org/raster-graphics/fireworks/fireworks-cs4-beta-for-webdesign.16470.html
http://www.layersmagazine.com/photoshop-cs4-a-picture-worth-a-thousand-words.html
Linda J Bruton. What Is the Purpose of ERP Software Linda J Bruton [online] available
at
http://ezinearticles.com/?What-Is-The-Purpose-Of-ERP-Software?&id=680420
122
123
Chapter
7:
Appendix
Appendix
A
SQL
Database
Scripts
/*
MySQL Data Transfer
Source Host: localhost
Source Database: divinefoods
Target Host: localhost
Target Database: divinefoods
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------- Table structure for customers
-- ---------------------------DROP TABLE IF EXISTS `customers`;
CREATE TABLE `customers` (
`customer_id` int(11) NOT NULL AUTO_INCREMENT,
`title` enum('Other','Chief','Dr','Ms','Miss','Mrs','Mr') NOT NULL,
`first_name` varchar(60) NOT NULL,
`last_name` varchar(60) NOT NULL,
`email_add` varchar(60) NOT NULL,
`login_pword` varchar(10) NOT NULL,
`address_line_1` varchar(40) NOT NULL,
`address_line_2` varchar(30) NOT NULL,
`town_city` varchar(30) NOT NULL,
`post_code` varchar(7) NOT NULL,
`county` varchar(30) NOT NULL,
`country` varchar(40) NOT NULL,
`telephone` varchar(15) NOT NULL,
`org_or_ind` enum('Individual','Organisation') NOT NULL DEFAULT 'Individual',
`organisation_name` varchar(30) DEFAULT NULL,
124
125
126
127
128
129
-- ----------------------------- Records
-- ---------------------------INSERT INTO `invoice_line` VALUES ('1', '0', '0', '', '3', '1', '0', null);
INSERT INTO `order_items` VALUES ('1', 'dfff', '1', '0', '0', '0', null);
INSERT INTO `products` VALUES ('DFA01', 'Beef Suya', 'Spicy grilled beef. Full african flavour with spicy herbs, chilli',
'DFARI', '18', null, '2010-04-19', '2010-05-28', 'Serve warm, with chilled wine', 'beefsuya.jpg', '5% Fat, 20 % Sugar');
Apendix
B
PHP
Scripts
Admin Page
<?php
if (!defined('WEB_ROOT')) {
exit;
}
130
$n = count($script);
for ($i = 0; $i < $n; $i++) {
if ($script[$i] != '') {
echo '<script language="JavaScript" type="text/javascript" src="' . WEB_ROOT. 'admin/library/' . $script[$i]. '"></script>';
}
}
?>
</head>
<body>
<table width="750" border="0" align="center" cellpadding="0" cellspacing="1" class="graybox">
<tr>
<td colspan="2"><img src="<?php echo WEB_ROOT; ?>admin/include/banner-top.gif" width="750" height="75"></td>
</tr>
<tr>
<td width="150" valign="top" class="navArea"><p> </p>
<a href="<?php echo WEB_ROOT; ?>admin/" class="leftnav">Home</a>
<a href="<?php echo WEB_ROOT; ?>admin/category/" class="leftnav">Category</a>
<a href="<?php echo WEB_ROOT; ?>admin/product/" class="leftnav">Product</a>
<a href="<?php echo WEB_ROOT; ?>admin/order/?status=Paid" class="leftnav">Order</a>
<a href="<?php echo WEB_ROOT; ?>admin/config/" class="leftnav">Shop Config</a>
<a href="<?php echo WEB_ROOT; ?>admin/user/" class="leftnav">User</a>
<a href="<?php echo $self; ?>?logout" class="leftnav">Logout</a>
<p> </p>
<p> </p>
<p> </p>
<p> </p></td>
<td width="600" valign="top" class="contentArea"><table width="100%" border="0" cellspacing="0" cellpadding="20">
<tr>
<td>
<?php
require_once $content;
?>
</td>
</tr>
131
</table></td>
</tr>
</table>
<p> </p>
<p align="center">Copyright © 2010 - <?php echo date('Y'); ?> <a href="www.rhicsgraphics.com"> Chris
Nwaigwe</a></p>
</body>
</html
<?php
if (!defined('WEB_ROOT')) {
exit;
}
?>
<p> </p>
<form action="processUser.php?action=addUser" method="post" name="frmListUser" id="frmListUser">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" class="text">
<tr align="center" id="listTableHeader">
<td>User Name</td>
<td width="120">Register Date</td>
<td width="120">Last login</td>
<td width="120">Change Password</td>
<td width="70">Delete</td>
</tr>
<?php
while($row = dbFetchAssoc($result)) {
132
extract($row);
if ($i%2) {
$class = 'row1';
} else {
$class = 'row2';
}
$i += 1;
?>
<tr class="<?php echo $class; ?>">
<td><?php echo $user_name; ?></td>
<td width="120" align="center"><?php echo $user_regdate; ?></td>
<td width="120" align="center"><?php echo $user_last_login; ?></td>
<td width="120" align="center"><a href="javascript:changePassword(<?php echo $user_id; ?>);">Change Password</a></td>
<td width="70" align="center"><a href="javascript:deleteUser(<?php echo $user_id; ?>);">Delete</a></td>
</tr>
<?php
} // end while
?>
<tr>
<td colspan="5"> </td>
</tr>
<tr>
<td colspan="5" align="right"><input name="btnAddUser" type="button" id="btnAddUser" value="Add User" class="box"
onClick="addUser()"></td>
</tr>
</table>
<p> </p>
</form>
Modify Users
133
<?php
if (!defined('WEB_ROOT')) {
exit;
}
?>
<p class="errorMessage"><?php echo $errorMessage; ?></p>
<form action="processUser.php?action=modify" method="post" enctype="multipart/form-data" name="frmAddUser"
id="frmAddUser">
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">
<tr>
<td width="150" class="label">User Name</td>
<td class="content"><input name="txtUserName" type="text" class="box" id="txtUserName" value="<?php echo
$user_name; ?>" size="20" maxlength="20">
<input name="hidUserId" type="hidden" id="hidUserId" value="<?php echo $userId; ?>"> </td>
</tr>
<tr>
<td width="150" class="label">Password</td>
<td class="content"> <input name="txtPassword" type="password" class="box" id="txtPassword" size="20"
maxlength="20"></td>
134
</tr>
</table>
<p align="center">
<input name="btnModifyUser" type="button" id="btnModifyUser" value="Modify User" onClick="checkAddUserForm();"
class="box">
<input name="btnCancel" type="button" id="btnCancel" value="Cancel"
onClick="window.location.href='index.php';" class="box">
</p>
</form>
?>
<p class="errorMessage"><?php echo $errorMessage; ?></p>
<form action="processUser.php?action=modify" method="post" enctype="multipart/form-data" name="frmAddUser"
id="frmAddUser">
135
Add User
<?php
if (!defined('WEB_ROOT')) {
exit;
}
136
</tr>
<tr>
<td width="150" class="label">Password</td>
<td class="content"> <input name="txtPassword" type="password" class="box" id="txtPassword" value="" size="20"
maxlength="20"></td>
</tr>
</table>
<p align="center">
<input name="btnAddUser" type="button" id="btnAddUser" value="Add User" onClick="checkAddUserForm();"
class="box">
<input name="btnCancel" type="button" id="btnCancel" value="Cancel"
onClick="window.location.href='index.php';" class="box">
</p>
</form>
function checkAddUserForm()
{
with (window.document.frmAddUser) {
if (isEmpty(txtUserName, 'Enter user name')) {
return;
} else if (isEmpty(txtPassword, 'Enter password')) {
return;
} else {
submit();
}
}
}
function addUser()
{
window.location.href = 'index.php?view=add';
}
137
function changePassword(userId)
{
window.location.href = 'index.php?view=modify&userId=' + userId;
}
function deleteUser(userId)
{
if (confirm('Delete this user?')) {
window.location.href = 'processUser.php?action=delete&userId=' + userId;
}
}
// JavaScript Document
function viewProduct()
{
with (window.document.frmListProduct) {
if (cboCategory.selectedIndex == 0) {
window.location.href = 'index.php';
} else {
window.location.href = 'index.php?catId=' +
cboCategory.options[cboCategory.selectedIndex].value;
}
}
}
function checkAddProductForm()
{
with (window.document.frmAddProduct) {
if (cboCategory.selectedIndex == 0) {
alert('Choose the product category');
cboCategory.focus();
return;
138
function addProduct(catId)
{
window.location.href = 'index.php?view=add&catId=' + catId;
}
function modifyProduct(productId)
{
window.location.href = 'index.php?view=modify&productCode=' + productCode;
}
function deleteImage(productId)
{
if (confirm('Delete this image')) {
window.location.href = 'processProduct.php?action=deleteImage&productCode=' + productCode;
}
}
139
function viewOrder()
{
statusList = window.document.frmOrderList.cboOrderStatus;
status
= statusList.options[statusList.selectedIndex].value;
if (status != '') {
window.location.href = 'index.php?status=' + status;
} else {
window.location.href = 'index.php';
}
}
function modifyOrderStatus(orderId)
{
statusList = window.document.frmOrder.cboOrderStatus;
status
= statusList.options[statusList.selectedIndex].value;
function deleteOrder(orderId)
{
140
Customer Registration
<?php
// Connects to your Database
mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("divinefoods") or die(mysql_error());
//This code runs if the form has been submitted
if (isset($_POST['submit'])) {
//This makes sure they did not leave any fields blank
if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) {
die('You did not complete all of the required fields');
}
// checks if the username is in use
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
$usercheck = $_POST['username'];
$check = mysql_query("SELECT username FROM users WHERE username =
'$usercheck'")
or die(mysql_error());
$check2 = mysql_num_rows($check);
//if the name exists it gives an error
if ($check2 != 0) {
die('Sorry, the username '.$_POST['username'].' is already in use.');
}
// this makes sure both passwords entered match
if ($_POST['pass'] != $_POST['pass2']) {
die('Your passwords did not match. ');
}
// here we encrypt the password and add slashes if needed
$_POST['pass'] = md5($_POST['pass']);
if (!get_magic_quotes_gpc()) {
$_POST['pass'] = addslashes($_POST['pass']);
$_POST['username'] = addslashes($_POST['username']);
}
// now we insert it into the database
$insert = "INSERT INTO users (username, password)
VALUES ('".$_POST['username']."', '".$_POST['pass']."')";
$add_member = mysql_query($insert);
?>
<h1>Registered</h1>
<p>Thank you, you have registered - you may now login</a>.</p>
141
<?php
}
else
{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0">
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="60">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="10">
</td></tr>
<tr><td>Confirm Password:</td><td>
<input type="password" name="pass2" maxlength="10">
</td></tr>
<tr><th colspan=2><input type="submit" name="submit"
value="Register"></th></tr> </table>
</form>
<?php
}
?>
User Login
//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))
//if there is, it logs you in and directes you to the members page
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username
= '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: members.php");
}
}
}
//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted
142
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}
?>
<?php
// Connects to your Database
mysql_connect("your.hostaddress.com", "username", "password") or
die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error());
//checks cookies to make sure they are logged in
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username
= '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password, they are taken to the login page
if ($pass != $info['password'])
{
header("Location: login.php");
}
//otherwise they are shown the admin area
else
{
echo "Admin Area<p>";
echo "Your Content<p>";
echo "<a href=logout.php>Logout</a>";
}
}
}
else
//if the cookie does not exist, they are taken to the login screen
{
144
header("Location: login.php");
}
<?php
$past = time() - 100;
//this makes the time in the past to destroy the cookie
setcookie(ID_my_site, gone, $past);
setcookie(Key_my_site, gone, $past);
header("Location: login.php");
?>
Order Processing
<?php
require_once '../../library/config.php';
require_once '../library/functions.php';
checkUser();
switch ($action) {
case 'modify' :
modifyOrder();
break;
default :
// if action is not defined or unknown
// move to main category page
header('Location: index.php');
}
145
function modifyOrder()
{
if (!isset($_GET['oid']) || (int)$_GET['oid'] <= 0
|| !isset($_GET['status']) || $_GET['status'] == '') {
header('Location: index.php');
}
$orderId = (int)$_GET['oid'];
$status = $_GET['status'];
header("Location: index.php?view=list&status=$status");
}
?>
146
<?php
if (!defined('WEB_ROOT')) {
exit;
}
// for paging
// how many rows to show per page
$rowsPerPage = 4;
?>
<p> </p>
<form action="processOrder.php" method="post" name="frmOrderList" id="frmOrderList">
<table width="100%" border="0" cellspacing="0" cellpadding="2" class="text">
<tr align="center">
<td align="right">View</td>
<td width="75"><select name="cboOrderStatus" class="box" id="cboOrderStatus" onChange="viewOrder();">
<option value="" selected>All</option>
<?php echo $orderOption; ?>
</select></td>
</tr>
</table>
147
while($row = dbFetchAssoc($result)) {
extract($row);
$name = $od_shipping_first_name . ' ' . $od_shipping_last_name;
if ($i%2) {
$class = 'row1';
} else {
$class = 'row2';
}
$i += 1;
?>
<tr class="<?php echo $class; ?>">
<td width="60"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?view=detail&oid=<?php echo $od_id; ?>"><?php echo
$od_id; ?></a></td>
<td><?php echo $name ?></td>
<td width="60" align="right"><?php echo displayAmount($od_amount); ?></td>
<td width="150" align="center"><?php echo $od_date; ?></td>
<td width="70" align="center"><?php echo $od_status; ?></td>
</tr>
148
<?php
} // end while
?>
<tr>
<td colspan="5" align="center">
<?php
echo $pagingLink;
?></td>
</tr>
<?php
} else {
?>
<tr>
<td colspan="5" align="center">No Orders Found </td>
</tr>
<?php
}
?>
</table>
<p> </p>
</form>
<?php
// this page only process a POST from paypal website
// so make sure that the one requesting this page comes
// from paypal. we can do this by checking the remote address
// the IP must begin with 66.135.197.
if (strpos($_SERVER['REMOTE_ADDR'], '66.135.197.') === false) {
exit;
}
149
require_once './paypal.inc.php';
require_once '../../library/config.php';
$result = dbQuery($sql);
$row = dbFetchAssoc($result);
150
= dbFetchAssoc($result);
$subTotal = $row['subtotal'];
$total
= $subTotal + $shopConfig['shippingCost'];
if ($_POST['payment_gross'] != $total) {
exit;
} else {
$invoice = $_POST['invoice'];
$memo
= $_POST['memo'];
if (!get_magic_quotes_gpc()) {
$memo = addslashes($memo);
}
} else {
exit;
}
151
?>
<?php
require_once 'config.php';
function addToCart()
{
// make sure the product id exist
if (isset($_GET['p']) && (int)$_GET['p'] > 0) {
$productId = (int)$_GET['p'];
} else {
header('Location: index.php');
}
if (dbNumRows($result) != 1) {
// the product doesn't exist
header('Location: cart.php');
} else {
// how many of this product we
// have in stock
$row = dbFetchAssoc($result);
$currentStock = $row['pd_qty'];
if ($currentStock == 0) {
// we no longer have this product in stock
// show the error message
setError('The product you requested is no longer in stock');
152
header('Location: cart.php');
exit;
}
// current session id
$sid = session_id();
if (dbNumRows($result) == 0) {
// put the product in cart table
$sql = "INSERT INTO tbl_cart (pd_id, ct_qty, ct_session_id, ct_date)
VALUES ($productId, 1, '$sid', NOW())";
$result = dbQuery($sql);
} else {
// update product quantity in cart table
$sql = "UPDATE tbl_cart
SET ct_qty = ct_qty + 1
WHERE ct_session_id = '$sid' AND pd_id = $productId";
$result = dbQuery($sql);
}
153
/*
Get all item in current session
from shopping cart table
*/
function getCartContent()
{
$cartContent = array();
$sid = session_id();
$sql = "SELECT ct_id, ct.pd_id, ct_qty, pd_name, pd_price, pd_thumbnail, pd.cat_id
FROM tbl_cart ct, tbl_product pd, tbl_category cat
WHERE ct_session_id = '$sid' AND ct.pd_id = pd.pd_id AND cat.cat_id = pd.cat_id";
$result = dbQuery($sql);
return $cartContent;
}
/*
Remove an item from the cart
*/
function deleteFromCart($cartId = 0)
154
{
if (!$cartId && isset($_GET['cid']) && (int)$_GET['cid'] > 0) {
$cartId = (int)$_GET['cid'];
}
if ($cartId) {
$sql = "DELETE FROM tbl_cart
WHERE ct_id = $cartId";
$result = dbQuery($sql);
}
header('Location: cart.php');
}
/*
Update item quantity in shopping cart
*/
function updateCart()
{
$cartId
= $_POST['hidCartId'];
$productId = $_POST['hidProductId'];
$itemQty
= $_POST['txtQty'];
$numItem
= count($itemQty);
$numDeleted = 0;
$notice
= '';
155
= dbFetchAssoc($result);
dbQuery($sql);
}
}
156
if ($numDeleted == $numItem) {
// if all item deleted return to the last page that
// the customer visited before going to shopping cart
header("Location: $returnUrl" . $_SESSION['shop_return_url']);
} else {
header('Location: cart.php');
}
exit;
}
function isCartEmpty()
{
$isEmpty = false;
$sid = session_id();
$sql = "SELECT ct_id
FROM tbl_cart ct
WHERE ct_session_id = '$sid'";
$result = dbQuery($sql);
if (dbNumRows($result) == 0) {
$isEmpty = true;
}
return $isEmpty;
}
/*
Delete all cart entries older than one day
*/
function deleteAbandonedCart()
157
{
$yesterday = date('Y-m-d H:i:s', mktime(0,0,0, date('m'), date('d') - 1, date('Y')));
$sql = "DELETE FROM tbl_cart
WHERE ct_date < '$yesterday'";
dbQuery($sql);
}
?>
<?php
require_once 'config.php';
$dbConn = mysql_connect ($localhost, $dbroot,) or die ('MySQL connect failed. ' . mysql_error());
mysql_select_db($divinefoods) or die('Cannot select database. ' . mysql_error());
function dbQuery($sql)
{
$result = mysql_query($sql) or die(mysql_error());
return $result;
}
function dbAffectedRows()
{
global $dbConn;
return mysql_affected_rows($dbConn);
}
158
function dbFetchAssoc($result)
{
return mysql_fetch_assoc($result);
}
function dbFetchRow($result)
{
return mysql_fetch_row($result);
}
function dbFreeResult($result)
{
return mysql_free_result($result);
}
function dbNumRows($result)
{
return mysql_num_rows($result);
}
function dbSelect($dbName)
{
return mysql_select_db($dbName);
}
function dbInsertId()
{
return mysql_insert_id();
}
?>
159
body {
background-color: #323232;
margin:0px;
padding:0px;
font-size: 100%;
}
.leftbarlinks {
font-size: 90%;
color: #400000;
text-decoration: none;
background-color: #FFC;
text-indent: 50px;
height: 311px;
width: 230px;
margin-top: 6px;
padding-top: 6px;
}
.p {
margin:0px;
padding:0px;
font-size: inherit;
font-family: inherit;
font-weight: inherit;
text-align: inherit;
color: inherit;
160
line-height: inherit;
vertical-align: top;
}
p{
padding-top:0px;
margin-top:0px;
}
img {
border:0px;
}
div {
margin:0px;
padding:0px;
font-family:verdana; font-size:12px;
}
.AbsWrap {
width: 100%;
position: relative;
}
.rowWrap {
width: 100%;
}
.clearfloat {
clear:both;
height:0px;
}
a:link, a:visited{
COLOR:inherit;
text-decoration:inherit;
}
#main {
width:1024px;
margin: 0px auto 0px auto;
border: 0px solid #f0f0f0;
161
background-image: url(images/bg_home.gif);
}
#home_r1_c1 {
margin-left:0px;
margin-top:0px;
width:1024px;
height:169px;
margin-bottom:0px;
float:left;
display:inline;
}
#home_r8_c2 {
margin-left:18px;
margin-top:314px;
width:2px;
height:270px;
margin-bottom:0px;
float:left;
display:inline;
}
#home_r5_c3 {
margin-left:0px;
margin-top:310px;
width:234px;
height:275px;
margin-bottom:0px;
float:left;
display:inline;
}
.sidebarlinks {
}
#colwrap1 {
float:left;
162
width:577px;
margin-top:0px;
margin-left:0px;
border: 0px solid #f0f0f0;
}
#home_r4_c4 {
margin-left:0px;
margin-top:5px;
width:576px;
height:291px;
margin-bottom:0px;
float:left;
display:inline;
}
#home_r7_c4 {
margin-left:0px;
margin-top:0px;
width:576px;
height:194px;
margin-bottom:0px;
float:left;
display:inline;
}
#home_r10_c5 {
margin-left:25px;
margin-top:17px;
width:552px;
height:51px;
margin-bottom:0px;
float:left;
display:inline;
163
}
#colwrap2 {
float:left;
width:180px;
margin-top:0px;
margin-left:0px;
border: 0px solid #f0f0f0;
}
#home_r3_c7 {
margin-left:0px;
margin-top:4px;
width:131px;
height:38px;
margin-bottom:0px;
float:left;
display:inline;
}
#home_r6_c7 {
margin-left:0px;
margin-top:0px;
width:180px;
height:542px;
margin-bottom:0px;
float:left;
display:inline;
}
#home_r12_c1 {
margin-left:0px;
margin-top:0px;
width:1024px;
164
height:50px;
margin-bottom:0px;
float:left;
display:inline;
}
#nav {
font-size: 100%;
line-height: 30px;
font-weight: bold;
text-transform: uppercase;
color: #fff;
background-color: #FFF;
text-indent: 70px;
width: 1024px;
padding-bottom: 0px;
border-bottom-width: medium;
border-bottom-style: outset;
border-bottom-color: #004269;
background-image: url(images/nav.jpg);
height: 200px;
}
#nav a {
color: #FFF;
text-decoration: none;
}
.seperator {
color: #323232;
}
-->
</style>
<!--[if IE]>
165
<div id="main">
<img src="images/header2.jpg" alt="" height="167" id="home_r1_c1" />
<div id="nav">HOME
<span class="seperator">-- ---</span> ABOUT US
<span class="seperator">---- - -</span>
PRODUCTS
<span class="seperator">- - - -</span> SPECIAL OFFERS
<span class="seperator">--- --</span>
FREE RECIPES
<span class="seperator">--- --</span> MY ACCOUNT
<span class="seperator">--- ---</span>
MORE SERVICES </div>
<br class="clearfloat" />
<img src="images/home_r8_c2.png" id="home_r8_c2" alt="" />
<img src="images/adspace_home.gif" id="home_r5_c3" alt="" />
<div id="colwrap1"><img src="images/foodsplash_home.png" alt="" name="splashmiddle" id="home_r4_c4"
/><img src="images/home_r7_c4.gif" id="home_r7_c4" alt="" /><img src="images/facebook_twitter_box.gif"
id="home_r10_c5" alt="" /><img src="images/twitterbtn_home.png" width="60" height="49" /></div>
<div id="colwrap2"><img src="images/home_r3_c7.png" id="home_r3_c7" alt="" /><br class="clearfloat" />
<img src="images/home_r6_c7.jpg" id="home_r6_c7" alt="" />
<br class="clearfloat" />
</div>
<img src="images/home_r12_c1.jpg" id="home_r12_c1" alt="" />
<br class="clearfloat" />
</div>
</body>
</html>
166
Appendix
C
Picture
Formats
Used
GIF: This acronym stands for Graphics Interchange Format. GIF files are the best choice for
images that contain continuous tones, without a lot of color changes or gradients. Solid
colors, text, and vector graphics look good exported as GIF files. GIF files support
transparency. You can also export an animation that contains a series of states (frames) as an
animated GIF. When exporting files in the GIF format, you can reduce the file size by
reducing the number of colors used in an image.
JPEG: This acronym stands for Joint Photographic Experts Group. The JPEG format is best
used for pixel-based image content that is photo realistic, such as photos taken with a digital
camera. JPEG files do not support transparency. When you export JPEG files, the degree of
compression can be adjusted by selecting the level of quality, which allows you to find a
good balance between file size and image quality. Files exported in the JPEG format are
compressed and lose some of their original image information, which cannot be restored
(and sometimes results in artifacts and lower image quality.) However, when you export
files as JPEG, the codec typically achieves 10:1 compression with little perceptible loss in
quality.
PNG: This acronym stands for Portable Network Graphics PNG files are a bit newer than
GIF and JPEG formats, so their display is not supported in older browsers. PNG files offer
the crisp photo-realism of JPEG files, with the added advantage of supporting transparency.
Logos and high-quality photographic images are usually best when exported to the PNG
format. Unlike JPEG files, files exported in the PNG format use lossless data compression,
which means the exact original data can be reconstructed from previously compressed data.
It's important to note that there's a difference between PNG files created in Fireworks (which
contain the document's editable data, layers, text, and so on) versus PNG files that are
exported from other programs (which contain only the image data and are not editable).
167
Appendix
D
DFs
user
questionnaire/survey
questions
Q1. Which system of operation do you use currently use?
Unsatisfied
Neutral
Satisfied
Very Satisfied
Unsatisfied
Q3. How well does your system satisfy your needs in terms of: ? (If necessary give details in Q9?)
Excellent
Good
Average
Poor
Very poor
Data entry?
Retrieving data?
Q4. Based on your system, what are your views on the following: (If necessary give details in Q9?)
Excellent
Good
Average
Poor
Very Poor
Adequacy of data?
Relevance of data?
Q5. How does your system contribute to your productivity in terms of: (If necessary give details in Q9?)
Accuracy
Excellent
Good
Average
Poor
Very poor
168
Timeliness
Q6. On selecting a new system, please rank the importance of the following: (If necessary give details in Q9)
Very important
Important
Not important
Cost
Functionality
Usability/User friendliness
Q7. Please rank the causes of errors and problems encountered while using your system: (If necessary give details in Q9)
High
Low
System complexity
Q8. Please highlight any requirements from the e-commerce system that will enhance your business
169
Q10. Do you feel this survey was adequate? If not please highlight other issues not captured by the survey, with possible
solutions
170
Appendix
E
Log
Book
Please refer to attached copies of the personal log book
171