Mã QR Order được sử dụng phổ biến hiện nay bởi nó cho phép người dùng có thể gọi mónnhanh hơn khi quét mã thông qua hệ thống phần mềm thông minh của nhà hàng.. Thông qua việc quét mã QR
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
ĐỒ ÁN TỐT NGHIỆP Thiết kế, xây dựng hệ thống quản
lí thực đơn và giải pháp order bằng mã QR cho Nhà hàng
Trang 2Họ và tên sinh viên: Trần Đình Đức
Điện thoại liên lạc: 0868330719 Email: duc.td173028@sis.hust.edu.vn
Lớp: CNTT11-K62 Hệ đào tạo: Cử nhân kỹ thuật
Tôi – Trần Đình Đức – cam kết Đồ án Tốt nghiệp (ĐATN) là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của ThS Nguyễn Tiến Thành Các kết quả nêu trong ĐATN
là trung thực, là thành quả của riêng tôi, không sao chép theo bất kỳ công trình nào khác.Tất cả những tham khảo trong ĐATN – bao gồm hình ảnh, bảng biểu, số liệu, và các câu từtrích dẫn – đều được ghi rõ ràng và đầy đủ nguồn gốc trong danh mục tài liệu tham khảo.Tôi xin hoàn toàn chịu trách nhiệm với dù chỉ một sao chép vi phạm quy chế của nhàtrường
Hà Nội, ngày tháng năm
Tác giả ĐATN
Trần Đình Đức
Lời đầu tiên, em xin cảm ơn chân thành và sâu sắc đến toàn bộ thầy cô của ngôitrường Đại học Bách Khoa Hà Nội, đặc biệt là những thầy cô viện Công nghệ thông tin vàTruyền thông đã hết lòng dạy dỗ, truyền đạt kinh nghiệm quý báu cho em trong suốt 4 nămvừa qua
Em xin gửi lời biết ơn sâu sắc đến ThS Nguyễn Tiến Thành, Bộ môn Công nghệphần mềm – Viện Công nghệ thông tin và Truyền thông – Trường Đại học Bách Khoa HàNội Thầy là giáo viên chủ nhiệm của em và cũng là thầy giáo hướng dẫn trực tiếp đồ ántốt nghiệp cho em Thầy là một người tận tâm, tận tình với sinh viên, thầy không chỉ địnhhướng cho em đồ án tốt nghiệp, thầy còn định hướng cho công việc và các vấn đề khác
Lời cam kết
Lời cảm ơn
Trang 3trong cuộc sống của em Những chia sẻ của thầy là những kinh nghiệm quý báu là hàngtrang mà chúng em sẽ mang theo trên chặng đường hướng về tương lai phía trước.
Em xin cảm ơn gia đình đã nuôi dạy em, tạo điều kiện để em có thể học tập và rènluyện trong ngôi trường mà em yêu thích
Em xin cảm ơn những người bạn cùng nhau sát cánh suốt quãng đời sinh viên đầykhó khăn và nhọc nhằn Cảm ơn tập thể CNTT11 đã luôn cùng nhau chia ngọt sẻ bùi, cùngnhau thức khuya ôn luyện vượt qua các kì thi học kì khó nhằn, cùng tụ họp xum vầy 1 gócB5 nhộn nhịp Cảm ơn tất cả mọi người đã ở bên cạnh trong những lúc em cảm thấy khókhăn nhất Đó là một động lực to lớn để em có thể hoàn thành đồ án này
Do thời gian thực hiện ĐATN có hạn cũng như trình độ chuyên môn còn hạn chếnên ĐATN của em vẫn còn nhiều thiếu sót Vì vậy em rất mong nhận được đánh giá củathầy cô để đồ án của em được tốt hơn
Em xin trân thành cảm ơn !
Mã QR chắc chắn rất quen thuộc với nhiều người nhưng nó là gì thì có lẽ khôngphải ai cũng biết Mã QR là viết tắt của Quick Response với ý nghĩa phản hồi nhanh Mã
QR Order được sử dụng phổ biến hiện nay bởi nó cho phép người dùng có thể gọi mónnhanh hơn khi quét mã thông qua hệ thống phần mềm thông minh của nhà hàng Quét mã
QR order còn giúp người dùng có thể gọi món mà không cần đến như viên
Thông qua việc quét mã QR order, chủ kinh doanh có thể dễ dàng theo dõi đượcnhu cầu sử dụng dịch vụ của khách hàng và quy trình làm việc của nhân viên rất dễ dàng.Bên cạnh đó, quét mã order còn cho ra các số liệu gọi món chính xác và nhanh chóng nhất.Đây được xem như là giải pháp hoàn hảo nhất trong việc nâng cấp trải nghiệm cho kháchhàng của mọi mô hình kinh doanh hiện nay
Đối với khách hàng, sử dụng quét mã QR order không chỉ mang lại sự tiện lợi khikhách hàng có thể tự động gọi món mà không cần nhân viên mà còn giúp tranh tỉ lệ sai sótkhông đáng có Nghĩa là nếu order theo phương pháp truyền thống thì rất dễ xảy ra sai mónkhi phải chuyển đơn từ bộ phận phục vụ và bộ phận bếp hay pha chế Còn khi khách hàng
tự quét mã order thì hệ thống sẽ chuyển thẳng vào bên trong, từ đó giảm được tỷ lệ gọi
Tóm tắt
Trang 4mà còn tạo cho mô hình kinh doanh trở nên chuyên nghiệp hơn, tạo được nhiều ấn tượnghơn.
Đối với nhà hàng, Order bằng mã QR giúp cho việc gọi món và thanh toán trở nên dễ dàng
và nhanh chóng hơn bao giờ hết Từ đó, hệ thống kinh doanh có thể phục vụ được một lúcnhiều khách hàng trong một khoảng thời gian nhất định Khách hàng có thể chủ động gọimón nhanh hay chậm tùy thích mà không cần đến nhân viên phục vụ Nhân viên nhà hàngkhi order chắc chắn sẽ không tránh khỏi sự nhầm lẫn Điều này có thể xảy ra nếu mộtngười nhân viên phục vụ liền 3, 4 bàn cùng một lúc Chính vì thế, khi thực khách đã quét
mã order thì việc quản lý món ăn, thức uống sẽ được kiểm soát dễ dàng hơn Nhà hàng sẽtránh được các sai sót về món ăn, thức uống hay nhầm lẫn thứ tự giữa các bàn Một lợi íchkhông thể không kể đến của việc quét mã QR order chính là gia tăng chất lượng dịch vụ.Nhà hàng sẽ dễ dàng nắm bắt được nhiều khách hàng quen thuộc hơn, giúp họ không chỉđược gọi món nhanh chóng mà còn có thể thanh toán ngay trên thiết bị Sau khi kháchhàng quét mã đặt món, bộ phận bếp và pha chế sẽ nhận được order theo thứ tự để có thểphục vụ chuẩn xác nhất Điều này giúp cho quá trình phục vụ trở nên chuyên nghiệp hơn,tạo được sự hài lòng cho khách hàng mà không cần có quá nhiều nhân viên phục vụ.Thông thường khi muốn thêm món mới hay thay đổi giá của món ăn thì phải chỉnh sửahoặc thay đổi menu nếu menu đó bằng giấy Tuy nhiên, khi đã thực hiện order bằng mã
QR, hệ thống nhà hàng có thể cập nhật món ăn mới và giá thành mới bất cứ khi nào tùythích
Nhằm giúp khách hàng tránh gặp phải những phần mềm kém chất lượng, em xinđược thực hiện đồ án xây dựng hệ thống quản lí thực đơn và giải pháp order bằng mã QRcho Nhà hàng Một số tính năng nổi bật của nó có thể kể đến như:
- Phù hợp với hầu hết hệ thống điều hành và nền tảng hỗ trợ khác nhau, người dùng
có thể dễ dàng cài đặt mà không cần phải sử dụng đến những thiết bị khác
- Điểm sáng của đồ án chính là mã QR được thiết kế đa chức năng: tự động đặt món,đặt món mang đi và thanh toán dễ dàng
- Quét mã QR order còn giúp báo cáo, tổng hợp doanh thu một cách chi tiết và cụthể
Mục này khuyến khích sinh viên viết lại mục “Tóm tắt” đồ án tốt nghiệp ở trang trướcbằng tiếng Anh Phần này phải có đầy đủ các nội dung như trong phần tóm tắt bằng tiếngViệt
Abstract
Trang 5Sinh viên không nhất thiết phải trình bày mục này Nhưng nếu lựa chọn trình bày, sinh viên cần đảm bảo câu từ và ngữ pháp chuẩn tắc, nếu không sẽ có tác dụng ngược, gây phản cảm
Lời cam kết ii
Lời cảm ơn iii
Tóm tắt iv
Abstract v
Mục lục vi
Danh mục hình vẽ ix
Danh mục bảng x
Danh mục công thức xi
Danh mục các từ viết tắt xii
Danh mục thuật ngữ xiii
Chương 1 Giới thiệu đề tài 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu và phạm vi đề tài 2
1.3 Định hướng giải pháp 2
1.4 Bố cục đồ án 2
Chương 2 Khảo sát và phân tích yêu cầu 4
2.1 Khảo sát hiện trạng 4
Mục lục
Trang 62.2.2 Biểu đồ use case phân rã XYZ 5
2.2.3 Quy trình nghiệp vụ 5
2.3 Đặc tả chức năng 5
2.3.1 Đặc tả use case A 5
2.3.2 Đặc tả use case B 5
2.4 Yêu cầu phi chức năng 5
Chương 3 Công nghệ sử dụng 6
Chương 4 Phát triển và triển khai ứng dụng 7
4.1 Thiết kế kiến trúc 7
4.1.1 Lựa chọn kiến trúc phần mềm 7
4.1.2 Thiết kế tổng quan 7
4.1.3 Thiết kế chi tiết gói 8
4.2 Thiết kế chi tiết 8
4.2.1 Thiết kế giao diện 8
4.2.2 Thiết kế lớp 9
4.2.3 Thiết kế cơ sở dữ liệu 9
4.3 Xây dựng ứng dụng 9
4.3.1 Thư viện và công cụ sử dụng 9
4.3.2 Kết quả đạt được 9
4.3.3 Minh hoạ các chức năng chính 10
4.4 Kiểm thử 10
4.5 Triển khai 10
Chương 5 Các giải pháp và đóng góp nổi bật 11
Chương 6 Kết luận và hướng phát triển 12
6.1 Kết luận 12
6.2 Hướng phát triển 12
Trang 7Tài liệu tham khảo 13 Phụ lục A-1
A Hướng dẫn viết đồ án tốt nghiệp A-1A.1 Quy định chung A-1A.2 Ngành học A-2A.3 Tạo đề mục A-2A.4 Bảng biểu A-3A.5 Hình vẽ A-4A.6 Tài liệu tham khảo A-4A.7 Công thức toán học A-5A.8 Tham chiếu chéo A-5A.9 Cập nhật mục lục và tham chiếu chéo A-6A.10 In quyển đồ án tốt nghiệp A-6
B Đặc tả use case B-8B.1 Đặc tả use case “Thống kê tình hình mượn sách” B-8B.2 Đặc tả use case “Đăng ký làm thẻ mượn” B-8
C Công nghệ sử dụng C-8C.1 Công nghệ bảo mật dữ liệu C-8C.2 Công nghệ blockchain C-8
D Thiết kế gói D-8D.1 Thiết kế gói cho kiến trúc tổng quan D-8D.2 Thiết kế gói cho chức năng “Trả sách” D-9
E Thiết kế lớp E-9
Trang 8Hình 1 Ví dụ biểu đồ phụ thuộc gói 7 Hình 2 Ví dụ thiết kế gói 8 Hình 3 Ví dụ hình vẽ A-4 Hình 4 Quy cách đóng quyển A-6 Hình 5 Quy cách ghi chữ phần gáy A-6 Hình 6 Hướng dẫn thiết lập in hai mặt A-7
Công thức 1 Khai triển Newton A-5
Lưu ý: Nếu ĐATN có ít hơn ba công thức toán học, sinh viên có thể xóa bỏ mục này
Trang 9Phát triển ứng dụng người dùng cuối
Công cụ lập trình Javascript bằng Java của Google
HTML HyperText Markup Language
Ngôn ngữ đánh dấu siêu văn bản
CNTT Công nghệ thông tin
E-commerce Thương mại điện tử
Bloatware Ứng dụng nhà sản xuất tích hợp vào thiết bị
Interpreter Trình thông dịch
Danh mục thuật ngữ
Trang 111.1 Đặt vấn đề
Thách thức lớn nhất đối với các doanh nghiệp là việc cắt giảm chi phí hoạt động cũngnhư tăng năng suất Tập trung vào hiệu quả quy trình kinh doanh và giảm thiểu con người– các lỗi liên quan có thể ảnh hưởng tích cực đến chi phí và năng suất Trong phạm vi này,
tự động hóa có thể dẫn đến quá trình thực thi nhanh hơn và giảm lỗi do yếu tố con ngườigây ra, đặc biệt là trong môi trường có sự trao đổi liên tục giữa khách hàng và nhận viên.Môi trường như vậy có thể thấy trong các nhà hàng có nhu cầu về Chất lượng và Trảinghiệm của khách hàng, hoạt động thấp chi phí cung như doanh thu cao là bắt buộc để đạtđược sự hài lòng cao của khách hàng cũng như mức năng suất cao
Nhìn chung, mọi người đến nhà hàng để thư giãn, trò chuyện và thưởng thức đồ ăn mộtcách thỏa mái Thường vào cuối tuần nhà hàng đã kín chỗ Lúc này mọi người phải chờ đợi
để ai đó (bồi bàn) từ nhà hàng gọi đồ ăn/ nước uống Ngoài ra, nhân viên phục vụ rất bậnrộn khi nhà hàng đồng khách Đôi khi họ có thể quên lấy đơn đặt hàng của khách, quênđơn hàng, phục vụ sai đơn hàng và giao hàng sau thời gian dài Khi nhà hàng giới thiệuthực đơn mới hoặc một số công thức nấu ăn mới cho khách hàng, họ có thể không hiểu rõ
nó bằng cách chỉ nhìn thấy thẻ thực đơn có in tên đồ ăn/thức uống
Vì nhân lực là yếu tố quan trong nhất trong nhà hàng, đồng thời thời gian là một lí dochính khiến hiệu suất bị thay đổi, quy trình nhận đơn đặt hàng có thể hoạt động như mộtgiải pháp Một giải pháp tự động có thể được giả định để tạo điều kiện cho sự gia tang tổngthể năng suất bằng các giảm thời gian và nỗ lực liên quan đến quy trình này, trong khi vẫngiữ mức độ hài lòng của khách hàng ở mức độ tương tự, thậm chí tăng lên Ví dụ: sự hàilòng có thể được kích hoạt trong môi trường đa ngôn ngữ, chẳng hạn tại các thành phố lớn,
nó khó có thể phục vụ khách hàng bằng ngôn ngữ yêu thích của họ Do đó sự tồn tại củamột ngôn ngữ thân thiện với quy trình đặt hàng có thể cần thiết cho nhiều khách hàng
Dự án này nhằm mục đích thiết kế, thực hiện và đánh giá một hệ thống quản lý thựcđơn cho một nhà hàng đã xác định Hệ thống cung cấp tính năng nhận đơn đặt hàng tựđộng và quản lý thực đơn chức năng cho nhà hàng Đầu tiên, dự án bắt đầu với phân tíchyêu cầu trong cộng tác với nhà hàng Thứ hai, dựa trên các yêu cầu của menu hệ thốngquản lý được thiết kế, triển khai Cuối cùng, trong phần đánh giá, hệ thống được phân tích
để nghiên cứu ảnh hưởng của việc giới thiệu hệ thống quản lý thực đơn trong nhà
Chương 1 Giới thiệu đề tài
Trang 121.2.2 Phạm vi đề tài
Mục tiêu chính của dự án là để nghiên cứu sự ảnh hưởng của việc giới thiệu hệ thốngquản lí menu trên thời gian xử lí đơn hàng và QoE của khách hàng trong nhà hàng Ởđây, không cung cấp giải pháp hoàn thành cho nhà hàng
Phạm vi của dự án là:
- Nghiên cứu sự ảnh hưởng của hệ thống mới trên thời gian xử lí đơn hàng
- Thiết kế giao diện người dùng tốt hơn để mang lại QoE cho khách hàng
- Luôn cập nhật hệ thống menu
- Quản lí nhận viên phục vụ bằng quản lí nhà hàng
Phạm vi không bao gồm hệ thống quản lí hàng tồn kho, hệ thống thanh toán nhà hàng,
ca làm việc quản lí cho nhân viên phục vụ và thiết bị đầu bếp Hệ thống có thể cập nhậtmenu nếu và chỉ khi quản lí nhà hàng dự định thay đổi nó thông qua bảng điều khiểndàng cho quản trị viên Sự thay đổi chỉ phản ánh trên hệ thống, nhưng nó không cungcấp một tùy chọn bổ sung để cập nhật vật lý thẻ menu trong nhà hàng Do đó, mục tiêuGiữ các cập nhật vật lí thẻ menu trong nhà hàng Do đó, mục tiêu giữ các cập nhật vàquản lí menu của quản trị viên nằm giữa trong phạm vi và ngoài phạm vi
1.3 Định hướng giải pháp
Trong chương này, cách tiếp cận của dự án tổng thể được mô tả Dự án giải quyếtcác mục tiêu được xác định trong Chương 1 cho môi trường nhà hàng Do đó, các yêucầu của dự án được gợi ra bằng cách chọn một nhà hàng dựa trên các tiêu chí chính
Trang 13nhất định như khu vực hoạt động, tính thời vụ và quy mô như được giải thích chi tiếttrong Chương 3 Tác nhân chính khác trong dự án là khách hàng và nhóm dự án cũngđưa ra các yêu cầu từ họ bằng cách tiến hành một cuộc khảo sát người dùng Do đó,nhóm dự án đã thu thập các yêu cầu thực đặc điểm kỹ thuật từ cả nhà hàng đại diện vàkhách hàng Trong dự án này, một số công nghệ đã được sử dụng để đáp ứng các yêucầu được đưa ra, như được thu thập từ nhà hàng đã xác định và khảo sát người dùng Thứ nhất, để xác định vị trí của khách hàng trong nhà hàng, mã QR (mã vạch 2D) đãđược sử dụng Điều này cho phép hệ thống xác định vị trí của khách hàng trong nhàhàng Thứ hai, để gửi / nhận thông báo giữa khách hàng và người phục vụ trong nhàhàng, giao tiếp trong thời gian thực là được triển khai bằng cách sử dụng khungSignalR được mô tả trong Phần 6.1.1 Thứ ba, web dịch vụ của hệ thống này được thiết
kế và triển khai dựa trên phong cách kiến trúc RESTful [5], cho phép hệ thống hỗ trợmột ứng dụng di động gốc trong tương lai Tương tự, giao diện người dùng được thiết
kế và triển khai dựa trên clean architecture, phân tách rõ ràng các thành phần giao diệnngười dùng và mã giao diện người dùng Việc thực hiện dự án được kiểm tra dựa trêncác khái niệm về công trình khoa học thông qua một thí nghiệm Việc đánh giá đượcthực hiện tại nhà hàng đã chọn và dữ liệu đặt hàng là được phân tích so với dữ liệu lịch
sử dựa trên thiết kế nghiên cứu được mô tả trong Phụ lục B Đây là một cách tiếp cậnthường được thực hiện để chứng minh giả thuyết trong quá trình thử nghiệm lâm sàngnhưng được sử dụng hiệu quả ở đây trong lĩnh vực triển khai phần mềm Phân tích dữliệu thống kê đã được được thực hiện bằng phương pháp luận Six Sigma [1] được thựchiện bằng công cụ Minitab [2] Giả thuyết và thí nghiệm được mô tả chi tiết trongChương 5 và kết quả thống kê được mô tả trong Chương 5 và kết quả thống kê được
mô tả trong Chương 7
1.4 Bố cục đồ án
1.5 Khảo sát hiện trạng
Thông thường, khảo sát chi tiết về hiện trạng và yêu cầu của phần mềm sẽ được lấy từ banguồn chính, đó là (i) người dùng/khách hàng, (ii) các hệ thống đã có, (iii) và các ứng dụngtương tự
Sinh viên cần tiến hành phân tích, so sánh, đánh giá chi tiết ưu nhược điểm của các sảnphẩm/nghiên cứu hiện có Sinh viên có thể lập bảng so sánh nếu cần thiết Kết hợp vớikhảo sát người dùng/khách hàng (nếu có), sinh viên nêu và mô tả sơ lược các tính năngphần mềm quan trọng cần phát triển
Chương 2 Khảo sát và phân tích yêu cầu
Trang 141.6 Tổng quan chức năng
1.6.1 Biểu đồ use case tổng quan
Đồ án xây dựng hệ thống quản lí thực đơn và giải pháp order bằng mã QR cho Nhàhàng bao gồm 3 actor chính là Khách hàng, Phục vụ, Quản trị viên
Khách hàng sẽ là người quan trọng nhất trong hệ thống Khi khách hàng sử dụngứng dụng, họ có thể đặt bàn, xem danh sách bàn đã đặt của họ Họ có thể xem danh sáchmenu của nhà hàng và có thể chọn một hoặc nhiều món ăn để có thể order Sau khi order,khách hàng có thể đánh giá và để lại bình luận cho bữa ăn của họ
Tác nhân quan trọng khác của hệ thống là người phục vụ Người phục vụ có thểtruy cập vào hàng đợi các đơn hàng đang mở cũng như các đơn hàng được chỉ định chochính mình sau đó có thể theo dõi và cập nhật chúng Đối với một đơn hàng được chỉ địnhcho anh ấy/cô ấy, người phục vụ có thể thêm một món ăn/đồ uống cập nhật số lượng hoặcxóa món Người phục vụ cũng chỉnh sửa trạng thái đơn hàng tại bất kì thời điểm nào củachu kì xử lí đơn hàng
Vai trò của quản trị viên là quan trọng để quản lí khả năng bảo trì hệ thống sau khitriển khai Đây là một vai trò siêu người dùng có thể kiểm soát hoặc chỉnh sửa các vai tròcủa tất cả các tác nhân khác trong hệ thống Quản trị viên có thể thêm, xóa hoặc chỉnh sửacác mục trong thực đơn Quản trị viên có thể chỉnh sửa người dùng và các vai trò trong hệ
Trang 15thống Trạng thái đơn hàng và thời gian xử lí đơn hàng có thể được theo dõi hiệu quả vàhiệu suất của người phục vụ Cách bố trí nhà hàng cũng như đưa ra những bản tin tức củacửa hàng cho khách hàng.
1.6.2 Biểu đồ use case phân rã quản lí thực đơn
Quản trị viên có thể quản lí thực đơn của nhà hàng, quản lí các món ăn, loại món ăn Quản
lí có thể thêm sửa xóa món ăn, thêm sửa xóa các loại món ăn Quản trị viên có thể ẩn hiệncác món ăn và loại món ăn để hiện thị trên menu của người dùng
Trang 161.6.3 Biểu đồ use case phân rã quản lí bàn ăn
Quản trị viên có thể quản lí bàn ăn có trong nhà hàng, thêm sửa xóa bàn ăn Quản trị viên
có thể xuất mã QR của từng bàn ăn và đặt mã QR lên từng bàn ăn tưởng ứng, điều nàyphục vụ cho chức năng đặt món bằng mã QR
1.6.4 Biểu đồ use case phân rã quản lí tài khoản
Trang 17Quản trị viên có thể quản lí các tài khoản có trong hệ thống, thêm tài khoản mới cho phục
vụ hoặc quản trị viên khác, thay đổi quyền của tài khoản
1.6.5 Biểu đồ use case phân rã quản lí đặt bàn
1.6.6 Biểu đồ use case phân rã quản lí đơn hàng
Quản trị viên có thể quản lí đơn hàng xem danh sách đơn hàng, xem chi tiết đơn hàng vàthay đổi trạng thái đơn hàng
Trang 181.6.7 Quy trình nghiệp vụ
Khách hàng truy cập vào hệ thống tiến hành đặt bàn, nhập các thông tin cần thiết Sau khiđặt bàn thành công hệ thống sẽ tạo một mã QR dựa trên ID của đặt bàn của khách hàng.Khi khách hàng đến nhà hàng, khách hàng sẽ đưa mã QR cho thu ngân để xác định đặt bànhoặc có thể đọc mã ID đặt bàn Trong trường hợp khách hàng chưa tạo đặt bàn thu ngân sẽtạo đặt bàn cho khách hàng Khách hàng đi đến bàn đã đặt theo hướng dẫn của thu ngân vàquét mã QR trên bàn để xác thực khách hàng Sau đó khách hàng có thể tiến hành gọi món
Trang 19Khách hàng sau khi ngồi vào bàn ăn có thể tiến hành gọi món, khách hàng truy cập vàomàn hình thực đơn và bắt đầu lựa chọn món ăn cho bữa ăn của họ sau đó gọi món Nếunhư chưa liên kết với order của họ thì ứng dụng sẽ yêu cầu người dùng quét mã QR hoặcnhập ID bàn trên bàn để liên kết với order của họ Order sẽ được chuyển đến tất cả ngườiphục vụ, người phục vụ sẽ tiếp nhận order của khách hàng Người phục vụ sẽ thay đổitrạng thái của order khi món ăn đang nấu, khi đã đã nấu xong phục vụ cập nhật trạng thái
và giao cho khách hàng Khách hàng có thể hủy món khi bếp chưa nấu
1.7 Đặc tả chức năng
1.7.1 Đặc tả use case đăng nhập
Mã Use case Error: Reference sourcenot found Tên Use case Đăng nhập
Trang 204 Khách Yêu cầu đăng nhập
5. Hệ thống Kiểm tra dữ liệu khách nhập trên form
6. Hệ thống Thông báo tạo thành công
Hậu điều kiện Không
1.7.2 Đặc tả use case xem thực đơn
1. Khách hàng Chọn chức năng xem thực đơn
2 Hệ thống Hiển thị giao diện thực đơn
Luồng sự kiện
thay thế
2a Hệ thống Thông báo lỗi: Hiện thị không có dữ liệu
Hậu điều kiện Không
2. Hệ thống Hiển thị giao diện Đặt bàn
3. Khách hàng Nhập thông tin trên form Đặt bàn
4 Khách hàng Yêu cầu đặt bàn
5. Hệ thống Kiểm tra dữ liệu khách nhập trên form đặt bàn
Trang 21Hậu điều kiện Không
1.7.4 Đặc tả use case gọi món
11. Phục vụ Thay đổi món ăn đang nấu
12. Hệ thống Thông báo món ăn đang nấu
13 Phục vụ Thay đổi món ăn đã nấu xong
14 Hệ thống Thông báo món ăn đã nấu xong
15. Phục vụ Thay đổi món ăn đã giao
16 Hệ thống Thông báo món ăn đã giao
Trang 221.8 Yêu cầu phi chức năng
Ứng dụng được thiết kế cho một số lượng lớn khách hàng tùy ý sử dung nhiều các thiết bịkhác nhau; người không cần đào tạo để sử dụng các chức năng của ứng dụng Do đó cácyêu cầu chức năng như khả năng sử dụng và khả năng thích ứng cũng quan trọng đối vớiứng dụng như các yêu cầu chức năng Trong hệ thống này, tính bảo mật, tính khả dụng, khảnăng thích ứng và khả năng sử dụng được công nhận là các yêu cầu phi chức năng quantrọng nhất và là thảo luận chi tiết bên dưới
1.8.1 Bảo mật
Bảo mật là một khía cạnh quan trọng của ứng dụng di động; với tư các quản lí nhàhàng muốn ứng dụng chỉ hoạt động trong cơ sở, cũng được đề cập trong phần yêucầu R10 Trong trường hợp ứng dụng có sẵn bên ngoài rảnh giới của nhà hàng,khách hàng có thể gọi đồ ăn/ đồ uống mà không có mặt tại quán ăn Do đó, việc xácmình thực tế của khách hàng trước khi sử dụng hệ thống quản lí menu trở nên quantrọng để ngăn chặn mọi hành vi sử dụng sai mục đích
kế và thử nghiệm trong giai đoạn triển khai nắm bắt trong R2 từ kết quả khảo sátngười dùng
Trang 231.1 NodeJS và ExpressJS
1.1.1 NodeJS
NodeJS là nền tảng được xây dựng trên V8 Javascript Engine – trình thông dịch thực thi
mã Javascript, giúp xây dựng phần backend của ứng dụng web quản lý dơn hàng một cáchđơn giản và dễ dàng mở rộng Phần core của NodeJS được xây dựng hầu hết bằng C++ nêncho tốc độ xử lý và hiệu năng cao
MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở Đây là một hệ quản trị cơ
sở dữ liệu phổ biến hàng đầu trên thế giới Nó đặc biệt được ưa chuộng trong quá trình xâydựng, phát 26 triển Hệ thống Đây là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sửdụng, có khả năng thay đổi mô hình sử dụng phù hợp với điều kiện công việc khả chuyển
Chương 3 Công nghệ sử dụng
Trang 24như là một chương trình riêng biệt để sử dụng trong môi trường mạng client-server và nhưmột thư viện có thể được nhúng (hoặc liên kết) vào các Hệ thống riêng biệt MySQL là hệquản trị cơ sở dữ liệu đáng tin cậy và an toàn Việc cài đặt và sử dụng hệ quản trị cơ sở dữliệu này cũng khá nhanh chóng và dễ dàng MySQL là giải pháp phù hợp, được sử dụngkết hợp với PHP để xây dựng Hệ thống tìm kiếm và quản lý nhà trọ.
1.3 Flutter và GetX
Khách hàng sẽ sử dụng điện thoại để có thể xem menu và gọi món, do đó phải lựa chọncông nghệ có thể chạy trên thiết bị di động Đối với phát triển ứng dụng di động iOS vàAndroid là hai nền tảng chính Mỗi nền tảng này cần các loại code khác nhau để phát triểnứng dụng Từ đó các công ty phát triển ứng dụng di động đã dẫn đến việc phát triển ứngdụng đa nền tảng, có nghĩa là viết một và chạy trên nhiều nên tảng khác nhau
Việc phát triển ứng dụng đa nền tảng là phát triển các ứng dụng di động theo cách màchúng có thể chạy trên nhiều nền tảng khác nhau nhưng chỉ code 1 lần Trong kiểu pháttriển này chỉ cần code một lần và theo cách mà ứng dụng Android, iOS hoặc Windows hỗtrợ Phát triển đa nền tảng đã trở nên khá phổ biến vì các tính năng, sự tiện lợi và công cụđược các developer yêu thích
Một số công cụ phổ biến để phát triển đa nền tảng bao gồm là Xamarin của Microsoft,React Native của Facebook và PhoneGap từ Adobe Mỗi công cụ phát triển đa nền tảngnày có các tính năng khác nhau cùng với ưu và nhược điểm khác nhau Các developer luôntìm kiếm một cái gì đó mới và được cải tiến để làm cho các quy trình phát triền ứng dụngtrở nên hiệu quả và tiết kiệm thời gian khi làm ứng dụng đa nền tảng
Sự cải tiến không ngừng này trong công nghệ đã sinh ra Flutter Flutter được Google ramắt vào tháng 2 năm 2018 Kể từ khi Flutter được giới thiệu tới công chúng, nó đã đượccác developer đánh giá cao về sự tương thích và hiệu quả trong việc phát triển ứng dụng đanền tảng Tuy nhiên, một cuộc tranh luận về Flutter vs React Native luôn diễn ra giữa cácdeveloper kể từ thời điểm nó ra mắt Bây giờ, chúng ta hãy tìm hiểu sâu hơn về Flutter, ưu
và nhược điểm của nó, cùng với lý do tại sao nó như một trong những công cụ phát triển diđộng đa nền tảng đáng kinh ngạc hiện nay
1.3.1 Flutter
Flutter là một bộ công cụ phát triển ứng dụng đa nền tảng đáng kinh ngạc, được giới thiệubởi Google Nó sử dụng ngôn ngữ Dart để lập trình Flutter được ra mắt vào năm 2018 vớicác tính năng còn thiếu của các công cụ phát triển đa nền tảng trước đó Các ứng dụngđược xây dựng với Flutter có thể chạy trên Android, iOS, Raspberry Pi và Google Fuchsia,một nền tảng phát triển ứng dụng khác do Google phát triển
Trang 25Flutter đang được sử dụng bởi các developer, điều đó chứng tỏ rằng có một cái gì đó độcđáo đã tồn tại và thu hút các developer Dưới đây là một trong những điều đó:
- Khả năng hỗ trợ nhiều API Firebase hơn
- Có công cụ riêng Sửa lỗi
- Tài liệu cải tiến Hỗ trợ phát triển windows
- Hiệu suất được nâng cao
- Công cụ cho Android Studio và Visual Studio Code
- Các tính năng bổ sung như video, biểu đồ và quảng cáo
1.3.2 GetX
GetX là một giải pháp siêu nhẹ và mạnh mẽ cho Flutter Nó kết hợp quản lý trạngthái hiệu suất cao, tiêm phụ thuộc thông minh và quản lý tuyến đường một cách nhanhchóng và thiết thực GetX có 3 nguyên tắc cơ bản Điều này có nghĩa là đây là những ưutiên cho tất cả các tài nguyên trong thư viện: KHẢ NĂNG SẢN XUẤT, HIỆU SUẤT VÀ
TỔ CHỨC HIỆU SUẤT: GetX tập trung vào hiệu suất và mức tiêu thụ tài nguyên tốithiểu GetX không sử dụng Streams hoặc ChangeNotifier KHẢ NĂNG SẢN XUẤT: GetX
sử dụng một cú pháp dễ dàng và dễ chịu Bất kể bạn muốn làm gì, luôn có một cách dễdàng hơn với GetX Nó sẽ tiết kiệm hàng giờ phát triển và sẽ cung cấp hiệu suất tối đa màứng dụng của bạn có thể mang lại
Nói chung, nhà phát triển nên quan tâm đến việc xóa bộ điều khiển khỏi bộ nhớ.Với GetX, điều này là không cần thiết vì các tài nguyên sẽ bị xóa khỏi bộ nhớ khi chúngkhông được sử dụng theo mặc định Nếu bạn muốn giữ nó trong bộ nhớ, bạn phải khai báo
rõ ràng "vĩnh viễn: true" trong phần phụ thuộc của mình Bằng cách đó, ngoài việc tiếtkiệm thời gian, bạn sẽ ít có nguy cơ bị phụ thuộc không cần thiết vào bộ nhớ Theo mặcđịnh, tải phụ thuộc cũng lười
TỔ CHỨC: GetX cho phép tách toàn bộ Chế độ xem, logic bản trình bày, logicnghiệp vụ, chèn phụ thuộc và điều hướng Bạn không cần ngữ cảnh để điều hướng giữa cáctuyến đường, vì vậy bạn không phụ thuộc vào cây tiện ích con (trực quan hóa) cho việcnày Bạn không cần ngữ cảnh để truy cập bộ điều khiển / khối của mình thông qua mộtWidget kế thừa, vì vậy bạn hoàn toàn tách rời logic bản trình bày và logic nghiệp vụ khỏilớp trực quan hóa của mình Bạn không cần phải đưa các lớp Bộ điều khiển / Mô hình /Khối vào cây tiện ích con của mình thông qua MultiProviders Đối với điều này, GetX sửdụng tính năng tiêm phụ thuộc của riêng nó, tách hoàn toàn DI khỏi chế độ xem của nó
Với GetX, bạn biết nơi tìm từng tính năng của ứng dụng của mình, có mã sạch theomặc định Ngoài việc giúp bảo trì dễ dàng, điều này làm cho việc chia sẻ các mô-đun trở