FPT UNIVERSITY Capstone Project Document Electronic Circuit

advertisement
MINISTRY OF EDUCATION AND TRAINING
FPT UNIVERSITY
FPT UNIVERSITY
Capstone Project Document
Electronic Circuit Website
ECW Team
DươngThếHải – 1651
Group Member
NguyễnHồng Nam-01283
NguyễnVănSơn -01377
Supervisor
BùiNgọcAnhMsc.
Capstone Project
code
ECW
HòaLạc, 20thAprial, 2015
Report 1: Introduction
1.1 Introduction Project
1.1.1 Introduction


All most of the websites selling electronics in Vietnam, the world using only their source
code open system based on Joomla, WordPress + E-commerce plugins (woo commerce).
They only handle the general case information, they might not be specific description of
electronic components. If you want to add the product that it owns other information,
must add the new school so arduous.
Developing a website by PHP and mySQL can help users easily manage information on
the electronic product.
1.1.2 Project Information





Project name: Electronic Circuit Website
Project code: ECW
Project group name : ECW Team
Product type: Website application
Timeline: from 04th January 2015 to 15th April 2015
1.1.3 Project Members
1.1.3.1 Supervisors
Supervisor
Full name
E-Mail
Title
BùiNgọcAnhMsc
Anhbn@fpt.edu.vn
Lecturer
1.1.3.2 Team members
Full name
Student
code
E-mail
Role in
Group
Student 1
NguyễnHồng Nam
01283
Namnh01283@fpt.edu.vn
Team
Leader
Student 2
NguyễnVănSơn
01377
Sonnv01377@fpt.edu.vn
Member
Student 3
DươngThếHải
01651
Haidt01651@fpt.edu.vn
Member
1.2The initial idea
1.2.1 Our Idea
- All most of the websites selling electronics in Vietnam, the world using only their source code open
system based on Joomla, WordPress + E-commerce plugins (woo commerce). They only handle the
general case information, they might not be specific description of electronic components. If you want to
add the product that it owns other information, must add the new school so arduous.
- To create an e-commerce website selling electronic components, fully functional helping users to easily
search for the desired products.
- Building a website with full information about the product (electrical circuits) for users to get a hold of
the products and make the best choice for them.
- Creating a website with clear information for easy using and easy information finding to assist users in
search for the desired products.
- The website will regularly update new products, prices and promotions on the homepage where users
can easily identify and capture new information.
- Supporting users in choosing the payment method online and delivery to help them easily choosing and
buying products without losing too much of time in visiting and choosing in store.
- The website will often have members online counseling to give advice to users and lessen their confuse.
- On the website, each product will be displayed with full information and feedback of users, helping
other users learn more about the products. In addition, the site also supports feedback letting users give
their opinions in products and the site‟s service, to help future users to understand the website‟s operation.
1.2.2 Overview similar existing websites
To learn about online web shopping, we analyzed the advantages and disadvantages of the website:
http://www.hardkernel.com/
http://tme.vn/
http://linhkienvn.com/
http://linhkien4u.com/
Evaluation about http://www.hardkernel.com/:
Advantages:
+ Beautiful interface, easy to use.
+ Integrated forum for members to exchange user experience.
+ Using many different languages.
+ Can check components are compatible with the computer .
+ Easy Payment via PayPal or international bank.
+ Information clearly related products, with video demo and tutorial.
Disadvantages:
+ Cannot search product.
+ No online support.
+ Cannot filter product by brand
Evaluation about http://tme.vn :
Advantages:
+ Clearly catalog
+ Store information appearing on header is convenient for buyers.
+ Have Search function.
+ Have online support
+ Can filter product by brand.
Disadvantages:
+ Must register to buy product online.
+ Complex interface.
Evaluation of http://linhkienvn.com/ :
Advantages:
+ Friendly interface, easy to use.
+ Have buying guide on homepage, help users to easily manipulate.
+ Can buy product without register.
1.1.3 Our Website
After researching and inheriting the advantages of the web page mentioned above, we
build online job searching website. E-commerce website selling electronic components has some
function:
-
-
-
-
-
For guest:
o Can register an account to search for products (by email and phone
number).
o Can view products information in web site.
o Can order products in web site and choose payment method
online(use email and phone number).
o Can view cart information and easily manage cart.
o Can cancel order.
For customer:
o Can login website.
o Can logout website.
o Can search product by: name, price, producer…
o Can view products information in website.
o Can order products in web site and choose payment method online.
o Can view cart information and easily manage cart.
o Can cancel order.
o Can receive order status (by email, sms, account manage in
website)
o Can manage account profile.
For staff:
o Order processing.
o Update order processing.
o Order confirmation.
For Manager:
o Cancel orders.
o Manage system.
For Administrator:
o Manage customer information.
o Add product to database.
o Ban customer account.
Report 2 : Project Management Plan (PMP)
2.1 Software Project Management Plan
The Software Project Management (PMP) provides an overview of the project development
plan. It includes the Problem Definition, Project Overview, Project Organization, Project
Management, Risk management plan, Software Process Model.
2.1.1 Problem Definition
2.1.1.1 Name of this Capstone Project
The official and formal project name is “electronic circuit website”.
2.1.1.2 Problem Abstract
Today, the online website provide a lot of services for people. Some website provide the
services for online selling. Although, the website is not enough better. In the title website
includes: Sensor, IC, MemoryICs, LCD,IGBT, Varistor, Relay. This website provide services
for people who have some knowledge about electronic circuit. The target of website is
electronic circuit. It is not similar the website on the online market. The website usually
provide the information‟s product in the text. It is hard to search. If you want to search, you
must to search full text in text-field of database. Your server run slowly and effective of
server is not high.
2.1.2 Project Overview
2.1.2.1 The proposed system
We decide to create a website where people can easily view product info and customer can
easy order. Our website provide the special services such as: search information, check
way by phone or email (when customer order, they can see the way where the product stay
at here)... User can view a product and product will show details in a table with clearly
statistics. Our services target‟s on user who have experience.
The Website provides 5 types includes: Hot, Selling, Potential, Sell-Off
The process of system:
-
For Guest :
1. Guest can easy to view product, order, search…
2. Guest to easy for resist a new account.
3. Can order products in web site and choose payment method online(use email and
phone number), cancel order.
4. Can view cart information and easily manage cart.
- For Customer:
1. The customer has a lot of services more than guest. They can check the order
include: accept or cancel, where is their product now?...
- For Staff:
1. The Staff will verify information and approve from order form of customer and
guest
2. The Staff will use the system to find out the most suitable information of
customer and guest and the order.
- For Manager:
1. The manager will view information of accounts (customer, staff)
2. The manager will view the order details, total amount in a month, a quarter, a
year...
3. The manager verify the orders what customer want to cancel.
- For Administrator:
1. The Administrator will verify information and approve from registration form of
Staff.
2. The Administrator will use the system to find out the most suitable information
staff.
3. The Administrator will use the system to add product category
The website will provide the following main features in front-end:
o Anyone can access the website and view product or order
o User guide features to help people to know about our process and service.
2.1.2.2 In-scope
In our system, there are following user groups: Manager, Administrator, Staff, Customer,
and Guest.
-
-
-
-
-
For Guest:
o Search information
o View product ( About: price, image, information)
o Register new account (customer account)
o Order
o View Company Information.
For Customer:
o Login, logout into system, forgot password.
o Search information
o View product ( About: price, image, information)
o Order
o Edit profile.
o Check product (cancel or accept, where is the product? In the way or store)
o View Company Information.
o Feedback for product
For Staff:.
o Login, logout into system, recovery forgot password.
o Create, Delete, Edit product
o View, check, agree or cancel the order
o Connect customer, administrator and manager support for customer
o View feedback of customer
o View customer information‟s
o Edit profile.
o Feedback for product
For Manager:
o Login, logout into system, recovery forgot password.
o Search, view: information Administrator, Staff, Customer
o Search, view: order detail‟s
o View feedback of customer
o View customer information‟s
o Edit profile
For Administrator:
o View product ( About: price, image, information)
o Login, logout into system, recovery forgot password.
o Register new account (Staff, Customer)
o Manage Categories (insert, delete, update).
o Manage Account(Staff, Customer): Update, Reset, New, Delete.
o Edit profile
2.1.2.3 Development Environment
Below is the list of hardware and software requirements needed for development
environment:
Hardware requirements:
o Personal computers for developing with the minimum configuration: 4 GB of RAM,
20 GB of hard disk, Core i3 2.0 GHz.
o A server computer for testing with the minimum configuration: 8 GB of RAM, 120
GB of hard disk, Core i7 2.0 GHz.
Software requirements:
o
o
o
o
o
o
Operating system: Windows 7/Windows 8
Web Server: XAMPP v3.2.1
Framework: Yii 2.0
IDE: Eclipse for PHP Developers (Version: Luna Services Release 1a(4.4.1))
DBMS: MySQL
Web browser: Mozilla Firefox, Chrome, Internet Explorer
2.2 Project Organization
2.1.1 Software Process Model
We choose this model because of these main reasons:
o
To build the system incrementally, starting from basic partial system features and
gradually adding more features until the entire system is completed.
o
Allows flexibility in accommodating new requirements or changes of website.
o
Through doing iteratively, we can learn lessons and get experience from previous
iterations to improve more in succeeding iterations.
o
With a model process below, so that testers can take part in project earlier.
Combining with iterative and incremental development process, it can make testers
easier to test and debug during smaller iteration
o
We are the students groups and all are lack of experience. This process model will
help us track and handle almost problem during the project.
Figure 2.1.Iterative and Incremental development process.
2.2.2 Roles and Responsibilities
Mr. Bùi Ngọc Anh
Supervisor
Nguyễn Hồng Nam
Project Manager
User Interface
Doc
Developer
Quality Assurance
Dương Thế Hải
(Team Member)
Nguyễn Hồng Nam
(Team Leader)
Nguyễn Hồng Nam
(Team Leader)
Nguyễn Hồng Nam
(Team Leader)
Dương Thế Hải
(Team Member)
Dương Thế Hải
(Team Member)
Nguyễn Văn Sơn
(Team Member)
Nguyễn Văn Sơn
(Team Member)
Nguyễn Văn Sơn
(Team Member)
No
1
Full name
NguyễnHồng Nam
DươngThếHải
2
3
NguyễnVănSơn
Role in
Group
Responsibilities
PM, Dev,
Designer
Create project plan
Managing process
Create documents, reports
Creating high-level design and coding
framework
Support GUI Design
Coding
Unit testing
GUI Design
Dev ,Doc
Create documents, reports
Creating high-level design and coding
framework
GUI Design
Coding
Unit testing
Dev, Tester,
QA
Support GUI Design
Coding
Support Designing database
Unit testing
Deployment
2.2.3 Tools and Techniques
o
o
o
o
o
o
o
o
o
Language: php
Architecture and design patterns: .
Database: MySQL. SQL Oracle
Development tools: MySQL, XAMP, Eclipese
Unit testing tool: JUnit 4.
Design tools: Astah Professional, Microsoft Visio 2010.
Communication tools: Facebook, Skype, Google mail.
Documents: Microsoft Office(Word, Excel, Project, PowerPoint, Visio)
Web browser: Google Chrome, Mozilla Firefox, Internet Explorer
2.3 Project Management Plan
2.3.1 Risk Management Plan
Risk
Description
Risk type
Probabilit
y
Impact
Risk strategy
Fallback plan
Member is
sick and
Member
unexpected
out team
People
High
Serious
-Member
define a
suitable
schedule to
guarantee
member‟s
health.
- Share work to
other members
to meet work
deadline.
-Announce for
supervisor to
seek to resolve
-Leader share
work for team
member
remain
Conflicts
between team
members
People
High
Serious
-Regularly
organize
team-building
to improve
members‟
spirit.
- Team
members should
make
concession to
each other.
- All team
should analyze
and find a way
to become
reconciled.
Overestimate
or
underestimate
People
High
Serious
Time or work
of project,
Many
members are
working in
companies so
they don‟t
have much
time for
project
- Define detail
plan in each
working
phase.
redistribution
of work
-Work
overtime.
-Work into
Saturday and
Sunday
- Organize
meeting to
remind to all
members that
project is the
most
important.
All member
do not do this
project in 1
place
People
High
Serious
Organize
meetings
regularly.
Organize
video
conference in
every night
and when 1
member has a
problem
Do project in
library of FPT
university
(5h/day)
Do not have
experience in
estimating so
PM can not
estimate
exactly the
time to do
task and time
to develop
Schedule
Moderate
Tolerable
Helping from
supervisors.
Check task
schedule in
everyday to
help each
member to
keep deadline
Helping from
groups before .
They can help
each member to
keep deadline
Can not
contact to
member. Can
not know to
out and not
People
High
Serious
Leader share
work for team
member
remain
- Share work to
other members
to meet work
deadline.
out
-Announce for
supervisor to
seek to resolve
2.3.2 Communication Plan
2.3.2.1. Communication with Supervisor
o Team meets the supervisor every week to get advices for issues, guide for writing
and correcting reports and plan for the next week.
o When having troubles in project, project manager collects ideas from members
and send email or have a meeting with supervisor to get instructions or advices.
o By the report, supervisor will keep in touch with project.
2.3.2.2. Team Project Communication
Planning Phase: team meeting was held twice per week (Monday and Friday). Face to
face meeting is the most effective way for team member to understand and clarify
detailed requirement. Output of each meeting is a meeting minute to keep up important
information.
Implement Phase: All members implement all task that PM and technical leader assigned
on Every week, on Monday, there will be have a meeting when each team member report
to the whole team what he did the previous week, then all member plan the schedule for
upcoming week, and solve the issues together.
Communication Channels:

