SlideShare ist ein Scribd-Unternehmen logo
1 von 121
Downloaden Sie, um offline zu lesen
FU Marketplace
1
Nguyen Hoang Long
Hoang Thanh Son
Trieu Cong Son
Tran Duc Hieu
Do Hai Dong
Supervisor
Mr. Nguyen Tat Trung
2
1 Introduction
2 Project Management Plan
3 Software Requirement Specification
4 Software Architectural Design
5 Testing
6 Deployment
7 Lesson Learned
Content
8 Demo – Q&A
3
Introduction
4
Background
5
Background
800
1200
Number	
  of	
  lunch	
  servings	
  per	
  day	
  -­‐ 9	
  May	
  2016
Group	
  FU	
  -­‐ Hoà	
  Lấc Cƥm	
  Canteen
6
Background
Search system
Order system
Report system
Review system
Shop management
Order management
7
Background
Can not filter shop:
• By Dorm (e.g. Dom A, Dom B, Dom C)
• By Product Category
Can not search with keyword:
• Shop’s name
• Seller’s name
• Product’s Name
• …
8
Background
Comment to buy
Like to confirm
9
Background
10
Background
11
Background
12
Background
13
Background
14
Our Idea
15
Our Idea
16
q Easy shop searching
q Intuitive order management
q Powerful notification system
q Production Ready!
Main Objectives
17
Scope
In scope
q Shop searching and filtering
q Shop page
q Order management
q Report bad order
q Shop review
q Notification
q Shop management
q Shop analytics
q Admin dashboard
q Multiple languages support
Out of scope
q Suggestion
q Fully functional layout for mobile browser
q Native mobile app
q Payment system
q Chat system
q Feedback for website system
q Looking-for-shipper system
q Inventory Management
q Optimal shop ranking
18
System Proposal
19
Project
Management Plan
20
Iterative and Incremental
Software Process Model
Software Process Model
21
• Time: 8 hours / day, 5 days / week
• Location: Room C203, FPT University Hoa Lac
• Communication:
• Supervisor meeting: Once a week
• Teambuilding: Once a month
Teamwork
22
Project Planning
23
Risk Management
Name Prevention Correction Status
Internet interruptions
All developers have to set up the isolated development
environment and have an offline copy of the
documentation. Using various online communication
tools and creating face-to-face meeting at any
possible time.
Always make sure that there are alternative ways to
connect to the internet, such as: using VPN or 3G.
Closed
Illness or absence of team
members
Member has to notice to the team about absence
period and the plan of how to keep up with the work
process.
Ensure that the absence of a member won’t affect
others and always have plans to deal with this
problem.
Closed
Business problem
Any ideas are welcome but members have to discuss
with others and always focus on the reality and
possibility.
Make sure the business logic of any ideas is
carefully analyzed. Closed
Requirement changed
Team members should carefully analyze and define
requirements. Each new requirement has to be
reviewed by all team members and supervisor.
If there is a “must be changed” requirement, all
team members must join the meeting to decide
whether it should be implemented or not.
Closed
Miscommunication
Everything has to be documented. Any team member
has to attempt to express his/her opinion clearly and
carefully.
Make sure any miscommunication has to be
resolved. Closed
New technology
Choosing technology based on member’s
qualification. All team members must nurture by self-
study.
When someone chooses a new technology, he/she
has to explain to all team members about the
decision.
Closed
24
Project Tools
Docker Draw.io Pivotal Tracker
WebStorm
2016.2.2
GitLab
Astah Pro
v7.0.0
Google Chrome
v52
Microsoft Office
2016
Postman
Visual Studio
Code v1.3.1
25
Technologies
NodeJS SequelizeJS v3 PostgreSQL v9.5
Elasticsearch
v2.3.4
MailgunReactJS v15.1.0
Redis v2.8.9
Docker Amazon S3Redux v3.5.2
26
Requirement
Specification
27
Use Case Diagram
User
Seller
Administrator
28
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
29
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
30
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
31
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
32
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
33
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
34
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
35
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
36
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
37
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
View reject reason of an order
Review shop
38
User
Sign in with Google account
View shop feed
Search shop
Filter shop
View shop
Place order
View orders
Cancel an order
Review shop
View reject reason of an order
39
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
40
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
41
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
42
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
43
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
44
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
45
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
46
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
47
User
Open a new ticket
View all submitted tickets
View a ticket’s detail
Close a ticket
Reopen a ticket
Update account information
Request to become seller
Change language interface
Sign out
View notification
48
Seller
View own shop dashboard
Update shop information
Update shop opening status
Update shop ship places
Change shop avatar
Change shop cover
Add item to shop
Delete an item
Update an item information
Update an item sale status
49
Seller
View own shop dashboard
Update shop information
Update shop opening status
Update shop ship places
Change shop avatar
Change shop cover
Add item to shop
Delete an item
Update an item information
Update an item sale status
50
Seller
View own shop dashboard
Update shop information
Update shop opening status
Update shop ship places
Change shop avatar
Change shop cover
Add item to shop
Update an item sale status
Delete an item
Update an item information
51
Seller
View own shop dashboard
Update shop information
Update shop opening status
Update shop ship places
Change shop avatar
Change shop cover
Add item to shop
Update an item sale status
Delete an item
Update an item information
52
Seller
View own shop dashboard
Update shop information
Update shop opening status
Update shop ship places
Change shop avatar
Change shop cover
Add item to shop
Update an item sale status
Delete an item
Update an item information
53
Seller
View active orders
View all orders
Accept an order
Start shipping an order
Finish an order
View shop statistics
Reject an order
Abort an order
54
Seller
View active orders
View all orders
Accept an order
Start shipping an order
Finish an order
View shop statistics
Reject an order
Abort an order
55
Seller
View active orders
View all orders
Accept an order
Reject an order
Start shipping an order
Abort an order
Finish an order
View shop statistics
56
Seller
View active orders
View all orders
Accept an order
Reject an order
Start shipping an order
Abort an order
Finish an order
View shop statistics
57
Seller
View active orders
View all orders
Accept an order
Reject an order
Start shipping an order
Abort an order
Finish an order
View shop statistics
58
Seller
View active orders
View all orders
Accept an order
Start shipping an order
Finish an order
View shop statistics
Reject an order
Abort an order
59
Administrator
Sign in
Sign out
Change password
Change language interface
Update user information
Update user role
Ban a user
Remove ban from a user
View all users
60
Administrator
Sign in
Sign out
Change password
Change language interface
Update user information
Update user role
Ban a user
Remove ban from a user
View all users
61
Administrator
Sign in
Sign out
Change password
Change language interface
Update user information
Update user role
Ban a user
Remove ban from a user
View all users
62
Administrator
Sign in
Sign out
Change password
Change language interface
Update user information
Update user role
Ban a user
Remove ban from a user
View all users
63
Administrator
View all shops
Update shop contact information
Update shop opening status
Update shop public status
Create a new promotion campaign
Ban shop
Remove ban from shop
Update shop ship places
Update shop avatar
Update shop cover
64
Administrator
View all shops
Update shop contact information
Update shop opening status
Update shop public status
Create a new promotion campaign
Ban shop
Remove ban from shop
Update shop ship places
Update shop avatar
Update shop cover
65
Administrator
View all shops
Update shop contact information
Update shop opening status
Update shop public status
Create a new promotion campaign
Ban shop
Remove ban from shop
Update shop ship places
Update shop avatar
Update shop cover
66
Administrator
View all shop promotion campaigns
Update a shop promotion campaign
View all shop opening requests
Accept shop opening request
Reject shop opening request
Close a ticket
View all tickets
Start investigating a ticket
67
Administrator
View all shop promotion campaigns
Update a shop promotion campaign
View all shop opening requests
Accept shop opening request
Reject shop opening request
Close a ticket
View all tickets
Start investigating a ticket
68
Administrator
View all shop promotion campaigns
Update a shop promotion campaign
View all shop opening requests
Accept shop opening request
Reject shop opening request
Close a ticket
View all tickets
Start investigating a ticket
69
Administrator
View all shop promotion campaigns
Update a shop promotion campaign
View all shop opening requests
Accept shop opening request
Reject shop opening request
Close a ticket
View all tickets
Start investigating a ticket
70
Administrator
View all shop promotion campaigns
Update a shop promotion campaign
View all shop opening requests
Accept shop opening request
Reject shop opening request
Close a ticket
View all tickets
Start investigating a ticket
71
Administrator
View all shop promotion campaigns
Update a shop promotion campaign
View all shop opening requests
Accept shop opening request
Reject shop opening request
Close a ticket
View all tickets
Start investigating a ticket
72
Usability
Performance
• Fully request restricted by token
• All requests are encrypted by HTTPS
Non-functional Requirement
Scalability
Extensibility
Security
73
• Strictly follow coding principles and use ESLint to
verify code convention
• Automation test including Unit Tests and
Integration Tests
Non-functional Requirement
Security
Usability
Performance
Scalability
ExtensibilityExtensibility
74
• Apply Microservices architecture
• Using HAProxy for load balancer and proxy server
• Using ELK Stack to monitor and alert service
Non-functional Requirement
Security
Usability
Performance
Scalability
Extensibility
Scalability
75
• Implement Redis to cache frequently use requests
• Implement background job for external requests,
heavy processing requests
• Create indexes for PostgreSQL
Non-functional Requirement
Security
Usability
Performance
Scalability
Extensibility
Performance
76
• Most of actions can be accomplished within 3
clicks.
• Provide notification-pushing system to help
buyer/seller aware about his order’s status changes
even he/she close web application
• The shops feed should always be updated by using
real-time update over WebSocket
Non-functional Requirement
Security
Usability
Performance
Scalability
Extensibility
Usability
77
Architectural Design
78
Overall system
FUM Web Frontend FUM Backend System
RESTApi
Socket.IO
79
FUM Frontend Design
Token based authentication
POST/login
username=…&password=…
HTTP200
Token:JWT(BearerToken)
GET/api/v1/users/me
X-Access-Token:BearerJWT(BearerToken)
HTTP200
{ id:2,fullName:“TranDucHieu”}
80
FUM Frontend Design
Single page application
A single-page application (SPA) is a web application or web site that fits on a single web page with the
goal of providing a more fluid user experience similar to a desktop application.
Technical approaches
81
FUM Frontend Design
Redux architecture
o Redux architecture revolves around a strict
unidirectional data flow.
o All data in an application follows the same
lifecycle pattern, making app logic more
predictable and easier to understand.
o Three fundamental principles:
o Single source of truth
o State is read-only
o Changes are made with pure functions
Store
View Action
82
FUM Frontend Design
Use	
  Case
