ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỆ THỐNG HỖ TRỢ QUẢN LÝ
GIAO HÀNG
Ngành: KHOA HỌC MÁY TÍNH
HỘI ĐỒNG: KHOA HỌC MÁY TÍNH 1
GVHD: THS. LƯU QUANG HUÂN
THS. VƯƠNG BÁ THỊNH
GVPB: THS. TRẦN HỒNG TÀI
SVTH: NGUYỄN TRỌNG DƯ - 1610569
TP. HỒ CHÍ MINH, 8/2021
ĈҤ,+Ӑ&48Ӕ&*,$73+&0
---------75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$
KHOA:KH & KT Máy tính
%Ӝ0Ð1KHMT
&Ӝ1*+Ñ$;+Ӝ,&+Ӫ1*+Ƭ$9,ӊ71$0
ĈӝFOұS- 7ӵGR- +ҥQKSK~F
1+,ӊ09Ө/8Ұ1È17Ӕ71*+,ӊ3
&K~ê6LQKYLrQSK̫LGiQWͥQj\YjRWUDQJQK̭WFͯDE̫QWKX\͇WWUình
+Ӑ9¬7Ç1 NGUYӈ175Ӑ1*'Ѭ
NGÀNH: KHOA HӐ&0ÁY TÍNH
MSSV: 1610569
/Ӟ3 MT17KH2
ĈҫXÿӅOXұQiQ
HӋWKӕQJKӛWUӧquҧQ lý giao hàng.
2. NhLӋPYө\rXFҫXYӅQӝLGXQJYjVӕOLӋXEDQÿҫX
7uPKLӇXSKkQWtFKTX\WUuQKQJKLӋSYөgiao vұQ
3KkQWtFKWKLӃWNӃKӋWKӕQJÿiSӭQJFiF\rXFҫXFKӭFQăQJYjSKLFKӭFQăng.
+LӋQWKӵFWULӇQNKDLSKLrQEҧQQJX\rQPүXFӫDKӋWKӕQJ
7LӃQKjQKNLӇPWKӱÿiQKJLiWtQKӭQJGөQJYjNKҧWKLFӫDJLҧLSKiSÿӅ[XҩW
31Jj\JLDRQKLӋPYөOXұQiQ
1Jj\KRjQWKjQKQKLӋPYө
+ӑWrQJLҧQJYLrQKѭӟQJGүQ
3KҫQKѭӟQJGүQ
1) ThS. Lѭu Quang Huân
2) ThS. VѭѫQJ%á ThӏQK
1ӝLGXQJYj\rXFҫX/971ÿmÿѭӧFWK{QJTXD%ӝP{Q
1Jj\WKiQJQăP
&+Ӫ1+,ӊ0%Ӝ0Ð1
*,Ҧ1*9,Ç1+ѬӞ1*'Ү1&+Ë1+
.êYjJKLU}K͕WrQ
.êYjJKLU}K͕WrQ
3+̮1'¬1+&+2.+2$%͠0Ð1
1JѭӡLGX\ӋWFKҩPVѫEӝ________________________
ĈѫQYӏ _______________________________________
1Jj\EҧRYӋ __________________________________
ĈLӇP WәQJNӃW _________________________________
1ѫLOѭXWUӳOXұQiQ _____________________________
75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$
.+2$.+ .70È<7Ë1+
&Ӝ1*+Ñ$;+Ӝ,&+Ӫ1*+Ƭ$ 9,ӊ71$0
ĈӝFOұS7ӵGR+ҥQKSK~F
1Jj\ WKiQJ QăP
3+,ӂ8&+Ҩ0%Ҧ29ӊ/971
'jQKFKRQJ˱ͥLK˱ͣQJG̳Q
+ӑYjWrQ69
1*8<ӈ175Ӑ1*'Ѭ0669
1JjQKFKX\rQQJjQK.KRDKӑF0i\WtQK
ĈӅWjL +ӋWKӕQJKӛWUӧTXҧQOêJLDRKjQJ
+ӑWrQQJѭӡLKѭӟQJGүQ/ѭX4XDQJ+XkQ9ѭѫQJ%i7KӏQK
7әQJTXiWYӅEҧQWKX\ӃWPLQK
6ӕWUDQJ
6ӕFKѭѫQJ
6ӕEҧQJVӕOLӋX
6ӕKuQKYӁ
6ӕWjLOLӋXWKDPNKҧR
3KҫQPӅPWtQKWRiQ
+LӋQYұWVҧQSKҭP
7әQJTXiWYӅFiFEҧQYӁ
6ӕEҧQYӁ
%ҧQ$
%ҧQ$
.KәNKiF
6ӕEҧQYӁYӁWD\
6ӕEҧQYӁWUrQPi\WtQK
1KӳQJѭXÿLӇPFKtQKFӫD/971
;iFÿӏQKÿѭӧFPөFWLrXYjSKҥPYLWKӵFKLӋQÿӅWjLPӝWFiFKU}UjQJFөWKӇVDXNKLSKkQ
WtFKYjÿiQKJLi\rXFҫXYӅPһWQJKLӋSYөJLDRQKұQKjQJYjYұQWҧLKjQKNKiFKFiQKkQ
3KkQWtFKÿѭӧFQKӳQJÿӕLWѭӧQJQJѭӡLGQJWURQJKӋWKӕQJYDLWUzYjFKӭFQăQJFӫDWӯQJ
ÿӕLWѭӧQJQJѭӡLGQJFNJQJQKѭFiFPӕLOLrQKӋWѭѫQJWiFFӫDQKӳQJÿӕLWѭӧQJQj\%rQ
FҥQKÿyWiFJLҧFNJQJWuPKLӇXVkXYjUӝQJQKӳQJJLҧLSKiSOLrQTXDQSKkQWtFKѭXQKѭӧF
ÿLӇPFӫDWӯQJJLҧLSKiSWӯÿyKuQKWKjQKQrQÿӝQJOӵFFKRÿӅWjL
&ѫVӣOêWKX\ӃWQӅQWҧQJKLӋQWKӵFYjQKӳQJF{QJFөWULӇQNKDLFNJQJÿѭӧFWKDPNKҧRÿҫ\
ÿӫWUѭӟFNKLYұQGөQJWURQJTXiWUuQKWKӵFKLӋQJLҧLSKiSÿӅ[XҩWWKHRPөFWLrXÿmÿӅUD
ĈӅ[XҩWPӝWNLӃQWU~FYӟLVӵSKkQOӟSU}UjQJQKӳQJWKjQKSKҫQFөWKӇWURQJNLӃQWU~FYj
VӵWѭѫQJWiFWUDRÿәLGӳOLӋXJLӳDQKӳQJWKjQKSKҫQQj\PӝWFiFKWѭӡQJPLQK7URQJÿy
QKӳQJÿӕLWѭӧQJWURQJKӋWKӕQJQKӳQJÿӕLWѭӧQJQJRjLKӋWKӕQJYjYDLWUzFKӭFQăQJFӫD
QKӳQJÿӕLWѭӧQJQj\ÿѭӧFOjPU}
ĈҫXWѭWuPKLӇXYjiSGөQJQKLӅXF{QJFөWLӋQtFKSKәELӃQÿӇWULӇQNKDLÿӅWjLQKѭQKӳQJ
'HY2SVWKӵFWKөQrQÿmWtFKKӧSWKjQKF{QJӭQJGөQJGLÿӝQJYӟL5HDO7LPH6HUYLFHFNJQJ
QKѭYӟLKӋWKӕQJ[iFWKӵFQJѭӡLGQJWӯPӝWÿӅWjLNKiF
&yWLQKWKҫQWUiFKQKLӋPFDRNKLOjPYLӋFQKyPELӃWOҳQJQJKHWuPKLӇXYjÿӅ[XҩW
SKѭѫQJiQNKҳFSKөFQKӳQJVӵFӕSKiWVLQKWURQJWURQJVXӕWTXiWUuQKKLӋQWKӵFWULӇQNKDL
NLӇPWKӱGӵiQ
1KӳQJWKLӃXVyWFKtQKFӫD/971
7X\P{KuQKNLӇPWKӱNKiEjLEҧQYӟLF{QJFөNLӇPWUDWӵÿӝQJQKѭQJQӝLGXQJNLӇPWUD
FzQÿѫQJLҧQYӟLWұSKӧSWLrXFKtNLӇPWUDFKѭDSKӫKӃWQKӳQJOӛLWLӅPҭQ
&KѭDKLӋQWKӵFWHVWWҧLYӟLVӕOѭӧQJWKLӃWEӏÿӗQJWKӡLÿӫOӟQQrQSKҫQWULӇQNKDLJLҧLSKiS
PӟLGӯQJOҥLӣJLDLÿRҥQ3R&
&ҫQKLӋQWKӵFWKrPJLDRGLӋQÿӇQJѭӡLGQJWKHRG}LÿѫQKjQJPӝWFiFKWUӵFTXDQFNJQJ
QKѭFҧLWLӃQFiFKWKӭFWtQKÿLӇPWjL[ӃPӝWFiFKWKX\ӃWSKөFKѫQ
ĈӅQJKӏ ĈѭӧFEҧRYӋ □
%әVXQJWKrPÿӇEҧRYӋ □
FkXKӓL69SKҧLWUҧOӡLWUѭӟF+ӝLÿӗQJ
.K{QJÿѭӧFEҧRYӋ □
D 0ӝWJLDRGӏFKÿѭӧF[HPOjKRjQWҩWNKLWRjQEӝTX\WUuQK³JLDRQKұQ´GLӉQUDVX{QVҿQӃX
TXiWUuQKQj\JһSVӵFӕYӅNӻWKXұWYtGөOӛLÿѭӡQJWUX\ӅQÿLӋQWKRҥLPҩWQJXӗQ**
*36PҩWVyQJWKuKӋWKӕQJFy[ӱOêQJRҥLOӋNK{QJ"
E /jPVDRÿӇKҥQFKӃUӫLURGR\ӃXWӕFRQQJѭӡLWURQJYLӋFEҧRÿҧPWjLVҧQFӫDQJѭӡLJӱL
NK{QJEӏÿiQKFҳSWUiRÿәLWURQJPӝWJLDRGӏFK"
F 9LӋFÿӏQKGDQKQJѭӡLQKұQTXDQWUӑQJQKѭWKӃQjRWURQJP{KuQKTX\WUuQKQJKLӋSYөJLDR
QKұQKjQJKyD"
ĈiQKJLiFKXQJEҵQJFKӳJLӓLNKi7% *LӓL
ĈLӇP
.êWrQJKLU}KӑWrQ
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KH & KT MÁY TÍNH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------------------Ngày 23 tháng 12 năm 2021
PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1. Họ và tên SV: Nguyễn Trọng Dư
MSSV: 1610569
Ngành (chuyên ngành): Khoa Học Máy Tính
2. Đề tài: Hệ thống hỗ trợ quản lý giao hàng.
3. Họ tên người hướng dẫn/phản biện: /Trần Hồng Tài
4. Tổng quát về bản thuyết minh:
Số trang: 133
Số chương: 6
Số bảng số liệu:
Số hình vẽ:
Số tài liệu tham khảo:
Phần mềm tính toán:
Hiện vật (sản phẩm)
5. Tổng quát về các bản vẽ:
- Số bản vẽ:
Bản A1:
Bản A2:
Khổ khác:
- Số bản vẽ vẽ tay
Số bản vẽ trên máy tính:
6. Những ưu điểm chính của LVTN:
- Luân văn đưa ra ứng dụng cụ thể sát với thực tế của như cầu giao nhận hàng hóa.
- Luận văn tìm hiểu ưu điểm, nhược điểm của các nền tảng, mô hình liên quan như grab, gojek, be
như việc chưa có khả năng định danh người nhận, một số nền tảng chưa có chức năng giao đơn
hang nhiều điểm dừng.
- Đưa ra đề xuất để cải thiện các mô hình trước đó như định danh người nhận bằng mã QR, thiết lập
chức năng giao hàng nhiều điểm dừng.
- Có định hướng phát triển tiếp theo cho đề tài.
7. Những thiếu sót chính của LVTN:
- Các hình ảnh về quy trình, sơ đồ trong luận văn có cỡ chữ tương đối nhỏ khó quan sát.
- Chức năng cấp định danh người nhận là bắt buộc và bắt buộc người nhận phải có tài khoản để
được cấp định danh.
- Chưa đưa ra các quy trình để xử lý tình huống xấu phát sinh như tài xế bị hư xe trong quá trình
giao hàng.
8. Đề nghị: Được bảo vệ
Bổ sung thêm để bảo vệ
Không được bảo vệ
9. 3 câu hỏi SV phải trả lời trước Hội đồng:
- Nêu hướng cải tiến để định danh trong trường hợp cần gửi hàng cho người nhận không có tài
khoản.
10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Khá
Điểm: 7.8 /10
Ký tên (ghi rõ họ tên)
Trần Hồng Tài
LỜI CAM ĐOAN
Chúng tôi xin cam đoan đây là công trình nghiên cứu và thực hiện của nhóm chúng
tôi. Các số liệu sử dụng phân tích trong luận văn có nguồn gốc được dẫn chứng và công
bố rõ ràng. Mọi sao chép không hợp lệ, vi phạm các quy định, chúng tôi xin hoàn toàn
chịu trách với mọi hình thức kỷ luật được đề ra.
NHÓM THỰC HIỆN ĐỀ TÀI
LỜI CẢM ƠN
Trước hết chúng tôi xin dành hết lòng biết ơn của mình cho ThS. Lưu Quang Huân giảng viên khoa Khoa học và Kỹ thuật Máy tính (trường Đại học Bách Khoa - ĐHQGTP.HCM) . Trong suốt khoảng thời gian vừa qua, đã không ngừng dành thời gian quan
tâm, theo dõi, đưa ra những hướng dẫn mang tính quyết định đối với đề tài để nhóm
thực hiện chúng tôi có thể hoàn thành được đề cương luận văn này ở mức tốt nhất có
thể. Cũng như đưa ra hướng phát triển để chúng tôi có thể nhận thấy và thực hiện trong
khoảng thời gian này.
Bên cạnh đó, chúng tôi xin cảm ơn những kiến thức, kinh nghiệm và những sự giúp
đỡ của tập thể giảng viên, nhân viên khoa Khoa học và Kỹ thuật Máy tính (trường Đại
học Bách Khoa - ĐHQG-TP.HCM) đã truyền đạt cho chúng tôi trong những năm tháng
vừa qua để tạo ra nền tảng kiến thức vững chắc cho chúng tôi thực hiện đề tài ngày hôm
nay.
Cuối cùng, chúng tôi mới gửi lời cảm ơn sâu sắc đến gia đình và bạn bè, những người
đã tạo ra động lực phi thường giúp chúng tôi hoàn thành đề cương luận văn một cách đầy
đủ nhất.
NHÓM THỰC HIỆN ĐỀ TÀI
TÓM TẮT NỘI DUNG
Trao đổi hàng hóa là một nhu cầu bức thiết trong xã hội, từ người có hàng hóa vận
chuyển tới người có nhu cầu. Khi chưa ứng dụng công nghệ thông tin hoàng hóa chủ
yếu được vận chuyển thông qua kênh bưu điện, các chuyến xe khách liên tỉnh hay xe ôm
truyền thống. Dẫn đến nhiều bất cập như phụ thuộc về giá và chưa đảm bảo được tính an
toàn, bảo mật.
Hiện nay đã có những công ty ứng dụng công nghệ thông tin tạo ra các sản phẩm giúp
hỗ trợ quá trình giao nhận hàng hóa như Grab, Ahamove, Gojek ... Thông qua nền tảng
của từng công ty người dùng có thể dễ dàng gửi các kiện hàng tới một địa điểm trong
khi có thể theo dõi hành trình tài xế và biết trước giá cước vận chuyển.
Trong luận văn này, mục tiêu của chúng tôi là nghiên cứu và xây dựng một hệ thống
nguyên bản cho phép thực hiện các tác vụ cơ bản nhất của hệ thống liên quan đến giao
hàng nhiều điểm dừng và định danh người nhận thông qua mã QR.
Mục lục
1
2
3
Giới thiệu
1
1.1
Động lực . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Mục tiêu đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Phạm vi đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.4
Cấu trúc báo cáo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Các giải pháp liên quan
5
2.1
Grab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
Gojek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Be . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4
Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4.1
So sánh tính năng của từng dịch vụ . . . . . . . . . . . . . . .
11
2.4.2
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4.3
Khuyết điểm . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.4.4
Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Kiến thức nền tảng
13
3.1
Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.1.1
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.1.2
Khuyết điểm . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
React Native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2.1
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.2
Khuyết điểm . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.2
3.3
5
3.4
4
3.3.1
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3.2
Khuyết điểm . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
Redis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4.1
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4.2
Nhược điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Giải pháp đề xuất
24
4.1
Đối tượng sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.1.1
Quản trị viên . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.1.2
Tài xế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.1.3
Người gửi hàng . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.1.4
Người nhận hàng . . . . . . . . . . . . . . . . . . . . . . . . .
25
Phân tích yêu cầu nghiệp vụ . . . . . . . . . . . . . . . . . . . . . . .
26
4.2.1
Yêu cầu chức năng của quản trị viên . . . . . . . . . . . . . . .
26
4.2.2
Yêu cầu chức năng của tài xế . . . . . . . . . . . . . . . . . . .
29
4.2.3
Yêu cầu chức năng của người gửi hàng . . . . . . . . . . . . . .
36
4.2.4
Yêu cầu chức năng của người nhận hàng . . . . . . . . . . . . .
41
4.2.5
Yêu cầu phi chức năng . . . . . . . . . . . . . . . . . . . . . .
42
Kiến trúc hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.3.1
Module tương tác người dùng . . . . . . . . . . . . . . . . . .
42
4.3.2
Kiến trúc ứng dụng di động . . . . . . . . . . . . . . . . . . .
43
4.3.2.1
Redux . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.3.2.2
UI Component . . . . . . . . . . . . . . . . . . . . .
44
4.3.2.3
Socket Component . . . . . . . . . . . . . . . . . . .
44
4.3.3
Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.3.4
Kiến trúc Server . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.3.4.1
Delivery Handler . . . . . . . . . . . . . . . . . . .
46
4.3.4.2
Realtime Handler . . . . . . . . . . . . . . . . . . .
47
Thiết kế giao diện người dùng . . . . . . . . . . . . . . . . . . . . . .
48
4.4.1
Giao diện web quản trị viên . . . . . . . . . . . . . . . . . . .
48
4.4.1.1
Dashboard trang quản trị viên . . . . . . . . . . . . .
48
4.4.1.2
Quản lý tài khoản . . . . . . . . . . . . . . . . . . .
49
4.2
4.3
4.4
4.4.1.3
4.5
Quản lý vận đơn . . . . . . . . . . . . . . . . . . . .
51
4.4.2
Giao diện ứng dụng di động người gửi hàng . . . . . . . . . . .
55
4.4.3
Giao diện ứng dụng di động người nhận hàng . . . . . . . . . .
66
4.4.4
Giao diện ứng dụng tài xế . . . . . . . . . . . . . . . . . . . .
67
Hiện thực . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
4.5.1
Lược đồ thực thi . . . . . . . . . . . . . . . . . . . . . . . . .
76
4.5.1.1
Quy trình “Đăng nhập” . . . . . . . . . . . . . . . .
76
4.5.1.2
Quy trình “Tài xế sẵn sàng nhận vận đơn” . . . . . .
78
4.5.1.3
Quy trình “Tạo vận đơn” . . . . . . . . . . . . . . .
79
4.5.1.4
Quy trình “Tài xế chấp nhận vận đơn” . . . . . . . .
81
4.5.1.5
Quy trình “Tài xế thông báo tới điểm nhận vận đơn” .
83
4.5.1.6
Quy trình “Tài xế xác nhận nhận vận đơn” . . . . . .
84
4.5.1.7
Quy trình “Tài xế quét mã QR xác nhận người nhận” .
85
4.5.1.8
Quy trình “Tài xế xác nhận hoàn tất vận đơn” . . . . .
87
4.5.1.9
Quy trình “Hủy vận đơn” . . . . . . . . . . . . . . .
88
4.5.1.10 Quy trình “Quản trị viên xem vận đơn” . . . . . . . .
90
4.5.1.11 Quy trình “Quản trị viên cập nhật vận đơn” . . . . . .
91
Mô tả chức năng thành phần hệ thống . . . . . . . . . . . . . .
93
4.5.2.1
Delivery Handler . . . . . . . . . . . . . . . . . . .
93
4.5.2.2
Realtime Handler . . . . . . . . . . . . . . . . . . .
95
4.5.2
4.5.3
4.6
5
Thiết kế cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . 109
4.5.3.1
Thiết kế cở sở dữ liệu ý niệm . . . . . . . . . . . . . 109
4.5.3.2
Thiết kế cở sở dữ liệu vật lý . . . . . . . . . . . . . . 114
Quản lý mã nguồn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.6.1
Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.6.2
GitFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.6.2.1
Service . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.6.2.2
Ứng dụng di động . . . . . . . . . . . . . . . . . . . 122
Triển khai và kiểm thử
5.1
123
Triển khai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.1.1
Môi trường triển khai . . . . . . . . . . . . . . . . . . . . . . . 124
5.2
6
5.1.1.1
Heroku . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.1.1.2
Google Map . . . . . . . . . . . . . . . . . . . . . . 124
Kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.1
Loại kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.2
Tích hợp kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.3
Kết quả kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . 127
Tổng kết
6.1
6.2
128
Đánh giá kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . 129
6.1.1
Đối với tìm hiểu quy trình nghiệp vụ . . . . . . . . . . . . . . . 129
6.1.2
Đối với công nghệ . . . . . . . . . . . . . . . . . . . . . . . . 129
6.1.3
Đối với phân tích và thiết kế hệ thống . . . . . . . . . . . . . . 129
6.1.4
Kết quả hiện thực . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.1.4.1
Đối với ứng dụng dành cho khách hàng . . . . . . . . 129
6.1.4.2
Đối với ứng dụng dành cho tài xế . . . . . . . . . . . 130
6.1.4.3
Đối với ứng dụng dành cho quản trị viên . . . . . . . 130
6.1.4.4
Đối với back-end . . . . . . . . . . . . . . . . . . . . 130
6.1.5
Hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.1.6
Ý nghĩa thực tiễn . . . . . . . . . . . . . . . . . . . . . . . . . 131
Hướng phát triển đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Danh sách hình vẽ
2.1
Grab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
Gojek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Be . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1
Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2
React Native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.3
PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.4
Redis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
4.1
Use case quản trị viên . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.2
Use case xác thực tài xế . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3
Use case tính năng tài xế . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.4
Use case xác thực người gửi . . . . . . . . . . . . . . . . . . . . . . .
36
4.5
Use case tính năng người gửi hàng . . . . . . . . . . . . . . . . . . . .
38
4.6
Kiến trúc Ứng dụng di động . . . . . . . . . . . . . . . . . . . . . . .
43
4.7
Kiến trúc Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.8
Giao diện web quản trị viên - Dashboard trang quản trị viên . . . . . . .
48
4.9
Giao diện web quản trị viên - Quản lý tài khoản . . . . . . . . . . . . .
49
4.10 Giao diện web quản trị viên - Thêm tài khoản . . . . . . . . . . . . . .
49
4.11 Giao diện web quản trị viên - Cập nhật trạng thái tài khoản . . . . . . .
50
4.12 Giao diện web quản trị viên - Cập nhật thông tin tài khoản . . . . . . .
50
4.13 Giao diện web quản trị viên - Xem thông tin người nhận . . . . . . . . .
51
4.14 Giao diện web quản trị viên - Cập nhật thôn tin người nhận . . . . . . .
52
4.15 Giao diện web quản trị viên - Báo cáo trạng thái vận đơn . . . . . . . .
52
4.16 Giao diện web quản trị viên - Tính năng báo cáo trạng thái vận đơn . . .
53
9
4.17 Giao diện web quản trị viên - Khách hàng mới . . . . . . . . . . . . . .
53
4.18 Giao diện web quản trị viên - Khách hàng mới . . . . . . . . . . . . . .
54
4.19 Giao diện di động - Màn hình thông tin vận đơn . . . . . . . . . . . . .
55
4.20 Giao diện di động - Màn hình tìm kiếm địa chỉ . . . . . . . . . . . . . .
56
4.21 Giao diện di động - Màn hình điểm dừng thứ nhất . . . . . . . . . . . .
57
4.22 Giao diện di động - Màn hình điểm dừng thứ hai . . . . . . . . . . . . .
58
4.23 Giao diện di động - Màn hình xác nhận tạo vận đơn . . . . . . . . . . .
59
4.24 Giao diện di động - Màn hình thông tin tài xế . . . . . . . . . . . . . .
60
4.25 Giao diện di động - Màn hình trạng thái gửi vận đơn . . . . . . . . . . .
61
4.26 Giao diện di động - Màn hình trạng thái tài xế xác nhận vận đơn . . . .
62
4.27 Giao diện di động - Màn hình trạng thái tài xế tới điểm nhận vận đơn . .
63
4.28 Giao diện di động - Màn hình trạng thái tài xế xác nhận nhận vận đơn .
64
4.29 Giao diện di động - Màn hình trạng thái hoàn tất vận đơn . . . . . . . .
65
4.30 Giao diện di động - Màn hình mã qr cho người nhận hàng . . . . . . . .
66
4.31 Giao diện di động - Màn hình tài xế chưa sẵn sàng . . . . . . . . . . . .
67
4.32 Giao diện di động - Màn hình tài xế sẵn sàng . . . . . . . . . . . . . .
68
4.33 Giao diện di động - Màn hình thông tin vận đơn . . . . . . . . . . . . .
69
4.34 Giao diện di động - Màn hình thông báo tới điểm nhận vận đơn . . . . .
70
4.35 Giao diện di động - Màn hình xác nhận nhận vận đơn . . . . . . . . . .
71
4.36 Giao diện di động - Màn hình xác nhận bắt đầu vận chuyển . . . . . . .
72
4.37 Giao diện di động - Màn hình xác nhận hoàn tất vận đơn . . . . . . . .
73
4.38 Giao diện di động - Màn hình quét mã qr . . . . . . . . . . . . . . . . .
74
4.39 Giao diện di động - Màn hình thông báo tổng cước phí vận chuyển . . .
75
4.40 Quy trình “Đăng nhập” . . . . . . . . . . . . . . . . . . . . . . . . . .
77
4.41 Quy trình “Tài xế sẵn sàng nhận vận đơn” . . . . . . . . . . . . . . . .
78
4.42 Quy trình “Tạo vận đơn” . . . . . . . . . . . . . . . . . . . . . . . . .
80
4.43 Quy trình “Tài xế chấp nhận vận đơn” . . . . . . . . . . . . . . . . . .
82
4.44 Quy trình “Tài xế thông báo tới điểm nhận vận đơn” . . . . . . . . . . .
83
4.45 Quy trình “Tài xế xác nhận nhận vận đơn” . . . . . . . . . . . . . . . .
85
4.46 Quy trình “Tài xế quét mã QR xác nhận người nhận” . . . . . . . . . .
86
4.47 Quy trình “Tài xế xác nhận hoàn tất vận đơn” . . . . . . . . . . . . . .
87
4.48 Quy trình “Hủy vận đơn” . . . . . . . . . . . . . . . . . . . . . . . . .
89
4.49 Quy trình “Quản trị viên xem vận đơn” . . . . . . . . . . . . . . . . . .
90
4.50 Quy trình “Quản trị viên cập nhật vận đơn” . . . . . . . . . . . . . . .
92
4.51 Flowchart lấy danh sách vận đơn . . . . . . . . . . . . . . . . . . . . .
93
4.52 Flowchart cập nhật vận đơn . . . . . . . . . . . . . . . . . . . . . . . .
95
4.53 Flowchart kiểm tra yêu cầu kết nối Realtime Handler . . . . . . . . . .
96
4.54 Flowchart tài xế sẵn sàng nhận vận đơn . . . . . . . . . . . . . . . . . .
98
4.55 Flowchart tạo vận đơn . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.56 Flowchart tài xế chấp nhận vận đơn . . . . . . . . . . . . . . . . . . . . 101
4.57 Flowchart tài xế thông báo tới điểm nhận vận đơn . . . . . . . . . . . . 102
4.58 Flowchart tài xế xác nhận nhận vận đơn . . . . . . . . . . . . . . . . . 103
4.59 Flowchart tài xế quét mã QR xác nhận người nhận . . . . . . . . . . . . 104
4.60 Flowchart tài xế xác nhận hoàn tất vận đơn . . . . . . . . . . . . . . . . 106
4.61 Flowchart hủy vận đơn . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.62 Flowchart cập nhật vị trí tài xế . . . . . . . . . . . . . . . . . . . . . . 108
4.63 ERD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.64 Thực thể User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.65 Thực thể Customer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.66 Thực thể Shipment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.67 Thực thể DriverOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.68 Thực thể Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.69 Thiết kế cơ sở dữ liệu vật lý . . . . . . . . . . . . . . . . . . . . . . . . 115
4.70 Hệ thống mã nguồn phân tán [15] . . . . . . . . . . . . . . . . . . . . 119
4.71 Các trạng thái của file trong Git [16] . . . . . . . . . . . . . . . . . . . 120
5.1
Heroku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2
Google Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3
Postman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.4
Bước 2 tạo collection . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.5
Bước 3 tạo các test request . . . . . . . . . . . . . . . . . . . . . . . . 126
5.6
Bước 4 Cấu hình chạy kiểm thử định kỳ . . . . . . . . . . . . . . . . . 127
5.7
Kết quả kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Danh sách bảng
2.1
So sánh các giải pháp vận tải . . . . . . . . . . . . . . . . . . . . . . .
11
2.2
So sánh giải pháp tăng tính bảo mật cho vận đơn . . . . . . . . . . . . .
11
4.1
Flowchart cập nhật vận đơn . . . . . . . . . . . . . . . . . . . . . . . .
94
4.2
Cấu trúc gói tin gửi tới Realtime Handler . . . . . . . . . . . . . . . . .
97
4.3
Dữ liệu sự kiện "Tài xế sẵn sàng nhận vận đơn" . . . . . . . . . . . . .
98
4.4
Dữ liệu sự kiện "Tạo vận đơn" . . . . . . . . . . . . . . . . . . . . . .
99
4.5
Dữ liệu sự kiện "Tài xế chấp nhận vận đơn" . . . . . . . . . . . . . . . 100
4.6
Dữ liệu sự kiện "Tài xế thông báo tới điểm nhận vận đơn" . . . . . . . . 101
4.7
Dữ liệu sự kiện "Tài xế xác nhận nhận vận đơn" . . . . . . . . . . . . . 103
4.8
Dữ liệu sự kiện "Tài xế quét mã QR xác nhận người nhận" . . . . . . . 104
4.9
Dữ liệu sự kiện "Tài xế xác nhận hoàn tất vận đơn" . . . . . . . . . . . 105
4.10 Dữ liệu sự kiện "Hủy vận đơn" . . . . . . . . . . . . . . . . . . . . . . 107
4.11 Dữ liệu sự kiện "cập nhật vị trí tài xế" . . . . . . . . . . . . . . . . . . 108
4.12 Bảng mô tả thực thể User . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.13 Bảng mô tả thực thể Customer . . . . . . . . . . . . . . . . . . . . . . 111
4.14 Bảng mô tả thực thể Shipment . . . . . . . . . . . . . . . . . . . . . . 112
4.15 Bảng mô tả thực thể DriverOn . . . . . . . . . . . . . . . . . . . . . . 112
4.16 Bảng mô tả thực thể Item . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.17 Mô trường dữ liệu chính của bảng Users . . . . . . . . . . . . . . . . . 116
4.18 Mô trường dữ liệu chính của bảng Customer . . . . . . . . . . . . . . . 117
4.19 Mô trường dữ liệu chính của bảng DriverOn . . . . . . . . . . . . . . . 117
4.20 Mô trường dữ liệu của bảng Shipment . . . . . . . . . . . . . . . . . . 118
4.21 Mô trường dữ liệu của bảng Item . . . . . . . . . . . . . . . . . . . . . 118
4.22 Cấu trúc thư mục gốc của Service . . . . . . . . . . . . . . . . . . . . 121
12
4.23 Cấu trúc thư mục Customer . . . . . . . . . . . . . . . . . . . . . . . . 121
4.24 Cấu trúc thư mục gốc ứng dụng di động . . . . . . . . . . . . . . . . . 122
4.25 Cấu trúc thư mục app . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Trang 13
Chương 1
Giới thiệu
Trang 1
1.1
Động lực
Trải qua hàng nghìn năm sống trên trái đất con người luôn muốn tìm kiếm những giải
pháp hiệu quả, tiến bộ hơn để nâng cao chất lượng đời sống. Qua ba cuộc cách mạng
công nghiệp con người đã đạt được những thành tựu đáng kể từ những cỗ máy vận hàng
bằng động cơ hơi nước, những dây truyền sản xuất đồng loạt dùng năng lượng điện và
cho tới những cỗ máy tự động hóa có thể thay thế một phần chức năng của con người[1].
Hiện nay chúng ta đang ở giai đoạn đầu của cuộc cách mạng công nghiệp lần thứ 4, Cuộc
cách mạng công nghiệp 4.0[2], cuộc cách mạng có thể giúp máy móc tự động tương tác
để hoàn thành công việc mà không cần tới sự can thiệp của con người. Thế giới chuyển
động ngày càng nhanh, nhu cầu ứng dụng khoa học công nghệ vào các ngành nghề cốt
lõi của đời sống để tối ưu hóa, giảm thiểu chi phí giúp con người có thêm không gian và
thời gian tập trung vào những công việc quan trọng ngày càng cấp thiết.
Giao nhận hàng hóa là một vấn đề xảy ra thường xuyên trong đời sống. Không ít
những công ty, tập đoàn đưa ra các giải pháp hỗ trợ quá trình vận chuyển, giao nhận
hàng có thể kể đến như Uber, Grab, Gojek, Be, LOGIVAN[3]... Các giải pháp đã giúp
quá trình di chuyển, giao nhận hàng trở nên đơn giản và hiệu quả hơn. Tuy nhiên, xã hội
luôn không ngừng phát triển kéo theo sự thay đổi liên tục trong nhu cầu tiêu dùng, vẫn
tồn tại những khía cạnh có thể cải tiến nhằm giúp nâng cao hiệu quả trong vấn đề liên
quan đến giao nhận hàng hóa.
Trong quy trình nghiệp vụ giao hàng hiện nay của các đơn vị cung cấp, tại thời điểm
giao hàng tài xế liên hệ và định danh người nhận thông qua số điện thoại, hoặc khi tới
điểm giao hàng nếu có người nhận hàng tài xế sẽ tiến hành giao hàng không thông qua
bước định danh người giao hàng. Hiện nay hàng hóa được vận chuyển chủ yếu từ các
trang thương mại điện tử, đồ ăn, uống ... những mặt hàng không yêu cầu tính bảo mật
và chính xác cao nên được ưa chộng sử dụng. Ngoài những mặt hàng kể trên còn những
loại hàng hóa đặc thù yêu cầu tính bảo mật và chính xác cao như công văn, giấy tờ, sổ
tiết kiệm ... cần phải có một cách thức định danh người nhận giúp tăng niềm tin đối với
khách hàng và giảm khả năng nhầm lẫn.
Vì vậy, chúng tôi thực hiện dự án này nhằm đưa ra một giải pháp hữu hiệu giúp quản
lý quá trình giao nhận hàng hiệu quả, giảm thiểu tỷ lệ sai sót, giảm áp lực trên hệ thống
Trang 2
khi tham gia khắc phục hậu quả đồng thời gia tăng niềm tin đối với khách hàng.
1.2
Mục tiêu đề tài
Tìm hiểu, phân tích quy trình nghiệp vụ các mô hình vận tải đơn lẻ, các giải pháp giao
hàng bằng xe ô tô và xe gắn máy.
Phân tích, thiết kế hệ thống đáp ứng các yêu cầu chức năng và phi chức năng.
Hiện thực, triển khai phiên bản cơ bản nhất của hệ thống.
Tiến hành kiểm thử, đánh giá tính ứng dụng và khả thi của giải pháp đề xuất.
Cụ thể: Tạo ra 2 ứng dụng riêng biệt và một giao diện web: 2 ứng dụng riêng biệt gồm
một ứng dụng dành cho tài xế và một ứng dụng dành cho khách hàng. Một giao diện web
dành cho quản trị viên.
• Đối với ứng dụng dành cho tài xế:
– Cập nhật vị trí tài xế theo thời gian thực nhằm giúp tìm kiếm vận đơn gần vị trí
tài xế.
– Nhận (từ chối) vận đơn.
– Cập nhật trạng thái vận đơn theo thời gian thực.
– Định danh khách hàng bằng QR.
• Đối với ứng dụng dành cho khách hàng:
– Tìm kiếm các tài xế phù hợp với vận đơn.
– Kiểm soát đơn hàng theo thời gian thực dựa vào trạng thái vận đơn và vị trí của
tài xế.
– Mã QR định danh vận đơn trong trường hợp khách hàng là người nhận hàng.
1.3
Phạm vi đề tài
Phạm vi đề tài bao gồm:
• Đề xuất giải pháp hỗ trợ giao hàng, hướng đến đảm bảo tính bảo mật và chính xác
cho các vận đơn.
Trang 3
- Xem thêm -