Email: Gmail.

Instant message: Skype.

Phone: in urgent emergence, phone is a good ways to share the idea.

Face to face meetings.
File Management: using FileZilla in XAMPP tool to share all documents such as
deliverable documents, team rules, meeting minute…
Report 3 : Software Requirement Specifications (SRS)
3.1 System Requirements Specifications (SRS)
The Software Requirement Specification (SRS) provides an overview of the entire
SRS. It includes the System Requirement, User Requirement, Entity – Relationship
Diagram, User Interface, Use Cases.
3.2 User Requirement Specifications
3.2.1 Front-end
3.2.1.1 Guest requirement
They are users who don‟t have account in system.
-
A guest can visit web site and view or order product(image, price)
View user guide and contact of Agency
Can register new account
Use forgot password function
3.2.1.2 Registered User Requirement
Registered user includes customer, seller, administrator and manager. They are users who
already registered and have an account in the system. They can do all function of Guest
and they can be seller, administrator or manager.
For Guest
- View product, order, search…
- Order products, cancel order.
- Can view cart information .
For Customer:
- Search Information (Product‟s name, product options...).
- Create/Edit Profile.
- Comment for product.
- View Product‟s details.
- Order Products
- Check some information of their order (status invoice, product in the way...)
- View some company‟s information.
- Contact seller
- Change Password
- Log out.
For Company (Seller):
-
Comment for product.
View Product‟s details.
Receive customer‟s email and response.
Create/Edit Profile.
Edit product‟s information.
Accept/Create/Edit The Order (Invoice)
Log out.
For Company (Administrator):
-
Create/Edit Profile.
Create/Edit/Delete Product, Category.
Manage the account (customer, seller) include: view, create, edit, delete, block
Log out
For Company (Manager):
-
Create/Edit Profile
Manage the account (customer, seller, administrator) include: view, create, edit, delete,
block
Log out
3.2.2 Back-end
Login into back-end system to do some following function
-
Manage Rules.
Active/Deactivate product post
Manage Product, Category, and Account.
Manage Interview
Verify Information
Search all Product
Search all Account
Search all Invoice
Manage Categories.
3.3 System Requirements Specification (specific Requirement)
3.3.1 External Interface Requirements
3.3.1.1 User Interfaces



Website‟s interface needs to attract the attention of user by simple interface,
clearly content, and easy to use any function of system.
All pages of the website are following a consistent theme and clear structure
Interface needs to be focused on main functions, but keep as simple as possible.
3.3.1.2 Hardware Interfaces

Personal computer for developing with minimum configuration: CPU: Intel core
i3, RAM: 2GB, HDD: 80GB.

Internet network connection with minimum speech 1Mb/s.
3.3.1.3 Software Interfaces



Client side
o
Web browser: Google Chrome, Mozilla Firefox, Co Rom+, Safari, Internet
Exploer.
o
Operating System: any
Server side3.2.1.4 Communications Protocol
HTTP Protocol
The system uses HTTP Protocol to facilitate communication between the client and server,
the client sends a request and the server returns a response.