83
FUM Backend Design
Use	
  Case
Microservices architecture
• Redis for caching
• Background jobs service
• Elasticsearch for searching, filtering
• Socket.IO for real-time message
transporting
• Amazon S3 for storing images
• OneSignal for Website Push
• Mailgun for sending email
84
Use	
  Case
Database Design – RDB Diagram
85
Use	
  Case
Database Design – Elasticsearch
analyzer:
folding:
tokenizer: "standard",
filter:["lowercase", "asciifolding"]
:	
  Auto	
  created	
  field
86
Database Design – Elasticsearch
Now	
  this	
  shop	
  can	
  be	
  search	
  by:	
  
-­‐ bún chả
-­‐ bun	
  cha
-­‐ bún cha
-­‐ bun	
  chả
87
Database Synchronization
88
Use	
  Case
Why two databases?
Shop Feed data modeling on SQL Database
89
Use	
  Case
Why two databases?
• Join 6 tables to get summary information of a
shop.
• Do full-text search across many fields of
different tables:
• Shop’s name
• Shop’s description
• Items’ name
• Items’ description
• Seller’s name
• Filter shop by at least 2 fields of 2 tables:
ShipPlace and Items’ Category
• Sort shops by some fields: opening status,
average rating,…
è Difficult to accomplish and very low
efficiency to do on Relational Database
System Shop Feed data modeling on SQL Database
90
Shop search query
• Easily to search across multiple fields with
multi_match
• Rank the result with individual field boost
• Auto correction with fuzziness query
• Calculate aggregation (count the number of
shops in each category)
name:	
  2
