Use case Nội DungTên use case Đăng nhập Mô tả Dùng chức năng này để đăng nhập vào hệ thống ứng dụngActor Staff Use Case liên quan Xác nhận đơn, chuẩn bị đơn, giao đơn, đăng thông tin đơn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA CÔNG NGHỆ THÔNG TIN
Tên đề tài: Phát triển ứng dụng quản lý giao hàng
Giảng viên hướng dẫn : Võ Thị Thu Hà
Thời gian thực hiện : Từ 28/03/2022 đến 02/07/2022
Nhóm sinh viên thực hiện : Nguyễn Hoàng Chương MSSV: 22011977
: Lê Hoàng Phi Anh MSSV: 2184992 : Nguyễn Thanh Trúc MSSV: 22011709
THÁNG 07 / NĂM 2022
ĐỒ ÁN CHUYÊN NGÀNH A
Trang 2TRÍCH YẾU
Trong thời đại 4.0 hiện nay, nhu cầu đặt hàng online qua mạng nắm vai trò rấtlớn trong đời sống hiện đại của người dân Việt Nam Ta co thể dễ dàng thấy đượcđiều đó qua nhu cầu sử dụng các ứng dụng giao hàng trên điện thoại như: lazada,shoppe, baemin, tiki …v v Nắm bắt được nhu cầu đó khoa Khoa học và Công nghệ
đã đề ra đề tài đồ án phát triển ứng dụng “Phát triển ứng dụng quản lý giao hàng”cho sinh viên ngành công nghệ thông tin và kỹ thuật phần mềm có cơ hội học hỏithêm kiến thức và kinh nghiệm về mô hình hoạt động của các ứng dụng giao hàngnăng động này
Mục tiêu của nhóm 5 là tạo ra được ứng dụng giao hàng trên điện thoại diđộng, giúp cho người dùng có được một công cụ có thể hỗ trợ họ theo dõi, giám sát,nắm bắt được giá cả và quản lý dễ dàng gói hàng của mình đang làm và có thể sửdụng được trên hệ điều hành Android Vì Android là hệ điều hành được sử dụng kháphổ biến trên các thiết bị di động của đa số người dùng hiện nay Nên cũng từ đó
mà nhóm chọn Android là hướng phát triển ứng dụng phục vụ cho đề tài đồ án
Trang 3MỤC LỤC
TRÍCH YẾU i
MỤC LỤC ii
LỜI CẢM ƠN iii
DANH MỤC HÌNH ẢNH iv
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN vii
NHẬN XÉT CỦA GIẢNG VIÊN CHẤM BÁO CÁO viii
NỘI DUNG 1
1 TỔNG QUAN VỀ ANDROID STUDIO & FIREBASE 2
1.1 Android 2
1.2 Firebase 2
2 ĐỒ ÁN XÂY DỰNG ỨNG DỤNG “Phát triển ứng dụng quản lý giao hàng” 4
2.1 Đặc tả yêu cầu xây dựng ứng dụng 12
2.1.1 Yêu cầu chức năng 12
2.1.2 Yêu Cầu phi chức năng 13
2.2 Lược đồ Use Case 14
2.3 Đặc tả Use Case 16
2.3.1 Actor: Staff 16
2.3.1 Actor: Customer 22
2.3.1 Actor: Shipper 28
2.4 Class Model 33
2.5 Các thuật toán quan trong 34
2.5.Flow Chart Đăng nhập 34
2.5 Flow Chart Đặt Hàng 35
2.5 Flow Chart Tính tổng tiền 36
2.6 Kết nối FireBase 36
2.6.1 Kết nối FireBase và Android Studio 36
2.6.1 Các chức năng khác của FireBase 44
2.7 Phân tích thiết kế giao diện 46
KẾT LUẬN 85
TÀI LIỆU THAM KHẢO 87
Trang 4LỜI CẢM ƠN
Trải qua môn học “ Đồ Án Chuyên Ngành A” trong vòn 14 tuần, thời giankhông dài nhưng dã mang lại cho nhóm nhiều kỹ năng và kiến thức hơn vềchuyên môn của mình Nhóm xin gửi lời cảm ơn đến cô Võ Thị Thu Hà, giảngviên hướng dẫn của nhóm 5
Cô đã tận tình chỉ dẫn và tạo cơ hội cho nhớm tiếp xúc với một đề tài hay vàmang tính thực tiễn gắn liền với cuộc sống, phù hợp với xu thế phát triển hiệnnay Cô cũng đã chỉ ra rõ ràng nhưng thiếu sót mà nhóm cần cải thiện và bổsung để dự của nhóm thành công hơn
Trong quá trình thực hiện báo cáo, nhóm không thể tránh khỏi những sai sót,mong thầy cô của trường đại học Hoa Sen góp ý để nhóm có thể rút được kinhnghiệm của mình và hoàn thiện kỹ năng, kiến thức của mình hơn Nhóm chânthành cảm ơn
Trang 5DANH MỤC HÌNH ẢNH
Hình 1: Sơ lược Android Studio 8
Hình 2:Sơ lược FireBase. 11
Hình 3: Lược đồ miêu tả sơ lược ứng dụng 13
Hình 4: Lược đồ Usecase Customer 14
Hình 5: Lược đồ Usecase Staff 14
Hình 6: Lược đồ Usecase Shipper 14
Hình 7: Lược đồ Class Model 32
Hình 8: Kết nối Firebase 1 33
Hình 9: Kết nối Firebase 2 34
Hình 10: Kết nối Firebase 3 34
Hình 11: Kết nối Firebase 4 35
Hình 12: Kết nối Firebase 5 36
Hình 13: Kết nối Firebase 6 36
Hình 14: Kết nối Firebase 7 37
Hình 15: Kết nối Firebase 8 37
Hình 16: Kết nối Firebase 9 38
Hình 17: Kết nối Firebase 10 38
Hình 18: Kết nối Firebase 11 39
Hình 19: Kết nối Firebase 12 39
Hình 20: Kết nối Firebase 13 40
Hình 21: Kết nối Firebase 14 40
Hình 22: Authentification Firebase 1 41
Hình 23: Authentification Firebase 2 41
Hình 24: Realtime Database 1 42
Hình 25: Realtime Database 2 42
Hình 26: Giao diện đăng nhập 1 43
Hình 27: Giao diện đăng nhập 2 44
Hình 28: Giao diện quên mật khẩu 45
Hình 29: Giao diện đăng nhập 46
Hình 30: Giao diện chọn kiểu người dùng 47
Hình 31: Giao diện Home Customer 48
Hình 32: Giao diện Cart Customer 1 49
Hình 33: Giao diện Cart Customer 2 50
Hình 34: Giao diện Cart Customer 3 51
Hình 35: Giao dien Customer Order 52
Hình 36: Giao dien Customer Add Payment 53
Hình 37: Giao dien Customer Card Payment 54
Hình 38: Giao dien Customer Pending Order 55
Hình 39: Giao dien Customer Tracking 56
Hình 40: Giao dien Customer Info 57
Hình 41: Giao dien Staff Home 58
Hình 42: Giao dien Staff Pending List 59
Hình 43: Giao dien Staff Order 60
Trang 6Hình 44: Giao dien to prepared list 61
Hình 45: Giao dien to prepared list 2 62
Hình 46: Giao dien to prepared list 3 63
Hình 47: Giao dien prepared orders 64
Hình 48: Giao dien prepared orders 2 65
Hình 49: Giao dien prepared orders 3 66
Hình 50: Giao dien staff post dish 67
Hình 51: Giao dien staff post dish 2 68
Hình 52: Giao dien update dish 69
Hình 53: Giao dien Pending List Shipper 70
Hình 54: Giao dien Pending List Shipper 2 71
Hình 55: Giao dien Shipped Orders 72
Hình 56: Giao dien Shipped Orders 2 73
Trang 7NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Thành phố Hồ Chí Minh, ngày……tháng……năm 2017 Giảng viên hướng dẫn
Trang 8NHẬN XÉT CỦA GIẢNG VIÊN CHẤM BÁO CÁO
Thành phố Hồ Chí Minh, ngày……tháng……năm 2017.
(Ký và ghi rõ họ tên)
Trang 9Hình 1 S l ơ ượ c Android Studio
Trên thị trường tồn tại rất nhiều công cụ hỗ trợ thiết kế các ứng dụng diện tửnhưng sau khi trải nghiệm qua, nhóm 5 đã thấy rằng Android Studio có nhữngđiểm nổi trội hơn hẳn các công cụ khác và quyết định sử dụng Android Studiolàm nên tảng để thiết kế ứng dụng này Các điểm nổi trội ấy bao gồm:
Mã hóa nhanh:
Trang 10Android Studio cung cấp thời gian hoàn thành mã nhanh chóng và đánh giá quytrình làm việc ngay lập tức Một số tính năng nhất định của Android Studio,chẳng hạn như CodePush (một dạng cloud service cho phép dev cập nhậ ứngdụng trực tiếp tới người dùng) cho các thay đổi và khả năng chỉnh sửa code đểtối ưu hóa đầu ra.
Android Studio còn cho phép nhóm 5 nhanh chóng kết hợp các thay đổi bằngcách đẩy mã và thực hiện các thay đổi mà không cần khởi động lại ứng dụnghoàn toàn, đảm bảo tính linh hoạt tuyệt vời để thực hiện các thay đổi ứng dụngnhỏ trong khi ứng dụng vẫn đang trong tình trạng chạy Đồng thời, AndroidStudio đảm bảo việc tái cấu trúc, hoàn thành mã và phân tích mã hiện đại
Mô phỏng (Emulator) nhanh và giàu tính năng
Android Studio đi kèm với Emulator giúp khởi động toàn bộ ứng dụng nhanhhơn thiết bị thực tế Emulator có thể mô phỏng một số tính năng phần cứngkhác nhau như GPS, nhiều đầu vào cảm ứng, cảm biến chuyển động và gia tốc,v.v… bằng cách cho phép nhóm 5 kiểm tra ứng dụng trên nhiều thiết bị, baogồm điện thoại, máy tính bảng, Android Wear và Android TV
Cập nhật liên tục
Android Studio cung cấp mã hóa siêu hiệu quả và mới nhất, đảm bảo đầu ra tối
ưu cho mọi dự án ứng dụng
Cơ chế kiểm tra hiệu quả
Android Studio cung cấp nhiều công cụ và framework để giúp kiểm tra các ứngdụng Android bằng cách sử dụng các công cụ kiểm tra giao diện người dùng.Các test được thực hiện để đảm bảo ứng dụng có thể sử dụng trên thiết bị thực
tế, trình mô phỏng hoặc môi trường tích hợp…….bằng cách sử dụng Firebasetest Lab
Hỗ trợ Firebase & Đám mây
Trang 11Android Studio đi kèm với hỗ trợ Firebase cho phép kết nối bất kỳ ứng dụngnào với máy chủ Firebase bên cạnh việc bổ sung nhiều dịch vụ thiết yếu như:phân tích ứng dụng, xác thực, tin nhắn thông báo… Android Studio cũng giúptích hợp các ứng dụng với nền tảng Google Cloud
Hỗ trợ chỉnh sửa bố cục
Android Studio cung cấp công cụ chỉnh sửa kéo và thả để làm việc với các tệpXML , giúp tạo bố cục ứng dụng hoàn toàn mới một cách dễ dàng Các chỉnhsửa bố cục của Android Studio được tạo đồng bộ với API ConstraintLayout chophép tạo bố cục có thể điều chỉnh theo các kích thước màn hình khác nhau
Kết luận: chính nhờ những chức nổi bật đó mà nhóm quyết định chọn Android
Studio làm nên tảng để thiết kế ứng dụng cho đồ án này Đặc biệt la chức năng
hỗ trợ FireBase, vì nhóm cũng sử dụng FireBase làm nền tảng cho cơ sở dữ liệucủa mình
1.2 Firebase:
Firebase chính là một dịch vụ cơ sở dữ liệu được hoạt động ở trên nền tảng đámmây (Cloud) Đi kèm với đó là một hệ thống máy chủ mạnh mẽ của Google Hệthống có chức năng chính là giúp cho người dùng có thể lập trình ứng dụngthông qua cách đơn giản hóa những thao tác với các cơ sở dữ liệu
Trang 12Lý do chính mà nhóm sử dụng firebase để làm cơ sở dữ liệu là vì Firebasetương tác tốt với Android Studio, bên cạnh đó FireBase cũng có nhiều ưu điểmkhiến nhóm 5 cân nhắc sử dụng như:
Sử dụng dễ dàng: Nhóm có thể đăng ký một tài khoản Firebase thông qua tài
khoản Google Đồng thời, người cùng cũng có thể sử dụng nền tảng này trongquá trình phát triển ứng dụng một cách đơn giản nhất
Tốc độ phát triển nhanh: Ưu điểm tiếp theo chính là Firebase hỗ trợ cho việc
phát triển ứng dụng rất nhanh chóng, giúp nhóm 5 giảm bớt được thời gian đểphát triển cũng như tiếp thị ứng dụng
Cung cấp nhiều dịch vụ: Firebase còn cung cấp đa dịch vụ cho mục đích phát
triển trang web, nhóm 5 có thể lựa chọn database Firestore hoặc Realtime theođúng ý muốn của mình, trong trường hợp này, nhóm dã chọn realtime database
Giao diện người dùng được chú trọng: Firebase sẽ cho phép lập trình viên tập
trung hơn vào việc phát triển giao diện của người dùng thông qua kho Backendmẫu vô cùng đa dạng
Trang 13Firebase app không có máy chủ: Chính điều này sẽ giúp cho Firebase có được
khả năng tối ưu hóa nhất về hiệu suất làm việc nhờ vào việc mở rộng cụmdatabase
Học máy: Ứng dụng Firebase sẽ cung cấp học máy cho các lập trình viên để hỗ
trợ tốt nhất cho việc phát triển ứng dụng
Theo dõi lỗi: Đây là một công cụ để phát triển cũng như khắc phục lỗi vô cùng
tuyệt vời Nhờ vậy khi sử dụng, nhóm không cần lo lắng mình sẽ để sót lỗi
Chức năng sao lưu: cách sử dụng firebase sao lưu một cách thường xuyên và
đảm bảo tính sẵn có Đồng thời, chức năng này cũng giúp cho thông tin và dữ liệu được bảo mật một cách an toàn nhất
2.THIẾT KẾ ỨNG DỤNG “ PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ GIAO
HÀNG”
2.1 Đặc tả yêu cầu xây dựng ứng dụng di động “Phát triển ứng dụng quản
lý giao hàng”
2.1.1 Yêu cầu chức năng của ứng dụng
Xây dựng chức năng đặt hàng, giao hàng online trên nền tảng Android Stdudio và kho dữ liệu thời gian thực Một mặt hàng có nhiều thuộc tính như: hình ảnh, miêu tả, giá cả Một đơn hàng ngoài các thuộc tính của mặt hàng còn
có các thuộc tính như: số lượng, tổng tiền, địa chỉ giao, địa chỉ nhận, vùng miền,
số điện thoại khách hàng, số điện thoại nhân viên…….Đây là một app ứng dụng
có thể dùng cho cả ba đối tượng khác nhau như người dùng, người nhân vien bán và người vận chuyển đơn shipper Người dùng có các thuộc tính như: đia chỉ, ID, họ tên, số điện thoại, email, kiểu người dùng…
Các chức năng chung bao gồm: đăng nhập, đăng ký tài khoản với email hay phone điện thoại
Đối với Customer: Khách hàng có chức năng xem chi tiết hàng, bỏ giỏ hàng, đặt hàng, chi trả bằng các chức năng khác nhau như bằng tiền mặt hay thẻứng dụng, theo dõi đơn hàng của mình, chỉnh sửa thông tin cá nhân của bản thân…
Trang 14Đối với Staff: nhân viên có chức năng nhận hay từ chối đơn hàng được đặt từ khách hàng, chuẩn bị đơn hàng, update dữ liệu hình ảnh và chi tiết của mặt hàng, gữi đơn hàng cho shipper, chọn shipper…
Đối với Shipper: người vận chuyển có chức năng nhận hay từ chối vận đơn, giao đơn hàng với bản đồ google map, và xem lại lịch sử thống kê đơn hàng…
Hình 3 L ượ c đồồ miêu t s l ả ơ ượ ứ c ng d ng ụ
2.1.2 Các yêu cầu phi chức năng của ứng dụng
Ngoài các yêu cầu chức năng đã nêu trên, ứng dụng còn có các chức năng khác như: hỗ trợ đa ngôn ngữ, hỗ trợ địa chỉ ở các nơi khác nhau trên toàn cầu Ngoài
ra giao diện cần được thiết kế hiện đại, rõ ràng, dễ sử dụng Ứng dụng cần có thêm chức năng hỗ trợ và huấn luyện người dùng mới Ứng dụng sẽ chiếm ít dung lượng cho máy người sử dụng do không có bất kì phần mềm bên thứ ba hay quảng cáo nào kèm theo ứng dụng và cũng sẽ tiết kiệm pin do ứng dụng không chạy ngầm trong máy của người sử dụng An toàn và bảo mật thông tin của người dùng cũng là một phần ưu tiên của ứng dụng
Trang 152.2 Lược đồ Use Case
Hình 4 L ượ c đồồ Usecase Customer
Hình 5 L ượ c đồồ Usecase Staf
Trang 172.3 Đặc tả Use Case
2.3.1 Actor: Staff
Tên use case Đăng ký
Mô tả Staff sẽ điền thông tin cá nhân như: email, password, địa
chỉ, số điện thoại… để tạo tài khoản cá nhânActor Staff
Use Case liên quan Không có
Điều kiện kích hoạt Ứng dụng phải chạy thành công
Ứng dụng có kết nối với cơ sở dữ liệu firebase Máy tính phải có kết nối internet
Tiền điều kiện Khởi động app
Hậu điều kiện Sau khi tạo tài khoản thành công, người dùng phải đăng
nhập vào tài khoản email để xác nhận email dang ký tài khoản
Luồng sự kiện chinh 1 Staff chọn use as Staff
Luồng sự kiện phụ 4.1 Nếu email hay số điện thoại trùng sẽ được yêu
cầu dăng nhập lại
5.1 Mail có thể được đưa vào hòm thư rác, cần được kiểm tra
Trang 18Use case Nội Dung
Tên use case Đăng nhập
Mô tả Dùng chức năng này để đăng nhập vào hệ thống ứng
dụngActor Staff
Use Case liên quan Xác nhận đơn, chuẩn bị đơn, giao đơn, đăng thông tin
đơn, xem và chỉnh thông tin cá nhân, thoátĐiều kiện kích hoạt Bấm vào nút chọn đăng nhập
Tiền điều kiện Đã có tài khoản, có kết nối internet, chạy được trên
emulator hoặc android phoneHậu điều kiện Đăng nhập thành công
Luồng sự kiện chinh 1 Hệ thống hiện ra giao diện tài khoản, mật khẩu
2 Điền thông tin vào ô trống rồi submit
3 Nếu thông tin điền vào chính xác, se đăng nhập thành công
Luồng sự kiện phụ 3.1 Nếu thông tin điền vào không chính xác, người dùng
sẽ được thông báo phải điền lại
Trang 19Use case Nội Dung
Tên use case Xác nhận đơn
Mô tả Staff dùng chức năng này để xác nhận đơn hàng, chuyển
đơn từ Pending list sang ready to prepare listActor Staff
Use Case liên quan Đăng nhập, chuẩn bị đơn
Điều kiện kích hoạt Khách hàng bấm nút order
Tiền điều kiện Đơn nằm trong pending list trong giao dien staffHậu điều kiện Đơn được chuyển vào ready to prepare list
Luồng sự kiện chinh 1 Đơn hàng xuất hiện trong Pending list cua staff
2 Staff xác nhận đơn hàng
3 Đơn hàng được chuyển vào payable list cus customer
Luồng sự kiện phụ 2.1 Nếu staff không xác nhân đơn hàng thì thông báo mặt
hàng không có chuyển cho khách hàng
Tên use case Chuẩn bị đơn
Mô tả Staff dùng chức năng này để chuẩn bị đơn hàng, chuyên
đơn từ ready to prepare sang prepare listActor Staff
Use Case liên quan Xác nhận đơn hàng, giao đơn hàng
Điều kiện kích hoạt Khách hàng phải trả tiền cho đơn hàng
Tiền điều kiện Đơn hàng năm trong Ready to prepare list
Hậu điều kiện Đơn hàng được chuyển vào prepared list
Luồng sự kiện chinh 1 Staff bấm nút chuẩn bị đơn hàng
Trang 202 Đơn hàng được chuyển vào prepared listLuồng sự kiện phụ
Tên use case Giao đơn hàng
Mô tả Staff dùng chức năng này để liên lạc với shipperActor Staff
Use Case liên quan Đăng nhập, chuẩn bị đơn hàng
Điều kiện kích hoạt Staff bấm vào nút giao đơn hàng
Tiền điều kiện Đơn hàng nằm trong prepared list
Hậu điều kiện Đơn hàng được chuyển đến shipper và thông báo cho
shipperĐơn hàng chuyển vào danh sách track của khách hàngLuồng sự kiện chinh 1 Staff nhấn vào nút giao đơn hàng
2 Đơn hàng được chuyển từ prapred list của staff sang pending list của shipper và danh sách track của customer
3 Shipper sẽ nhân được thông báoLuồng sự kiện phụ
Trang 21Use case Nội Dung
Tên use case Đăng tải thông tin đơn hàng
Mô tả Staff dùng chức năng này upload hình ảnh và thông tin
mặt hàng lên databaseActor staff
Use Case liên quan Đăng nhập, chỉnh sửa thông tin đơn hàng
Điều kiện kích hoạt Nhập thông tin của mặt hàng (hình ảnh, giá…) và nhấn
nút loadTiền điều kiện Đăng nhập thành công
Hậu điều kiện Thông tin và hình ảnh của mặt hàng được upload lên
trang home của customerLuồng sự kiện chinh 1 Staff điền thông tin mặt hàng, chọn hình ảnh
2 Staff nhấn nút upload
3 Mặt hàng được thêm vào trang chủ của customerLuồng sự kiện phụ
Tên use case Chỉnh sửa thông tin đơn hàng
Mô tả Staff dùng chức năng này để cập nhật thông tin mặt hàngActor Staff
Use Case liên quan Đăng tải thông tin đơn hàng
Điều kiện kích hoạt Nhấn nút update
Tiền điều kiện Mặt hàng đã xuất hiện trên database
Hậu điều kiện Thông tin mặt hàng được sửa lại trên giao diên và
databaseLuồng sự kiện chinh 1 Staff nhấp vào danh sách món hàng
Trang 222 Thay đổi thông tin món hàng
3 Cập nhật
4 Thông tin món hàng được sửa thành côngLuồng sự kiện phụ
Tên use case Xem và chỉnh thông tin cá nhân
Mô tả Dùng để xem và chỉnh sửa thông tin cá nhân lúc đăng kýActor Staff
Use Case liên quan Đăng nhập
Điều kiện kích hoạt Nhấn vào nút xem thông tin cá nhân
Tiền điều kiện Người dùng đăng nhập thành công và đang ở giao diện
thông tin cá nhânHậu điều kiện Cập nhật thông tin cá nhân thành công
Luồng sự kiện chinh 1 Nhấn vào nút thông tin cá nhân
2 Điền thông tin mới
3 Nhấn nút cập nhật
4 Cập nhật thành côngLuồng sự kiện phụ
Tên use case Thoát
Mô tả Dùng chức năng này để thoát khỏi tài khoản và quay về
giao diện ban đầuActor Staff
Trang 23Use Case liên quan Đăng nhập
Điều kiện kích hoạt Nhấp vào nút Thoát
Tiền điều kiện Đang ở trong giao diện chung của Staff
Hậu điều kiện Thoát thành công và quay lại giao diện đăng nhậpLuồng sự kiện chinh 1 Nhấp vào nút thoát
2 Thoát thành côngLuồng sự kiện phụ
2.3.2 Actor: Customer
Tên use case Đăng ký
Mô tả Điền thông tin cá nhân như: email, password, địa chỉ, số
điện thoại… để tạo tài khoản cá nhânActor Customer
Use Case liên quan Không có
Điều kiện kích hoạt Ứng dụng phải chạy thành công
Ứng dụng có kết nối với cơ sở dữ liệu firebase Máy tính phải có kết nối internet
Tiền điều kiện Khởi động app
Hậu điều kiện Sau khi tạo tài khoản thành công, người dùng phải đăng
nhập vào tài khoản email để xác nhận email dang ký tài khoản
Luồng sự kiện chinh 1 Staff chọn use as Staff
Trang 24khoảnLuồng sự kiện phụ 4.1 Nếu email hay số điện thoại trùng sẽ được yêu
cầu dăng nhập lại
5.1 Mail có thể được đưa vào hòm thư rác, cần được kiểm tra
Tên use case Đăng nhập
Mô tả Dùng chức năng này để đăng nhập vào hệ thống ứng
dụngActor Customer
Use Case liên quan Thêm giỏ, đặt hàng, trả tiền, theo dõi, xem và chỉnh sửa
thông tin cá nhân, thoát
Điều kiện kích hoạt Bấm vào nút chọn đăng nhập
Tiền điều kiện Đã có tài khoản, có kết nối internet, chạy được trên
emulator hoặc android phoneHậu điều kiện Đăng nhập thành công
Luồng sự kiện chinh 1 Hệ thống hiện ra giao diện tài khoản, mật khẩu
2 Điền thông tin vào ô trống rồi submit
3 Nếu thông tin điền vào chính xác, se đăng nhập thành công
Luồng sự kiện phụ 3.1 Nếu thông tin điền vào không chính xác, người dùng
sẽ được thông báo phải điền lại
Tên use case Thêm giỏ
Mô tả User dùng chức năng này để thêm mặt hàng vào giỏ
Trang 25Actor Customer
Use Case liên quan Đăng nhập, đặt hàng
Điều kiện kích hoạt User nhấn vào nút thêm giỏ
Tiền điều kiện Danh sách món hàng hiện lên ở home page sau khi đăng
nhập thành côngHậu điều kiện Món hàng được chuyển từ home page sang pending list
để Staff xác nhận đơnLuồng sự kiện chinh 1 Customer nhấn vào nút add cart trên món hàng
2 Món hàng được chuyển vào pending listLuồng sự kiện phụ
Tên use case Đặt hàng
Mô tả Customer dùng chức năng này để đặt hàng
Actor Customer
Use Case liên quan Thêm giỏ, đăng nhập, trả tiền
Điều kiện kích hoạt Customer nhấn vào nút đặt hàng
Tiền điều kiện Món hàng đang ở trong cart
Hậu điều kiện Món hàng được chuyển qua pendinglist của staffLuồng sự kiện chinh 1 Customer xem món hàng ở cart
Trang 26Tên use case Trả tiền
Mô tả Customer dùng chức năng này để trả tiền, tiền mặt hoặc
thẻActor Customer
Use Case liên quan Đăng nhập, đặt hàng
Điều kiện kích hoạt Customer nhấn vào nút trả tiền
Tiền điều kiện Đơn hàng được staff xác nhận
Hậu điều kiện Đơn hàng được trả tiền và chuyển từ payable list sang
ready to ready to prepare list của staffLuồng sự kiện chinh 1 Customer xem đơn hàng trong payable list
2 Customer nhấn chọn trả tiền mặt hoặc nhập thông tin thẻ và nhấn trả
3 Đơn hàng chuyển tử payablelist sang ready to preapared list của staff
Luồng sự kiện phụ 2.1 Nếu customer nhập thông tin thẻ sai, sẽ có thông báo
hiện lên yêu cầu nhập lại
Tên use case Theo dõi
Mô tả Customer dùng chức năng này để theo dõi đơn hàngActor Customer
Use Case liên quan Đăng nhập
Điều kiện kích hoạt Nhấn vào nút theo dõi
Tiền điều kiện Đơn hàng đã được Staff giao
Hậu điều kiện Thấy được đơn hàng trên map
Luồng sự kiện chinh 1 Customer chọn vào món hàng trong danh sách
Trang 272 Customer xem mapLuồng sự kiện phụ
Tên use case Xem và chỉnh thông tin cá nhân
Mô tả Dùng để xem và chỉnh sửa thông tin cá nhân lúc đăng kýActor Customer
Use Case liên quan Đăng nhập
Điều kiện kích hoạt Nhấn vào nút xem thông tin cá nhân
Tiền điều kiện Người dùng đăng nhập thành công và đang ở giao diện
thông tin cá nhânHậu điều kiện Cập nhật thông tin cá nhân thành công
Luồng sự kiện chinh 1 Nhấn vào nút thông tin cá nhân
2 Điền thông tin mới
3 Nhấn nút cập nhật
4 Cập nhật thành côngLuồng sự kiện phụ
Tên use case Thoát
Mô tả Dùng chức năng này để thoát khỏi tài khoản và quay về
giao diện ban đầuActor Customer
Use Case liên quan Đăng nhập
Trang 28Điều kiện kích hoạt Nhấp vào nút Thoát
Tiền điều kiện Đang ở trong giao diện chung của Staff
Hậu điều kiện Thoát thành công và quay lại giao diện đăng nhậpLuồng sự kiện chinh 1 Nhấp vào nút thoát
2 Thoát thành côngLuồng sự kiện phụ
Trang 292.3.3 Actor: Shipper
Tên use case Đăng ký
Mô tả Điền thông tin cá nhân như: email, password, địa chỉ, số
điện thoại… để tạo tài khoản cá nhânActor Shipper
Use Case liên quan Không có
Điều kiện kích hoạt Ứng dụng phải chạy thành công
Ứng dụng có kết nối với cơ sở dữ liệu firebase Máy tính phải có kết nối internet
Tiền điều kiện Khởi động app
Hậu điều kiện Sau khi tạo tài khoản thành công, người dùng phải đăng
nhập vào tài khoản email để xác nhận email dang ký tài khoản
Luồng sự kiện chinh 1 Staff chọn use as Staff
Luồng sự kiện phụ 4.1 Nếu email hay số điện thoại trùng sẽ được yêu
cầu đăng nhập lại
5.1 Mail có thể được đưa vào hòm thư rác, cần được kiểm tra
Trang 30Use case Nội Dung
Tên use case Đăng nhập
Mô tả Dùng chức năng này để đăng nhập vào hệ thống ứng
dụngActor Shipper
Use Case liên quan Xác nhận vận chuyển đơn, xác nhận đã chuyển đơn, xem
và chỉnh thông tin cá nhân, thoát
Điều kiện kích hoạt Bấm vào nút chọn đăng nhập
Tiền điều kiện Đã có tài khoản, có kết nối internet, chạy được trên
emulator hoặc android phoneHậu điều kiện Đăng nhập thành công
Luồng sự kiện chinh 1 Hệ thống hiện ra giao diện tài khoản, mật khẩu
2 Điền thông tin vào ô trống rồi submit
3 Nếu thông tin điền vào chính xác, se đăng nhập thành công
Luồng sự kiện phụ 3.1 Nếu thông tin điền vào không chính xác, người dùng
sẽ được thông báo phải điền lại
Tên use case Xác nhận vận chuyển đơn
Mô tả Shipper dùng chức năng này để xác nhận
Actor Shipper
Use Case liên quan Đăng nhập, xác nhan da chuyen, xem ban đồ
Điều kiện kích hoạt Shipper nhấn vào nút xác nhận vận chuyển đơn
Tiền điều kiện Staff dùng chức năng giao đơn hàng, đơn hàng nằm trong
pending list của shipperHậu điều kiện Đơn hàng được chấp nhận, staff và customer duoc thông
Trang 31báo Luồng sự kiện chinh 1 Shipper chọn đơn hàng trong pending list
2 Shipper nhấn nút xác nhận
3 Shipper bat đầu giao hàng, staff va customer nhận được thông báo
Luồng sự kiện phụ 2.1 Shipper không xác nhận , đơn hàng bị từ chối
Tên use case Xác nhận vận chuyển đơn
Mô tả Shipper dùng chức năng này để xác nhận
Actor Shipper
Use Case liên quan Đăng nhập, xác nhan da chuyen, xem ban đồ
Điều kiện kích hoạt Shipper nhấn vào nút xác nhận vận chuyển đơn
Tiền điều kiện Staff dùng chức năng giao đơn hàng, đơn hàng nằm trong
pending list của shipperHậu điều kiện Đơn hàng được chấp nhận, staff và customer duoc thông
báo Luồng sự kiện chinh 1 Shipper chọn đơn hàng trong pending list
2 Shipper nhấn nút xác nhận
3 Shipper bat đầu giao hàng, staff va customer nhận được thông báo
Luồng sự kiện phụ 2.1 Shipper không xác nhận , đơn hàng bị từ chối
Tên use case Xem ban đồ
Mô tả Shipper dùng chức năng này xem bản đồ
Trang 32Actor Shipper
Use Case liên quan Đăng nhập, xác nhan da chuyen
Điều kiện kích hoạt Shipper nhấn vào nút shipp
Tiền điều kiện Đơn hàng đang được vận chuyển
Hậu điều kiện Hiển thị bản đồ
Luồng sự kiện chinh 1 Shipper chọn đơn hàng trong shipping list
2 Shipper nhấn nút xem ban do
3 Bản đồ hiện raLuồng sự kiện phụ
Tên use case Xem và chỉnh thông tin cá nhân
Mô tả Dùng để xem và chỉnh sửa thông tin cá nhân lúc đăng kýActor Shipper
Use Case liên quan Đăng nhập
Điều kiện kích hoạt Nhấn vào nút xem thông tin cá nhân
Tiền điều kiện Người dùng đăng nhập thành công và đang ở giao diện
thông tin cá nhânHậu điều kiện Cập nhật thông tin cá nhân thành công
Luồng sự kiện chinh 1 Nhấn vào nút thông tin cá nhân
2 Điền thông tin mới
3 Nhấn nút cập nhật
4 Cập nhật thành côngLuồng sự kiện phụ
Trang 33Use case Nội Dung
Tên use case Thoát
Mô tả Dùng chức năng này để thoát khỏi tài khoản và quay về
giao diện ban đầuActor Shipper
Use Case liên quan Đăng nhập
Điều kiện kích hoạt Nhấp vào nút Thoát
Tiền điều kiện Đang ở trong giao diện chung của Staff
Hậu điều kiện Thoát thành công và quay lại giao diện đăng nhậpLuồng sự kiện chinh 1 Nhấp vào nút thoát
2 Thoát thành côngLuồng sự kiện phụ
Trang 342.4 Class Model
Hình 7 L ượ c đồồ Class Model
Trang 352.5 Các thuật toán quan trọng
2.5.1 Flow chart đăng nhập
Hình 8 Bieu do fow chart Đăng nh p ậ
Trang 362.5.2 Flow Chart đặt hàng
Hình 9 Bi u đồồ fow chart đ t hàng ể ặ
2.5.3 Flow chart tổng tiền
Trang 372.6 Kết nối FireBase
2.6.1 Kết nối FireBase và Android Studio
Nhóm 5 sử dụng chức năng kết nối real time database giữa FireBase và Android Có nghĩa là những thay đổi về chi tiết trong data ở FireBase cũng kéo theo thay đổi trong Android Studio Các bước bao gồm như sau:
Đầu tiên ở Android Studio Ở trên thanh công cụ, chọn Tool => Firebase.
Trang 38Sau đó ở bên Box Assitant bên tay phải ta chọn: Analytic => Get Started with Google Analytic
Hình 12 Kêốt nồối Firebase 2
Tiếp đó ta chọn Connect to Firebase
Trang 39Window sẽ chuyển giao diện sao trình duyệt và yêu cầu nhóm đăng nhập vào tàikhoản google với email và password rồi tiếp tục chuyển giao diện sao trang:
www.console.firebase.google.com
Hình 14 Kêốt nồối Firebase 4
Trang 40Ở đây nhóm tạo 1 project tên FoodOn, đây chính là project kết nối với project của nhóm trên Android Studio Nhóm tạo project ten FoodOn và click chon FoodOn để kết nối với Android Studio.
Hình 15 Kêốt nồối Firebase 5
Hình 16 Kêốt nồối Firebase 6
Nhóm kiểm tra lại để chắc rằng project cua nhóm đươc kết nối với FireBase