Email
Used to contact with Customer of Guest. System sends matching email to Customer of
Guest.
3.3.2 Functional Requirements
3.2.2.1 Guest Use-case
Figure 3.2.2.1-1 Guest use case diagram
Id
Name
Use-case No
1
< Guest > Register
UC001
2
< Guest > Order
UC002
3
< Guest >Manage Order
UC003
4
< Guest>View Cart
UC004
5
<Guest>View Order Status
UC005
6
<Guest>Cancel Order
UC006
User case 01: Register
Use Case ID
UC001
Use Case Name
Register
Actor
Guest
Description
In this case, guest fills information in form to register new account.
Precondition
Account must be valid and not exist. Using the correct email and
password.
Trigger
Input account, email and password correctly in the right textbox
then click “sign” button
Post-condition
Register successfully
Version
1.0
Main flows
Step
Actor
Action
1
Guest
Enter website
2
System
Display Register screen with the following fields:
-Account
-Password
-Repassword
-Email
-Sign button
3
Guest
Enter account, email and password into Account, Email, Password
textbox then click “Sign” button.
4
System
Validate account, email and password. If correct, register to system.
Alternative flows
AT1
At step 4 in main flows, if register function fail to validate account, email and
password
Step
Actor
Action
4.1
System
Display Register screen with message “Account is required”
AT2
At step 4 in main flows, if user input no password
Step
Actor
Action
4.2
System
Display Register screen with message “Password is required”
AT3
At step 4 in main flows, if user input password is not similar password
Step
Actor
Action
4.3
System
Display Register screen with message “Repassword is required”
AT4
At step 4 in main flows, if user input no email
Step
Actor
Action
4.4
System
Display Register screen with message “Email is required”
Business Rules
#
Rule Description
BR01
Account doesn‟t have special character, longer than 4 characters less than 20
characters
BR02
Password must be longer than 7 characters and less than 20 characters
BR03
Email doesn‟t have special character
User case 02 :Order
Use Case ID
UC002
Use Case Name
Order
Actor
Guest
Description
In this case, Guest will order the product in website.
Precondition
Input product into cart
Trigger
Input full name, email and telephone, address correctly in the right
textbox then click “Order” button
Post-condition
Order successfully
Version
1.0
Main flows
Step
Actor
Action
1
Guest
Enter website
2
System
Display Order Details screen with the following fields:
-Image Product
-Product ID
-Product Name
-Quality
-Price
-Sum (Quality*Price)
-Total Amount (Total Sum)
-Full Name
-Email
-Telephone Number
-Address
3
Guest
Enter quality, full name, email, telephone number and address into
Quality, Full Name, Email, Telephone Number and Address textbox
then click “Order” button.
4
System
Validate product, quality, email, and telephone number. If correct,
order to system.
Alternative flows
AT1
At step 4 in main flows, if order function fail to validate quality, email and telephone
Step
Actor
Action
4.1
System
Display Order Details screen with message “Quality is required”
AT2
At step 4 in main flows, if user input no email
Step
Actor
Action
4.2
System
Display Order Details screen with message “Email is required”
AT3
At step 4 in main flows, if user input no telephone number
Step
Actor
Action
4.4
System
Display Order Details screen with message “Telephone number is
required”
Business Rules
#
Rule Description
BR01
Quality must be integer and more than 0
BR02
Email doesn‟t have special character
BR03
Telephone must be number
User case 03 :Manage Order
Use Case ID
UC003
Use Case Name
Manage Order
Actor
Guest
Description
In this case, the guest can use Order‟s ID by telephone into staff.
Precondition
Check Order‟s ID.
Trigger
Send Order‟s ID to staff by telephone
Version
1.0
Post-condition
Main flows
Step
Actor
Action
1
Guest
Call staff and provide order‟s id
2
Staff
Response for guest
Alternative flows
AT1
At step 2 in main flows, if Staff check order‟s id is false.
Step
Actor
Action
2.1
staff
Send “Order‟s ID is false” message. The guest send Order‟s ID again.
AT2
At step 2 in main flows, if user is using another telephone.
Step
Actor
Action
2.2
staff
Send “Your telephone is not similar in the order” warning.
AT2
At step 2 in main flows
Step
Actor
Action
2.2
Staff
Send all the order‟s id information for customer.
Business Rules
#
Rule Description
BR01
The Order‟s ID must be true
BR02
The telephone must be similar number in the order.
User case 04 :View Card
Use Case ID
UC004
Use Case Name
View Card
Actor
Guest
Description
Guest can view cart before order
Precondition
Show Order Details
Trigger
On click Image Cart.
Post-condition
Redirect to Order Details page
Version
1.0
Main flows
Step
Actor
Action
1
Guest
Enter website
2
System
Display screen with the following fields:
-Cart Image.
-Number in Cart Image.
-Normally Screen
3
Guest
On click Cart Image.
4
System
Redirect to Order Details page.
Alternative flows
AT1
At step 4 in main flows, if product‟s number is 0.
Step
Actor
Action
4.1
System
Display Order Details screen with message “No product”
AT2
At step 4 in main flows
Step
Actor
Action
4.2
System
Display Order Details screen
Business Rules
#
Rule Description
User case 05 :View Order’s Status
Use Case ID
UC005
Use Case Name
View Order‟s Status
Actor
Guest
Description
In this case, the guest can use Order‟s ID by telephone into staff.
Precondition
Receive Order‟s ID.
Trigger
Send Order‟s ID to staff by telephone
Version
1.0
Post-condition
Main flows
Step
Actor
Action
1
Guest
Call staff and provide order‟s id
2
Staff
Response for guest
Alternative flows
AT1
At step 2 in main flows, if Staff check order‟s id is false.
Step
Actor
Action
2.1
Staff
Send “Order‟s ID is false” message. The guest send Order‟s ID again.
AT2
At step 2 in main flows, if user is using another telephone.
Step
Actor
Action
2.2
Staff
Send “Your telephone is not similar in the order” warning.
AT2
At step 2 in main flows
Step
Actor
Action
2.2
Staff
Send all the order‟s status for customer.
Business Rules
#
Rule Description
BR01
The Order‟s ID must be true
BR02
The telephone must be similar number in the order.
User case 06 :Cancel Order
Use Case ID
UC006
Use Case Name
Cancel Order
Actor
Guest
Description
In this case, the guest can use Order‟s ID by telephone into staff.
Precondition
Receive Order‟s ID.
Trigger
Send Order‟s ID to staff by telephone with “cancel order” message or
call.
Version
1.0
Post-condition
Main flows
Step
Actor
Action
1
Guest
Call staff and provide order‟s id
2
Staff
Response for guest
Alternative flows
AT1
At step 2 in main flows, if Staff check order‟s id is false.
Step
Actor
Action
2.1
Staff
Send “Order‟s ID is false” message. The guest send Order‟s ID again.
AT2
At step 2 in main flows, if user is using another telephone.
Step
Actor
Action
2.2
Staff
Send “Your telephone is not similar in the order” warning.
AT2
At step 2 in main flows
Step
Actor
Action
2.2
Staff
Agree or disagree with this order. Send message to telephone.
Business Rules
#
Rule Description
BR01
The Order‟s ID must be true
BR02
The telephone must be similar number in the order.
3.2.2.2 Customer Use-case
Figure 3.2.2.2-1 Customer use case diagram
Id
Name
Use-case No
7
<Customer> Login
UC007
8
<Customer> Logout
UC008
9
<Customer> Manager Profile
UC009
10
<Customer>Search Product
UC010
11
<Customer> Order
UC011
12
<Customer>Manager Order
UC012
13
<Customer>View Cart
UC013
14
<Customer> View Order‟s Status
UC014
15
<Customer>Cancel Order
UC015
User case 07 :Login
Use Case ID
UC007
Use Case Name
Login
Actor
Guest
Description
Login function allows user to login to website
Precondition
Account must be valid. Using the correct password
Trigger
Input account and password correctly in the right textbox then click
“login” button
Post-condition
Login successfully
Version
1.0
Main flows
Step
Actor
Action
1
Guest
Enter website
2
System
Display Login screen with the following fields:
-Account
-Password
-Login button
3
Guest
Enter account and password into Account, Password textbox then
click “Login” button.
4
System
Validate account and password. If correct, login to system.
Alternative flows
AT1
At step 4 in main flows, if Login function fail to validate email and password
Step
Actor
Action
4.1
System
Display login screen with message “Account or password is
incorrect”
AT2
At step 4 in main flows, if user input no account
Step
Actor
Action
4.2
System
Display login screen with message “Account is required”
AT3
At step 4 in main flows, if user input no password
Step
Actor
Action
4.3
System
Display login screen with message “Password is required”
Business Rules
#
Rule Description
BR01
Account doesn‟t have special character and must be longer than 4 characters and less
than 20 characters
BR02
Password must be longer than 7 characters and less than 20 characters
User case 08 :Logout
Use Case ID
UC008
Use Case Name
Logout
Actor
Customer
Description
Logout function after user to login to website
Version
Precondition
Trigger
Click logout in “Logout” link in website
Post-condition
Login successfully
Main flows
Step
Actor
Action
1
Customer
Enter website
2
System
Display Website screen with the following fields:
-Normal screen.
-“Logout” link (in right-head website screen)
3
Customer
Click “Logout” link
4
System
Clear cookie and session. Reload website.
Alternative flows
Business Rules
#
Rule Description
1.0
User case 09 :Manager Profile
Use Case ID
UC009
Use Case Name
Manager Profile
Actor
Customer
Description
In this case, customer edit profile.
Precondition
Login account successful
Trigger
On click My Profile
Post-condition
Redirect to My Profile page
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website
2
System
Display My Profile screen with the following fields:
-Given name
- Last name
-Email
-Telephone
-Birth Day
-Address
-City
-Update button
3
Customer
Change given name, last name, email, telephone, birth day, address
and city into Given Name, Last Name, Email, Telephone, Birthday
textbox then click “Update” button.
4
System
Validate given name, last name, email, telephone, birth day, address
and city. If correct, Edit Profile to system.
Alternative flows
AT1
At step 4 in main flows, if Edit Profile function fail to validate given name, last
name, email, telephone, birth day, address and city
Step
Actor
Action
4.1
System
Display My Profile screen with message “Edit Fails. Check
information”
AT2
At step 4 in main flows, if user input no given name
Step
Actor
Action
4.2
System
Display My Profile screen with message “Given name is required”
AT3
At step 4 in main flows, if user input no last name
Step
Actor
Action
4.3
System
Display My Profile screen with message “Last name is required”
AT4
At step 4 in main flows, if user input no email
Step
Actor
Action
4.4
System
Display My Profile screen with message “Email is required”
AT5
At step 4 in main flows, if user input no telephone
Step
Actor
Action
4.5
System
Display My Profile screen with message “Telephone is required”
AT6
At step 4 in main flows, if user input no birth day
Step
Actor
Action
4.6
System
Display My Profile screen with message “Birth day is required”
AT7
At step 4 in main flows, if user input no address
Step
Actor
Action
Display My Profile screen with message “Address is required”
4.7
System
AT7
At step 4 in main flows, if user input no city
Step
Actor
Action
4.7
System
Display My Profile screen with message “City is required”
Business Rules
#
Rule Description
BR01
Given name doesn‟t have special character, longer than 0 characters less than 20
characters
BR02
Last name doesn‟t have special character, longer than 0 characters less than 30
characters
BR03
Email doesn‟t have special character
BR04
Telephone must be number
BR05
Birth day must be date
BR06
Address longer than 0 characters and less than 200 characters
BR07
City longer than 0 characters and less than 50 characters
User case 10 :Search
Use Case ID
UC010
Use Case Name
Search
Actor
Customer
Description
Search inform.
Precondition
Login before search.
Trigger
Select searching title, input value into text, click “Search” button
Post-condition
List result
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website
2
System
Display screen with the following fields:
-“Searching” title (All, Supplier, Category...)
-“Search” Text.
-“Search” Button
3
Customer
Choosing search title, input value into “Search” Text. Then click
“Search” button.
4
System
If “Search” is not blank, search to system. Redirect Search page and
list result
Alternative flows
AT1
At step 4 in main flows, if search function fail to validate Search text.
Step
Actor
Action
4.1
System
Display Search screen with message “Check value input text again”
AT2
At step 4 in main flows, if user input no Search
Step
Actor
Action
4.2
System
Display Search screen with message “Value in text is required”
AT3
At step 4 in main flows, if user input no password
Business Rules
#
Rule Description
BR01
Value‟s searching must be more than 0 characters and less than 500 characters
User case 11 :Order
Use Case ID
UC011
Use Case Name
Order
Actor
Customer
Description
In this case, Customer will order the product in website.
Precondition
Login website and input product into cart
Trigger
Input full name, email and telephone, address correctly in the right
textbox then click “Order” button.
Post-condition
Order successfully
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website
2
System
Display Order Details screen with the following fields:
-Image Product
-Product ID
-Quality
-Price
-Sum (Quality*Price)
-Total Amount (Total Sum)
-Full Name
-Email
-Telephone Number
-Address
3
Customer
The website copy customer‟s data into. Customer can change quality,
full name, email, telephone number and address into Quality, Full
Name, Email, Telephone Number and Address textbox then click
“Order” button.
4
System
Validate product, quality, email, and telephone number. If correct,
order to system.
Alternative flows
AT1
At step 4 in main flows, if order function fail to validate quality, email and telephone
Step
Actor
Action
4.1
System
Display Order Details screen with message “Quality is required”
AT2
At step 4 in main flows, if user input no email
Step
Actor
Action
4.2
System
Display Order Details screen with message “Email is required”
AT3
At step 4 in main flows, if user input no telephone number
Step
Actor
Action
4.4
System
Display Order Details screen with message “Telephone number is
required”
Business Rules
#
Rule Description
BR01
Quality must be integer and more than 0
BR02
Email doesn‟t have special character
BR03
Telephone must be number
User case 12 :Manager Order
Use Case ID
UC012
Use Case Name
Manager Order
Actor
Customer
Description
In this case, Customer will view order‟s history
Precondition
Login website
Trigger
Accept My Order‟s History
Post-condition
List customer‟s orders
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website
2
System
Display My Order‟s History screen with the following fields:
-Order‟s ID
-Quality
-Total Amount
-Date
-Status
3
Customer
Click link in My Order‟s History screen
4
System
Redirect to My Order‟s Details. List all information by Order‟s ID.
Alternative flows
Business Rules
#
Rule Description
BR01
Order‟s ID must be exist
BR02
Order‟s ID in Customer‟s account
User case 13 :View Card
Use Case ID
UC013
Use Case Name
View Card
Actor
Customer
Description
Customer can view cart before order
Precondition
Show Order Details
Trigger
On click Image Cart.
Post-condition
Redirect to Order Details page
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website
2
System
Display screen with the following fields:
-Cart Image.
-Number in Cart Image.
-Normally Screen
3
Customer
On click Cart Image.
4
System
Redirect to Order Details page.
Alternative flows
AT1
At step 4 in main flows, if product‟s number is 0.
Step
Actor
Action
4.1
System
Display Order Details screen with message “No product”
AT2
At step 4 in main flows
Step
Actor
Action
4.2
System
Display Order Details screen
Business Rules
#
Rule Description
User case 14 :View Order’s Status
Use Case ID
UC014
Use Case Name
View Order‟s Status
Actor
Customer
Description
In this case, Customer will view order‟s status
Precondition
Login website, order successful
Trigger
Accept My Order‟s History. Then accept My Order‟s ID
Post-condition
List all information by order‟s id
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website, login, and order.
2
System
Display My Order‟s History screen with the following fields:
-Order‟s ID
-Quality
-Total Amount
-Date
-Status
3
Customer
Click link in My Order‟s History screen
4
System
Redirect to My Order‟s Details. List all information by Order‟s ID.
Information include: status.
Alternative flows
Business Rules
#
Rule Description
BR01
Order‟s ID must be exist
BR02
Order‟s ID in Customer‟s account
User case 15 :Cancel Order
Use Case ID
UC015
Use Case Name
Cancel Order
Actor
Customer
Description
In this case, Customer will cancel order
Precondition
Login website, order successful
Trigger
Accept My Order‟s History. Then accept My Order‟s ID
Post-condition
List all information by order‟s id
Version
1.0
Main flows
Step
Actor
Action
1
Customer
Enter website, login, and order.
2
System
Display My Order‟s History screen with the following fields:
-Order‟s ID
-Quality
-Total Amount
-Date
-Status
3
Customer
Click link in My Order‟s History screen
4
System
Redirect to My Order‟s Details. List all information by Order‟s ID.
Information include: status.
5
Customer
Click “Cancel” button
6
System
Cancel Order function to system
Alternative flows
Business Rules
#
Rule Description
BR01
Order‟s ID must be exist
BR02
Order‟s ID in Customer‟s account
VR03
Order‟s status must be wait
3.2.2.3 Seller Use-case
Figure 3.2.2.3-1 Business staff use case diagram
Id
Name
Use-case No
16
< Business staff> Order processing
UC016
17
< Business staff> Update order status
UC017
18
< Business staff> Order confirmation
UC018
User case 16: Order processing
Use Case ID
UC016
Use Case Name
Order processing
Actor
Business staff
Description
In this case, to help business staff handle orders that customer order.
Precondition
Account must be valid and have staff authorities.
Trigger
When business staff log on and click on "Order processing"
Post-condition
Business staff has already accepted.
Version
1.0
Main flows
Step
Actor
Action
1
Staff
Choose Invoice
2
System
Display Invoice information with the following fields:
-product information
-customer or guest information
-time date
-Accept or reject button
3
Staff
Read invoice information and click on “Accept” or “reject” button
4
System
Send mail order status notifications to guest or customers.
Alternative flows
AT1
At step 1 in main flows, if the Invoice was cancel by customers of guest
Step
Actor
Action
1.1
System
Display on screen with message “This order was cancel by guest or
customer”
Business Rules
#
Rule Description
N/A
N/A
User case 17 : Update order status
Use Case ID
UC017
Use Case Name
Update order status
Actor
Business staff
Description
Business staff update order status for customer
Precondition
Staff must be have account
Trigger
When business staff log on and click on "Order processing"
Post-condition
Business staff has already accepted.
Version
1.0
Main flows
Step
Actor
Action
1
Staff
Clicks “Update order status” link on Manage Business Staff page.
2
System
„‟Update order status‟‟ page will be displayed.
3
Staff
Enter text or edit text into order then click “submit” button
4
System
Notification system message
Alternative flows
AT1
At step 4 in main flows, When system sent notify
Step
Actor
Action
4.1
System
Display message “Completed”
#
Rule Description
N/A
N/A
Use case 18 :Order confirmation
Use Case ID
UC018
Use Case Name
Order confirmation
Actor
Business staff
Description
Business staff can go to Order confirmation page that order
confirmation.
Precondition
Staff must be have account
Trigger
When business staff log on and click on " Order confirmation "
Post-condition
Business staff has already accepted.
Version
1.0
Main flows
Step
Actor
Action
1
Staff
Clicks “Order confirmation” link on Manage Business Staff page.
2
System
Order confirmation page will be displayed.
3
Staff
Display message
Alternative flows
AT1
At step 3 in main flows, Display message
Step
Actor
Action
3
System
Display message “Order confirmation”
Business Rules
#
Rule Description
N/A
N/A
3.2.2.4 Administrator Use-case
Figure 3.2.2.4-1 Administrator use case diagram
Id
Name
Use-case No
19
< IT Staff> Manage customer information
UC019
20
< IT Staff> Add product to database
UC020
21
< IT Staff> Ban customer account
UC021
Use case 19 :Manage customer information
Use Case ID
UC019
Use Case Name
Manage customer information
Actor
Administrator Staff
Description
Administrator Staff logged into website, Administrator Staff can
manage customer information.
Precondition
Staff must be have account
Trigger
Click on tab “Manage customer information” on “Manage customer”
page.
Post-condition
Business staff has already accepted.
Version
1.0
Main flows
Step
Actor
Action
1
Staff
Clicks “Manage customer information” link on „Manage customer‟
page.
2
System
Manage customer information” page will be displayed.
Alternative flows
#
Rule Description
N/A
N/A
Use case 20 :Add product to database
Use Case ID
UC020
Use Case Name
Add product to database
Actor
Administrator staff
Description
Administrator Staff logged into website, Administrator Staff can add
product to database.
Precondition
Staff must be have account
Trigger
Click on tab “Add product” on “Manage customer” page.
Post-condition
Staff has already accepted.
Version
1.0
Main flows
Step
Actor
Action
1
Staff
Clicks “Add product” link on „Manage customer‟ page.
2
System
“Add product “page will be displayed.
#
Rule Description
N/A
N/A
Use case 21 :Ban customer account
Use Case ID
UC021
Use Case Name
Ban customer account
Actor
Administrator staff
Description
Administrator Staff logged into website, Administrator Staff can Ban
customer account.
Precondition
Staff must be have account
Trigger
Click on tab “Ban customer account “on “Manage customer” page.
Post-condition
Business staff has already accepted.
Version
1.0
Main flows
Step
Actor
Action
1
Staff
Clicks “Ban customer account” link on „Manage customer‟ page.
2
System
Show all account of customer
#
Rule Description
N/A
N/A
3.2.2.2.5
Manage Use-case
Figure 3.2.2.5-1 Administrator use case diagram
Id
Name
Use-case No
22
< Manage > Cancel Orders
UC001
23
< Manage > Manage System
UC002
Use case 22 :Cancel Orders
Use Case ID
UC022
Use Case Name
Cancel Orders
Actor
Manage
Description
Manage logged to “Manage System” page, Manage can Cancel
Invoice was accept by Staff.
Precondition
Account must be valid and have Manage authorities.
Trigger
Click on Button “Cancel” on “Manage System” page.
Post-condition
Manager has already Cancel this Invoice.
Version
1.0
Main flows
Step
Actor
Action
1
Manage
Click on invoice on “Manage System”
2
System
System will show Invoice information flow:
-Invoice information
-Staff was accept
-time
3
Manage
Click “Cancel Invoice” button
4
System
Show message “This invoice was Cancel by Manage” and send mail
to guest or Customer who was Order.
#
Rule Description
N/A
N/A
Use case 23 :Manage System
Use Case ID
UC023
Use Case Name
Manage System
Actor
Manage
Description
Manage logged to “Manage System” page, this page show all the
Invoice information was accept by staff, show all staff who is
online.
Precondition
Account must be valid and have Manage authorities.
Trigger
Manage logged to “Manage System” page
Post-condition
Manager was login.
Version
Main flows
Step
Actor
Action
1
Manage
Login on “Manage System” page
2
System
Show all website information flow:
-account was ban by Administrator
-product was add
-new invoice
-staff who online
#
Rule Description
N/A
N/A
1.0
3.3.3 Non-Functional Requirements
3.3.3.1 Reliability