name.folded:	
  1
description:	
  2
description.folded
seller.fullName:	
  2
seller.fullName.folded:	
  1
items.name:	
  10
items.name.folded:	
  5
items.description:	
  10
items.description.folded:	
  5
91
Background Job Processing
With Background JobWithout Background Job
92
Class diagram
Use case User Place Order 93
Sequence diagram
Use case User Place Order 94
Testing
95
Identify
Requirements
Test
Planning
Design Test
Case
Test
Excuting
Test Result
Report
Bug Fixing
Regression
Testing
Acceptance
Testing
Testing Life – Cycle
96
Testing Type
59
Use	
  Case
API Testing
Integration Testing
Acceptance Testing
Performance Benchmark
Unit Testing
97
FUM - Backend FUM-Front-end
and whole project
§ Lack of UI § UI
§ Unit testing and API testing § Integration testing
§ Business logic
§ Database constraint
§ User Experience
§ User Interface
§ Backend Development team § Tester
§ Automation testing § Manual testing
Test Strategy
98
Testing Tools
Chrome and Chrome Developer Tools: Used for test
size of web page, size of component on page and
view log or inspect element
Pivotal Tracker: Manage bug and task
(www.pivotaltracker.com).
Microsoft Excel: Manage test case
99
Testing Environment
59
Use	
  Case
Software: Google Chrome 52.0
Hardware:
- Windows 7 Professional 32-bit, Service Pack 1
- Intel® Core™ i3
- Install memory (RAM) : 4.00GB
100
Testing Tools - Backend
Mocha: JavaScript test framework running on Node.js and
in the browser
Sinon.js: standalone test spies, stubs and mocks for
JavaScript, to assert result at variable level.
Chaijs: Chai is a BDD / TDD assertion library for node, to
help assertion result in a test
Artillery: a modern load-testing framework, support HTTPS,
WebSockets, Scriptable, HTML reports.
101
Testing Environment - Backend
59
Use	
  Case
Software: Chaijs v3.5.0 Mocha v2.4.5
Sinon v1.17.4 Artillery v1.5.0
Hardware:
- Ubuntu 14.04 64-bit
- Inter® Core™ i3
- Install memory (RAM) : 8.00GB
102
Testing Model
59
Use	
  Case
103
Testing Model – Backend
BDD: Behavior-Driven development
TDD: Test-Driven development
104
Test Case Guideline
59
Use	
  Case
105
Test Case Sample
59
Use	
  Case
Normal	
  Flow
1. Login to FUM System.
2. Click to “Account”.
3. Change	
  phone	
  number
4. Click to “Save” button
Alternative	
  Flow
1. Login to FUM System.
2. Click to “Account”.
3. Click	
  to	
   button
106
Test Case Guideline - Backend
59
Use	
  Case
107
Test Case Sample - Backend
59
Use	
  Case
108
Benchmark Scenario
59
Use	
  Case
109
Log bugs process
59
Use	
  Case
1. Tester or developer detects defect
à Log bug on PivotalTracker à assign to related developer.
2. Developer START fix bug
àChange status of bug to DELIVERED and assign to tester again
3. Tester check bug again
• If bug fixed, requester ACCEPT bug
• If bug didn’t fixed, REJECT bug and re-assign to developer, developer RESTART fix bug and flow
to step 2
110
Log bugs process
59
Use	
  Case
111
Test Report
59
Use	
  Case
Test Case
Stage 1 Stage 2-1 Stage 2-2
Final
Pass Fail Pass Fail Pass Fail
Client
User 70 16 158 6 164 0 164
Seller 65 7 90 21 111 0 111
Admin 140 8 149 10 159 0 159
GUI Test Case 12 2 12 0 12 0 12
Total all Test Case 287 129 409 41 446 0 446
112
Test Report - Automation test
59
Use Case
Test case
Phase 1 Phase 2
Final
Pass Fail Pass Fail
API Test - User 46 0 93 0 93
API Test - Admin 52 0 67 0 67
API Test - Seller 58 0 91 0 91
Unit test - Library 0 0 8 0 8
Unit test - Middleware 6 0 6 0 6
Unit test - Model 43 0 87 0 97
Total all test case 205 0 352 0 352
Coverage
Statements 85.32% 86.99% 86.99%
Branches 73.12% 74.38% 74.38%
Functions 96.13% 94.32% 94.32%
Lines 90.34% 87.55% 87.55%
113
Automation Test Coverage Report
59
Use	
  Case
