Nội dung đề tài: • Mục tiêu: • Xây dựng ứng dụng hỗ trợ các tài xế quản lý các đơn hàng.. Cùng với sự phát triển của việc mua sắm online là sự nổi lên của các ứng dụng giao hàng.. Các ứ
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
NGUYỄN PHÚC ĐỨC
LÊ MINH HIẾU
KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE BUILDING AN ONLINE DELIVERY APPLICATION
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP HỒ CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
NGUYỄN PHÚC ĐỨC
LÊ MINH HIẾU
KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE BUILDING AN ONLINE DELIVERY APPLICATION
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP HỒ CHÍ MINH, 2021
Trang 3DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
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 Trường Đại học Công nghệ Thông tin
Trang 4CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hanh Phúc
TP.HCM, ngày……tháng……năm……
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE
Đánh giá khóa luận:
1 Về cuốn báo cáo:
2 Về Nội dung nghiêng cứu:
Trang 5
3 Về chương trình ứng dụng:
4 Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
Người nhận xét
Trang 6CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hanh Phúc
TP.HCM, ngày……tháng……năm……
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE
Đánh giá khóa luận:
1 Về cuốn báo cáo:
Số trang: Số chương:
Số bảng số liệu: Số hình vẽ:
Số tài liệu tham khảo: Sản phẩm: _
Một số nhận xét về hình thức cuốn báo cáo:
2 Về Nội dung nghiêng cứu:
Trang 7
3 Về chương trình ứng dụng:
4 Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
Người nhận xét
Trang 8LỜI CẢM ƠN
Sau hơn 4 năm học tập và rèn luyện tại Trường Đại học Công nghệ Thông tin, được sự
tận tình giảng dạy và giúp đỡ của quý thầy cô, đặc biệt là quý thầy cô của khoa Công
nghệ Phần mềm, chúng em đã gặt hái được rất nhiều kiến thức nền tảng bổ ích, có thể
áp dụng vào luận văn cũng như áp dụng trong những chặng đường tiếp theo sau này
Chúng em xin chân thành cảm ơn quý thầy cô của trường Đại học Công nghệ Thông
tin
nói chung, quý thầy cô của khoa Công nghệ Phần mềm nói riêng, và đặc biệt là cô Thái
Thụy Hàn Uyển đã tận tình hướng dẫn và đóng góp ý kiến để chúng em có thể hoàn
thành khóa luận này một cách tốt nhất
Bên cạnh đó, nhóm xin gửi lời cảm ơn đến các bạn cùng lớp đã có những lời góp ý,
động
viên để nhóm có thêm động lực thực hiện khóa luận trong khoảng thời gian khó khăn
này
Trong suốt quá trình chúng em tìm hiểu và thực hiện khóa luận, do đề tài có nhiều
nghiệp vụ phức tạp và đặc thù chuyên ngành kinh tế, thời gian và khả năng có giới hạn
nên chúng em vẫn còn nhiều thiếu sót Do đó, nhóm chúng em rất mong nhận được sự
thông cảm và những ý kiến đóng góp chân thành từ quý thầy cô và các bạn Một lần
nữa, nhóm chúng em xin chân thành cảm ơn mọi người
Thành phố Hồ Chí Minh, tháng 01 năm 2020
Nguyễn Phúc Đức
Lê Minh Hiếu
Trang 9CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hanh Phúc
ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE
Cán bộ hướng dẫn: TS Thái Thị Hàn Uyển
Thời gian thực hiện: Từ ngày 07/09/2020 – 02/01/2021
Sinh viên thực hiện:
Lê Minh Hiếu – 16520390
Nguyễn Phúc Đức – 16520243
1 Nội dung đề tài:
• Mục tiêu:
• Xây dựng ứng dụng hỗ trợ các tài xế quản lý các đơn hàng
• Tối ưu hóa quãng đường di chuyển các tài xế, giảm thời gian chết
• Quản lý các trạng thái đơn hàng Tăng sự tương tác giữa các tài xế và khách hàng
• Hỗ trợ khách hàng theo dõi tình trạng đơn hàng của mình
• Phương pháp thực hiện:
- Tham khảo các nền tảng giao hàng đang có trên thị trường
- Tìm hiểu, lựa chọn công nghệ phù hợp
ĐHQG TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
Trang 10- Kiểm thử và hoàn thiện
• Kết quả mong đợi:
- Hoàn thành ứng dụng giao hàng nhanh đáp ứng các yêu cầu nghiệp vụ đề ra
- Tạo được sự khác biệt so với các nền tảng hiện có trên thị trường
- Ứng dụng tạo được sự thân thiện với người dùng, dễ sử dụng
2 Kế hoạch thực hiện
1 - Xây dựng cơ sở dữ liệu
- Xác định danh sách các màn hình, phát thảo sơ bộ
1 tuần
Trang 12Mục lục
CHƯƠNG 1: MỞ ĐẦU: 1
1 Giới thiệu đề tài: 1
2 Lý do chọn đề tài: 2
CHƯƠNG 2: TỔNG QUAN ĐỀ TÀI 3
1 Mục tiêu đề tài: 3
2 Phạm vi thực hiện: 3
3 Phương pháp thực hiện: 3
4 Ý nghĩa thực tiễn: 4
5 Kết quả dự kiến 4
CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG 6
1 Tổng quan về Laravel framwork 6
1.1 Lịch sử phát triển 6
1.2 Một số đặc điểm nổi bật: 6
1.3 Một số điểm yếu: 10
2 Tổng quan về Vuejs framework 11
2.1 Giới thiệu vuejs 11
2.2 Một số ưu điểm 11
2.3 Một số nhượt điểm 13
3 Tổng quan về react-native framework 13
3.1 Khái niệm và lịch sử hình thành 13
3.2 Ưu điểm react-native 14
- Tiết kiệm nhân lực và thời gian: React-native giúp ta có thể chỉ viết code 1 lần mà có thể chạy trên cả android và ios, chính vì lẽ đó team phát triển của bạn sẽ tiết kiệm được khá nhiều thời gian và nhân lực 14
3.3 Nhượt điểm react-native 14
CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE 15
1 Đặt vấn đề 15
2 Hướng giải quyết 15
3 Xác định và phân tích yêu cầu 16
4 Thiết kế cơ sở dữ liệu: 22
5 Thiết kế giao diện và xử lý 37
5.1 Giao diện ứng dụng web 37
Trang 135.2 Giao diện mobile 67
CHƯƠNG 5: KẾT LUẬN 91
1 Kết quả đạt được 91
2 Thuận lợi và khó khăn 91
2.1 Thuận lợi 91
2.2 Khó khăn 91
2.3 Hướng phát triển 91
Trang 14CHƯƠNG 1: MỞ ĐẦU:
1 Giới thiệu đề tài:
- Với sự phát triển của các sàn thương mại điện tử hiện nay, việc mua sắm online trở thành xu thế chung Cùng với sự phát triển của việc mua sắm online là sự nổi lên của các ứng dụng giao hàng Các tài xế giao hàng (shipper) được xem là một nghề nghiệp mới trong xã hội với thu nhập khá cao nhưng cũng không kém phần bấp bênh Hiện nay, mức độ canh tranh giữa các doanh nghiệp chuyển phát rất cao, đặc biệt là ở TP Hồ Chí Minh Cụ thể, tại Hà Nội, số đơn vị thuê
Vietnam Post là 20%, Viettel Post là 52% Giao EMS là 4%, giao hàng nhanh: 10%, giao hàng tiết kiệm: 9%, các DN chuyển phát khác là 10% Tỷ lệ tương ứng ở TP Hồ Chí Minh là 15%, 28%, 10%, 5%, 7% và 43% Mặc dù thị phần đang do khối nội chi phối nhưng trong thời gian qua, nhiều DN nước ngoài đã không ngừng tăng tốc đầu tư vào Việt Nam Trong đó phải kể tới Lalamove (Hong Kong), sau khi có mặt ở 112 thành phố châu Á đã "đổ bộ" vào TP Hồ Chí Minh và Hà Nội Đặc biệt, DN này khẳng định 100% đơn hàng đến nay được giao dưới 55 phút Trước sức hấp dẫn trên, sàn TMĐT Lazada cũng tách
bộ phận giao nhận hàng hóa để thành lập công ty riêng là Lazada Express, sau
đó tiếp tục phát triển hệ sinh thái giao nhận cho TMĐT bằng những cột mốc đầu
tư mạnh dạn cho công ty Lazada E-logistics (LEL) nhằm đáp ứng nhu cầu tăng trưởng của thị trường TMĐT
- Tốc độ tăng trưởng trung bình năm 2018 so với năm 2017 của các DN chuyển phát tham gia khảo sát là 70%, tốc độ tăng trưởng của DN thấp nhất vẫn đạt 30% và có 3 DN đạt tốc độ tăng trưởng trên 100% Các chuyên gia và DN đều cho rằng thời gian tới nhiều DN ngoại sẽ tiếp tục đầu tư tài chính lớn để chiếm lĩnh thị trường giao hàng
Trang 15- Hàng loạt startup cũng nhảy vào tham chiến lĩnh vực này như Ship 60,
AhaMove, giaohangso1.vn, tochanh vn, Zozoship.vn… CEO của một DN cho rằng sự xuất hiện ngày càng nhiều hơn các DN nước ngoài, với đầu tư lớn và cách làm chuyên nghiệp là dấu hiệu tích cực đối với thị trường nhưng cũng đồng nghĩa các DN Việt Nam sẽ phải cạnh tranh gay gắt hơn
- Để tồn tại trong môi trường cạnh tranh khắc nghiệt hiện nay, một số ứng dụng chấp nhận hoạt động lỗ vốn để chiếm lấy thị phần, bên cạnh đó một số ứng dụng
để tối ưu lợi nhuận đã dùng cách cắt giảm chi phí trả cho các shipper, áp đặt các loại thuế phí một cách vô lý lên tài xế Điều này đã đẩy các tài xế lâm vào tình cảnh đã khó khăn nay càng khó khăn hơn
2 Lý do chọn đề tài:
- Shipper giờ đây có thể xem là một công việc kiếm thêm của các học sinh, sinh viên Bản thân bọn em cũng có khá nhiều người bạn làm công việc vận chuyển hàng hóa cho các công ty kể trên Sau khi tham khảo qua các ứng dụng hiện có trên thị trường, nhận thấy sự chèn ép của các ứng dụng đối với tài xế Các ứng dụng thường dùng sức mạnh công nghệ của mình chèn ép trong việc giao đơn cho các tài xế
- Bên cạnh đó, giao diện của một số ứng dụng tỏ ra quá rườm rà Điều này dẫn đến một số tài xế lớn tuổi khó tiếp cận ứng dụng
- Chính vì những lý do trên, chúng em quyết định xây dựng một nền tảng giao hàng mới với tiêu chí đơn giản, dễ sử dụng, chú trọng hơn vào các đối tác tài xế
Trang 16CHƯƠNG 2: TỔNG QUAN ĐỀ TÀI
- Xây dựng kiến trúc cơ sở dữ liệu cho phù hợp với bài toán đặt ra
- Tìm hiểu về ngôn ngữ PHP là framework laravel, xây dựng back-end ứng dụng trên nền tảng laravel framework
- Tìm hiểu về framework xây dựng ứng dụng mobile đa nền tảng react-native
- Tìm hiểu về Vuejs và single page application trong vuejs
- Giúp tài xế quản lý doanh thu mỗi tháng
- Quản lý lịch sử đơn hàng và ngày giao hàng mong muốn của từng tài xế
- Giúp tài xế tối ưu quản đường di chuyển
3 Phương pháp thực hiện:
Thực hiện đề tài theo các bước:
- Xác định tính thực tiễn của ứng dụng đối với đời sống hằng ngày
- Tham khảo các ứng dụng hiện có trên thị trường
- Phân tích ứng dụng, xác định điểm mạnh, yếu của các ứng dụng tương tự trên thị trường
- Xây dựng quy trình nghiệp vụ cơ bản cho ứng dụng
Trang 17- Nghiêng cứu, chọn công nghệ phù hợp để xây dựng ứng dụng
- Phát triển sản phẩm, rà soát và cải tiến quy trình, nghiệp vụ
- Kiểm thử và hoàn thiện
Những công nghệ sử dụng:
- Back-end:
o PHP và laravel framework
o Hệ cơ sở dữ liệu mysql
o Cloud Messing của Firebase
- Giúp các tài xế yếu công nghệ dễ tiếp cận với ứng dụng hơn
- Tối ưu lợi nhuận cũng như quản đường di chuyển cho các tài xế
- Góp phần tăng tính cạnh tranh cho các ứng dụng khác
- Đẩy mạnh việc mua sắm online trong tình hình Covid phức tạp
5 Kết quả dự kiến
- Nắm được điểm mạnh, điểm yếu của các ứng dụng giao hàng hiện tại có mặt trên thị trường
Trang 18o Quản lý được danh sách các đơn hàng
o Quản lý thu nhập trong tháng của tài xế
o Đáng giá được độ chuyên cần của một tài xế
o Cân bằng doanh thu giữa các tài xế
- Đối với Admin quản lý tài xế:
o Quản lý được thông tin, theo dõi tình trạng hoạt động của các tài xế
o Thống kê số liệu theo dõi doanh thu
o Thông tin dễ dàng đến các tài xế thông qua chức năng push notification
o Linh động cấm (hủy cấm) các tài xế vi phạm nguyên tắc hoạt động ứng dụng
Trang 19- Cho đến thời điểm hiện tại laravel đã phát hành version 8.0 với nhiều điểm cải tiến về tính bảo mật
1.2 Một số đặc điểm nổi bật:
- Dễ dàng sử dụng
o Lý do đầu tiên khiến Laravel nhanh chóng được cộng đồng đón nhận
và sử dụng nhiều là do nó rất dễ để có thể sử dụng Ngay cả khi bạn chỉ mới chỉ có những kiến thức cơ bản nhất về lập trình web với PHP
thì việc bắt đầu sử dụng Laravel cũng chỉ mất vài giờ là bạn có thể
bắt tay vào việc làm một project nhỏ
o Document mà Laravel cung cấp trên trang chủ của mình được viết rất
rõ ràng và dể hiểu giúp cho bạn nhanh chóng có thể tìm được những
Trang 20theo các mẫu khác nhau như Model, Controller, Event từ đó rút ngắn được thời gian và tăng năng suất công việc
-
- Các tính năng dựng sẵn
o Bản thân Laravel đã cung cấp cho người dùng rất nhiều các nhóm
tính năng giúp quá trình phát triển trở nên nhanh chóng hơn rất nhiều lần
o Chỉ với một câu lệnh đơn giản:
$ php artisan make:auth
là bạn đã dựng được cho mình toàn bộ các tính năng như đăng nhập, đăng xuất, đăng kí, quên mật khẩu mà không tốn công code một dòng nào cả Tất nhiên bạn cũng có thể tự mình chỉnh sửa lại logic sao cho hợp với nhu cầu sử dụng cá nhân
- Xây dựng theo mô hình MVC: Laravel được xây dựng và phát triển theo mô
hình MVC (Model-View-Controller) nhờ đó mà cấu trúc và cách tổ chức code trong project được sắp xếp một cách hợp lý dễ dàng cho việc maintain cũng như phát triển về lâu dài
Trang 22- Các tính năng bảo mật: Để giúp lập trình viên có thể tối đa thời gian tập
chung vào việc phát triển các tính năng, Laravel đã cung cấp sẵn cho người
dùng các tính năng bảo mật cơ bản như:
o ORM của Laravel sử dụng PDO thay vì mysqli để chống lại tấn công
SQL Injection
o Laravel sử dụng một field token ẩn để chống lại tấn công kiểu CSRF
o Các biến được đưa ra view mặc định đều được Laravel escape để
tránh tấn công XSS
- Blade template: Ở phần view, Laravel cung cấp sẵn cho người dùng
một template enigine có tên là blade, giúp người dùng có thể sử dụng code
php bên trong file giao diện của mình một cách thuật lợi và không bị rối mắt như sử dụng cặp thẻ <?php ?> thông thường
Trang 231.3 Một số điểm yếu:
- So với các PHP framework khác, laravel tỏ ra khá ít điểm yếu Vấn đề lớn nhất có thể kể đến của framework này là thiếu sự liên kết giữa các phiên bản, nếu cố cập nhật code, có thể khiến cho ứng dụng bị gián đoạn hoặc phá vỡ
- Laravel đòi hỏi PHP version gần như mới mất ứng với từng phiên bản
- Bên cạnh đó, Lavarel cũng quá nặng cho ứng dụng di động, khiến việc tải trang trở nên chậm chạp
Trang 242 Tổng quan về Vuejs framework
2.1 Giới thiệu vuejs
- Vue.js là một framework linh động (nguyên bản tiếng Anh: progressive –
tiệm tiến) dùng để xây dựng giao diện người dùng (user interfaces)
- Khác với các framework nguyên khối (monolithic), Vue được thiết kế từ đầu theo hướng cho phép và khuyến khích việc phát triển ứng dụng theo từng bước Khi phát triển lớp giao diện (view layer), người dùng chỉ cần dùng thư viện lõi (core library) của Vue, vốn rất dễ học và tích hợp với các thư viện hoặc dự án có sẵn
- Vuejs cũng có thể dễ dàng kết hợp với những kĩ thuật hiện đại như SFC (single file components), Vue cũng đáp ứng được dễ dàng nhu cầu xây dựng
những ứng dụng một trang (SPA - Single-Page Applications) với độ phức tạp cao hơn nhiều
2.2 Một số ưu điểm
a Kích thước nhỏ gọn
- Tỷ lệ thành công của JavaScript framework sẽ phụ thuộc vào kích thước của
nó Kích thước càng nhỏ thì công năng sử dụng càng nhiều Kích thước của vue.js framework là 18–21KB, người dùng sẽ không mất thời gian để tải xuống và sử dụng Tuy nhiên, điều này không có nghĩa là tốc độ chạy của vue.js thấp do kích thước nhỏ Thay vào đó, vue.js đánh bại tất cả các khung công tác cồng kềnh như React.js, Angular.js và Ember.js
Trang 25người dùng cũng có thể dễ dàng tìm ra các khu vực lỗi Tất cả là nhờ cấu trúc đơn giản của vue.js.
c Tích hợp đơn giản
- Vue.js cũng là phần mềm được các web developer sử dụng khá phổ biến nhờ
dễ dàng trong quá trình tích hợp với các ứng dụng hiện có Sự tiện lợi này xuất phát từ vue.js được xây dựng dựa trên JavaScript framework và do đó,
có thể tích hợp được vào các ứng dụng khác xây dựng trên JavaScript tương đối đơn giản Như vậy, vue.js sẽ rất hữu ích cho các công việc như phát triển các ứng dụng web mới và thay đổi các ứng dụng đã có từ trước đó Có được khả năng tích hợp này là nhờ Vue.js có tất cả các yếu tố sẵn sàng
d Tài liệu chi tiết
- Các developer thường ưa chuộng việc có các tài liệu chi tiết để sử dụng cùng framework vì điều này sẽ giúp cho việc viết các ứng dụng đầu tiên dễ dàng hơn Tài liệu về Vue.js thực sự toàn diện đến nỗi bất kỳ người dùng nào chỉ cần biết một chút về JavaScript và HTML đều có thể phát triển ứng dụng hoặc trang web của riêng mình trên đó
e Sử dụng mô hình MVVM
- Vue.js cũng hỗ trợ việc giao tiếp hai chiều nhờ kiến trúc MVVM khá dễ dàng trong việc xử lý các HTML block
Trang 262.3 Một số nhượt điểm
- Mới ra đời, cộng đồng chưa lớn: So với các javascript framework khác, vuejs còn khá non trẻ, do vậy cộng đồng chưa lớn bằng các framework khác
- Thư viện chưa nhiều, một số chức năng phải tự implement
3 Tổng quan về react-native framework
3.1 Khái niệm và lịch sử hình thành
- React-native là một framework cho phép xây dựng ứng dụng di động trên cả android
và ios chỉ với một ngôn ngữ thống nhất là javascript nhưng mang lại trải nghiệm native app thực sự Không như các framework hybrid khác, react-native tập trung vào việc một lập trình viên làm việc hiệu quả trên môi trường đa nền tảng như thế nào
- React-native là một framework được phát triển bởi facebook và cộng đồng
- React-native được facebook phát hành bản đầu tiên vào năm 2015
Trang 273.2 Ưu điểm react-native
- Tiết kiệm nhân lực và thời gian: React-native giúp ta có thể chỉ viết code 1 lần mà có thể chạy trên cả android và ios, chính vì lẽ đó team phát triển của bạn sẽ tiết kiệm được khá nhiều thời gian và nhân lực
- Cộng đồng khá lớn: React-native được sự hậu thuẫn của facebook, và với một cộng đồng khá lớn cùng chung tay phát triển thì tương lai nó sẽ còn lớn mạnh hơn nữa Các vấn đề bạn gặp phải có thể dễ dàng tìm kiếm phương pháp giải quyết từ cộng đồng
- Kiến thức nền để tiếp cận: Nó không đòi hỏi bạn phải thật giỏi hay quá cao siêu mới có thể tiếp cận được nó Thứ nhật bạn chỉ cần biết những cái căn bản như XML, HTML, CSS hay chỉ cần biết javascript hoặc Java core, hoặc cho dù bạn có là Web developer hay mobile developer thuần cũng đã có thể học tốt React native rồi
3.3 Nhượt điểm react-native
- Vẫn đòi hỏi native code: Đối với một số chức năng phức tạp, react-native vẫn phải đòi hỏi xử lý bằng native code
- Hiệu năng thấp hơn so với app thuần native code: Đối với các ứng dụng react-native, một số người dùng thường than phiền rằng nó tốn tài nguyên hơn so với các ứng dụng native code Ngoài ra việc di chuyển giữa các màn hình, fetch dữ liệu cũng không thực sự mượt mà
- Vẫn còn thiếu các component view cho android: Map, modal, Slider,
Spinner hoặc các module như Camera Roll, Media, PushNotificationIOS
Trang 28CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG GIAO HÀNG ONLINE
1 Đặt vấn đề
a Sự cần thiết của các ứng dụng giao hàng
- Trong thời đại mới, nhu cầu mua sắm online ngày càng lớn, các sàn thương mại điện tử có thể cung cấp hầu như tất cả các nhu yếu phẩm cần thiết Đi cùng với sự bùng nổ của việc mua sắm online là một đội ngũ shipper đông đảo được hình thành thuộc nhiều ứng dụng khác nhau Shipper hiện nay có thể xem như một công việc toàn thời gian có thể nuôi sống bản thân
- Để tăng tính tự động hóa trong quy trình tiếp nhận đơn hàng, tối ưu quãng đường di chuyển, … Các ứng dụng quản lý đơn hàng cho các tài xế ra đời như một điều tất yếu
b Về các ứng dụng hiện có trên thị trường
- Vụ việc Grab áp tăng mức chiết khấu, gián tiếp áp đặt thuế GTGT lên tài xế
đã cho thấy phần nào về việc các ứng dụng hiện tại đang cố chèn ép các tài
xế để tối ưu lợi nhuận của mình
- Bên cạnh đó, một số ứng dụng tỏ ra quá rườm rà, không phù hợp với các tài
xế cao tuổi, hoặc nắm bắt công nghệ chậm
- Các ứng dụng chưa tạo được sự gắn kết giữa người giao hàng và người nhận hàng
2 Hướng giải quyết
- Tạo ra các ứng dụng giao hàng mới với nhiều hơn sự ưu tiên cho các tài xế,
từ đó tạo ra nhiều lựa chọn hơn cho các tài xế, tăng tính cạnh trang cho các ứng dụng hiện có
- Đơn giản giao diện, tăng sự tương thích ứng dụng cho nhiều tài xế hơn
- Thông qua việc thu nhỏ khu vực giao hàng của các tài xế, chúng ta có thể giúp tài xế gặp được một khách hàng nhiều lần, từ đó nắm bắt được thói quen nhận hàng của người nhận, tạo ra sự phục vụ tốt hơn
Trang 29- Linh động thời gian làm việc, các tài xế thay phiên nhau hoạt động
3 Xác định và phân tích yêu cầu
3.1 Quy trình nhgiệp vụ
1 Thông tin tài khoản
- Đăng ký thông tin tài khoản quan trang admin Tài khoản được cấp tự động và không cho tạo mới
- Khi đăng kí, một mật khẩu random sẽ được gửi thông qua mail cho tài
xế Mục đích của việc gửi mật khẩu qua mail vừa có thể xác thực mail người dùng vừa có thể bảo mật được thông tin đăng nhập
- Khi đăng nhập lần đầu sẽ yêu cầu đổi mật khẩu
- Có các trang cơ bản như đổi mật khẩu, quản lý thông tin cá nhân
2 Các cài đặt riêng cho tài khoản
- Cờ cho phép nhận đơn hàng: Mỗi tài khoản sẽ có một cờ xác nhận tài xế đó
có sẵn sàng nhận đơn hàng hay không
- Địa điểm hoạt động: Mỗi tài xế sẽ có một địa điểm hoạt động ưa thích, khi chọn địa điểm hoạt động này, tài xế sẽ nhận được nhiều đơn hàng có địa điểm giao đến khu vực này hơn
1.3 Quá trình hoàn thành 1 đơn hàng
- Tài xế sẽ nhận được thông tin đơn hàng và khách hàng đặt đồ
- Đơn hàng sẽ có các trạng thái như:
o Tiếp nhận: Hệ thống tiếp nhận đơn hàng và bắt đầu chọn tài xế phù hợp
o Đang di chuyển: Tài xế di chuyển từ cửa hàng đến nơi giao hàng
o Hoàn thành: Tài xế xác nhận kết thúc đơn hàng để tiếp tục có khả năng nhận đơn hàng tiếp theo
4 Các chính sách dành cho tài xế
Trang 30- Các tài xế sau khi hoàn thành 1 chuyến sẽ được cộng điểm thưởng tương ứng Dựa vào điểm thưởng này có thể tính độ ưu tiên được nhận đơn hàng tiếp theo của các tài xế
- Sau mỗi đơn hàng, tài xế sẽ được khách hàng đánh giá về độ hài lòng (được tính bằng thang điểm 5)
- Về giá đơn hàng: Đơn hàng trong điều kiện trời mưa sẽ mắc hơn đơn hàng trong điều kiện bình thường
- Sẽ có các hình phạt được đưa ra nếu phát hiện tài xế có hành vi gian lận
- Khi tài xế đạt đủ điểm thưởng sẽ được tặng một số tiền thưởng hoặc có thể quy đổi ra các khuyến mãi khác
5 Về các hình phạt dành cho tài xế:
- Cảnh cáo: Khi bị cảnh cáo tài xế sẽ bị giảm độ ưu tiên nhận được đơn hàng
trong vòng n ngày
- Tạm khóa tài khoản: Tài khoản tài xế sẽ không thể nhận được đơn hàng trong n
ngày (n tùy thuộc vào mức độ nghiêm trọng của lỗi)
- Khóa vĩnh viễn: Tài xế sẽ bị khóa tài khoản vĩnh viễn Bất kì tài khoản mới nào
có CMND tương tự sẽ được xem là tài khoản không hợp lệ
3.2 Danh sách các use-case giao diện web
STT Tên Use case Mô tả
1 Đăng nhập Người dùng có thể đăng nhập vào hệ thống và thực
hiện các chức năng quản lý khác
2 Quản lý tài xế Admin có thể thêm, xóa, cập nhật, cấm và quản lý
danh sách tài xế
3 Quản lý thông báo Admin có thể xem danh sách thông báo, thêm, xóa,
cập nhật thông báo
Trang 314 Quản lý vouchers Admin có thể xem danh sách vouchers, thêm, xóa, cập
nhật voucher
5 Quản lý đơn hàng Admin có thể xem danh sách đơn hàng, thêm xóa, sửa,
cập nhật đơn hàng
6 Cài đặt chung Đây là màn hình cài đặt những thông số chung cho
ứng dụng Admin có thể xem thông số cũng như update các thông số này
- Sơ đồ use case:
- Chi tiết sơ đồ use case quản lý người dùng:
Trang 32- Chi tiết sơ đồ use case quản lý thông báo:
Trang 33- Chi tiết sơ đồ use case quản lý voucher
Trang 34- Chi tiết sơ đồ use case quản lý đơn hàng
Trang 35- Chi tiết sơ đồ use case cài đặt chung
4 Thiết kế cơ sở dữ liệu:
4.1 Users (users) table
- Mô tả: Thông tin cơ bản của các user
Mặc
Auto increment
Trang 360: offline; 1: online
Bảng 4.1: Danh sách các thuộc tính của table Users 4.2 Device Token (device_tokens) table
Trang 37- Mô tả: Bảng lưu các device token ứng với mỗi user cho việc nhận thông báo
6 apns_token Varchar (256)
Bảng 4.2 Danh sách các thuộc tính của table device_tokens
- Danh sách các khóa ngoại
Bảng 4.3 Danh sách các khóa ngoại của table device_tokens
Trang 387 sub_id int
0: Unpublish; 1: publish
9 to_user tinyint
0: All User; 1: Online User; 2: Offline user; 3: Banned user; 4: specific User
Bảng 4.4 Danh sách các thuộc tính table notification 4.4 User Notification (user_notification) table
- Mô tả: Lưu trữ danh sách các notificaiton ứng với mỗi user
Trang 39- Danh sách các thuộc tính
Trang 40Bảng 4.5 Danh sách các thuộc tính của table user_notifications
- Danh sách các khóa ngoại
Mặc