Initial data must be collected carefully and correctly
The database must be backed up regularly and can be recovered if necessary
Availability: 99%
3.3 .3.2Security




Website must protect information and data, so that unauthorized users or
systems cannot read or modify them.
For logging in to the website, users need to register first then system will check
authentication with username and password whenever users want to log in.
Password must be: uppercase characters + lowercase characters + number
characters. Length password between 8-12 characters.
User passwords are encrypted using MD5 algorithm.
3.3.3.3Maintainability

Coding standards and naming conventions
-
Strictly follow the coding convention to help improve readability of source code
and make the website more maintainable.
-
Develop website based on Object Oriented Programing paradigm in order to
increase maintainability and extendibility.
3.3.3.4Performance

Load time
-
Every page should be completely displayed within: average 1.5 second and
maximum 5 seconds.
- Searching should return and display the result within 2 seconds.
 Capacity
-
The system should serve correctly and reasonably with at least 1000 online users
at a moment.
- If the system is busy, it has to inform users about that.
 Compatibility
-
The output must be compatible with all common browsers: Mozilla Firefox,
Google Chrome, Safari, Co Rom+, Internet Explorer.
3.4 Entity relationship Diagram
Figure 3.3 : Entity relationship Diagram
Report 4 : System Design Description (SDD)
4.1. Design Overview
- This document describes the technical and UI design of the Electronic Circuit Website (ECW).
It includes the architectural design and the detailed design of common functions and business
functions. It also includes the design of database model, and overall design of user interface.
-The technical design allows system builder to understand the actual hardware and software need
to solve the problem.
-The architectural design describes the overall architecture of the system, and the architecture of
each main component and subsystem. It will describe the patterns being used, the role of each
component and the role of the system in the working environment.
-The database design describes the relationship between entities, and details of each entity. It
uses notations of my SQL as it is the database server for developing the system.
-The user interface design describes the layout of the system, and some design for the screens.
-The detailed design describes static and dynamic structure for each component and function. It
includes class diagram, class explanations, and sequence diagrams of the main use cases. The
detailed design uses notations of YiiFramework as the framework for developing the system
4.2. System Architectural Design
4.2.1 Introduction MVC
The website use
Model – Controller – View
Figure 4.1 :MVC architecture
What is MVC model?
MVC is a software pattern for implementing user interfaces. It divides a given software
application into three interconnected parts, so as to separate internal representations of
information from the ways that information is presented to or accepted from the user. The central
component, the model, consists of application data, business rules, logic, and functions. A view
can be any output representation of information, such as a chart or a diagram. Multiple views of
the same information are possible, such as a bar chart for management and a tabular view for
accountants. The third part, the controller, accepts input and converts it to commands for the
model or view.