114
Benchmark Report
59
Use	
  Case
115
Deployment
116
Deployment
Use	
  Case
Continuous Integration (CI) + Continuous Delivery (CD)
117
Deployment
59
Use	
  Case
118
Lesson Learned
119
Teamwork Management Skill
Requirements
Analysis
New Technology
120
DEMO & QA
121

Weitere ähnliche Inhalte

Andere mochten auch

Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonYi-Fan Chu
 
サイエンスアイランドプロジェクト:リーフレット,science islands project: leaflet
サイエンスアイランドプロジェクト:リーフレット,science islands project: leafletサイエンスアイランドプロジェクト:リーフレット,science islands project: leaflet
サイエンスアイランドプロジェクト:リーフレット,science islands project: leafletSatoshi Makita
 
Hosting MongoDB & our experience with database as a service
Hosting MongoDB & our experience with database as a serviceHosting MongoDB & our experience with database as a service
Hosting MongoDB & our experience with database as a serviceGrzegorz GwoĹşdĹş
 
When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...
When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...
When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...Sightlines
 
2016 State of Facilities in Higher Education
2016 State of Facilities in Higher Education2016 State of Facilities in Higher Education
2016 State of Facilities in Higher EducationSightlines
 
Business envoirnment assigment BTEC HND
Business envoirnment assigment BTEC HND Business envoirnment assigment BTEC HND
Business envoirnment assigment BTEC HND Hijaz Ahamed
 
Smart Machines: Driving the 4th Industrial Revolution?
Smart Machines: Driving the 4th Industrial Revolution?Smart Machines: Driving the 4th Industrial Revolution?
Smart Machines: Driving the 4th Industrial Revolution?Bijilash Babu
 
Pemanasan global
Pemanasan globalPemanasan global
Pemanasan globalzaira zue
 
Latest achmad noviar CV with photo
Latest achmad noviar CV with photoLatest achmad noviar CV with photo
Latest achmad noviar CV with photoAchmad Noviar
 
Klorofil-a
Klorofil-aKlorofil-a
Klorofil-afannym21
 

Andere mochten auch (11)

Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
サイエンスアイランドプロジェクト:リーフレット,science islands project: leaflet
サイエンスアイランドプロジェクト:リーフレット,science islands project: leafletサイエンスアイランドプロジェクト:リーフレット,science islands project: leaflet
サイエンスアイランドプロジェクト:リーフレット,science islands project: leaflet
 
Hosting MongoDB & our experience with database as a service
Hosting MongoDB & our experience with database as a serviceHosting MongoDB & our experience with database as a service
Hosting MongoDB & our experience with database as a service
 
When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...
When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...
When You Come to a Fork in the Road, Take It: Rutgers & Sightlines ERAPPA 201...
 
2016 State of Facilities in Higher Education
2016 State of Facilities in Higher Education2016 State of Facilities in Higher Education
2016 State of Facilities in Higher Education
 
Business envoirnment assigment BTEC HND
Business envoirnment assigment BTEC HND Business envoirnment assigment BTEC HND
Business envoirnment assigment BTEC HND
 
Smart Machines: Driving the 4th Industrial Revolution?
Smart Machines: Driving the 4th Industrial Revolution?Smart Machines: Driving the 4th Industrial Revolution?
Smart Machines: Driving the 4th Industrial Revolution?
 
Pemanasan global
Pemanasan globalPemanasan global
Pemanasan global
 
Latest achmad noviar CV with photo
Latest achmad noviar CV with photoLatest achmad noviar CV with photo
Latest achmad noviar CV with photo
 
Klorofil-a
Klorofil-aKlorofil-a
Klorofil-a
 
PPL: Composing Tasks
PPL: Composing TasksPPL: Composing Tasks
PPL: Composing Tasks
 

Ähnlich wie FU Marketplace Documentation

Six success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLC
Six success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLCSix success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLC
Six success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLCMinnesota Chamber of Commerce
 
Crelo Pitch Deck
Crelo Pitch DeckCrelo Pitch Deck
Crelo Pitch DeckStephen Omondi
 
Aglo16 9
Aglo16 9Aglo16 9
Aglo16 9David Wong
 
Seller Onboarding - Day 3 - Listing and Profiling
Seller Onboarding - Day 3 - Listing and ProfilingSeller Onboarding - Day 3 - Listing and Profiling
Seller Onboarding - Day 3 - Listing and ProfilingSellOnFlipkart
 
Growth hacking 101 - Matt Lerner
Growth hacking 101 - Matt LernerGrowth hacking 101 - Matt Lerner
Growth hacking 101 - Matt LernerMatt Lerner
 
Group 2 inst. process_godrej_interio
Group 2 inst. process_godrej_interioGroup 2 inst. process_godrej_interio
Group 2 inst. process_godrej_interioSwarit Yadav
 
OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...
OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...
OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...Mike Clark
 
