Với các mô hình còn truyền thống chỉ còn đang ở các chức năng như xem sản phẩm, thêm sản phẩm vào giỏ hàng, đặt hàng, thanh toán bằng COD thì với mô hình mà em đang phát triển đó là Kết
Trang 1tĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THÓNG THÔNG TIN
NGUYEN MINH ĐỨC
KHOA LUAN TOT NGHIEP
UNG DUNG KET NOI NHA CUNG CAP VA CONG TAC VIEN TREN SAN THUONG MAI DIEN TU
E-COMMERCE PLATFORM CONNECT
VENDORS AND COLLABORATORS
KY SU NGANH HE THONG THONG TIN
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
NGUYEN MINH ĐỨC - 16520241
KHOA LUAN TOT NGHIEP
UNG DUNG KET NOI NHÀ CUNG CAP VÀ CONG TAC VIÊN TREN SÀN THƯƠNG MẠI ĐIỆN TỬ
E-COMMERCE PLATFORM CONNECT
VENDORS AND COLLABORATORS
KY SU NGANH HE THONG THONG TIN
GIANG VIEN HUGNG DAN
ThS Vi Minh Sang
Trang 3THONG TIN HỘI DONG CHAM KHOA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
.-ngày của Hiệu trưởng Truong Đại học Công nghệ Thông tin.
¬ ESET EEE E SST SSETSOSSSSECESESSTESS — Chủ tịch.
Qe cece eeeceeeeeseeeeseeeeeeneeetaneseeanesenees — Thu ky.
Bile e been e eee eee e beeen e eee eeet eens ~ Ủy viên
—— eee neeeeeeceeceeeeeseeeeneeeeas — Uy viên
Trang 4LỜI CÁM ƠN
Dé hoàn thành khoá luận này, tôi xin gửi lời cảm ơn chân thành nhất đến quý
thầy cô trường Dai học Công nghệ Thông tin — Đại học Quốc gia Thành phó Hồ Chí
Minh đã hướng dẫn, chỉ dạy và giúp đỡ tôi trong suốt quá trình học tập nói chung và
quá trình thực hiện đề tài nói riêng Nhờ đó mà tôi đã có thêm kiến thức và các kỹ
năng, kinh nghiệm đề xử lý các tình huéng khó khăn, thử thách dé hoàn thành dé tài
này.
Tôi xin gửi lời cảm ơn chân thành nhất đến Ths Vũ Minh Sang, thay là
người đã từng bước hướng dẫn, định hướng về đề tài cũng như tạo điều kiện cho tôi
có thé hoàn thành khoá luận một cách trọn vẹn
Trong thời gian làm khoá luận, ngoài các kiến thức mà tôi được tiếp thu trên
giảng đường ra, tôi còn tìm hiéu thêm một số các kiến thức khác dưới sự góp ý của
người hướng dẫn - Ths Vũ Minh Sang Nhờ đó mà tôi đã tích luỹ được nhiều kiến
thức sau khi hoàn thành xong đề tài
Dù tôi đã có gắng hoàn thành khoá luận của mình nhưng không thé tránh
khỏi các thiếu sót ngoài mong muốn, rất mong nhận được các nhận xét và góp ý từ
Thay Cô dé dé tài được tốt hơn
Lời cuối cùng tôi muốn nói lời cảm ơn đến tất cả mọi người đã hỗ trợ tôi có
được ngày hôm nay.
TP Hồ Chí Minh, tháng 09 năm 2020
Sinh viên thực hiện
Nguyễn Minh Đức
Trang 5NodeJS ReactJS Redis Python Flutter
4.1 Giao diện người dùng
nun + 0 G WwW
` œ ©œ ¬ DN10 11 12 13 18
18 20 20 22
33
40 66 66
Trang 64.2. Kết quả triển khai hệ thống
Chương5 KET LUẬN VÀ HƯỚNG PHÁT TRIEN
Trang 7h 2.9: Quy trình quản lý và tạo đơn hàng
h 2.10: Quy trình quản lý sản phẩm của cho CTV
2.11: Quy trình quản lý kho của Nhà cung cấp
2.12: Quy trình tuyển Cộng tác viên
h 2.13: Quy trình đăng, duyệt tin dành cho Cộng tác viên
h 2.14: Quy trình nạp tiền vào hệ thống
h 3.1: Sơ đồ thiết kế hệ thống
h 3.2: Mô hình phân rã chức năng
3.3: Sơ đồ use-case tổng quan
3.4: Sequence diagram - Điều chỉnh giá sản phẩm
h 3.5: Sequence Diagram - Đăng ký bán sản phẩm
h 3.6: Sequence diagram - Cập nhật vận chuyển
h 3.7: Sequence diagram - Tạo và duyệt đơn hàng
3.8: Sequence diagram - Quản lý tồn kho sản phẩm
3.9: Sequence diagram - Quản lý đăng bán đa kênh
h 3.10: Sequence diagram - Quản lý bài viết
h 3.11: Activity Diagram - Điều chỉnh giá sản phẩm
h 3.12: Activity Diagram - Đăng ký bán sản phẩm
h 3.13: Activity Diagram - Đăng ký bán đa kênh
Oo ON D
10
11 12 12 13
14
15 15
16
17 19 20
21 22 24 25
26
28 29 31 33 34
35
Trang 8h 3.14: Activity Diagram - Cap nhat van chuyén
3.15: Activity Diagram - Quan ly bai viét
3.16: Activity Diagram - Tao va duyét don hang
h 3.17: Activity Diagram - Quan lý tồn kho sản phẩm
h 3.18: Mô hình quan hệ các bảng rút gọn
h 4.1: Giao diện - Trang chủ
h 4.2: Giao diện - Trang chủ - Nhà cung cấp nổi bật
h 4.3: Giao diện - Trang chủ - Sản phẩm vừa được chốt
h 4.4: Giao diện - Trang chủ - Sản phẩm nội địa
h 4.5: Giao diện - Trang chủ - Sản phẩm các nước
h 4.6: Giao diện - Trang chủ - Danh mục sản phẩm
h 4.7: Giao diện - Trang chủ - Sản phẩm theo danh mục
h 4.8: Giao diện - Trang chủ - Lọc dữ liệu
h 4.9: Giao diện - Trang chủ - Gian hàng Nhà cung cấp
h4.10: ién - Trang chủ - Danh sách sản phẩm theo Nhà cung cấp
ién - Trang chủ - Bài viết giới thiệu sản phẩm
Giao diện - Trang chủ - Chi tiết sản phẩm Giao diện - Trang chủ - Mô tả sản phẩm Giao d
Giao Giao
Giao d Giao d Giao d Giao d
Giao Giao
Giao d
ién - Trang chủ - Tồn kho sản phẩm ién - Trang chủ - Bài viết SEO
ién - Trang chủ - Chi tiết bài SEO
ién - Quan lý - Trang đăng nhập ién - Quản lý - Trang đăng ký gian hang
ién - Quản lý - Điền thông tin gian hàng
ién - Quản lý - Giới thiệu trang quan lý
ién - Quản lý - Chức năng nổi bật ién - Quản lý - Thống kê chi tiết ién - Quản lý - Thống kê đơn hàng
36 37 38 39 40 67 67 68 68 69 69 70 71 72
72 73
74 74 75 75
76
77 78 78 79
80 80
81
Trang 9Giao diện - Quản lý - Nhập thông tin sản phẩm
Giao diện - Quản lý - Thông tin chỉ tiết sản phẩm
Giao diện - Quản lý - Tìm sản phẩm theo Nhà cung cấp
Giao diện - Quản lý - Quản lý kho Giao diện - Quản lý - Tạo đơn hàng
Giao diện - Quản lý - Thêm thông tin vận chuyển đơn
Giao diện - Quản lý - Lịch sử trạng thái đơn hàng Giao diện - Quản lý - Quản lý khách hàng
Giao diện - Quản lý - Giao diện cài đặt
Thống kê tổng giao dịch Thống kê chỉ tiết sản phẩm
DANH MỤC BẢNG
Chức năng từng loại thực thể
Mô tả Sequence Diagram - Điều chỉnh giá sản phẩm
Mô tả Sequence Diagram - Đăng ký bán sản phâm
Mô tả Sequence Diagram - Cập nhật trạng thái vận chuyển
Mô tả Sequence Diagram - Tạo và duyệt đơn hàng
Mô tả Sequence Diagram - Quản lý tồn kho khi duyệt đơn hàng
Mô tả Sequence Diagram - Đăng ký bán sản phâm đa kênh
Mô tả Sequence Diagram - Quan ly bài viết bán hàng
Mô tả dữ liệu bảng - Banner
: Mô tả dữ liệu bảng - Blogs
: Mô tả dir liệu bảng - BoomOrders : Mô tả dữ liệu bảng - Brands
: Mô ta dữ liệu bang - Collaborators : Mô tả dữ liệu bảng - Deliveries
: Mô tả dữ liệu bảng - Orders : Mô tả dữ liệu bảng - OrderLogs
83 83 84 84 85 86 87 88 88 89
90
15
19 21
22 24
25
27 28 37
38
39 40 41 43 45
47
Trang 10bảng - WalletRequest bảng - Wallet
bảng - WalletTransaction bang - WarehouseExport
bảng - Warehouselmports
bảng - Warehouseltems
bảng - Warehouses bảng - WarehouseTransaction
bảng - WarehouseTransfers
Bảng 4.1: Thống kê kết quả triển khai
48
50 51 52 53
54 55
56 57 57
59
60 60 61
86
Trang 11DANH MỤC TU VIET TAT
Trang 12TÓM TAT KHÓA LUẬN
Với sự phát trién không ngừng của nhóm ngành khoa học kỹ thuật trên thé giớicũng như Việt Nam, nhờ đó đã mang đến các kết quả nồi bật cho toàn xã hội Ngày
nay, không quá khó đề có thé tìm kiếm được các thiết bị thông minh như điện thoại
di động thông minh, máy tính bảng thông minh, laptop, đồng hồ thông minh, chúng
dường như đã trở thành một phần không thể thiếu của con người khi làm việc cũng
như khi giải trí.
Mặt khác, có thé dé dang nhận thấy việc mua bán hàng trực tuyến qua mạng
hoặc Thương mại điện tử hiện nay không còn quá xa lạ với người dùng Internet Việc
áp dụng Thương mại điện tử hiện nay là một xu hướng tat yếu của thời đại Với hình
thức kinh doanh này, khách hàng sẽ không còn tốn nhiều thời gian và công sức cũng
như tiền bạc cho các giao dich tương tự Do đó Thương mại điện tử đã rat phổ biến
và là một phần không thê thiếu trong thời điểm hiện tại Vì vậy tính đến bây giờ đã
có vô vàng website Thương mại điện tử ra đời và đáp ứng đầy đủ các yêu cầu cũngnhư chức năng cần thiết cho khách hàng
Bắt nguồn từ các mô hình Thương mại điện tử truyền thống, em đã đưa ra mô
hình Kết nối NCC và CTV trên sàn Thương mại điện tử đang được quan tâm trên thị
trường kết nói ngày nay Các công nghệ được sử dụng trong ứng dụng gồm 2 công
nghệ chính là ReactJS và NodeJS.
Trong phạm vi khoá luận, em đã ứng dụng ReactJS đối với phía Front-end và
NodeJS dành cho Back-end Sau khi phát triển mô hình kinh doanh, em đã tiền hành
tìm hiểu hai công nghệ này và chuyền sang tìm hiểu các ưu khuyết điểm của mô hình
này trong tương lai.
Trang 13MỞ DAU
Thuong mại điện tử (TMĐT) ngày càng trở thành một phần không thé thiếu
và được xem như là một loại hình kinh doanh tốt nhất trong thời điểm dịch Covid
này Các mô hình kinh doanh được phát triển dựa vào TMĐT ngày càng được biết
đến nhiều hơn Thêm vào đó, các website được phát triển chau chuốt hơn cả về phần
giao diện cũng như xử lý.
Với các mô hình còn truyền thống chỉ còn đang ở các chức năng như xem sản
phẩm, thêm sản phẩm vào giỏ hàng, đặt hàng, thanh toán bằng COD thì với mô hình
mà em đang phát triển đó là Kết nối Nhà cung cấp (NCC) và Cộng tác viên (CTV)
trên sàn TMĐT sẽ được thêm các chức năng phù hợp với mô hình hơn như là tích
hợp với các đơn vị vận chuyền, kết nối đăng sản phẩm lên các bên thứ ba như Shopee,
Lazada.
Vì thế, em quyết định chọn đề tài “Ứng dụng kết nối Nhà cung cấp và Cộngtác viên trên sàn Thương mại Điện tử” nhằm phát triển mô hình kinh doanh cũng nhưphát triển ứng dụng dựa vào công nghệ chính là ReactJS và NodeJS
Trang 14Chương 1 TONG QUAN DỰ ÁN
1 — Giới thiệu về đề tài
FuniMart là một ứng dụng Thương mại điện tử kết nói giữa NCC và
Cộng tác viên toàn quốc dưới hình thức DropShipping NCC sẽ đăng các mặt
hàng muốn bán online kèm các thông tin như mức giá đề xuất bán thông tinsản phẩm, bài giới thiệu, từ đó cộng đồng CTV sẽ đăng bán trên các kênhtương tác riêng của CTV nhằm tìm kiếm khách hàng mua sản phẩm
Khi có đơn hang, CTV sẽ tạo don hàng trên hệ thống, NCC sẽ duyệt
đơn hàng và gửi sản phẩm đến khách hàng thông qua đối tác vận chuyển đã
được tích hợp sẵn trên hệ thống cũng như trả tiền hoa hồng cho CTV thông
qua ví FuniPay.
1.1 Đặt vấn đề
Với sự xuất hiện của Thương mại Điện tử cùng với các giao dịch trực
tuyến như ngày nay thì việc mua bán hàng qua mạng là việc không còn quá xa
lạ Qua một khảo sát mà chúng tôi thực hiện trên một tập người dùng đang bán
hang online thì van dé mà họ đang gặp phải đó là không tìm được nguồn hàng
ôn định và phong phú với nhiều ngách hàng Vấn đề thứ hai đó chính là việcvận chuyên đến tay khách hàng còn là một cản trở lớn khi mà khách hàng
chính chủ yếu nằm trong phạm vi địa lý dưới 10km Và chính điều đó cũng
gây ra van dé quan trọng nhất là doanh số bán hàng không đạt mức tốt
Sau ba tháng đi tìm giải pháp cho các vấn dé còn dang gặp nhiều trởngại như trên Chúng tôi đã quyết định phát triển Ứng dụng Kết nối NCC và
CTV dựa vào sàn Thuong mại Điện tử với các chức năng nồi bật như: kết nối
hơn 500 NCC với gần 2000 CTV trên toàn quốc trải dai từ Bắc chí Nam, hợptác với các sàn Thương mại Điện tử lớn như Shopee, Lazada, liên kết với cácđơn vị vận chuyển uy tín như Giao hàng tiết kiệm, Giao hàng nhanh
Trang 15Việc đặt nền móng triển khai với một mô hình còn mới phát triển sơ bộnhư trên được hy vọng sẽ sớm có nhiều thành quả ghi nhận và sẽ phát triểnvững chắc trong thời gian tới.
Cung cấp ứng dụng kết nói cho NCC và CTV để dễ dàng hơn trong
việc quản lý đơn hàng, sản phẩm, quản lý đơn vận chuyển và CTV có
nhiều nguồn mặt hàng dé bán hàng
Tao sự kết nối giữa NCC va CTV, giúp CTV có da dạng các mặt hang
để bán online mà không cần vốn, giúp NCC bán hàng tốt hơn thông quacộng đồng CTV
Có 5.000 người dùng sử dụng trên ứng dụng FuniMart Ngoài ra ứng dụng FuniMart có chức năng giúp ich cho NCC, CTV quản ly đơn đặt
hàng, khách hàng.
Đối tượng người sử dụng
Nhà cung cấp: cá nhân, doanh nghiệp, tổ chức có nhu cầu bán hàng
online dưới hình thức DropShipping
Cộng tác viên: là sinh viên, nhân viên văn phòng, các ba mẹ bim sữa
toàn có nhu cầu muốn bán hàng online
Quản trị viên: là người quản lý website, các mặt hàng khi đưa lên hệ
thống
Chức năng của Website
Có chức năng giới thiệu và quảng bá gian hàng của NCC Cung cấp các
sản phẩm cũng như đa dạng hoá các mặt hàng mà giới trẻ, người tiêu
dùng đang ưa thích.
Cung cấp day đủ thông tin chỉ tiết cho CTV về sản phẩm như: Tên sản
phẩm, giá cả, giá si, giá đề xuất bán, thông số kỹ thuật,
Trang 161.3.
Giới thiệu sản phẩm dưới dang blogs, đăng sản phẩm lên Facebook,
Zalo tự động giúp cho việc kinh doanh, quảng bá sản phẩm cho NCC
và CTV dễ dàng hơnĐối tác tích hợp vào hệ thống
Giao hàng tiết kiệm
Giao hàng Nhanh Facebook
Zalo Shopee
Bồ cục báo cáo
Chương l: Giới thiệu về báo cáo
Chương 2: Giới thiệu về cơ sở lý thuyết, các quy trình nghiệp vụ hệthống
Chương 3: Phân tích thiết kế, xây dựng cơ sở dữ liệu
Chương 4: Hiện thực ứng dụng.
Chương 5: Kết luận và Hướng phát trién
Trang 17Chương 2 CƠ SỞ LÝ THUYET
2.1 Rest API
Chúng ta thường nghe về REST và RESTful API trong phát triển ứng
dụng Web, nhất là khi viết ứng dụng trải dài từ Web server tới Mobile app.Tuy vậy nhưng bản thân REST lại không phải là tên 1 kỹ thuật, mà gắn với 1
bộ các quy tắc dùng đề tạo ra các API
Application kg API HTTP Client
fentrypoint /collection1
_—- Iresource1 es Client App
Đang =-———.: REST Library
to_resourced) ky2zr>4 : applicatlonix-collection (optional)
from resource} Eh application/x-resource Sap lban |Iresrouce2 HTTP Library
Application
Data Model Resource Model
Server Client
Hình 2.1: Mô tả hoạt động của Restful API
Kiến trúc REST có 1 số đặc điểm như sau:
Nhất quán xuyên suốt các API Ví dụ: luôn luôn sử dụng danh từ số nhiềuthay vì khi số nhiều, khi số ít
Tôn tại mà không lưu trạng thái (Stateless existence), ví dụ như không sử
dung session của server Đây chính là lý do vì sao lại có cum State Transfer(ST) trong REST Tính chất này đảm bảo rằng mỗi khi client submit 1request, request ấy sẽ bao gồm toàn bộ các thông tin mà server cần đề xử
lý request Đây là điều cần thiết để build 1 ứng dụng phục vụ lên tới hàng
triệu user.
Sử dụng HTTP status code khi có thé
Sử dụng URL Endpoint có phân tầng logic
Đánh version trong URL thay vì trong HTTP Headers
Trang 18242 Serverless
Serverless computing được giới thiệu cùng với các dịch vụ như AWS
Lambda hay Azure Functions của Microsoft Chúng không thực sự là một hệthống “không có máy chủ” mà thực tế máy chủ này không phải là thiết bị do
bạn mua hoặc mất chi phí để duy trì Về mặt lý thuyết, hệ thống này được
quảng cáo như là một nguồn tài nguyên bạn có thê sử dụng mà không cần dùngtới máy chủ Serverless hay còn được biết đến với một thuật ngữ khác là
Function-as-a-Service (FaaS), là một mô hình máy tính trên cloud, giúp thực
thi các đoạn code của lập trình viên được day lên trong các máy tinh stateless
(phi trạng thai/khong lưu trữ trạng thái), được xử lý/trigger theo sự kiện, hoạt
động tạm thời (có thé chỉ tồn tại cho một lần sử dung) và hoàn toàn được quản
lý bởi bên thứ 3 ở đây là Nhà cung cấp dịch vụ cloud Với kiến trúc serverless,lập trình viên chỉ cần tập trung vào viết các đoạn code logic mà không phải
quan tâm về việc vận hành server đề đoạn code logic đó chạy được
Hình 2.2: Kiến trúc Serverless
Kiên trúc của Serverless:
Presentation và delivery layer
Application layer
Persistentces la
Multi-layer concers
Trang 192.3 NoSQL Database
Co sở dit liệu NoSQL (tên gốc là "Non SQL" (phi SQL) hoặc "nonrelational" (phi quan hệ)) cung cấp một cơ ché đề lưu trữ và truy xuất dữ liệu
được mô hình hóa khác với các quan hệ bảng được sử dụng trong các cơ sở dữ
liệu kiểu quan hệ Nguyên nhân cho hướng tiếp cận này bao gồm: tính đơngiản trong thiết kế, mở rộng theo "chiều ngang" cho các cụm máy đơn giản
hơn (là bài toán cho các cơ sở dit liệu kiểu quan hệ), và kiểm soát tính khả
dụng tốt hơn
Hiện nay, trên thị trường có khá nhiều NoSQL Database Management
System: Neo4j, GraphDatabase, MongoDB, RavenDB, Redis, Ta có thé
chia NoSQL thanh 4 loai:
Column-Family — Document Key-Value
Hinh 2.3: Cac loai NoSQL
Đối với bài báo cáo này sử dung NoSQL loại document database là
Mongodb.
2.4 NodeJS
Node.js là một nền tảng chạy trên môi trường V8 JavaScript runtime
-một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome Bình
thường thì bạn cũng có thé tải bộ V8 và nhúng nó vào bất cứ thứ gì; Node.jslàm điều đó đối với các web server JavaScript suy cho cùng cũng chỉ là một
Trang 20ngôn ngữ - vậy thì không có lý do gì để nói nó không thé sử dụng trên môi
Hình 2.4: NodeJS
Trong một môi trường server điển hình LAMP
(Linux-Apache-MySQL-PHP), bạn có một web server là Apache hoặc NGINX nằm dưới, cùngvới PHP chạy trên nó Mỗi một kết nối tới server sẽ sinh ra một thread mới,
và điều này khiến ứng dụng nhanh chóng trở nên chậm chạp hoặc quá tải cách duy nhất dé hỗ trợ nhiều người dùng hơn là bằng cách bổ sung thêm nhiềumáy chủ Đơn giản là nó không có khả năng mở rộng tốt Nhưng với Node.jsthì điều này không phái là van đề Không có một máy chủ Apache lắng nghe
-các kết ni tới và trả về mã trạng thái HTTP - bạn sẽ phải tự quản lý kiến trúclõi của máy chủ đó May mắn thay, có một số module giúp thực hiện điều nàyđược dễ dàng hơn, nhưng công việc này vẫn gây cho bạn một chút khó khănkhi mới bắt đầu Tuy nhiên, kết quả thu được là một ứng dụng web có tốc độ
thực thi cao.
2.5 ReactJS
ReactJS được hiểu nôm na là một thư viện trong đó có chứa nhiều
Trang 21cai tên ai cũng biết đó chính là Facebook Mục dich của việc tạo ra ReactJS là
để tạo ra những ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả caovới những mã hóa tối thiểu Và mục đích chủ chốt của ReactJS đó chính là
mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thật nhanh và có
khả năng mở rộng cao và đơn giản thực hiện.
Một trong những điểm hấp dẫn của React là thư viện này không chỉhoạt động trên phía client, ma còn được render trên server và có thé kết nỗi
với nhau React so sánh sự thay đổi giữa các giá trị của lần render này với lần
render trước và cập nhật ít thay đổi nhất trên DOM
Hình 2.5: Cách hoạt động ReactJS
Redis
Redis là một hệ thống dùng để lưu trữ dữ liệu dưới dang Key - Valuemạnh mẽ Nếu nói Redis như một bộ nhớ Cache, một Database hoặc MessageBroker cũng không sai Mọi thông tin, dữ liệu đều được redis ghi trên ram thay
vi 6 đĩa hay 6 SSD như bình thường Nhờ việc không cần dùng 6 dia hay 6
SSD nên Redis sẽ rút ngắn thời gian tìm kiếm, truy cập dữ liệu Vì thế mà tốc
độ đọc và ghi đữ liệu trên Redis rất nhanh, rat lý tưởng
Trang 22SETUSER alice on >appl3 ~cached:* +get GET cached:foo VY
SETUSER bob on >p34r ~cached:* +get GET foo xX
SETUSER sue on >p1_m ~cached:* +get SET foo bar 4
với ngôn ngữ lập trình Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp
phát bộ nhớ tự động Python có cấu tric đữ liệu cắp cao mạnh mẽ và cách tiếp
cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng Cú pháp lệnh
của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh
động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng dé viết script
và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng
Trang 23Flutter là một Framework viết trên nền ngôn ngữ Dart Flutter được
sinh ra như một platform framework nhưng khác với những
Cross-platform hiện tại, Flutter viết mã va build ra các đoạn mã thực thi tương ứng
trên các thiết bị khác nhau thay vì build ra thành các đoạn mã được tối ưu và
chạy trên những môi trường trung gian.
« Flutter
Hinh 2.8: Framework Fullter
Flutter được viết chia làm hai tang Tầng ở trên sử dung ngôn ngữ Dartcung cấp các đoạn mã xây dựng lên một ứng dụng Flutter Các đoạn mã nàycung cấp phương tiện dé có thể thay đổi và chỉnh sửa chúng Từ đó giúp ứngdụng của lập trình viên có thể được tùy chỉnh theo mong muốn Tầng
Trang 24Application này giúp lập trình viên thay đổi mã nguồn ứng dụng ở thời điểm
compile time Tầng thứ hai của Flutter nằm ở sâu bên dưới và được viết bằng
C++ Tầng Shell này chứa các công cụ trợ giúp ứng dụng Flutter trong quátrình chạy Nổi bật cần lưu ý ở tang này là máy ảo Dart VM Khái niệm máy
ảo là khái niệm về một ứng dụng chạy song song với mã nguồn chính như mộtphần của ứng dụng Máy ảo Dart VM có ba nhiệm vụ chính bao gồm Làmứng dụng trung gian giữa mã nguồn được viết bởi Dart và thiết bị phần cứng(hoặc phần mềm nằm ngoài ứng dụng) Thông dịch các đoạn mã Dart theophương thức JIT (Just in time - mã nguồn chỉ được thông dịch khi được gọi
đến) hoặc AOT (Ahead of Time - Mã)2 Thực thi các đoạn mã đã được thông
dịch hoặc biên dịch cũng như cung cấp các runtime system bao gồm garbagecollector, một vài các thư viện cần có của ngôn ngữ
2.9 Quy trình nghiệp vụ
2.9.1 Quy trình quản lý và tạo đơn hàng dành cho Cộng tác viên
Hình 2.9: Quy trình quản lý và tạo đơn hàng
Mô tả:
- Quy trình quan lý và tạo đơn hàng dành cho CTV và Dropship-er tại
FuniMart thực hiện.
Trang 25- Quy trình gồm các bước: bắt đầu khi khách hàng yêu cầu mua hàng trên
sàn Thương mại Điện tử hoặc từ các kênh bán hàng Các sàn Thương
mại Điện tử nhận đơn hàng _CTV/Dropship-er tim sản phẩm trên hệthống FuniMart
@ Nếu sản phẩm còn hàng thì CTV/ Dropship-er sẽ tạo đơn hàng
tương ứng trên ứng dụng Xử lý đơn hàng vừa tạo.
- Quy trình quản lý sản phẩm dành cho CTV/ Dropship-er thực hiện
- Quy trình gồm các bước: bắt đầu khi có sản phẩm mới từ NCC đã được
đăng bán trên sàn FuniMart CTV/ Dropship-er tim va đăng ky ban
sản phẩm của NCC _ Sau khi đăng ký bán, CTV/ Dropship-er tiến hành
liên kết với bên thứ ba là các sàn Thương mại Điện tử CTV/
Dropship-er sẽ tién hành chỉnh sửa bài viết và hình ảnh sản phẩm Chờ các sàn
Thương mại Điện tử duyệt sản phẩm
e Nếu không thành công Quay lại bước chỉnh sửa bài viết tiếp
tục chờ duyệt sản phẩm
e Nếu thành công Kếtthúc quy trình
Trang 262.9.3 Quy trình quản lý kho của Nhà cung cấp
Hình 2.11: Quy trình quản lý kho của Nhà cung cấp
Mô tả:
- Quy trình quản lý kho dành cho NCC thực hiện.
- Quy trình gồm các bước: bắt đầu khi có sản phâm được nhập về Tiến
hành nhập kho Yêu cầu xuất kho cùng hoá đơn bán hàng Kiểm tra
hoá đơn có hợp lệ
e Nếuhợplệ xuấtkho Kếtthúc quy trình.
e Nếu không hợp lệ Kếtthúc quy trình.
2.9.4 Quy trình tuyến Cộng tác viên
Chuẩn bị bài Thông báo Giải đáp thắc
Hình 2.12: Quy trình tuyển Cộng tác viên
Mô tả:
- Quy trình tuyển Cộng tác viên dành cho bộ phận Quản lý Cộng tác viên
thực hiện.
Trang 27- Quy trình gồm các bước: Chuẩn bị bài đăng tuyển CTV yêu cầu nội
dung thu hút Dang bài thông báo tuyên CTV Giải đáp thắc mắc củaCTV Kếtthúc
2.9.5 Quy trình đăng, duyệt tin dành cho Cộng tác viên
- Quy trình duyệt tin đăng: do bộ phận quản lý phụ trách
- Gồm các bước: Khi nhận được yêu cầu từ khách hàng về tin cần
duyệt Tiền hành duyệt mục đăng và duyệt nội dung bài đăng, nếu bài
đăng hợp lệ Dang tin Nếu không tự động sửa lại hoặc gửi thông bao
không duyệt bài đăng tới khách hàng.
Trang 282.9.6 Quy trình nạp tiền vào hệ thống
Corer
Hinh 2.14: Quy trinh nap tién vao hé théng
M6 ta:
- Bộ phận tham gia: Khách hàng, Bộ phận kế toán, Bộ phận quan li
- Quy trình bắt đầu từ khi Bộ phận kế toán nhận được yêu cầu mua
tiền ảo của khách hàng _ Kiểm tra và xác nhận số tiền nhận được tối
đa là 72 tiếng từ khi nhận được thông báo
e Nếu nhận được số tiền tự động cập nhật tiền ảo vào tài khoản
khách hàng Tu động gửi thông báo giao dịch thành công cho
khách hàng Bộ phận kế toán lưu giao dịch Kết thúc quy
trình.
e Nếu không nhận được số tiền Thông báo giao dịch that bại cho
khách hàng Kết thúc
Trang 29Chương 3 PHAN TÍCH, THIẾT KE HE THONG
3.1 Kiến trúc hệ thống
Ở phan kiến trúc hệ thống, để đảm bảo khả năng xử lý thời gian thực, hệ thốngđược xây dựng và ứng dụng khái niệm serverless trên nền tảng Elastic Beanstalk củaAmazon đề đáp ứng yêu cầu mở rộng với lượng request lớn
Trong đó các chức năng được mô tả như sau
Bảng 3.1: Chức năng từng loại thực thể
STT Servers Mô tả
1 Business Logic Dam nhiệm chính việc xử ly các vấn dé liên quan đến dữ liệu người
Server dùng, như danh sách các công việc, hình ảnh, các thiết bị
2 Database Users Cloud | Đảm nhiệm việc lưu trữ dữ liệu của người dùng
3 Amazon $3 Dam nhiệm việc lưu trữ hình ảnh, video, tập tin người ding
4 Cloud CDN Đảm nhiệm việc cache các request từ người dùng, giúp giảm tải cho
Server
5 End Users Devices Thiết bị người dùng cuối (website, mobile)
6 Database Trackers Dam nhiệm việc lưu trữ các request, thống kê dữ liệu
7 Tracker Server Xử lý dữ liệu từ các server khác dé lưu trữ, phục vụ mục đích thống kê
8 Database AI Cloud Lưu trữ kết qua thống kê, xử lý, đề xuất dữ liệu
9 AI Servers Xử lý, training các tập dữ liệu của người dùng và đưa ra đề xuất phù hop
Trang 30—*> ® Amazon S3
“——
&Ẳ — ® Cloud Request & Response
CDN
“os ‘Server Database Trackers
J t End Users Devicesi" @ API Logic
Trang 313.2 Mô hình phân rã chức năng
FuniMart
Nền tảng DropShip toàn diện
Quản lý khách hàng.
Quản lý
sản phẩm.
Quan lý
tản lý ví tiên
i sf cửa hang Puan lý don hàng
Thêm mới đơn hàng rỗng
Thêm mớ Thêm mới Thêm mới khách hàng sản phẩm vào kho sản phẩm Thêm mới
cửa hàng Nạp tiễn vào ví Dang nhập.
Cập nhật đơn hàng
Chinh sửa Cập nhật Chỉnh sửa cửa hàng số lượng tồn kho sản phẩm Tạo tal khoản
Xoá Tạo phiếu khách hàng nhập kho
Hình 3.2: Mô hình phân rã chức năng
3.3 Use-case
Trang 324 Thông báo tới ¬
trung tâm 5 Thông báo tới
| itác cáp mại
“Thông báo Cộng tắc viên
Hình 3.4: Sequence diagram - Điều chỉnh giá sản phẩm
Trang 33Bang 3.2: Mô ta Sequence Diagram - Điều chỉnh giá sản phẩm
Tên Sequence Diagram Điều chỉnh giá sản phẩm.
Nhà cung cấp NCC tạo lệnh cập nhật gia
Giao diện sản phẩm Chuyển tiếp dữ liệu của người dùng về Server xử lý thông qua
API cập nhật giá sản phẩm
Server Sản phẩm Tiến hành kiểm tra tính hợp lệ của giá trị nhập vào đồng thời cập
nhật danh sách sản phâm liên quan và lưu vào cơ sở dữ liệu nêu
dữ liệu hợp lệ
Hệ thống thông báo Nhận yêu cầu cập nhật và gửi thông báo tới các CTV đăng ký bán
sản phẩm
Đối tác Nhận yêu cầu cập nhật giá sản phẩm tự động
Cộng tác viên Nhận thông tin cập nhật dữ liệu
Trang 34Hình 3.5: Sequence Diagram - Dang ky bán sản phẩm
Bang 3.3: Mô ta Sequence Diagram - Đăng ký ban sản phẩm
Tén Sequence Diagram Đăng ky bán sản phẩm
Người dùng Tao lệnh đăng ký bán sản phâm của NCC.
Giao diện sản phẩm Chuyển tiếp dữ liệu của người dùng về Server xử lý thông qua
API đăng ký bán sản phâm
Server Sản phâm Đồng bộ sản phẩm của NCC về danh sách sản phẩm của CTV
Trang 353.4.3 Cập nhật vận chuyển
i 1 Cập nhật
H trang thai méi
ï điện tử [Hệ thống thông ông tá
| Vi điện tử | | ing Cộng tác viên
nhật trạng thai | l ị
8.N6u đơn thành công, ! :
Thanh toân tiền ion số dự
5 6 Thông báo tới
5 Thông báo số dự Gối tác cập nhật
Bảng 3.4: Mô tả Sequence Diagram - Cập nhật trang thái vận chuyển
Tên Sequence Diagram Cập nhật trạng thái vận chuyển
Đối tác Tao yêu cầu cập nhật trạng thái van đơn thông qua API
Server Đơn hàng Nhận yêu cầu xử lý cập nhật trạng thái Và tạo lệnh cập nhật tiền
hàng khi đơn thành công
Server ví điện tử Nhận yêu cầu cập nhật số dư tài khoản, thông báo số dự
Hệ thống thông báo Nhận thông báo cập nhật số du và trạng thái đơn, thông báo qua
Cộng tác viên
Cộng tác viên Nhận thông báo cập nhật
Trang 363.4.4 Tạo và duyệt đơn hàng
2
1 Xem giao dich tạo 2 Tạo đơn hàng
đơn hàng mới và xác nhận.
4—3 kiếm tra tồn kho—>
[2x ¬y tên kho
3.1 [True] Cho phép tạo đơn
=“——_——
3.2 [False] Từ chối tạo đơn.
3.2.1 Thông báo
tạo đơn thất bại
[—s Kiếm tra số tên dự trọng vi§ 4) ra số dự
|< tạo đơn thất bại i
$¥— 6.2 [False] từ chối tao don ||
7 Yêu cầu trừ tiềm >| aye H
—
9 Tao đơn thành công,|
Hình 3.7: Sequence diagram - Tạo và duyệt đơn hàng
Bảng 3.5: Mô tả Sequence Diagram - Tạo và duyệt đơn hàng
Tén Sequence Diagram Tao va duyét don hang
Cộng tác viên Tao yêu cầu tạo mới đơn hang
Giao diện đơn hàng Nhận yêu cầu xử lý thông tin đơn hàng Và tạo lệnh tạo đơn hàng
thông qua API
Server Đơn hàng, Nhận yêu cầu tạo đơn hang và gửi yêu cầu thông tin số lượng tồn
kho, nếu đủ số lượng thì chuyển đơn sang NCC
Trang 37Server Tồn kho Kiểm tra tình trạng tồn kho và phản hỏi theo API
Server Ví tiền Nhận thông tin giam / thanh toán tiền hàng từ Server Đơn hàng
Nha cung cấp Nhận thông tin đơn hàng mới
3.4.5 Quản lý tồn kho sản phẩm
+
Nhà cung cất | [ce Đơn hàng | | Ton kho | | Đổi tác | He thống thông Công tác viên
1 Duyệt đơn hàng |} 2 Đơn được xuất kho, |
'4 Cập nhật số lượng mới
¬ 6 Thông báo tới
5 Thông báo số dư | — đãi tác cập nhật
Hình 3.8: Sequence diagram - Quản lý tồn kho sản phẩm
Bảng 3.6: Mô tả Sequence Diagram - Quản lý tồn kho khi duyệt đơn hàng
Tén Sequence Diagram Quản lý tồn kho khi duyệt đơn hang
Trang 38Nha cung cấp Tạo yêu cầu xác nhận đơn hàng
Giao diện đơn hàng Nhận yêu cầu xử lý thông tin đơn hàng Và tạo lệnh tạo điều
chỉnh tồn kho thông qua API
Server tồn kho Cập nhật số lượng tồn
Đối tác Nhận yêu cầu cập nhật số lượng tồn kho các sản phẩm đã đồng bộ
Hệ thống thông báo Thông báo đơn hàng được xác nhận
Cộng tác viên Nhận thông báo
3.4.6 Đăng ký sản phẩm đa kênh
#
Công tác viên | GD San phẩm | | Sản phẩm | Hệ thống thông Đổi tác )
Ì 1.Xem giao diện Ì 2 Chọn sản phẩm } : |
r danh sáchcác 4 bán đa kênh h H !
{san phẩm lồng bộ sản phẩm „ Ị
từ NOS về CTV ị
4 Thông báo tới
trung tâm | 5 Đồng bộ tự động‘qua các kênh đối al
Trang 39Bảng 3.7: Mô tả Sequence Diagram - Đăng ký bán sản phẩm đa kênh
Tén Sequence Diagram Đăng ky ban sản phẩm đa kênh
Cộng tác viên Chọn các sản phẩm và điền thông tin cần thiết đề bán hàng đa
kênh
Giao diện sản phẩm Nhận yêu cầu xử lý thông tin sản phẩm Và tạo lệnh đăng bán đa
kênh thông qua API
Server sản phẩm Nhận yêu cầu và gửi thông tin sản phẩm qua đối tác, tạo sản phẩm
mới qua API
Hệ thống thông báo Thong báo tới đối tác sản phẩm mới
Trang 403.4.7 Quản lý bài viết
2
| Công tác viên GD Sản phẩm
và bài viết | Sản phẩm | | Đổi tác |
1, Xem giao diện
Hình 3.10: Sequence diagram - Quản lý bài viết
Bảng 3.8: Mô tả Sequence Diagram - Quan lý bài viết bán hàng
Tén Sequence Diagram Quản lý bài viết bán hàng
Cộng tác viên Chọn các sản pham muốn đăng bán hàng
Giao diện sản phẩm và bài viết Nhận yêu cầu xử lý thông tin sản phẩm Và tạo lệnh xem các bài
viết giới thiệu và đăng bán sản phẩm thông qua API
Server Sản phẩm Nhận thông tin yêu cầu xem danh sách bài viết theo sản phẩm