A controller can send commands to the model to update the model's state (e.g., editing a
document). It can also send commands to its associated view to change the view's
presentation of the model (e.g., by scrolling through a document).

A model notifies its associated views and controllers when there has been a change in its
state. This notification allows the views to produce updated output, and the controllers to
change the available set of commands. A passive implementation of MVC omits these
notifications, because the application does not require them or the software platform does
not support them.

A view requests information from the model that it needs for generating an output
representation to the user.
Advantages and Disadvantages

Advantages: the MVC model demonstrates professionalism in programming and
design analysis. It is divided into independent components to help develop
applications faster, simpler, easier upgrades and maintenance.

Disadvantages: for small projects applying MVC model caused cumbersome, time
consuming in development process. Time consuming to transits data between
components.
Why do we choose MVC model?

The first thing is that it fits the pattern of ECW: receive request from the user, call
appropriate action, retrieve data and display on view for the user.

Easily manage the complexity of application by dividing the application into three
components: model, view and controller.

Better support for test driven development.

ECW is not complete system, now. We built the system that towards extensibility
and maintainability in the future.
It is good support for application built by project team has many developers and
designers but still managed application features
4.2.2 Component Diagram
Figure 4.2 Component Diagram
4.3. Class Diagram
4.3. 1 Attribute-Category-Product-Order
Figure 4.3.1 Attribute-Category-Product-Order MVC class
4.3. 2 Attribute
Model
Controller
Attribute
AttributeSearch
AttributeController
-$attributeTypes
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
+actionDelete()
+findModel()
«uses»
«uses»
+tableName()
+rules()
+attributeLabels()
+getCategoryAttributes()*
+getProductAttributes()
1
+rules()
+scenarios()
+search()
Send
View
Search
Creat
View
Update
Message
Figure 4.3.2 : Attribute MVC class
4.3. 3 Category
Model
Controller
Attribute
CategoryController
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
+actionDelete()
#findModel()
«uses»
+tableName()
+rules()
+attributeLabels()
+getCategoryAttributes()
+getProductAttributes()
Category
CategoryAttribute
+tableName()
+rules()
+attributeLabels()
+getAttr()
+getCategory()
CategoryRepository
-FIELD_CATEGORY_ID : string
-FIELD_ATTRIBUTE_ID : string
+getAll()
+getTopCategories()
+saveCategory()
CategorySearch
«uses»
+rules()
+scenarios()
+search()
Send
View
Search
Creat
View
Update
Message
Figure 4.3.2 : Category MVC class
+tableName()
+rules()
+attributeLabels()
+beforeValidate()
+beforeDelete()
+getParent()
+getSubCategories()
+getProductCategories()
+getCategoryAttributes()
+getAttrs()
+getFullAttributes()
+getSelectableParents()
4.3. 4 Invoice
Figure 4.3.4 : Invoice MVC class
4.3. 5 Manufacturer
Controller
Model
ManufacturerController
«uses»
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
+actionDelete()
-findModel()
«uses»
Manufacturer
1
+tableName()
+rules()
+attributeLabels()
+getProducts()
ManufacturerSearch
1
+rules()
+scenarios()
+search()
Send
View
Search
Creat
View
Update
Figure 4.3.5: Manufacturer MVC class
4.3. 6 Order
Model
Invoice
Controller
OrderController
«uses»
+behaviors()
+actionIndex()
+actionUpdate()
#findModel()
#findItems()
«uses»
Send
View
Search
Creat
View
Update
-$_paymentStatus
-PAYMENT_STATUS_YES : int = 1
-PAYMENT_STATUS_NO : int = 2
+tableName()
+rules()
+attributeLabels()
+getOrder()
+getPaymentStatus()
+getArrayPaymentStatus()
StoreDetail
Order
-$_orderStatus
-STATUS_CANCEL : int = 3
+tableName()
-STATUS_PROCESSING : int = 2
+rules()
-STATUS_FINISH : int = 1
+attributeLabels()
-STATUS_NEW : int = 0
-$_shipmentStatus
OrderSearch
-STATUS_SHIPMENT_PROCESSING : int = 2
-$customer_name -STATUS_SHIPMENT_YES : int = 1
-STATUS_SHIPMENT_NO : int = 3
+rules()
+scenarios()
+tableName()
+search()
+rules()
+attributeLabels()
+getInvoice()
+getCustomer()
+getOrderItems()
+getStatusLabel()
+getArrayStatus()
+getStatusShipmentLabel()
+getArrayShipmentStatus()
+getInvoiceStatus()
Figure 4.7.6: Order MVC class
4.3. 7 Product
Controller
Model
ProductController
Category
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
+actionDelete()
+actionAttributes()
+actionImages()
+actionAddImage()
+actionSetMainImage()
+actionRemoveImage()
#findModel()
#getCategories()
#getManufacturers()
#getSuppliers()
«uses»
«uses»
+tableName()
+rules()
+attributeLabels()
+beforeValidate()
+beforeDelete()
+getParent()
+getSubCategories()
+getProductCategories()
+getCategoryAttributes()
+getAttrs()
+getFullAttributes()
+getSelectableParents()
Product
Image
+tableName()
+rules()
+attributeLabels()
+getProduct()
Manufacturer
+tableName()
+rules()
+attributeLabels()
+getProducts()
Supplier
ProductSearch
Send
+tableName()
+rules()
+attributeLabels()
+getProducts()
View
Search
Creat
View
Update
+rules()
+scenarios()
+search()
ProductAttributeRepository
+tableName()
+rules()
+attributeLabels()
+getOrderItems()
CategoryRepository
+getProductCategories()
-FIELD_CATEGORY_ID : string +getMainProductCategory()
-FIELD_ATTRIBUTE_ID : string +getMainCategory()
+getProductAttributes()
+getAll()
+getImages()
+getTopCategories()
+getMainImage()
+saveCategory()
+getAttrValue()
+setAttrValue()
ProductCategoryRepository +getManufacturer()
+getSupplier()
-FIELD_ID : string
-FIELD_PRODUCT_ID : string
-FIELD_CATEGORY_ID : string
-FIELD_IS_MAIN : string
+createProduct()
+updateProduct()
+setProductAttributes()
Figure 4.3.7: Product MVC class
4.3.8 Role
Controller
Model
RoleController
AuthAssignment
+behaviors()
+actionIndex()
+actionCreate()
+actionUpdate()
+actionDelete()
+actionView()
#findModel()
#getPermissions()
#preparePermissions()
Send
«uses»
«uses»
+tableName()
+rules()
+attributeLabels()
+getItemName()
User
-TYPE_ROLE : int = 1
+$password : string
-TYPE_PERMISSION : int = 1
+$repassword : string
-$_permissions : object
-$_statusLabel : string
-$_roleLabel : string +tableName()
+rules()
+getStatusLabel()
+attributeLabels()
+getArrayStatus()
+validatePermission()
+getArrayStatus()
+createPermission()
+getRoleLabel()
+updatePermission()
+rules()
+createRole()
+scenarios()
+updateRole()
+attributeLabels()
+loadRolePermissions()
+beforeSave()
+hasUsersByRole()
+hasRolesByPermission()
View
Search
Creat
View
Update
Auth
Figure 4.3.8: Role MVC class
AuthSearch
+$name
+$description
+$recordsPerPage : int = 20
+rules()
+search()
+addCondition()
4.3.9 Site
Order
Model
Controller
Customer
SiteController
«uses»
+behaviors()
+actions()
+actionIndex()
+actionLogin()
+actionLogout()
«uses»
+tableName()
+rules()
+attributeLabels()
+getOrders()
Send
-$_orderStatus
-STATUS_CANCEL : int = 3
-STATUS_PROCESSING : int = 2
-STATUS_FINISH : int = 1
-STATUS_NEW : int = 0
-$_shipmentStatus
-STATUS_SHIPMENT_PROCESSING : int = 2
-STATUS_SHIPMENT_YES : int = 1
-STATUS_SHIPMENT_NO : int = 3
+tableName()
+rules()
+attributeLabels()
+getInvoice()
+getCustomer()
+getOrderItems()
+getStatusLabel()
+getArrayStatus()
+getStatusShipmentLabel()
+getArrayShipmentStatus()
+getInvoiceStatus()
View
Error
Login
Figure 4.3.9: Site Co MVC class
Product
ProductSearch
+tableName()
+rules()
+rules()
+attributeLabels()
+scenarios()
+getOrderItems()
+search()
+getProductCategories()
+getMainProductCategory()
+getMainCategory()
+getProductAttributes()
+getImages()
+getMainImage()
+getAttrValue()
+setAttrValue()
+getManufacturer()
+getSupplier()
4.3.10 Store Detail Controller
Controller
StoreDetailController
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
+actionDelete()
#findModel()
Model
«uses»
«uses»
StoreDetailSearch
+rules()
+scenarios()
+search()
StoreDetail
+tableName()
+rules()
+attributeLabels()
Send
View
Search
Creat
View
Update
Figure 4.3.10: Store Detail MVC class
4.3.11 Supplier
Model
Controller
Supplier
SupplierController
«uses»
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
+actionDelete()
#findModel()
«uses»
+tableName()
+rules()
+attributeLabels()
+getProducts()
Send
View
Search
Creat
View
Update
Figure 4.3.11: Supplier MVC class
SupplierSearch
+rules()
+scenarios()
+search()
4.3.12 User Controller
Model
User
AuthAssignment
Controller
+tableName()
+rules()
+attributeLabels()
+getItemName()
UserController
«uses»
+behaviors()
+actionIndex()
+actionView()
+actionCreate()
+actionUpdate()
#findModel()
«uses»
+$password : string
+$repassword : string
-$_statusLabel : string
-$_roleLabel : string
+getStatusLabel()
+getArrayStatus()
+getArrayStatus()
+getRoleLabel()
+rules()
+scenarios()
+attributeLabels()
+beforeSave()
Send
View
Search
Creat
View
Update
Figure 4.3.12: User Controller
UserSearch
+rules()
+scenarios()
+search()
4.4. Class Diagram Explanation
4.4.1 Attribute
Class
Attribute
Description
Class Attribute will controller the attribute include: Yes or No, Integer,
Numeric... in create attribute page.
Package
Controller
Attributes
Name
Modifier
Type
Description
attributeTypes
protected
Array
List of supported
attribute data types
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an
existing Attribute
model.
actionDelete($id)
public
integer
Deletes an existing
Attribute model.
findModel($id)
protected
integer
Finds the Attribute
model based on its
primary key value.
Methods
Output
Description
Lists all Attribute
models.
integer
Displays a single
Attribute model.
Creates a new
Attribute model.
4.4.2 Category
Class
Category
Description
CategoryController implements the CRUD actions for Category model.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an existing
Category model.
actionDelete($id)
public
integer
Deletes an existing
Category model.
findModel($id)
protected
integer
Finds the Category
model based on its
primary key value
Description
Output
Description
Lists all Category
models.
integer
Displays a single
Category model.
Creates a new
Category model.
4.4.3 Invoice
Class
Invoice
Description
InvoiceController implements the CRUD actions for Category model.
Package
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
Description
Output
Description
Lists all Invoice
models.
4.4.4 Manufacturer
Class
Manufacturer
Description
ManufacturerController implements the CRUD actions for Manufacturer model.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an
existing
Manufacturermode
l.
actionDelete($id)
public
integer
Deletes an existing
Manufacturermode
l.
findModel($id)
protected
integer
Finds the
Manufacturermode
l based on its
primary key value
Description
Output
Description
Lists all
Manufacturermode
ls.
integer
Displays a single
Manufacturermode
l.
Creates a new
Manufacturermode
l.
4.4.5 Order
Class
Order
Description
OrderControllerimplements the CRUD actions for Order model.
Package
Attributes
Name
Modifier
Type
Description
Methods
Name
Modifier
Input
actionIndex()
public
actionUpdate($id)
public
integer
Updates an existing
Order model.
findModel($id)
protected
integer
Finds the Order
model based on its
primary key value.
Output
Description
Lists all Order
models.
4.4.6 Product
Class
Product
Description
ProductController implements the CRUD actions for Productmodel.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an
existing
Productmodel.
actionDelete($id)
public
integer
Deletes an existing
Productmodel.
findModel($id)
protected
integer
Finds the
Productmodel
based on its
primary key value
actionAttributes
public
integer
Set attributes for a
product
($id)
actionImages($id)
public
Description
Output
Description
Lists all
Productmodels.
integer
Displays a single
Productmodel.
Creates a new
Productmodel.
Show product
image
management page
actionAddImage()
public
Add a image
actionSetMainIma
ge()
public
Set a main for
image
actionRemoveImag public
e()
Remove a image
getCategories()
protected
Get category
getManufacturers
protected
Get manufacturers
getSuppliers
protected
Get supplier
4.4.7 Role
Class
Role
Description
RoleControllerimplements the CRUD actions for Rolemodel.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an
existing
Rolemodel.
actionDelete($id)
public
integer
Deletes an
existing
Rolemodel.
findModel($id)
protected
integer
Finds the
Rolemodel based
on its primary
key value
getPermissions()
protected
preparePermissions protected
($post)
Description
Output
Description
Lists all
Rolemodels.
integer
Displays a single
Rolemodel.
Creates a new
Rolemodel.
Get title role
Prepare title role
4.4.8 Site
Class
SiteController
Description
Siteimplements the CRUD actions for Sitemodel.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actions()
public
Check error
actionIndex()
public
Lists all Sitemodels.
actionLogin()
public
Check role of account
actionLogout()
public
Logout and back home
page
Description
Output
Description
4.4.9 StoreDetail
Class
StoreDetail
Description
StoreDetailController implements the CRUD actions for StoreDetail model.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an existing
StoreDetailmodel.
actionDelete($id)
public
integer
Deletes an existing
StoreDetailmodel.
findModel($id)
protected
integer
Finds the
StoreDetailmodel
based on its primary
key value
Description
Output
Description
Lists all
StoreDetailmodels.
integer
Displays a single
StoreDetailmodel.
Creates a new
StoreDetailmodel.
4.4.10 Supplier
Class
Supplier
Description
SupplierControllerimplements the CRUD actions for Supplier model.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an existing
Supplier model.
actionDelete($id)
public
integer
Deletes an existing
Supplier model.
findModel($id)
protected
integer
Finds the Supplier
model based on its
primary key value
Description
Output
Description
Lists all Supplier
models.
integer
Displays a single
Supplier model.
Creates a new
Supplier model.
4.4.11 User
Class
User
Description
UserControllerimplements the CRUD actions for User model.
Package
Controller
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
actionIndex()
public
actionView($id)
public
actionCreate()
public
actionUpdate($id)
public
integer
Updates an existing
User model.
actionDelete($id)
public
integer
Deletes an existing
User model.
findModel($id)
protected
integer
Finds the User
model based on its
primary key value
Description
Output
Description
Lists all User
models.
integer
Displays a single
User model.
Creates a new User
model.
4.4.12 Attribute
Class
Attribute
Description
This is the model class for table "attribute".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName ()
public
Return name of class
rules()
public
Return array of
attribute with titles
attributeLabels()
public
Set label for attribute
Description
Output
Description
getCategoryAttribu public
tes()
Get all attributes of
category
getProductAttribut
es()
Get all attributes of
product
public
4.4.13 Attribute
Class
Attribute
Description
AttributeSearch represents the model behind the search form about
`backend\models\Attribute`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName ()
public
Return name of
class
rules()
public
Return array of
attribute with titles
scenarios()
public
Bypass scenarios()
implementation in
the parent class
search($params)
public
string
Description
Output
Description
Creates data
provider instance
with search query
applied
4.4.14 Auth
Class
Auth
Description
This is the model class for table "auth_item".
Package
models
Attributes
Name
Methods
Modifier
Type
TYPE_ROLE
const
TYPE_PERMISSION
const
Input
Description
Name
Modifier
Output
Description
tableName()
public
Return name of
class
rules()
public
Return array of auth
attributeLabels()
public
Set label for
attribute
validatePermission()
public
Check Permission.
createPermission()
public
Creates a new
Permissionmodel.
updatePermission($na
me)
public
Update a new
Permissionmodel.
createRole($permissio public
ns)
Insert a role with a
new
Permissionmodel.
updateRole($name,
$permissions)
public
Change a role with
aexsitPermissionmo
del.
loadRolePermissions(
$name)
public
Load role of a
Permission from
database
hasUsersByRole($na
me)
public
Check role‟s title of
user
hasRolesByPermissio
n($name)
public
Check role‟s title of
Permission
4.4.15 AuthAssignment
Class
AuthAssignment
Description
This is the model class for table "auth_assignment".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of auth
Description
Output
Description
attributeLabels()
Return a label of
attribute
getItemName()
Get item what chose
4.4.16 AuthSearch
Class
AuthSearch
Description
This is the model class for table "AuthSearch ".
Package
models
Attributes
Name
Methods
Modifier
Type
Description
name
string
Name of auth
description
string
Description of ofauth
recordsPerPage
integer
Auth‟s number in one
page
Name
Modifier
Input
rules()
public
search($params,
$type)
public
string
addCondition($que
ry, $attribute,
$partialMatch =
false)
protected
string
Output
Description
Input a string to name
and description
Search with params
and type what chose
4.4.17 Category
Class
Category
Description
This is the model class for table "category"
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of
category‟s attributes
attributeLabels()
public
Return a label of
category‟s attribute
beforeValidate()
public
Calculate current
Category entity's
levelbefore
validating and
saving.
beforeDelete()
public
Before deleting,
check children
getParent()
public
Get name and id and
parent
getSubCategories()
public
Get name and id and
parent of
subcategory
getProductCategori public
es()
getCategoryAttribu public
Description
Output
Description
tes()
getAttrs()
public
getFullAttributes()
public
Retrieve not only
this category's linked
attributes,but also its
every ancestors'
linked attributes.
getSelectableParen
ts($category)
public
Retrieve a list of
categories that is
selectableto be the
parent of the passed
in category.
4.4.18 CategoryAttribute
Class
CategoryAttribute
Description
This is the model class for table "CategoryAttribute"
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of
category‟s attributes
attributeLabels()
public
Return a label of
category‟s attribute
getAttrs()
public
getCategory()
public
Description
Output
Description
4.4.19 CategorySearch
Class
CategorySearch
Description
CategorySearch represents the model behind the search form about
`backend\models\Category`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of
category‟s attributes
scenarios()
public
Return a label of
category‟s attribute
search($params)
public
Search category
Description
Output
Description
4.4.20 Customer
Class
Customer
Description
This is the model class for table "customer".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of
customer‟s attributes
attributeLabels()
public
Return a label of
customer‟s attribute
getOrder()
public
Get the order
Description
Output
Description
4.4.21 Image
Class
Image
Description
This is the model class for table " Image ".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of
class
rules()
public
Return array of
Image‟s attributes
attributeLabels()
public
Return a label of
Image‟s attribute
getProduct()
public
Get the product‟id
Description
Output
Description
4.4.22 Invoice
Class
Invoice
Description
This is the model class for table "invoice".
Package
models
Attributes
Name
Methods
Modifier
Type
Description
_paymentStatus
integer
Chose title
PAYMENT_STA
TUS_YES
integer
PAYMENT_STA
TUS_NO
integer
Name
Modifier
tableName()
public
Return name of class
rules()
public
Return array of
Invoice‟s attributes
attributeLabels()
public
Return a label of
Invoice‟s attribute
getOrder()
public
Get the order‟s details
with order‟s id
getPaymentStatus() public
getArrayPaymentS
tatus()
public
Input
Output
Description
Return _
paymentStatus to
invoice
4.4.23 Manufacturer
Class
Manufacturer
Description
This is the model class for table "manufacturer".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of
manufacturer‟s
attributes
attributeLabels()
public
Return a label of
manufacturer‟s
attribute
getProduct()
public
Get the product with
Manufacturer‟s ID
Description
Output
Description
4.4.24 ManufacturerSearch
Class
ManufacturerSearch
Description
ManufacturerSearch represents the model behind the search form about
`backend\models\Manufacturer`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
rules()
public
Return array of
manufacturer‟s
attributes
scenarios()
public
bypass scenarios()
implementation in
the parent class
search($params)
public
string
Description
Output
Description
Creates data
provider instance
with search query
applied
4.4.25 Order
Class
Order
Description
This is the model class for table "order".
Package
models
Attributes
Name
Modifier
Type
Description
_orderStatus
private
Integer
Status of order
STATUS_CANCE
L
const
Integer
Status of order
STATUS_PROCE
SSING
const
Integer
Status of order
STATUS_FINISH
const
Integer
Status of order
STATUS_NEW
const
Integer
Status of order
_shipmentStatus
private
Integer
Status of order
STATUS_SHIPM
ENT_PROCESSI
NG
const
Integer
Status of order
STATUS_SHIPM
ENT_YES
const
Integer
Status of order
STATUS_SHIPM
ENT_NO
const
Integer
Status of order
Name
Modifier
Input
tableName()
public
Return name of
class
rules()
public
Return array of
Order‟s attributes
attributeLabels()
public
Return a label of
Order‟sattribute
Methods
Output
Description
getInvoice()
public
getCustomer()
public
getOrderItems()
public
getStatusLabel()
public
getArrayStatus()
public
getStatusShipment
Label()
public
getArrayShipment
Status()
public
getInvoiceStatus()
public
4.4.26 Order_item
Class
Order_item
Description
This is the model class for table "order_item".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of
class
rules()
public
Return array of
Order‟s attributes
attributeLabels()
public
Return a label of
Order‟s attribute
getProduct()
public
Get the product‟id
getOrder()
public
Get the order‟s
details with order‟s
id
Description
Output
Description
4.4.27 OrderSearch
Class
OrderSearch
Description
OrderSearch represents the model behind the search form about
`app\models\Order`.
Package
models
Attributes
Name
Modifier
Type
Description
customer_name
public
string
add customer name
attributes that will
be used to store the
data to be search
Name
Modifier
Input
rules()
public
Return array of
Order‟s attributes
scenarios()
public
bypass scenarios()
implementation in
the parent class
search($params)
public
Methods
string
Output
Description
Creates data
provider instance
with search query
applied
4.4.28 Product
Class
Product
Description
This is the model class for table "product".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of
class
rules()
public
Return array of
Product‟s attributes
attributeLabels()
public
Return a label of
Order‟s attribute
getOrderItems()
public
Get the product‟id
Description
Output
Description
getProductCategori public
es()
getMainProductCat public
egory()
getMainCategory()
public
getProductAttribut
es()
public
getImages()
public
getMainImage()
public
getAttrValue($attri
buteId)
public
Integer
Get the value of an
attribute of this
product
setAttrValue($attri
buteId, $value)
public
getManufacturer()
public
getSupplier()
public
Number
4.4.29 ProductAttribute
Class
ProductAttribute
Description
This is the model class for table "product_attribute".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array of
Product‟s attributes
attributeLabels()
public
Return a label of
Product‟s attribute
getProduct()
public
Get the product‟id
getAttr()
public
getValue()
public
setValue()
public
getValueType()
protected
Description
Output
Description
Get product attribute
value type
4.4.30 ProductCategory
Class
ProductCategory
Description
This is the model class for table "product_category".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of class
rules()
public
Return array
ofattributes
attributeLabels()
public
Return a label of
attribute
getProduct()
public
Get the product‟id
getCategory()
public
Get the category‟s
details with Product‟s
id
Description
Output
Description
4.4.31 ProductSearch
Class
ProductSearch
Description
ProductSearch represents the model behind the search form about
`backend\models\Product`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
rules()
public
Return array of
Productr‟s attributes
scenarios()
public
bypass scenarios()
implementation in
the parent class
search($params)
public
string
Description
Output
Description
Creates data
provider instance
with search query
applied
4.4.32 StoreDetail
Class
StoreDetail
Description
This is the model class for table "store_detail".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of
class
rules()
public
Return array
ofattributes
attributeLabels()
public
Return a label of
attribute
Description
Output
Description
4.4.33 StoreDetailSearch
Class
StoreDetailSearch
Description
StoreDetailSearch represents the model behind the search form about
`app\models\StoreDetail`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
rules()
public
Return array of
StoreDetail‟s
attributes
scenarios()
public
bypass scenarios()
implementation in
the parent class
search($params)
public
string
Description
Output
Description
Creates data
provider instance
with search query
applied
4.4.34 Supplier
Class
Supplier
Description
This is the model class for table "Supplier".
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
tableName()
public
Return name of
class
rules()
public
Return array
ofattributes
attributeLabels()
public
Return a label of
attribute
getProduct()
public
Get the product‟id
Description
Output
Description
4.4.35 SupplierSearch
Class
SupplierSearch
Description
SupplierSearch represents the model behind the search form about
`backend\models\Supplier`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
rules()
public
Return array of
StoreDetail‟s
attributes
scenarios()
public
Bypass scenarios()
implementation in
the parent class
search($params)
public
string
Description
Output
Description
Creates data
provider instance
with search query
applied
4.4.36 User
Class
User
Description
Package
models
Attributes
Name
Modifier
Type
password
public
string
repassword
public
string
_statusLabel
private
integer
_roleLabel
private
string
Name
Modifier
Input
getStatusLabel()
public
getArrayStatus()
public
getArrayRole()
public
getRoleLabel()
public
rules()
public
Return array of
StoreDetail‟s
attributes
scenarios()
public
Bypass scenarios()
implementation in
the parent class
attributeLabels()
public
Return a label of
attribute
beforeSave($insert
)
public
Methods
string
Description
Output
Description
4.4.37 UserSearch
Class
UserSearch
Description
UserSearch represents the model behind the search form about
`backend\models\User`.
Package
models
Attributes
Name
Modifier
Type
Methods
Name
Modifier
Input
rules()
public
Return array of
UserSearch‟s
attributes
scenarios()
public
bypass scenarios()
implementation in
the parent class
search($params)
public
string
Description
Output
Description
Creates data
provider instance
with search query
applied
4.5. Sequence Diagram
4.5.1. Create User
Figure 4.5.1:Create user sequence diagram
Description
Step
Name
Description
1
ActionCreate()
Users perform production
2
Enter data and submit
User enter data and submit
3
Save()
Save in the system
4
Validate data
Information of data to be checked
4.5.2. Create Product
Figure 4.5.2:Create Product sequence diagram
Description
Step
Name
Description
1
ActionCreate()
User get Trainer page from server
2
Enter data and submit
User enter data and submit
3
Save()
Save in the system
4
Validate data
Information of data to be checked
4.5.3. View product
Figure 4.5.3 :View Product sequence diagram
Description
Step
Name
Description
1
ActionView($id)
User action for system processing
2
AttributeLabel()
System load data
3
Display data
Display data for user .
4.5.4. Search Product
Figure 4.5.4. :Search product sequence diagram
Description
Step
Name
Description
1
Findmodel()
User action for system processing
2
Search()
System is processing
3
Enter data and submit
User enter data and submit
4
Return search result
System display search result
4.5.5. Update Product
Figure 4.5.5 :Update product sequence diagram
Description
Step
Name
Description
1
ActionUpdate($id)
User action for system processing
2
Display Data
System display data for user
3
Input Value
User enter data and submit
4
Validate Data
Information of data to be checked
4.5.6. Create Category
Figure 4.5.6:Create category sequence diagram
Description
Step
Name
Description
1
ActionCreate()
User get Trainer page from server
2
Enterdata and submit
User enter data and submit
3
Save()
Save in the system
4
Validate data
Information of data to be checked
4.5.7. Create attribute Product
Figure 4.5.7 : Create attribute sequence diagram
Description
Step
Name
Description
1
ActionCreate()
User get Trainer page from server
2
Enterdata and submit
User enter data and submit
3
Save()
Save in the system
4
Validate data
Information of data to be checked
4.6. User Interface Design
4.6.1 Admin Interface
Figure 4.6.1: Admin Screen flow
4.6.2 Seller Interface
Figure 4.6.2: Seller Screen flow
4.6.3 Manage Interface
Figure 4.6.3: Manage Screen flow
4.6.4 Customer Interface
Figure 4.6.4: Customer Screen flow
4.7 Database Design
Figure 4.7:Database Design
No.
1
Table Name
Description
User
Detailed information of the user. Includes the following
information : id, UserName, Email, Role.
And the information can adjust: Password, Status.
And timelines related to the user such as: At the Create,
Update
2
Customer
List of customer information, including information
such as Id, Name, Phone, Email. And customers can
have a maximum of 3 addresses
3
Invoice
List of billing information. Information of the bill is
very important to have complete all information
4
Store_detail
List all Store detail
5
Product
List all Product ,including information of product that
user can manage to easy
6
Product_category
List all Product category
7
Category
List of category information
8
Category attribute
List all catribute attribute
9
Atribute
List all atribute
10
Product_atribute
List all product atribute
11
Order
List all order
12
Order_item
List all order item
13
Auth_rule
List all authenticate rule
14
Auth_item
List all authenticate item
15
Auth_item_child
List all authenticate item child
16
Auth_assigment
List all authenticate _assigment
List of tables
4.7.1 Table User
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of user
2
Username
VARCHAR(255)
Not null
Username of user
3
Auth_key
VARCHAR (32)
Not null
Auth_key of user
4
Password_hash
VARCHAR (255)
Not null
Password_hash of user
5
Password_reset_token VARCHAR (50)
Not null
Password_reset_toke of user
6
Email
VARCHAR (64)
Not null
Email of user
7
Role
SMALLINT(6)
Not null
Role of user
8
Status
INT
Not null
Status of user
9
Create_at
INT
Not null
Create_atof user
4.7.2 Table Invoice
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Invoice
2
Invoice_status
TINYINT(4)
Not null
Invoice_status of Invoice
3
Invoice_date
DATETIME
Not null
Invoice_dateof Invoice
4
Payment_date
DATETIME
Not null
Payment_dateof Invoice
5
Total_amount
DECIMAL(10,0) Not null
Total_amountof Invoice
6
Other_detail
VARCHAR(255) Not null
Other_detailof Invoice
7
Invoice_code
VARCHAR(255) Not null
Invoice_codeof Invoice
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Store_detail
2
Store_name
VARCHAR(255) Not null
Store_nameofStore_detail
3
Ower_name
VARCHAR(255) Not null
Ower_nameofStore_detail
4
Address1
VARCHAR(255) Not null
Address1of Store_detail
5
Address2
VARCHAR(255) Not null
Address2of Store_detail
6
Address3
VARCHAR(255) Not null
Address3of Store_detail
7
Phone
VARCHAR(255) Not null
Phone of Store_detail
8
Email
VARCHAR(255) Not null
Email of Store_detail
9
Tax
DECIMAL(10,0) Not null
Tax of Store_detail
4.7.3 Table Store_detail
No.
4.7.4 Table Customer
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of customer
2
Name
VARCHAR(255)
Not null
Name of customer
3
Gender
TINIINT(11)
Not null
Gender of customer
4
Email
VARCHAR(255)
Not null
Email of customer
5
Phone
VARCHAR(255)
Not null
Phone of customer
6
Address1
VARCHAR(255)
Not null
Address1 of customer
7
Address2
VARCHAR(255)
Not null
Address2 of customer
8
Address3
VARCHAR(255)
Not null
Address3 of customer
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Order
2
Customer_id
INT
FK,Not null
Customer_idof Order
3
Order_code
VARCHAR(255) Not null
Order_codeof Order
4
Order_status
TINYINT(4)
Not null
Order_statusof Order
5
Order_date
DATETIME
Not null
Order_dateof Order
6
Order_detail
TEXT
Not null
Order_detailof Order
7
Shipment_status
TINYINT(4)
Not null
Shipment_statusof Order
8
Tax
DECIMAL(11,0) Not null
Tax of Order
9
Shipment_price
DECIMAL(10,0) Not null
Shipment_priceof Order
4.7.5 Table Order
No.
4.7.6 Table Order_item
No. Attribute
Type
Constraints
Description
1
Id
INT
PK,
null
Not Identify of Order_item
2
Product_id
INT
FK,Not
null
Product_idofOrder_item
3
Order_id
INT
FK,Not
null
Order_idofOrder_item
4
Order_item_quantity INT
Not null
Order_item_quantityofOrder_item
5
Order_item_price
DECIMAL(10,0) Not null
Order_item_priceofOrder_item
4.7.7 Table Product
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Product
2
Code
VARCHAR(255) FK,Not null
Code of Product
3
Name
VARCHAR(255) FK,Not null
Name of Product
4
Price
DECIMAL(10,0) Not null
Price of Product
5
Quantity
INT
Not null
Quantity of Product
6
Description
TEXT
Not null
Description of Product
7
Short_description
TEXT
Not null
Short_descriptionof Product
8
Feature
TEXT
Not null
Feature of Product
4.7. 8 Table Product_category
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Product_category
2
Product_id
INT
FK,Not null
Product_idofProduct_category
3
Category_id
INT
FK,Not null
Category_idofProduct_category
4
Is_main
INT
Not null
Is_main of Product_category
4.7. 9 Table Product_attribute
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Product_attribute
2
Product_id
INT
FK,Not null
Product_idofProduct_attribute
3
Attribute_id
INT
FK,Not null
Attribute_idofProduct_attribute
4
Value_boolean
TINYINT(1)
Not null
Value_booleanofProduct_attribute
5
Value_int
NT
Not null
Value_intofProduct_attribute
6
Value_double
DOUBLE
Not null
Value_doubleofProduct_attribute
7
Value_varchar
VARCHAR(255) Not null
Value_varcharofProduct_attribute
8
Value_text
TEXT
Value_textof
Not null
4.7.10 Table Category
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Category
2
Parent_id
INT
FK,Not null
Parent_idof Category
3
Name
VARCHAR(255) Not null
Name of Category
4
Level
INT
Level of Category
Not null
4.7.11 Table Category_attribute
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Category_attribute
2
Category_id
INT
FK,Not null
Category_idofCategory_attribute
3
Attribute_id
INT
FK,Not null
Attribute_idofCategory_attribute
4.7.12 Table Attribute
No.
Attribute
Type
Constraints
Description
1
Id
INT
PK, Not null
Identify of Attribute
2
Name
VARCHAR(255) Not null
Name of Attribute
3
Type
VARCHAR(255) Not null
Type of Attribute
4
Is_required
TINYINT(1)
Is_requiredof Attribute
5
Regex
VARCHAR(255) Not null
4.7.13 Table Auth_rule
Not null
Regex of Attribute
No.
Attribute
Type
Constraints
Description
1
Name
VARCHAR(255) PK, Not null
Name of Auth_rule
2
Data
TEXT
Not null
Data of Auth_rule
3
Created_at
INT
Not null
Created_atofAuth_rule
4
Updated_at
INT
Not null
Updated_atofAuth_rule
Attribute
Type
Constraints
Description
1
Name
VARCHAR(255) PK, Not null
Identify of Auth_item
2
Type
INT
Not null
Type of Auth_item
3
Description
TEXT
Not null
Description of Auth_item
4
Rule_name
VARCHAR(64)
Not null
Rule_nameofAuth_item
5
Data
TEXT
Not null
Data of Auth_item
6
Created_at
INT
Not null
Created_atofAuth_item
7
Update_at
INT
Not null
Update_atofAuth_item
4.7.14 Table Auth_item
No.
Table Auth_item_child
No.
1
Attribute
Type
Parent
VARCHAR(64) PK, Not null
Table Auth_assigment
No. Attribute
1
Item_name
Constraints
Description
Identify of Auth_item_child
Type
Constraints
Description
VARCHAR(64)
PK, Not null
Item_nameofAuth_assigment
2
User_id
VARCHAR(64)
FK,Not null
User_idofAuth_assigment
3
Create_at
INT
Not null
Create_atofAuth_assigment
Report No.5: System Implementation & Test (SIT)
5.1 Introduction
5.1.1 System Overview
This document is test report for ECW, produced by quality assurance. It describes
implementation details of test cases or technical detail or how the product features should work.
This will be used to cover all situations arising bugs and validate the quality of our product prior
to release. It also provide test case, defect log which is used to cover all situations arising bug.
The system will be tested is also the system our team are currently developing . This system is
developed based on MVC basic framework .It is a website using for people who want to find a
job .
5.1.2 Test Approach
The testing for this project will consist of Unit test , System test, Integration test , Acceptance
test. It is hoped that there will be at least one full time independent test person for system/
integration test. Most testing will be done by the test manager with the development team‟s
participation.
5.1.3 Test Process
5.1.4 Test Model
Using V-Model to testing model
The V-model represents a software development process (also applicable to hardware
development) which may be considered an extension of the waterfall model. Instead of moving
down in a linear way, the process steps are bent upwards after the coding phase, to form the
typical V shape. The V-Model demonstrates the relationships between each phase of the
development life cycle and its associated phase of testing. The horizontal and vertical axes
represent time or project completeness (left-to-right) and level of abstraction (coarsest-grain
abstraction uppermost), respectively.
With V-Model, software development is separated into two appropriate phases‟ groups:
development and testing. Testing phase is carried out simultaneously from the early of project,
the requirement specification phase. Therefore, tester could study and understand the entire
requirement as well as business of project.
Moreover, there are many variations among planning, design and implementation during the
whole project. To catch up with all changes and ensure logic as well as business, V-model is
chose as a solution to help testers control and follow the actual workflows.
System testing
System testing will be performed by the test manager and implementing team leader with
assistance from the individual developer as required
Acceptance testing
Acceptance testing will be performed by the test manager and development team leader. The
acceptance test will be done for a period of 2 weeks after completion of the system/integration
test process
5.1.5
Function Testing

