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Í MINHTRƯỜ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 đồán
Chúng em cũng muốn gửi lời cảm ơn sâu sắc đến các anh chị khóa trước và các bạn sinhviên đã đóng góp ý kiến và giúp đỡ nhóm chúng em trong quá trình thực hiện đồ án để đồán này được hoàn thiện hơn.
Mặc dù đã rất cố gắng và nỗ lực để có thể hoàn thành đồ án một cách tốt nhất nhưng vìchưa có kinh nghiệm nên không tránh được những sai sót, những điểm chưa tốt nên mongcô 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
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
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
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
Trang 9DANH MỤC TỪ VIẾT TẮT
Trang 10Chương 1: Giới thiệu đề tài
1.1 Đặt vấn đề
Với sự phát triển không ngừng của ngành dịch vụ ăn uống, việc quản lý nhà hàngngày càng trở nên quan trọng hơn Điều này đặc biệt đúng trong bối cảnh đại dịch Covid-19 đã diễn ra và đang có dấu hiệu bùng phát trở lại, khi việc thực hiện các biện pháp giãncách xã hội, giới hạn số lượng khách hàng trong nhà hàng trở thành vấn đề cấp bách Dođó, ứng dụng quản lý nhà hàng sẽ đóng vai trò quan trọng trong việc giúp chủ nhà hàngquản lý và tối ưu hoá hoạt động kinh doanh của mình Việc áp dụng công nghệ thông tinvào quản lý nhà hàng không chỉ giúp tăng hiệu quả quản lý, giảm thiểu tối đa lỗi sót tronghoạt động, mà còn mang lại nhiều tiện ích cho khách hàng, giúp họ có được trải nghiệmă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.
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ớicơ 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
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.- Tính bảo mật cao
- Tính đơn giản: Java có cú pháp đơn giản và dễ hiểu, giúp người lập trình tậptrung vào cải tiến sản phẩm và tính năng
- Sử dụng rộng rãi: Phổ biến toàn cầu do đó hỗ trợ lượng lớn các tài liệu thư việnvà công cụ hỗ trợ
- Tính mở rộng: Java có tính mở rộng cao, cho phép người lập trình tạo ra cácứng dụng có tính năng linh hoạt và dễ dàng mở rộng hơn.
Trang 14Chương 3: Phân tích thiết kế hệ thống
3.1 Sơ đồ phân rã chức năng3.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
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
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ả Usecase3.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
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 Internet
Tài khoản mà khách hàng đăng ký chưa tồn tại trong hệ thống trước đó
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
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
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
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ập
Extends: 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
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
Kích hoạt (Trigger)
Khách hàng đã đăng nhập và truy cập vào chức năng quản lý giỏ hàng
Tiền điều kiệnThiế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đã chọn nếu muốn.
Bảng 11: Usecase quản lý giỏ hàng
Downloaded by MON HOANG (monmon3@gmail.com)
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.
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)
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
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ý
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
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
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ý)
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
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
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
vụ, đầu bếp,…)
Bảng 22: Bảng nhân viên
Bảng 25: Bảng quản lí bàn ăn
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 51khoản khách
Bảng 26: Bảng tài khoản
Bảng 27: Bảng voucher
Bảng 28: Bảng món ăn
Trang 523.4 Thiết kế giao diện
Hình 26: Giao diện trang chủ (khách
Trang 53Hình 28: Giao diện giỏ hàng
Trang 54Hình 29: Giao diện đặt mónHì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)
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
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.
Downloaded by MON HOANG (monmon3@gmail.com)
Trang 67- Hoàn thiện tính năng quản lý tài chính, cung cấp một góc nhìn hoàn chỉnh và toàn diện cho người quản lý.
- Phát triển ứng dụng trên các nền tảng khác (website, desktop app, …) nhằmđáp ứng những nhu cầu cụ thể, cá biệt trong nhiều hoàn cảnh khác nhau.- Triển khai hệ thống đa ngôn ngữ cho ứng dụng.
5.4 Khó khăn trong việc thực hiện đề tài
Trong quá trình thực hiện đồ án, nhóm đã gặp phải những khó khăn sau:
- Các thành viên trong nhóm chưa có kiến thức, kĩ năng nền tảng để phát triển một ứng dụng Android.
- Nhóm chưa nắm được những quy trình thực tế trong các nhà hàng.
- Hiệu quả công việc thấp do thiếu kĩ năng làm việc nhóm, quỹ thời gian làm việc của các thành viên khác nhau