Punchout Catalogs, Electronic Purchase Orders and Invoices
Punchout Catalogs, Electronic Purchase Orders and InvoicesPunchout Catalogs, Electronic Purchase Orders and Invoices
Punchout Catalogs, Electronic Purchase Orders and InvoicesGreenwing Technology, Inc.
 
Effective Meetings for Management Consultants & Analysts
Effective Meetings for Management Consultants & AnalystsEffective Meetings for Management Consultants & Analysts
Effective Meetings for Management Consultants & AnalystsAsen Gyczew
 
Chapter 8. personal selling
Chapter 8. personal sellingChapter 8. personal selling
Chapter 8. personal sellingJags Jagdish
 
Part II Annotated References (25 points)Length 2 pages.docx
Part II Annotated References (25 points)Length 2 pages.docxPart II Annotated References (25 points)Length 2 pages.docx
Part II Annotated References (25 points)Length 2 pages.docxdanhaley45372
 
MULTI STORES FOR ANY OCCASION
MULTI STORES FOR ANY OCCASIONMULTI STORES FOR ANY OCCASION
MULTI STORES FOR ANY OCCASIONAkarshaSingirikonda
 
Cliqsrc: How to Import from China to Philippines, Hassle-free!
Cliqsrc: How to Import from China to Philippines, Hassle-free!Cliqsrc: How to Import from China to Philippines, Hassle-free!
Cliqsrc: How to Import from China to Philippines, Hassle-free!Yvette Quiwa
 
DSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdf
DSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdfDSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdf
DSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdfBhushan Mali
 
Understanding your seller panel
Understanding your seller panelUnderstanding your seller panel
Understanding your seller panelPaytm
 
Funnel Analysis for Management Consultants & Business Analysts
Funnel Analysis for Management Consultants & Business AnalystsFunnel Analysis for Management Consultants & Business Analysts
Funnel Analysis for Management Consultants & Business AnalystsAsen Gyczew
 
Database Management Systems Project Report
Database Management Systems Project ReportDatabase Management Systems Project Report
Database Management Systems Project ReportSheena Nguyen
 
Sales Forecasting for Management Consultants & Business Analysts
Sales Forecasting for Management Consultants & Business AnalystsSales Forecasting for Management Consultants & Business Analysts
Sales Forecasting for Management Consultants & Business AnalystsAsen Gyczew
 

Ähnlich wie FU Marketplace Documentation (20)

Six success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLC
Six success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLCSix success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLC
Six success factors of sales, Gary Braun, Partner, Pivotal Advisors, LLC
 
Crelo Pitch Deck
Crelo Pitch DeckCrelo Pitch Deck
Crelo Pitch Deck
 
E Market Place
E Market PlaceE Market Place
E Market Place
 
Aglo16 9
Aglo16 9Aglo16 9
Aglo16 9
 
Seller Onboarding - Day 3 - Listing and Profiling
Seller Onboarding - Day 3 - Listing and ProfilingSeller Onboarding - Day 3 - Listing and Profiling
Seller Onboarding - Day 3 - Listing and Profiling
 
Growth hacking 101 - Matt Lerner
Growth hacking 101 - Matt LernerGrowth hacking 101 - Matt Lerner
Growth hacking 101 - Matt Lerner
 
Group 2 inst. process_godrej_interio
Group 2 inst. process_godrej_interioGroup 2 inst. process_godrej_interio
Group 2 inst. process_godrej_interio
 
OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...
OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...
OMG 2015 Business Architecture Innovation Summit - Customer Experience Archit...
 
Punchout Catalogs, Electronic Purchase Orders and Invoices
Punchout Catalogs, Electronic Purchase Orders and InvoicesPunchout Catalogs, Electronic Purchase Orders and Invoices
Punchout Catalogs, Electronic Purchase Orders and Invoices
 
Effective Meetings for Management Consultants & Analysts
Effective Meetings for Management Consultants & AnalystsEffective Meetings for Management Consultants & Analysts
Effective Meetings for Management Consultants & Analysts
 
Chapter 8. personal selling
Chapter 8. personal sellingChapter 8. personal selling
Chapter 8. personal selling
 
Part II Annotated References (25 points)Length 2 pages.docx
Part II Annotated References (25 points)Length 2 pages.docxPart II Annotated References (25 points)Length 2 pages.docx
Part II Annotated References (25 points)Length 2 pages.docx
 
MULTI STORES FOR ANY OCCASION
MULTI STORES FOR ANY OCCASIONMULTI STORES FOR ANY OCCASION
MULTI STORES FOR ANY OCCASION
 
Cliqsrc: How to Import from China to Philippines, Hassle-free!
Cliqsrc: How to Import from China to Philippines, Hassle-free!Cliqsrc: How to Import from China to Philippines, Hassle-free!
Cliqsrc: How to Import from China to Philippines, Hassle-free!
 
DSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdf
DSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdfDSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdf
DSBM MCQS OF ALL CHAPTERS PDF. 0815(1).pdf
 
Understanding your seller panel
Understanding your seller panelUnderstanding your seller panel
Understanding your seller panel
 
Funnel Analysis for Management Consultants & Business Analysts
Funnel Analysis for Management Consultants & Business AnalystsFunnel Analysis for Management Consultants & Business Analysts
Funnel Analysis for Management Consultants & Business Analysts
 
Database Management Systems Project Report
Database Management Systems Project ReportDatabase Management Systems Project Report
Database Management Systems Project Report
 
