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