Testing of all implemented functions on the ECW system.

The testing that will be covered for those functions in function test is
verification the validation of the behavior according to requirements.

Test cases will have to be designed to cover all the above and executed.

Implemented functions error messages will be included under this test.

Loading data measurement also known as start-up performance will be
performed by checking on the response time for read and write data on
application.
5.1.6
GUI testing

GUI test will be performed fully on all screens.

This test is targeted to cover the verification of the overall look and feel of the
ECW system including initial position, font, text size, color, focus, initial
button, tab order, label, screen sizes and sentences width.
5.2 Screen shots/ Performance measures
5.2.1 Home page screen
5.2.2 Product
5.2.3 Product Detail
5.2.4 Order Manager
5.3 Test plan
5.3.1
Features to be tested
o
5.3.2
System Test
Features not to be tested
5.3.3
-
Maintainability
-
Security testing
-
Load Test
Testing Tools and Environment

Testing Tools
o Development framework : Yii2.0
o Database tools : mySQL
o Data managing tools :

Environment Hardware
o Operation system : Window 7.0
o RAM: 4 GB
o CPU: Intel Core i5 2,40GHz

Client Environment
o Google Chrome newest version
5.3.4
Test Milestones
Milestone Task
Resource
Test plan
Test leader
Create UnitTest cases
Developer
Create IntegrationTest
cases
Tester
Create SystemTest cases
Tester
Review UnitTest cases
Project Team
Review IntegrationTest
cases
Project Team
Review SystemTest cases
Project Team
Update Test cases
Tester
Create data test
Tester
5.4 Test case
SystemTest.xls
Test Result

