S đôề ho t đ ng Actvity Diagramơạộ ...34Hình 2: Sơ đồ phân rã chức năng tổng quát...12Hình 3: Sơ đồ phân rã chức năng Người quản lý...12Hình 4: Sơ đồ phân rã chức năng Khách hàng...13Hìn
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN THỰC HÀNH MÔN HỌC
PHÁT TRIỂN ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG
Đề tài: Xây dựng ứng dụng quản lý đặt món nhà hàng
Trang 3LỜI NÓI ĐẦU
Mở đầu cho bài báo cáo, chúng em xin gửi lời cảm ơn chân thành đến cô Trần Hồng
Nghi – giảng viên hướng dẫn môn Phát triển ứng dụng trên thiết bị di động của lớp
NT118.N22 Thông qua những buổi thảo luận và những ý kiến, chia sẻ, kinh nghiệm bổích của cô trên lớp học đã giúp cho chúng em rất nhiều trong việc hoàn thành được đồ
cô và các bạn thông cảm Nhóm chúng em rất mong muốn và luôn sẵn sàng đón nhận sựgóp ý, đóng góp của cô và các bạn để có thể rút ra được kinh nghiệm và trau dồi nhiềuhơn kỹ năng của cả nhóm để có thể làm tốt hơn trong tương lai
Xin chân thành cảm ơn
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
……., ngày…… tháng……năm 2023
Người nhận xét
(Ký tên và ghi rõ họ tên)
4
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 5MỤC LỤC
DANH MỤC HÌNH ẢNH 6
DANH MỤC BẢNG 8
DANH MỤC TỪ VIẾT TẮT 10
Chương 1: Giới thiệu đề tài 11
1.1 Đ t vấấn đềề ặ 11
1.2 Tền ng d ng ứ ụ 11
1.3 Mô t ng d ng ả ứ ụ 12
1.4 Công ngh s d ng ệ ử ụ 12
1.5 Môi tr ườ ng thiềất kềấ 12
1.6 Công c hôỗ tr ụ ợ 12
Chương 2: Cơ sở lý thuyết 13
2.1 Firebase 13
2.2 Java 13
Chương 3: Phân tích thiết kế hệ thống 15
3.1 S đôề phấn rã ch c năng ơ ứ 15
3.1.1 S đôề t ng quát ơ ổ 15
3.1.2 S đôề chi tềất Ng ơ ườ i qu n lý ả 15
3.1.3 S đôề chi tềất Khách hàng ơ 15
3.2 Usecase 16
3.2.1 Usecase t ng quát ổ 16
3.2.2 Usecase chi tềất khách hàng 16
3.2.3 Usecase chi tềất Admin 17
3.1.4 Đ c t Usecase ặ ả 19
3.1.4.1 Usecase “Đăng nh p” ậ 19
Trang 63.1.4.8 Usecase “Qu n lý l ch đ t bàn” ả ị ặ 26
3.1.4.9 Usecase “Qu n lý tài chính” ả 27
3.1.4.10 Usecase “Qu n lý hóa đ n” (ng ả ơ ườ i qu n lý) ả 28
3.1.4.11 Usecase “Qu n lý gi hàng” ả ỏ 29
3.1.4.12 Usecase “Xem thông tn khách hàng” 30
3.1.4.13 Usecase “Qu n lý hóa đ n” (khách hàng) ả ơ 31
3.1.4.14 Usecase “Tìm kiềấm món ăn” 32
3.1.4.15 Usecase “Hi n th danh sách món ăn theo lo i” ể ị ạ 33
3.1.5 S đôề ho t đ ng (Actvity Diagram) ơ ạ ộ 34
3.3 Thiềất kềấ c s d li u ơ ở ữ ệ 48
3.3.1 Mô hình d li u quan h ữ ệ ệ 49
3.3.2 Mô t chi tềất d li u ả ữ ệ 49
3.4 Thiềất kềấ giao di n ệ 56
DANH MỤC HÌNH ẢNH Hình 1: Logo ứng dụng 8
Hình 2: Sơ đồ phân rã chức năng (tổng quát) 12
Hình 3: Sơ đồ phân rã chức năng (Người quản lý) 12
Hình 4: Sơ đồ phân rã chức năng (Khách hàng) 13
Hình 5: Usecase tổng quát 13
Hình 6: Usecase chi tiết khách hàng 14
Hình 7: Usecase chi tiết Admin 15
Hình 8: Activity Diagram Usecase đăng nhập 31
Hình 9: Activity Diagram Usecase đăng ký 32
Hình 10: Activity Diagram Usecase tìm kiếm món ăn 33
Hình 11: Activity Diagram Usecase quản lý giỏ hàng 34
Hình 12: Activity Diagram Usecase xem thông tin chi tiết khách hàng 35
Hình 13: Activity Diagram Usecase hiển thị danh sách các món ăn theo loại 36
Hình 14: Activity Diagram Usecase quản lý hóa đơn (khách hàng) 37
6
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 7Hình 15: Activity Diagram Usecase quản lý đơn hàng (người quản lý) 38
Hình 16: Activity Diagram Usecase quản lý lịch đặt bàn 39
Hình 17: Activity Diagram Usecase quản lý voucher 40
Hình 18: Activity Diagram Usecase quản lý khách hàng 41
Hình 19: Activity Diagram Usecase quản lý món ăn 42
Hình 20: Activity Diagram Usecase quản lý bàn ăn 43
Hình 21: Activity Diagram Usecase quản lý nhân viên 44
Hình 22: Activity Diagram Usecase quản lý tài chính 45
Hình 23: Mô hình dữ liệu quan hệ 46
Hình 24: Giao diện đăng ký 50
Hình 25: Giao diện đăng nhập 50
Hình 26: Giao diện thông tin khách hàng 51
Hình 27: Giao diện trang chủ (khách hàng) 51
Hình 28: Giao diện giỏ hàng 52
Hình 29: Giao diện đặt món 53
Hình 30: Giao diện voucher 53
Hình 31: Giao diện đặt bàn 54
Hình 32: Giao diện quản lý hóa đơn (khách hàng) 55
Hình 33: Giao diện trang chủ (người quản lý) 56
Hình 34: Giao diện quản lý bàn 57
Hình 35: Giao diện doanh thu 58
Hình 36: Giao diện đơn hàng (người quản lý) 59
Hình 37: Giao diện quản lý món ăn 60
Hình 38: Giao diện quản lý lịch đặt bàn 61
Hình 39: Giao diện quản lý khách hàng 62
Hình 40: Giao diện quản lý voucher 63
Trang 8Bảng 4: Usecase quản lý voucher 19
Bảng 5: Usecase quản lý món ăn 20
Bảng 6: Usecase quản lý bàn ăn 21
Bảng 7: Usecase quản lý khách hàng 22
Bảng 8: Usecase quản lý đặt bàn 23
Bảng 9: Usecase quản lý tài chính 24
Bảng 10: Usecase quản lý đơn hàng (Người quản lý) 25
Bảng 11: Usecase quản lý giỏ hàng 26
Bảng 12: Usecase quản lý xem thông tin khách hàng 27
Bảng 13: Usecase quản lý hóa đơn (Khách hàng) 28
Bảng 14: Usecase quản lý tìm kiếm món ăn 29
Bảng 15: Usecase hiển thị danh sách món ăn theo loại 30
Bảng 16: Bảng bàn ăn 46
Bảng 17: Bảng chi tiết hóa đơn 46
Bảng 18: Bảng hóa đơn 47
Bảng 19: Bảng đặt bàn 47
Bảng 20: Bảng gọi món 47
Bảng 21: Bảng khách hàng 48
Bảng 22: Bảng nhân viên 48
Bảng 23: Bảng phân công 48
Bảng 24: Bảng ca làm 48
Bảng 25: Bảng quản lí bàn ăn 48
Bảng 26: Bảng tài khoản 49
Bảng 27: Bảng voucher 49
Bảng 28: Bảng món ăn 49
8
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 9DANH MỤC TỪ VIẾT TẮT
Trang 10Chương 1: Giới thiệu đề tài
ăn uống tốt hơn
Bên cạnh đó, trong thời kì công nghệ 4.0, khi mà mọi thứ đều đang dần được “sốhóa” (chuyển đổi số) thì việc quản lý toàn bộ hoạt động của nhà hàng bằng công nghệ làđiều vô cùng cần thiết Ứng dụng quản lý nhà hàng sẽ giúp chủ nhà hàng nắm bắt đượctình hình hoạt động kinh doanh của mình một cách chính xác và kịp thời, giúp tối ưu chiphí, nâng cao lợi nhuận, từ đó đem lại sự cạnh tranh và bền vững cho doanh nghiệp
Trang 111.3 Mô tả ứng dụng
Crescent Moon là một ứng dụng hữu ích, vừa hỗ trợ chủ nhà hàng quản lý toàn bộhoạt động của nhà hàng, vừa cho phép khách hàng đặt bàn từ xa, đặt món, thanh toán, vàmột số tiện ích khác
Xử lý sự kiện trang của ứng dụng được thiết kế một cách trực quan, đảm bảo trảinghiệm của khách hàng luôn ở mức tốt nhất và thuận tiện trong việc quản lý nhà hàng
Ứng dụng đầy đủ các chức năng như: đăng ký, đăng nhập, đăng xuất, tìm kiếmsản phẩm, giỏ hàng, quản lý món ăn, quản lý nhân viên, quản lý sổ sách…
1.4 Công nghệ sử dụng
Xử lý sự kiện trang ứng dụng được xây dựng bằng xml và chức năng được lậptrình bằng Java
Android Studio là IDE được chúng em lựa chọn để xây dựng ứng dụng
1.6 Công cụ hỗ trợ
Google Sheets: Nơi quản lý dự án và phân chia công việc
Google Drive: Lưu trữ tài liệu chung của nhóm
Microsoft Team: Nơi họp nhóm để bàn luận về bug và những công việc tiếp theocần phải thực hiện
Trang 12Chương 2: Cơ sở lý thuyết
2.1 Firebase
Firebase là một dịch vụ cơ sở dữ liệu thời gian thực được cung cấp bởi Googleđược xây dựng trên cơ sở NoSQL và hoạt động trên nền tảng đám mây Nó cung cấp cáctính năng như lưu trữ dữ liệu, xác thực người dùng và tích hợp phân tích, giúp các lậptrình viên phát triển nhanh các ứng dụng di động bằng cách đơn giản hóa các thao tác với
cơ sở dữ liệu
Firebase có những ưu điểm sau:
- Lưu trữ dữ liệu realtime: giúp cho các ứng dụng hoạt động nhanh chóng vàlinh hoạt
- Tính năng xác thực người dùng: Firebase cung cấp tính năng xác thực ngườidùng đơn giản và an toàn
- Dễ sử dụng: Firebase có Xử lý sự kiện trang dễ sử dụng và tính năng trực quan
- Tích hợp với các dịch vụ khác của Google: Firebase tích hợp tốt với các dịch
vụ khác của Google, giúp phát triển ứng dụng hiệu quả
- Hoàn toàn miễn phí
2.2 Java
Java là một ngôn ngữ lập trình đa nền tảng, được phát triển bởi Sun Microsystemsvào những năm 1990 Java được thiết kế để chạy trên nhiều hệ điều hành khác nhau, nhưWindows, Linux, Mac OS, thiết bị di động như điện thoại thông minh và máy tính bảng.Java được sử dụng rộng rãi trong nhiều lĩnh vực như phát triển ứng dụng desktop, web, diđộng, máy chủ, game, và cả trí tuệ nhân tạo
Java có những ưu điểm sau:
- Đa nền tảng: Java có thể chạy trên nhiều hệ điều hành khác nhau, điều
12
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 13này thuận tiện trong việc thiết kế và triển khai ứng dụng.
Trang 14Chương 3: Phân tích thiết kế hệ thống
3.1 Sơ đồ phân rã chức năng
3.1.1 Sơ đồ tổng quát
Hình 2: Sơ đồ phân rã chức năng (tổng quát)
3.1.2 Sơ đồ chi tiết Người quản lý
Hình 3: Sơ đồ phân rã chức năng (Người quản lý)
3.1.3 Sơ đồ chi tiết Khách hàng
14
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 15Hình 4: Sơ đồ phân rã chức năng (Khách hàng)
3.2 Usecase
3.2.1 Usecase tổng quát
Trang 163.2.3 Usecase chi tiết Admin
16
Hình 6: Usecase chi tiết khách hàng
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 17Hình 7: Usecase chi tiết Admin
Trang 183.1.4 Đặc tả Usecase 3.1.4.1 Usecase “Đăng nhập”
Tài khoản của người dùng đã tồn tại trong hệ thống trước đó
Bảng 1: Usecase đăng nhập
18
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 193.1.4.2 Usecase “Đăng ký”
Tiền điều kiện
Thiết bị của khách hàng cần phải kết nối vào InternetTài khoản mà khách hàng đăng ký chưa tồn tại trong hệ thống trước đó
nhập
Bảng 2: Usecase đăng ký
Trang 203.1.4.3 Usecase “Quản lý nhân viên”
Extends: Thêm nhân viên, xóa nhân viên, sửa nhân viên
Người quản lý phải đăng nhập vào hệ thống
được cập nhật thông tin nhân viên này
Bảng 3: Usecase quản lý nhân viên
20
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 213.1.4.4 Usecase “Quản lý voucher”
Extends: Thêm voucher, xóa voucher
Người quản lý phải đăng nhập vào hệ thống
Hậu điều kiện
Nếu thành công, thông tin voucher sẽ được cập lại trên CSDL Dữliệu của voucher tại Xử lý sự kiện trang quản lý voucher cũng sẽ được cập nhật thông tin voucher này
Bảng 4: Usecase quản lý voucher
Trang 223.1.4.5 Usecase “Quản lý món ăn”
Extends: Thêm món ăn, xóa món ăn, sửa món ăn
Người quản lý phải đăng nhập vào hệ thống
được cập nhật thông tin món ăn này
Bảng 5: Usecase quản lý món ăn
22
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 233.1.4.6 Usecase “Quản lý bàn ăn”
Extends: Thêm bàn ăn, xóa bàn ăn
Người quản lý phải đăng nhập vào hệ thống
Hậu điều kiện
Nếu thành công, thông tin bàn ăn sẽ được cập lại trên CSDL Dữ liệu của bàn ăn tại Xử lý sự kiện trang quản lý bàn ăn cũng sẽ được cập nhật thông tin bàn ăn này
Bảng 6: Usecase quản lý bàn ăn
Trang 243.1.4.7 Usecase “Quản lý khách hàng”
Extends: Xem thông tin khách hàng, liên hệ khách hàng, tìm kiếm
Người quản lý phải đăng nhập vào hệ thống
Bảng 7: Usecase quản lý khách hàng
24
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 253.1.4.8 Usecase “Quản lý lịch đặt bàn”
Use-case liên quan
Include: đăng nhậpExtends: Xem thông tin lịch đặt bàn, liên hệ khách hàng lịch đặt bàn, hủy lịch đặt bàn
Người quản lý phải đăng nhập vào hệ thống
Bảng 8: Usecase quản lý đặt bàn
Trang 263.1.4.9 Usecase “Quản lý tài chính”
Mô tả Use-case
Người quản lý có thể nắm bắt tình hình tài chính (doanh thu, mónbán chạy, món bán ít, ) của nhà hàng theo từng giai đoạn tùychỉnh, xuất báo cáo tài chính (nếu muốn); và có thể tính lương chotoàn bộ nhân viên
Extends: thống kê doanh thu, xuất báo cáo, tính lương
Người quản lý phải đăng nhập vào hệ thống
Bảng 9: Usecase quản lý tài chính
26
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 273.1.4.10 Usecase “Quản lý hóa đơn” (người quản lý)
Extends: thêm đơn hàng, xem chi tiết đơn hàng, xuất hóa đơn
Người quản lý phải đăng nhập vào hệ thống
Bảng 10: Usecase quản lý đơn hàng (Người quản lý)
Trang 283.1.4.11 Usecase “Quản lý giỏ hàng”
Mô tả Use-case
Khách hàng có thể quản lý giỏ hàng của mình (xóa, sửa số lượng món ăn) hoặc vào giỏ hàng gọi món, thanh toán các món ăn đã gọi
Tiền điều kiện Thiết bị của khách hàng cần phải kết nối vào Internet
Khách hàng phải đăng nhập vào hệ thống.
Hậu điều kiện
Nếu thành công, khách hàng sẽ vào được giỏ hàng của mình, sau khi hoàn thành thanh toán, thì các món ăn đã chọn sẽ được lưu trên CSDL, khách hàng có thể xem lại món ăn mình
Trang 293.1.4.12 Usecase “Xem thông tin khách hàng”
Extends: Cập nhật thông tin, đăng xuất
Khách hàng phải đăng nhập vào hệ thống
CSDL
Bảng 12: Usecase quản lý xem thông tin khách hàng
Trang 303.1.4.13 Usecase “Quản lý hóa đơn” (khách hàng)
Extends: Xóa hóa đơn, xem chi tiết hóa đơn
Khách hàng phải đăng nhập vào hệ thống
xóa hoàn toàn trên CSDL
Bảng 13: Usecase quản lý hóa đơn (Khách hàng)
30
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 313.1.4.14 Usecase “Tìm kiếm món ăn”
muốn của mình
Bảng 14: Usecase quản lý tìm kiếm món ăn
Trang 323.1.4.15 Usecase “Hiển thị danh sách món ăn theo loại”
mong muốn của mình
Bảng 15: Usecase hiển thị danh sách món ăn theo loại
32
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 333.1.5 Sơ đồ hoạt động (Activity Diagram)
Trang 34Hình 9: Activity Diagram Usecase đăng ký
34
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 35Hình 10: Activity Diagram Usecase tìm kiếm món ăn
Trang 36Hình 11: Activity Diagram Usecase quản lý giỏ hàng
36
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 38Hình 12: Activity Diagram Usecase xem thông tin chi tiết khách hàng
Hình 13: Activity Diagram Usecase hiển thị danh sách các món ăn theo loại
38
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 39Hình 14: Activity Diagram Usecase quản lý hóa đơn (khách hàng)
Trang 40Hình 15: Activity Diagram Usecase quản lý đơn hàng (người quản lý)
40
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 41Hình 16: Activity Diagram Usecase quản lý lịch đặt bàn
Trang 42Downloaded by MON HOANG (monmon3@gmail.com)
Trang 43Hình 17: Activity Diagram Usecase quản lý voucher
Hình 18: Activity Diagram Usecase quản lý khách hàng
Trang 44Downloaded by MON HOANG (monmon3@gmail.com)
Trang 45Hình 19: Activity Diagram Usecase quản lý món ăn
Trang 46Hình 20: Activity Diagram Usecase quản lý bàn ăn
46
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 47Hình 21: Activity Diagram Usecase quản lý nhân viên
Hình 22: Activity Diagram Usecase quản lý tài chính
3.3 Thiết kế cơ sở dữ liệu
Trang 483.3.1 Mô hình dữ liệu quan hệ
3.3.2 Mô tả chi tiết dữ liệu
Bảng 17: Bảng chi tiết hóa đơn
48
Hình 23: Mô hình dữ liệu quan hệ
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 49vụ và đã trừ Voucher (nếucó)
Bảng 20: Bảng gọi món
Trang 50Img int Avatar
Bảng 21: Bảng khách hàng
nhanVien
vụ, đầu bếp,…)
Bảng 22: Bảng nhân viên
phanCong
Bảng 25: Bảng quản lí bàn ăn
taiKhoan
maNV)
50
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 51khoản khách
Bảng 26: Bảng tài khoản
vouCher
Bảng 27: Bảng voucher
monAn
Bảng 28: Bảng món ăn
Trang 523.4 Thiết kế giao diện
Trang 53Hình 28: Giao diện giỏ hàng
Trang 54Hình 29: Giao diện đặt món Hình 30: Giao diện voucher
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 55Hình 31: Giao diện đặt bàn
Trang 56Hình 32: Giao diện quản lý hóa đơn (khách hàng)
56
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 57Hình 33: Giao diện trang chủ (người quản lý)
Trang 58Hình 34: Giao diện quản lý bàn
58
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 59Hình 35: Giao diện doanh thu
Trang 60Hình 36: Giao diện đơn hàng (người quản lý)
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 61Hình 37: Giao diện quản lý món ăn
Trang 62Hình 38: Giao diện quản lý lịch đặt bàn
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 63Hình 39: Giao diện quản lý khách hàng
Trang 64Hình 40: Giao diện quản lý voucher
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 65Hình 41: Giao diện quản lý nhân viên
Trang 66- Biết cách phối hợp làm việc nhóm trong một đồ án.
- Biết cách phân bổ thời gian và công việc một cách hợp lý
- Hoàn thành một ứng dụng di động hoàn chỉnh với các chức năng nhóm đề ra
66
Downloaded by MON HOANG (monmon3@gmail.com)