Sales Forecasting for Management Consultants & Business Analysts
Sales Forecasting for Management Consultants & Business AnalystsSales Forecasting for Management Consultants & Business Analysts
Sales Forecasting for Management Consultants & Business Analysts
 
A5_DellSubmission.pptx
A5_DellSubmission.pptxA5_DellSubmission.pptx
A5_DellSubmission.pptx
 

KĂźrzlich hochgeladen

Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 

KĂźrzlich hochgeladen (20)

Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 

FU Marketplace Documentation

  • 2. Nguyen Hoang Long Hoang Thanh Son Trieu Cong Son Tran Duc Hieu Do Hai Dong Supervisor Mr. Nguyen Tat Trung 2
  • 3. 1 Introduction 2 Project Management Plan 3 Software Requirement Specification 4 Software Architectural Design 5 Testing 6 Deployment 7 Lesson Learned Content 8 Demo – Q&A 3
  • 6. Background 800 1200 Number  of  lunch  servings  per  day  -­‐ 9  May  2016 Group  FU  -­‐ HoĂ   Lấc CĆĄm  Canteen 6
  • 7. Background Search system Order system Report system Review system Shop management Order management 7
  • 8. Background Can not filter shop: • By Dorm (e.g. Dom A, Dom B, Dom C) • By Product Category Can not search with keyword: • Shop’s name • Seller’s name • Product’s Name • … 8
  • 17. q Easy shop searching q Intuitive order management q Powerful notification system q Production Ready! Main Objectives 17
  • 18. Scope In scope q Shop searching and filtering q Shop page q Order management q Report bad order q Shop review q Notification q Shop management q Shop analytics q Admin dashboard q Multiple languages support Out of scope q Suggestion q Fully functional layout for mobile browser q Native mobile app q Payment system q Chat system q Feedback for website system q Looking-for-shipper system q Inventory Management q Optimal shop ranking 18
  • 21. Iterative and Incremental Software Process Model Software Process Model 21
  • 22. • Time: 8 hours / day, 5 days / week • Location: Room C203, FPT University Hoa Lac • Communication: • Supervisor meeting: Once a week • Teambuilding: Once a month Teamwork 22
  • 24. Risk Management Name Prevention Correction Status Internet interruptions All developers have to set up the isolated development environment and have an offline copy of the documentation. Using various online communication tools and creating face-to-face meeting at any possible time. Always make sure that there are alternative ways to connect to the internet, such as: using VPN or 3G. Closed Illness or absence of team members Member has to notice to the team about absence period and the plan of how to keep up with the work process. Ensure that the absence of a member won’t affect others and always have plans to deal with this problem. Closed Business problem Any ideas are welcome but members have to discuss with others and always focus on the reality and possibility. Make sure the business logic of any ideas is carefully analyzed. Closed Requirement changed Team members should carefully analyze and define requirements. Each new requirement has to be reviewed by all team members and supervisor. If there is a “must be changed” requirement, all team members must join the meeting to decide whether it should be implemented or not. Closed Miscommunication Everything has to be documented. Any team member has to attempt to express his/her opinion clearly and carefully. Make sure any miscommunication has to be resolved. Closed New technology Choosing technology based on member’s qualification. All team members must nurture by self- study. When someone chooses a new technology, he/she has to explain to all team members about the decision. Closed 24
  • 25. Project Tools Docker Draw.io Pivotal Tracker WebStorm 2016.2.2 GitLab Astah Pro v7.0.0 Google Chrome v52 Microsoft Office 2016 Postman Visual Studio Code v1.3.1 25
  • 26. Technologies NodeJS SequelizeJS v3 PostgreSQL v9.5 Elasticsearch v2.3.4 MailgunReactJS v15.1.0 Redis v2.8.9 Docker Amazon S3Redux v3.5.2 26
  • 29. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 29
  • 30. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 30
  • 31. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 31
  • 32. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 32
  • 33. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 33
  • 34. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 34
  • 35. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 35
  • 36. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 36
  • 37. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 37
  • 38. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order View reject reason of an order Review shop 38
  • 39. User Sign in with Google account View shop feed Search shop Filter shop View shop Place order View orders Cancel an order Review shop View reject reason of an order 39
  • 40. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 40
  • 41. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 41
  • 42. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 42
  • 43. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 43
  • 44. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 44
  • 45. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 45
  • 46. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 46
  • 47. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 47
  • 48. User Open a new ticket View all submitted tickets View a ticket’s detail Close a ticket Reopen a ticket Update account information Request to become seller Change language interface Sign out View notification 48
  • 49. Seller View own shop dashboard Update shop information Update shop opening status Update shop ship places Change shop avatar Change shop cover Add item to shop Delete an item Update an item information Update an item sale status 49
  • 50. Seller View own shop dashboard Update shop information Update shop opening status Update shop ship places Change shop avatar Change shop cover Add item to shop Delete an item Update an item information Update an item sale status 50
  • 51. Seller View own shop dashboard Update shop information Update shop opening status Update shop ship places Change shop avatar Change shop cover Add item to shop Update an item sale status Delete an item Update an item information 51
  • 52. Seller View own shop dashboard Update shop information Update shop opening status Update shop ship places Change shop avatar Change shop cover Add item to shop Update an item sale status Delete an item Update an item information 52
  • 53. Seller View own shop dashboard Update shop information Update shop opening status Update shop ship places Change shop avatar Change shop cover Add item to shop Update an item sale status Delete an item Update an item information 53
  • 54. Seller View active orders View all orders Accept an order Start shipping an order Finish an order View shop statistics Reject an order Abort an order 54
  • 55. Seller View active orders View all orders Accept an order Start shipping an order Finish an order View shop statistics Reject an order Abort an order 55
  • 56. Seller View active orders View all orders Accept an order Reject an order Start shipping an order Abort an order Finish an order View shop statistics 56
  • 57. Seller View active orders View all orders Accept an order Reject an order Start shipping an order Abort an order Finish an order View shop statistics 57
  • 58. Seller View active orders View all orders Accept an order Reject an order Start shipping an order Abort an order Finish an order View shop statistics 58
  • 59. Seller View active orders View all orders Accept an order Start shipping an order Finish an order View shop statistics Reject an order Abort an order 59
  • 60. Administrator Sign in Sign out Change password Change language interface Update user information Update user role Ban a user Remove ban from a user View all users 60
  • 61. Administrator Sign in Sign out Change password Change language interface Update user information Update user role Ban a user Remove ban from a user View all users 61
  • 62. Administrator Sign in Sign out Change password Change language interface Update user information Update user role Ban a user Remove ban from a user View all users 62
  • 63. Administrator Sign in Sign out Change password Change language interface Update user information Update user role Ban a user Remove ban from a user View all users 63
  • 64. Administrator View all shops Update shop contact information Update shop opening status Update shop public status Create a new promotion campaign Ban shop Remove ban from shop Update shop ship places Update shop avatar Update shop cover 64
  • 65. Administrator View all shops Update shop contact information Update shop opening status Update shop public status Create a new promotion campaign Ban shop Remove ban from shop Update shop ship places Update shop avatar Update shop cover 65
  • 66. Administrator View all shops Update shop contact information Update shop opening status Update shop public status Create a new promotion campaign Ban shop Remove ban from shop Update shop ship places Update shop avatar Update shop cover 66
  • 67. Administrator View all shop promotion campaigns Update a shop promotion campaign View all shop opening requests Accept shop opening request Reject shop opening request Close a ticket View all tickets Start investigating a ticket 67
  • 68. Administrator View all shop promotion campaigns Update a shop promotion campaign View all shop opening requests Accept shop opening request Reject shop opening request Close a ticket View all tickets Start investigating a ticket 68
  • 69. Administrator View all shop promotion campaigns Update a shop promotion campaign View all shop opening requests Accept shop opening request Reject shop opening request Close a ticket View all tickets Start investigating a ticket 69
  • 70. Administrator View all shop promotion campaigns Update a shop promotion campaign View all shop opening requests Accept shop opening request Reject shop opening request Close a ticket View all tickets Start investigating a ticket 70
  • 71. Administrator View all shop promotion campaigns Update a shop promotion campaign View all shop opening requests Accept shop opening request Reject shop opening request Close a ticket View all tickets Start investigating a ticket 71
  • 72. Administrator View all shop promotion campaigns Update a shop promotion campaign View all shop opening requests Accept shop opening request Reject shop opening request Close a ticket View all tickets Start investigating a ticket 72
  • 73. Usability Performance • Fully request restricted by token • All requests are encrypted by HTTPS Non-functional Requirement Scalability Extensibility Security 73
  • 74. • Strictly follow coding principles and use ESLint to verify code convention • Automation test including Unit Tests and Integration Tests Non-functional Requirement Security Usability Performance Scalability ExtensibilityExtensibility 74
  • 75. • Apply Microservices architecture • Using HAProxy for load balancer and proxy server • Using ELK Stack to monitor and alert service Non-functional Requirement Security Usability Performance Scalability Extensibility Scalability 75
  • 76. • Implement Redis to cache frequently use requests • Implement background job for external requests, heavy processing requests • Create indexes for PostgreSQL Non-functional Requirement Security Usability Performance Scalability Extensibility Performance 76
  • 77. • Most of actions can be accomplished within 3 clicks. • Provide notification-pushing system to help buyer/seller aware about his order’s status changes even he/she close web application • The shops feed should always be updated by using real-time update over WebSocket Non-functional Requirement Security Usability Performance Scalability Extensibility Usability 77
  • 79. Overall system FUM Web Frontend FUM Backend System RESTApi Socket.IO 79
  • 80. FUM Frontend Design Token based authentication POST/login username=…&password=… HTTP200 Token:JWT(BearerToken) GET/api/v1/users/me X-Access-Token:BearerJWT(BearerToken) HTTP200 { id:2,fullName:“TranDucHieu”} 80
  • 81. FUM Frontend Design Single page application A single-page application (SPA) is a web application or web site that fits on a single web page with the goal of providing a more fluid user experience similar to a desktop application. Technical approaches 81
  • 82. FUM Frontend Design Redux architecture o Redux architecture revolves around a strict unidirectional data flow. o All data in an application follows the same lifecycle pattern, making app logic more predictable and easier to understand. o Three fundamental principles: o Single source of truth o State is read-only o Changes are made with pure functions Store View Action 82
  • 83. FUM Frontend Design Use  Case 83
  • 84. FUM Backend Design Use  Case Microservices architecture • Redis for caching • Background jobs service • Elasticsearch for searching, filtering • Socket.IO for real-time message transporting • Amazon S3 for storing images • OneSignal for Website Push • Mailgun for sending email 84
  • 85. Use  Case Database Design – RDB Diagram 85
  • 86. Use  Case Database Design – Elasticsearch analyzer: folding: tokenizer: "standard", filter:["lowercase", "asciifolding"] :  Auto  created  field 86
  • 87. Database Design – Elasticsearch Now  this  shop  can  be  search  by:   -­‐ bĂşn chả -­‐ bun  cha -­‐ bĂşn cha -­‐ bun  chả 87
  • 89. Use  Case Why two databases? Shop Feed data modeling on SQL Database 89
  • 90. Use  Case Why two databases? • Join 6 tables to get summary information of a shop. • Do full-text search across many fields of different tables: • Shop’s name • Shop’s description • Items’ name • Items’ description • Seller’s name • Filter shop by at least 2 fields of 2 tables: ShipPlace and Items’ Category • Sort shops by some fields: opening status, average rating,… è Difficult to accomplish and very low efficiency to do on Relational Database System Shop Feed data modeling on SQL Database 90
  • 91. Shop search query • Easily to search across multiple fields with multi_match • Rank the result with individual field boost • Auto correction with fuzziness query • Calculate aggregation (count the number of shops in each category) name:  2 name.folded:  1 description:  2 description.folded seller.fullName:  2 seller.fullName.folded:  1 items.name:  10 items.name.folded:  5 items.description:  10 items.description.folded:  5 91
  • 92. Background Job Processing With Background JobWithout Background Job 92
  • 93. Class diagram Use case User Place Order 93
  • 94. Sequence diagram Use case User Place Order 94
  • 96. Identify Requirements Test Planning Design Test Case Test Excuting Test Result Report Bug Fixing Regression Testing Acceptance Testing Testing Life – Cycle 96
  • 97. Testing Type 59 Use  Case API Testing Integration Testing Acceptance Testing Performance Benchmark Unit Testing 97
  • 98. FUM - Backend FUM-Front-end and whole project § Lack of UI § UI § Unit testing and API testing § Integration testing § Business logic § Database constraint § User Experience § User Interface § Backend Development team § Tester § Automation testing § Manual testing Test Strategy 98
  • 99. Testing Tools Chrome and Chrome Developer Tools: Used for test size of web page, size of component on page and view log or inspect element Pivotal Tracker: Manage bug and task (www.pivotaltracker.com). Microsoft Excel: Manage test case 99
  • 100. Testing Environment 59 Use  Case Software: Google Chrome 52.0 Hardware: - Windows 7 Professional 32-bit, Service Pack 1 - IntelÂŽ Core™ i3 - Install memory (RAM) : 4.00GB 100
  • 101. Testing Tools - Backend Mocha: JavaScript test framework running on Node.js and in the browser Sinon.js: standalone test spies, stubs and mocks for JavaScript, to assert result at variable level. Chaijs: Chai is a BDD / TDD assertion library for node, to help assertion result in a test Artillery: a modern load-testing framework, support HTTPS, WebSockets, Scriptable, HTML reports. 101
  • 102. Testing Environment - Backend 59 Use  Case Software: Chaijs v3.5.0 Mocha v2.4.5 Sinon v1.17.4 Artillery v1.5.0 Hardware: - Ubuntu 14.04 64-bit - InterÂŽ Core™ i3 - Install memory (RAM) : 8.00GB 102
  • 104. Testing Model – Backend BDD: Behavior-Driven development TDD: Test-Driven development 104
  • 105. Test Case Guideline 59 Use  Case 105
  • 106. Test Case Sample 59 Use  Case Normal  Flow 1. Login to FUM System. 2. Click to “Account”. 3. Change  phone  number 4. Click to “Save” button Alternative  Flow 1. Login to FUM System. 2. Click to “Account”. 3. Click  to   button 106
  • 107. Test Case Guideline - Backend 59 Use  Case 107
  • 108. Test Case Sample - Backend 59 Use  Case 108
  • 110. Log bugs process 59 Use  Case 1. Tester or developer detects defect à Log bug on PivotalTracker à assign to related developer. 2. Developer START fix bug àChange status of bug to DELIVERED and assign to tester again 3. Tester check bug again • If bug fixed, requester ACCEPT bug • If bug didn’t fixed, REJECT bug and re-assign to developer, developer RESTART fix bug and flow to step 2 110
  • 111. Log bugs process 59 Use  Case 111
  • 112. Test Report 59 Use  Case Test Case Stage 1 Stage 2-1 Stage 2-2 Final Pass Fail Pass Fail Pass Fail Client User 70 16 158 6 164 0 164 Seller 65 7 90 21 111 0 111 Admin 140 8 149 10 159 0 159 GUI Test Case 12 2 12 0 12 0 12 Total all Test Case 287 129 409 41 446 0 446 112
  • 113. Test Report - Automation test 59 Use Case Test case Phase 1 Phase 2 Final Pass Fail Pass Fail API Test - User 46 0 93 0 93 API Test - Admin 52 0 67 0 67 API Test - Seller 58 0 91 0 91 Unit test - Library 0 0 8 0 8 Unit test - Middleware 6 0 6 0 6 Unit test - Model 43 0 87 0 97 Total all test case 205 0 352 0 352 Coverage Statements 85.32% 86.99% 86.99% Branches 73.12% 74.38% 74.38% Functions 96.13% 94.32% 94.32% Lines 90.34% 87.55% 87.55% 113
  • 114. Automation Test Coverage Report 59 Use  Case 114
  • 117. Deployment Use  Case Continuous Integration (CI) + Continuous Delivery (CD) 117