System Test
Start Date
Finish date
Report No.6: System User’s Manual
6.1 Introduction
EWC is a site that sells electronics, it helps users to easily search the electronic devices they
need.
System User‟s Manual that guide people to use effectively, easily.
6.2 User’s Guide
6.2.1 Home page
Figure 1.2.1: Home page guild
1 . Click textbox and write keyword that user need search
2 . Click button
3 .Click on page that user need view
4 .Click on product for view information of product
5 .Click button that order
6 .Click button that view order
6.2.2 Login
Figure 1.2.2: Login page guild
1. Input username
2. Input password
3. Click for remember password
4. Click “Login ” that login on system
6.2.3 Product
Figure 1.2.3: Product page guild
1.Click for log in Dashboard
2. Click for log in Catalogue that manage product , category , attribute , manufacturer , supplier
3. Click for log in Order manage
4. Click for log in Customer manage
5. Click for log in the system that manage staff , editor …
6. Click for create new product
7. Click for search product
8. Click for view , edit , delete product
6.2.4 User
Figure 1.2.4: User page guild
1. Click for create user
2. Click for search user follow” username ” , ”email” , ”role” , ” status” , ”created ”
3.Click for view , edit , delete user
6.2.5 Order
Figure 1.2.5: Order page guild
1. Click for search follow ” order coder”, ”customer name” , ”order status”, ”order date”
2. Click for view order
Download