Mục đích và ý nghĩa 2.1 Mục Đích - Người dùng có thể dễ dàng đặt món ăn yêu thích từ nhà hàng yêu thích chỉ với vài cú click chuột và tiết kiệm thời gian phải đến trực tiếp cửa hàng để l
Mục đích và ý nghĩa
Mục Đích
Người dùng có thể nhanh chóng đặt món ăn yêu thích từ nhà hàng ưa thích chỉ với vài cú click chuột, giúp tiết kiệm thời gian so với việc đến trực tiếp cửa hàng để chọn món.
Khách hàng hiện nay có nhiều lựa chọn phong phú về món ăn, nhà hàng và dịch vụ giao hàng, tạo nên trải nghiệm ẩm thực đa dạng hơn Điều này không chỉ mang lại sự hài lòng cho người tiêu dùng mà còn giúp các doanh nghiệp và cửa hàng dễ dàng quảng bá sản phẩm của mình.
- Các cửa hàng có thể giảm nhiều công sức nhưng vẫn hiệu quả trong việc quản lý cửa hàng và quản lý nhân sự
Ý nghĩa
Thiết kế website đặt đồ ăn tích hợp công nghệ hiện đại như trí tuệ nhân tạo (AI), học máy (Machine Learning) và big data, nhằm tối ưu hóa trải nghiệm người dùng và nâng cao hiệu quả kinh doanh Điều này giúp các nhà hàng gia tăng doanh thu thông qua việc mở rộng kênh bán hàng và tiếp cận nhiều khách hàng hơn.
- Các hệ thống đặt đồ ăn trực tuyến giúp nhà hàng quản lý đơn hàng, khách
- Hỗ trợ các phương thức thanh toán trực tuyến an toàn và tiện lợi, nâng cao trải nghiệm người dùng.
CƠ SỞ LÝ THUYẾT
Phương pháp phân tích thiết kế
1.1.1 Phân tích theo hướng đối tượng
Phân tích và thiết kế hướng đối tượng (OOAD) là một phương pháp phát triển phần mềm tập trung vào việc áp dụng các nguyên tắc lập trình hướng đối tượng Phương pháp này nhằm nâng cao tính linh hoạt, khả năng mở rộng, tái sử dụng và bảo trì của hệ thống OOAD bao gồm quá trình phân tích và thiết kế dựa trên các đối tượng và sự tương tác giữa chúng trong khuôn khổ của hệ thống.
OOAD là quy trình phát triển phần mềm hướng mô hình, bao gồm các giai đoạn phân tích hướng đối tượng (OOA), thiết kế hướng đối tượng (OOD) và triển khai hướng đối tượng (OOI) Mục tiêu chính của phương pháp này là tạo ra các giải pháp phần mềm dễ hiểu, dễ bảo trì, kiểm tra và sửa đổi Phương pháp OOAD đặc biệt hiệu quả trong việc quản lý các hệ thống phức tạp, nơi mà các thành phần riêng biệt cần được tích hợp để hoạt động một cách hiệu quả.
Phân tích hướng đối tượng (OOA) là quá trình chia hệ thống thành các phần nhỏ hơn để phân tích từng phần riêng biệt Phương pháp này giúp xác định các lớp đối tượng, hành vi, mối quan hệ và thuộc tính liên quan của chúng Bằng cách này, OOA tạo ra một bức tranh tổng thể về hệ thống, làm nổi bật cách mà tất cả các đối tượng tương tác với nhau.
Thiết kế hướng đối tượng được phát triển từ phân tích trong OOA nhằm tạo ra các thiết kế hệ thống hiệu quả Dựa trên kết quả phân tích, kiến trúc sư có thể xây dựng bố cục hệ thống, bao gồm sơ đồ lớp, sơ đồ đối tượng và sơ đồ ca sử dụng Quá trình này chú trọng vào việc đảm bảo thiết kế hệ thống đạt được các mục tiêu đề ra.
Triển khai hướng đối tượng là quá trình chuyển đổi thiết kế hệ thống thành mã thực thi Quá trình này bao gồm việc tạo ra các lớp và đối tượng cần thiết cho hệ thống, đồng thời viết mã để các đối tượng có thể tương tác và thực hiện các nhiệm vụ được giao.
Phân tích và thiết kế hướng đối tượng (OOAD) giúp cải thiện quy trình phát triển phần mềm bằng cách làm cho nó trở nên có cấu trúc, dễ bảo trì và chính xác hơn Khi sự phức tạp trong phát triển phần mềm gia tăng, OOAD cung cấp một phương pháp hiệu quả để quản lý và giải quyết các vấn đề phát sinh.
+ Gần gũi với thế giới thực
+ Tái sử dụng dễ dàng
+ Đóng gói che giấu thông tin làm cho hệ thống tin cậy hơn
+ Thừa kế làm giảm chi phí, hệ thống có tính mở cao hơn
+ Xâu dựng hệ thống phức tạp
Phương pháp này có độ phức tạp cao và khó khăn trong việc theo dõi luồng dữ liệu do sự đa dạng của các nguồn đầu vào Hơn nữa, giải thuật không phải là yếu tố chính của phương pháp này.
1.1.2 Các loại biểu đồ trong phân tích thiết kế hướng đối tượng
Use Case là thuật ngữ trong phát triển phần mềm và quản lý dự án, mô tả tình huống cụ thể về cách hệ thống được sử dụng Nó xác định các chức năng, hoạt động và tương tác giữa hệ thống với người dùng hoặc các thành phần khác trong một kịch bản nhất định.
Một Use Case giúp hiểu rõ yêu cầu và đặc điểm của hệ thống, xác định hành vi và kịch bản sử dụng của người dùng, cũng như các yếu tố quan trọng trong phát triển phần mềm Nó cung cấp một phương pháp hợp lý để phân tích và mô tả tác động của hệ thống.
Use Case thường được thể hiện qua các biểu đồ, chẳng hạn như biểu đồ Use Case UML (Ngôn ngữ Mô hình Hợp nhất) Mỗi Use Case mô tả một tình huống cụ thể, bao gồm các hành vi, tương tác và kết quả mong đợi.
1.1.2.2 Biểu đồ phân rã chức năng
Sơ đồ phân rã chức năng (BFD) là công cụ hữu ích để biểu diễn sự phân rã có thứ bậc của các công việc cần thực hiện Mỗi công việc chính được chia thành các công việc con, với số lượng cấp độ phân rã phụ thuộc vào kích thước và độ phức tạp của hệ thống.
Sơ đồ này thể hiện sự phân rã của các chức năng chính trong biểu đồ UseCase
Biểu đồ tuần tự (Sequence Diagram) là công cụ quan trọng để xác định trình tự diễn ra các sự kiện giữa các đối tượng Biểu đồ này mô tả chi tiết các thông điệp được gửi và nhận, đồng thời nhấn mạnh thứ tự thời gian của quá trình gửi và nhận thông điệp.
Biểu đồ hoạt động là công cụ mô tả chi tiết các bước thực hiện, hành động, nút quyết định và điều kiện rẽ nhánh, giúp điều khiển luồng thực hiện của hệ thống Đối với những luồng thực thi có nhiều tiến trình chạy song song, biểu đồ hoạt động là lựa chọn tối ưu để thể hiện sự phức tạp này.
Biểu đồ lớp (Class Diagram) là một trong những bản vẽ quan trọng nhất trong thiết kế phần mềm, thể hiện cấu trúc và mối quan hệ giữa các thành phần của phần mềm Việc xây dựng Class Diagram đòi hỏi quyết định nhiều yếu tố thiết kế, làm cho nó trở thành một bản vẽ khó thực hiện nhất Bản vẽ này phản ánh cấu trúc tĩnh của phần mềm, tương tự như bản vẽ mặt bằng trong ngành xây dựng.
Các công cụ công nghệ để xây dựng chương trình
1.2.1 Công cụ lập trình Visual Code
Visual Studio Code là một trình biên tập mã nguồn miễn phí, hỗ trợ các hệ điều hành Windows, Linux và macOS Được phát triển bởi Microsoft, nó kết hợp hoàn hảo giữa môi trường phát triển tích hợp (IDE) và trình biên tập mã (Code Editor).
Trình biên tập Visual Studio Code hỗ trợ chức năng debug, tích hợp Git, và cung cấp các tính năng như syntax highlighting, tự hoàn thành mã thông minh và snippets Người dùng cũng có thể tùy chỉnh theme, phím tắt và các tùy chọn khác để nâng cao trải nghiệm lập trình.
Visual Studio Code được công bố, ra mắt phiên bản thử nghiệm vào ngày 29 tháng
Visual Studio Code, được Microsoft giới thiệu tại hội nghị Build 2015 vào năm 2015, đã chính thức ra mắt vào ngày 18 tháng 11 năm 2015 dưới giấy phép MIT với mã nguồn công khai trên GitHub Tại sự kiện này, tính năng tiện ích mở rộng (Extension) cũng được công bố Sau quá trình thử nghiệm, Visual Studio Code đã được phát hành chính thức vào ngày 14 tháng 4 năm 2016.
Visual Studio Code là một trình biên tập mã mạnh mẽ, hỗ trợ nhiều ngôn ngữ lập trình khác nhau Nhiều chức năng của nó không được hiển thị trong menu hoặc giao diện người dùng, mà được truy cập thông qua khung nhập lệnh hoặc tệp json tùy chỉnh Khung nhập lệnh hoạt động như một giao diện dòng lệnh nhưng sẽ biến mất khi người dùng tương tác với các yếu tố khác trên màn hình Điều này cũng áp dụng cho các lệnh mất nhiều thời gian xử lý, vì quá trình sẽ bị hủy nếu người dùng thực hiện các thao tác khác.
Quản lý phiên bản là tính năng nổi bật của Visual Studio Code, cho phép người dùng liên kết với các hệ thống quản lý phiên bản như Git, SVN, và Perforce Tính năng này giúp tạo kho lưu trữ và thực hiện các yêu cầu đẩy (push) và kéo (pull) trực tiếp từ Visual Studio Code, nâng cao hiệu quả làm việc so với các trình biên tập khác.
Hình 1.2.1.1: Phần mền Visual Studio Code
Những tính năng nổi bật của Visual studio Code
Visual Studio Code hỗ trợ nhiều ngôn ngữ lập trình như C/C++, C#, F#, Visual Basic, HTML, CSS và JavaScript Nhờ đó, trình biên tập này có khả năng phát hiện lỗi trong mã nguồn và thông báo cho người dùng một cách nhanh chóng.
Visual Studio Code cho phép mở rộng chức năng thông qua các plugin, giúp cải thiện trải nghiệm lập trình và hỗ trợ nhiều ngôn ngữ khác nhau Một trong những tính năng nổi bật là khả năng tạo các phần mở rộng để phân tích mã, bao gồm các linter và công cụ phân tích, nhờ vào việc sử dụng Giao thức Máy chủ Ngôn ngữ (Language Server Protocol).
Visual Studio Code hỗ trợ đa nền tảng
Visual Studio Code là một trình biên tập mã nguồn mạnh mẽ, hỗ trợ đa nền tảng bao gồm Windows, Linux và macOS.
Cung cấp kho tiện ích mở rộng
Visual Studio Code cung cấp một kho tiện ích mở rộng phong phú, hỗ trợ các lập trình viên mở rộng khả năng của phần mềm Khi cần sử dụng ngôn ngữ lập trình không được Visual Studio hỗ trợ, người dùng có thể dễ dàng tải xuống tiện ích mở rộng mà không ảnh hưởng đến hiệu suất của phần mềm.
Kho lưu trữ an toàn
Visual Studio Code được đánh giá là một nền tảng cực kỳ an toàn, cho phép người dùng yên tâm khi kết nối với Git hoặc bất kỳ kho lưu trữ nào hiện có.
Hình 1.2.1.2: Visual code được biết với nhiều tính năng nổi trội
Visual Studio Code hỗ trợ nhiều ứng dụng website Ngoài ra, nó cũng có một trình soạn thảo và thiết kế website không hề khó sử dụng
- Lưu trữ dữ liệu dạng phân cấp
Visual Studio Code hỗ trợ tổ chức các thư mục cho những tệp quan trọng, đồng thời cho phép lưu trữ dữ liệu theo cấu trúc phân cấp.
Visual Studio Code cung cấp tính năng hỗ trợ viết code, giúp lập trình viên tiết kiệm thời gian và nâng cao hiệu quả làm việc Tính năng này sẽ đề xuất các tùy chọn thay thế cho lập trình viên khi có những thay đổi nhỏ trong mã nguồn, từ đó cải thiện quy trình phát triển phần mềm.
Visual Studio Code tích hợp thiết bị đầu cuối, cho phép người dùng thực hiện các thao tác mà không cần chuyển đổi giữa các tab hay trở về thư mục gốc, giúp tiết kiệm thời gian và nâng cao hiệu quả làm việc.
Người dùng Visual Studio Code có thể mở cùng lúc nhiều tệp tin và thư mục không có liên quan đến nhau.
Tính năng nhắc mã Intellisense trong Visual Studio Code rất chuyên nghiệp, giúp phát hiện các đoạn mã không đầy đủ Nếu lập trình viên quên khai báo biến, Intellisense sẽ tự động bổ sung cú pháp còn thiếu, hỗ trợ tối đa trong quá trình lập trình.
Visual Studio Code hỗ trợ kéo/sao chép mã trực tiếp từ GitHub Các mã này có thể thay đổi và lưu lại
Việc để lại bình luận giúp người dùng dễ dàng nhớ công việc cần hoàn thành.Những lý do nên sử dụng trình biên tập Visual Studio Code
Visual Studio Code (VS Code) là một trình biên tập mã nguồn mở nổi bật do Microsoft phát triển, được ưa chuộng bởi nhiều lập trình viên và nhà phát triển nhờ vào tính năng linh hoạt và dễ sử dụng của nó.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Khảo sát bài toán
Hiện nay, cuộc cách mạng 4.0 đang diễn ra toàn cầu, tạo cơ hội cho các nước đang phát triển, trong đó có Việt Nam, nhanh chóng áp dụng công nghệ mới mà không phụ thuộc vào công nghệ cũ Điều này giúp rút ngắn khoảng cách phát triển và mở ra những bước tiến mới cho xã hội Kinh doanh trực tuyến và đặt hàng online đang trở nên phổ biến, với sự nổi bật của các nền tảng lớn như GrabFood, ShopeeFood và Tiki.
Chúng tôi đã tiến hành khảo sát một số website bán hàng lớn nhằm hiểu rõ các chức năng và sự tương tác giữa người dùng với trang web Dưới đây là những thông tin thu được từ khảo sát trên các trang web bán đồ ăn online.
Hình 2.1.1.1: Giao diện trang chủ shopee food
Đối với shoppe food, website này lựa chọn cách thiết kế đơn giản, bố cục rõ ràng
Các chức năng cần thiết gần như được thể hiện đầy đủ trên website
Hình 2.1.1.2: Danh mục của website shopee food
Khác với các website bán hàng khác, Shopee Food có danh mục được thiết kế nổi bật ở đầu trang, bao gồm 7 mục chính: Đồ ăn, thực phẩm, rượu bia, hoa, thuốc và thú cưng.
Hình 2.1.1.2: Thực đơn của website shopee food
Các món ăn trong thực đơn của shopee food rất đa dạng với nhiều đặc sản của các vùng miền khác nhau trên toàn quốc
GrabFood kết nối nhà hàng và thực khách thông qua việc xác định vị trí gần nhất, giúp đề xuất các lựa chọn phù hợp Khách hàng có thể theo dõi tình trạng đơn hàng và giao tiếp với tài xế khi cần thiết, đảm bảo thông tin được truyền đạt liên tục và nâng cao trải nghiệm sử dụng dịch vụ.
Hình 2.1.1.3 Giao diện trang chủ của website GrabFood
GrabFood lựa chọn thiết kế trang chủ theo mô hình phổ biến của các website thương mại điện tử, bao gồm bốn phần chính: banner quảng cáo, danh mục món ăn phổ biến, các món ăn được ưa chuộng và thông tin giới thiệu về website.
Hình 2.1.1.4: Danh mục của website GrabFood
Khác với Shopee Food, GrabFood có thiết kế danh mục nổi bật ở giữa trang chủ, kèm theo hình ảnh cho từng danh mục, tạo nên sự thu hút và hiện đại cho website.
Đa dạng với gần 30 danh mục món ăn có thể mang lại cho khách hàng nhiều sự lựa chọn hấp dẫn
Hình 2.1.1.5: Danh mục của website GrabFood
Các món ăn trong thực đơn của GrabFood rất đa dạng với nhiều đặc sản của các vùng miền khác nhau trên toàn quốc
Các website này nổi bật với tính tiện lợi, cho phép khách hàng thực hiện mua sắm trực tiếp qua các thiết bị Đồng thời, chúng cũng hỗ trợ doanh nghiệp và cửa hàng trong việc quảng bá sản phẩm một cách hiệu quả và dễ dàng.
Các website hiện nay hoạt động với nhiều chức năng đa dạng như đăng ký tài khoản, đăng nhập, tìm kiếm sản phẩm, đánh giá và đặt hàng Đặc biệt, tính năng tích hợp thanh toán online cùng với kho dữ liệu khổng lồ giúp lưu trữ thông tin hiệu quả, tạo ra một trải nghiệm tiện ích và tuyệt vời cho người dùng.
Hình 2.1.1.6: Chức năng tìm kiếm của Shopee food
Chức năng tìm kiếm của các website trên
Để tìm kiếm các sản phẩm bán chạy trong lĩnh vực ẩm thực, bạn cần nhấn vào mục "Tìm kiếm hàng đầu" Giao diện sẽ hiển thị thông tin cơ bản như tên sản phẩm, hình ảnh và số lượt bán Để xem thông tin chi tiết, bạn có thể nhấn vào ô "Xem tất cả", giúp bạn truy cập vào danh sách 30 món ăn bán chạy nhất trong tháng, được phân loại theo từng ngành hàng với khoảng 20 ngành hàng khác nhau được xếp hạng theo thời điểm.
Hình 2.1.1.7: Chức năng quản lý và thay đổi thông tin cá nhân
Để thay đổi thông tin tài khoản, bạn cần phải đăng ký tài khoản trước Sau khi đăng nhập vào ứng dụng trên điện thoại hoặc website trên máy tính, bạn có thể dễ dàng quản lý và cập nhật thông tin cá nhân của mình.
Hình 2.1.1.8: Hàng hóa đa dạng
Hình 2.1.1.9: Chức năng đặt hàng dễ dàng thao tác
Chức năng đặt hàng trên ShopeeFood mang đến nhiều tiện ích, giúp người dùng dễ dàng chọn lựa và nhận đồ ăn từ nhiều nhà hàng và quán ăn khác nhau.
Hình 2.1.1.10: Theo dõi đơn hàng
Theo dõi trạng thái đơn hàng từ khi đặt hàng cho đến khi nhận hàng qua mục "Đơn hàng của tôi" Nhận thông báo cập nhật về tình trạng đơn hàng trực tiếp qua ứng dụng.
Hình 2.1.1.11: Đánh giá và bình luận cho món ăn
Sau khi nhận hàng, người dùng có thể đánh giá chất lượng món ăn và dịch vụ giao hàng Việc gửi phản hồi không chỉ giúp cải thiện chất lượng dịch vụ mà còn nâng cao trải nghiệm cho các đơn hàng sau.
Sau khi tiến hành khảo sát và phân tích các website hiện có, tôi quyết định phát triển một trang web đặt đồ ăn trực tuyến nhằm đáp ứng nhu cầu mua sắm của mọi người.
Bài toán đặt ra: Xây dựng website đặt đồ ăn online gồm bao gồm các chức năng của 1 website bán hàng đơn thuần.
Website đặt đồ ăn online này phục vụ cho cửa hàng nhỏ, giúp giới thiệu đa dạng món ăn từ nhiều vùng miền trên cả nước Người dùng có thể tìm thấy thông tin chi tiết về từng món ăn, bao gồm hình ảnh mô tả, giá cả, khuyến mãi và ưu đãi cho những ai đặt hàng.
Chức năng chính của trang web:
Đăng nhập và Đăng ký: Khách hàng có thể đăng nhập vào hệ thống bằng tài khoản của họ hoặc đăng ký tài khoản mới nếu họ chưa có.
Phân tích và thiết kế hệ thống
Khách hàng không có tài khoản có thể đăng ký tài khoản mới để truy cập vào hệ thống
Tác nhân phải đăng nhập vào hệ thống mới có thể sử dụng được các chức năng có trong chương trình
- Cho phép người dùng tìm kiếm món ăn theo tên
- Tìm kiếm món ăn theo từng danh mục
- Cho phép đổi thông tin khách hàng
- Quản lý thông tin cá nhân
- Quản lý trạng thái hóa đơn, địa chỉ giao hàng và lịch sử đặt hàng
- Quản lý thông tin danh mục, thêm sửa xóa các danh mục
- Quản lý thông tin thực đơn vói các chức năng thêm sửa xóa thực đơn
- Thống kê doanh số theo ngày, tháng và năm một cách chính xác
Chức năng đặt đồ ăn
Cho phép người dùng đặt đồ ăn online
Chức năng theo dõi đơn hàng
Cho phép người dùng theo dõi trạng thái món ăn đã đặt
Đánh giá và phản hồi
Cho phép đánh giá và bình luận về món ăn và đánh giá về dịch vụ
2.2.2 Yêu cầu phi chức năng
Giao diện đẹp, dễ sử dụng và thân thiện với người dùng
Responsive: Tương thích với tất cả màn hình thiết bị
Tốc độ tải trang: Tốc độ nhanh, mượt mà
Cấu trúc rõ ràng dễ điều hướng
Mã hóa thông tin cá nhân, xác thực người dùng và quản lý quyền truy cập
Biểu đồ USE-CASE
Actors and Use Cases Descriptions o Dưới đây là sơ đồ Use Cases của 2 actor Admin và Customer
Các table mô tả chức năng của từng actor
STT Actor Name Definition & Interests
1 ADMIN Người quản trị hệ thống với chức năng cấp cao
2.3.2 Biểu đồ use-case phân rã
2.3.2.1 Biểu đồ use-case"Đăng ký"
Hình 2.3.2.1: Biểu đồ use-case đăng ký
Tên chức năng Đăng ký tài khoản
Giải thích Cho phép khách hàng chưa có tài khoản có thể đăng ký vào hệ thống để tạo tài khoản.
Tác nhân Khách hàng chưa có tài khoản.
Kích hoạt Khi người dùng nhấn nút Đăng ký Điều kiện trước Trạng thái chưa đăng nhập hệ thống
1 Click Button chuyển qua trang Đăng ký
2 Hiển thị trang đăng ký
3 Nhập vào đầy đủ các thông tin trong form và kích nào nút “Đăng ký”
4 Hệ thống kiểm tra dữ liệu và nếu dữ liệu hợp lệ lưu vào trong cở sở dữ liệu.
Trường hợp lỗi 1 Người dùng nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 1: Use case đăng ký
2.3.2.2 Biểu đồ use-case"Đăng nhập"
Hình 2.3.2.2: Biểu đồ use-case đăng nhập
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép người dùng có thể đăng nhập vào hệ thống.
Tác nhân Khách hàng và Admin có tài khoản.
Kích hoạt Khi người dùng nhấn nút Đăng nhập Điều kiện trước Chưa ở trạng thái đăng nhập hệ thống
1 Người dùng Nhập vào “Tài Khoản” và “Mật khẩu” và sau đó nhấn vào nút “Đăng nhập” server và chuyển đến trang thông tin các nhân nếu thông tin đăng nhập là chính xác.
Trường hợp lỗi 1 Người dùng nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 2: Use case đăng nhập
Biểu đồ luồng sự kiện “Đăng Nhập”
Người dùng chọn chức năng đăng nhập vào hệ thống
Hiển thị giao diện đăng nhập
Người dùng đăng nhập tài khoản và mật khẩu
Gửi dữ liệu đến hệ thống để kiểm tra
Người dùng nhấn button đăng nhập
Nếu đúng thì hiển thị giao diện chính, sai thì yêu cầu đăng nhập lại
2.3.2.3 Biểu đồ use-case"Quản lý tài khoản"
Hình 2.3.2.3: Biểu đồ use-case Quản lý tài khoản
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép xem, thêm, sửa các thông tin
Tác nhân Khách hàng và Admin có tài khoản.
Kích hoạt Chọn vào quản lý tài khoản Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin tài khoản trong hệ thống,
2 Admin,khách hàng chọn Thêm, hệ thống hiển thị trang thêm tài khoản.
3 Admin,khách hàng chọn Cập nhật, hệ thống hiển thị trang cập nhật tài khoản
4 Admin chọn Xóa tại tài khoản cần xóa.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 3: Use case quản lý tài khoản
Biểu đồ luồng sự kiện “Quản lý tài khoản”
Admin chọn chức năng quản lý tài khoản
Hiển thị giao diện quản lý tài khoản
Admin chọn các yêu cầu để sử dụng
Hệ thống sẽ hiển thị chức năng mà admin tìm kiếm
Khách hàng quản lý thông tin cá nhân
Hiển thị giao diện quản lý thông tin cá nhân
2.3.2.4 Biểu đồ use-case"Quản lý danh mục"
Hình 2.3.2.4: Biểu đồ use-case Quản lý danh mục
Giải thích Cho phép xem, thêm, sửa, xóa các danh mục
Kích hoạt Chọn vào quản lý danh mục Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các danh mục trong hệ thống,
2 Admin chọn Thêm, hệ thống hiển thị trang thêm danh mục mới
3 Admin chọn Update, hệ thống sẽ cho phép sửa các thông tin danh mục
4 Admin chọn Xóa tại tài khoản cần xóa.
Trường hợp lỗi 1 Admin nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 4: Use case quản lý danh mục
Biểu đồ luồng sự kiện “Quản lý danh mục”
Admin chọn chức năng quản lý danh mục
Hiển thị giao diện quản lý danh mục
Admin chọn các yêu cầu để sử dụng
Hệ thống sẽ hiển thị chức năng mà admin cần
2.3.2.5 Biểu đồ use-case"Quản lý thực đơn món ăn"
Hình 2.3.2.5: Biểu đồ use-case Quản lý thực đơn món ăn
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép xem, thêm,update, xóa thực đơn
Kích hoạt Chọn vào quản lý thực đơn món ăn Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các thực đơn món ăn trong hệ thống
2 Admin chọn Update, hệ thống sẽ cho phép sửa thông tin các món ăn
Trường hợp lỗi 1 Admin nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 5: Use case quản lý thực đơn
Biểu đồ luồng sự kiện “Quản lý thực đơn”
Admin đăng nhập vào hệ thống Hiển thị giao diện trang chủ quản lý Admin chọn chức năng quản lý thực đơn
Hiển thị giao diện quản lý thực đơn
Admin chọn các yêu cầu để sử dụng
Hệ thống sẽ hiển thị chức năng mà admin cần
2.3.2.6 Biểu đồ use-case"Quản lý khách hàng"
Hình 2.3.2.6 Biểu đồ use-case Quản lý khách hàng
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép xem, thêm, xóa khách hàng
Kích hoạt Chọn vào quản lý khách hàng Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các khách hàng trong hệ thống,
2 Admin chọn Update, hệ thống sẽ cho phép sửa thông tin khách hàng
3 Admin chọn Xóa tại tài khoản cần xóa.
Trường hợp lỗi 1 Admin nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 6: Use case quản lý khách hàng
Admin đăng nhập vào hệ thống Hiển thị giao diện trang chủ quản lý Admin chọn chức năng quản lý khách hàng
Hiển thị giao diện quản lý khách hàng
Admin chọn các yêu cầu để sử dụng
Hệ thống sẽ hiển thị chức năng mà admin cần
2.3.2.7 Biểu đồ use-case"Quản lý đơn đặt hàng"
Hình 2.3.2.7: Biểu đồ use-case quản lý đơn đặt hàng
Kích hoạt Chọn vào quản lý order Điều kiện trước Phải đăng nhập vào hệ thống
1 Khách hàng đặt món ăn và được lưu hóa đơn trên hệ thống
2 Hệ thống hiển thị danh sách thông tin các đơn đặt hàng trong hệ thống
3 Admin Xem, sửa và hủy đơn hàng
Trường hợp lỗi 1 Admin nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 7: Use case quản lý đơn đặt hàng
Biểu đồ luồng sự kiện “Quản lý đơn đặt hàng”
Admin đăng nhập vào hệ thống Hiển thị giao diện trang chủ
Admin chọn vào mục quản lý đơn đặt hàng
Hiển thị giao diện quản lý đơn đặt hàng
Admin chọn vào update đơn hàng Hệ thống hiểm thị giao diện update đơn hàng Khách hàng chọn vào hủy đơn hàng
Giao diện thông thông báo kết quả hủy đơn
2.3.2.8 Biểu đồ use-case"Tìm kiếm món ăn"
Hình 2.3.2.8: Biểu đồ use-case tìm kiếm món ăn
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép tìm kiếm các món ăn
Kích hoạt Chọn vào thực đơn món ăn rồi tìm kiếm sản phẩm qua thanh tìm kiếm Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các thực đơn
3 Liệt kê danh sách tìm kiếm
Trường hợp lỗi 1 Khách hàng nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 8: Use case tìm kiếm món ăn
Biểu đồ luồng sự kiện “Tìm kiếm món ăn”
Khách hàng đăng nhập vào hệ thống
Hiển thị giao diện trang chủ
Khách hàng chọn vào giao diện thực đơn
Hiển thị giao diện tất cả các món ăn
Khách hàng chọn vào mục tìm kiếm
Hệ thống lọc các món ăn theo tên
2.3.2.9 Biểu đồ use-case"Đặt đồ ăn"
Hình 2.3.2.9: Biểu đồ use-case đặt đồ ăn
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép đặt món ăn online
Kích hoạt Chọn vào thực đơn món ăn rồi chọn đặt hàng Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các thực đơn món ăn trong hệ thống
2 Người dùng đặt món ăn yêu thích
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 9: Use case đặt đồ ăn
Biểu đồ luồng sự kiện “Đặt đồ ăn”
Khách hàng đăng nhập vào hệ thống
Hiển thị giao diện trang chủ
Khách hàng chọn vào giao diện thực đơn
Hiển thị giao diện tất cả các món ăn
Khách hàng chọn vào thông tin chi tiết món ăn
Hiển thị giao diện thông tin cho tiết món ăn
Khách hàng chọn vào mục đặt ngay
Hệ thống hiểm thị giao diện đặt hàng
2.3.2.10 Biểu đồ use-case"Theo dõi đơn hàng"
Hình 2.3.2.10: Biểu đồ use-case theo dõi đơn hàng
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép xem trạng thái, hủy đơn và xóa hóa đơn
Tác nhân Customer Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các đơn hàng đã đặt kèm trạng thái và tổng tiền phải trả
Trường hợp lỗi 1 Customer nhập dữ liệu không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 10: Use case theo dõi đơn hàng
Biểu đồ luồng sự kiện “Theo dõi đơn hàng”
Customer đăng nhập vào hệ thống Hiển thị giao diện trang chủ
Khách hàng chọn xem thông tin chi tiết đơn hàng
Hiển thị giao diện thông tin đơn hàng kèm tổng tiền
Khách hàng có quyền hủy đơn hàng khi đơn chưa được giao, trong khi đó, họ có thể chọn xóa hóa đơn khi đơn hàng đã được hoàn tất thành công.
2.3.2.11 Biểu đồ use-case"Đánh giá món ăn"
Hình 2.3.2.11: Biểu đồ use-case đánh giá món ăn
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép xem, tìm kiếm, đánh giá các món ăn
Kích hoạt Chọn vào thực đơn món ăn Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các thực đơn
3 Người dùng để lại đánh giá và phản hồi về sản phẩm
4 Người dùng đặt đồ ăn
Trường hợp lỗi 1 Khách hàng nhập thông tin không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 11: Use case đánh giá món ăn
Biểu đồ luồng sự kiện “đánh giá món ăn”
Khách hàng đăng nhập vào hệ thống
Hiển thị giao diện trang chủ
Khách hàng chọn vào giao diện thực đơn
Hiển thị giao diện tất cả các món ăn
Khách hàng chọn vào mục tìm kiếm
Hệ thống lọc các món ăn theo tên
Khách hàng chọn vào món ăn Giao diện thông tin chi tiết món ăn
Khách hàng chọn vào mục đánh giá
Hiểm thị tất cả phản hồi của mọi khách hàng về món ăn
2.3.2.12 Biểu đồ use-case"Thống Kê"
Hình 2.3.2.12: Biểu đồ use-case thống kê
Tên chức năng Đăng Nhập Vào Hệ Thống
Giải thích Cho phép xem, thống kê doanh thu theo ngày
Kích hoạt Chọn vào trang chủ admin Điều kiện trước Phải đăng nhập vào hệ thống
1 Hệ thống hiển thị danh sách thông tin các thực đơn ,danh mục, đơn hàng và tổng doanh thu
Trường hợp lỗi 1 Admin nhập ngày không hợp lệ.
2 Hệ thống kiểm tra dữ liệu sai và đưa ra thông báo lỗi.
Table 12: Use case thống kê
Admin đăng nhập vào hệ thống Hiển thị giao diện trang chủ Admin chọn thống kê theo ngày Hiển thị giao diện thống kê theo ngày
Biểu đồ tuần tự
2.4.1 Biểu đồ tuần tự "Đăng ký"
Hình 2.4.1: Sơ đồ tuần tự chức năng đăng ký
2.4.2 Biểu đồ tuần tự "Đăng nhập"
2.4.3 Biểu đồ tuần tự "Quản lý tài khoản"
Hình 2.4.3: Sơ đồ tuần tự chức năng quản lý tài khoản
2.4.4 Biểu đồ tuần tự "Quản lý danh mục"
Hình 2.4.4: Sơ đồ tuần tự chức năng quản lý danh mục
2.4.5 Biểu đồ tuần tự "Quản lý thực đơn món ăn"
Hình 2.4.5: Sơ đồ tuần tự chức năng quản lý thực đơn món ăn
2.4.6 Biểu đồ tuần tự "Quản lý khách hàng"
Hình 2.4.6: Sơ đồ tuần tự chức năng quản lý khách hàng
2.4.7 Biểu đồ tuần tự "Quản lý đơn đặt hàng"
Hình 2.4.7: Sơ đồ tuần tự chức năng quản lý đơn đặt hàng
2.4.8 Biểu đồ tuần tự "Tìm kiếm món ăn"
Hình 2.4.8: Sơ đồ tuần tự chức năng tìm kiếm món ăn
2.4.9 Biểu đồ tuần tự "Đặt đồ ăn"
Hình 2.4.9: Sơ đồ tuần tự chức năng đặt đồ ăn
2.4.10 Biểu đồ tuần tự "Theo dõi đơn hàng"
Hình 2.4.10: Sơ đồ tuần tự chức năng theo dõi đơn hàng
2.4.11 Biểu đồ tuần tự "Đánh giá món ăn"
Hình 2.4.11: Sơ đồ tuần tự chức năng đánh giá món ăn
2.4.12 Biểu đồ tuần tự "Thống kê"
Hình 2.4.12: Sơ đồ tuần tự chức năng thống kê
Biểu đồ hoạt động
2.5.1 Biểu đồ hoạt động "Đăng ký"
Hình 2.5.1: Sơ đồ hoạt động chức năng “đăng ký”
2.5.2 Biểu đồ hoạt động "Đăng nhập"
Hình 2.5.2: Sơ đồ hoạt động chức năng “đăng nhập”
2.5.3 Biểu đồ hoạt động "Quản lý tài khoản"
Hình 2.5.3: Sơ đồ hoạt động chức năng “quản lý tài khoản”
2.5.4 Biểu đồ hoạt động "Quản lý danh mục"
Hình 2.5.4: Sơ đồ hoạt động chức năng “quản lý danh mục”
2.5.5 Biểu đồ hoạt động "Quản lý thực đơn"
Hình 2.5.5: Sơ đồ hoạt động chức năng “quản lý thực đơn”
2.5.6 Biểu đồ hoạt động "Quản lý khách hàng"
Hình 2.5.6: Sơ đồ hoạt động chức năng “quản lý Khách hàng”
2.5.7 Biểu đồ hoạt động "Quản lý đơn đặt hàng"
Hình 2.5.7: Sơ đồ hoạt động chức năng “quản lý đơn đặt hàng”
2.5.8 Biểu đồ hoạt động " Tìm kiếm món ăn "
Hình 2.5.8: Sơ đồ hoạt động chức năng “Tìm kiếm món ăn”
2.5.9 Biểu đồ hoạt động "Đặt đồ ăn"
Hình 2.5.9: Sơ đồ hoạt động chức năng “đặt đồ ăn”
2.5.10 Biểu đồ hoạt động "Theo dõi đơn hàng"
Hình 2.5.10: Sơ đồ hoạt động chức năng “theo dõi đơn hàng”
2.5.11 Biểu đồ hoạt động "Đánh giá món ăn"
Hình 2.5.11: Sơ đồ hoạt động chức năng “Đánh giá món ăn”
Thiết kế cơ sở dữ liệu
Biểu đồ lớp UML (Unified Modeling Language Class) là tập hợp các ký hiệu đồ họa giúp xây dựng và trực quan hóa các hệ thống hướng đối tượng Sơ đồ lớp trong UML là loại sơ đồ cấu trúc tĩnh, mô tả cấu trúc của hệ thống bằng cách hiển thị các lớp, thuộc tính và mối quan hệ giữa chúng.
Các mối quan hệ giữa các đối tượng.
Hình 2.6.1: Biểu đồ class diagram
Trong hệ thống này, lớp Order kế thừa từ hai lớp Customer và Food, bao gồm các thuộc tính như tên, tuổi, email và số liên lạc từ lớp Customer, cùng với tên món ăn và giá từ bảng Food Lớp Food thuộc về lớp Category, tuy nhiên, khi lớp Category không còn tồn tại, lớp Food vẫn có thể tồn tại mà không thuộc danh mục nào Mối quan hệ giữa lớp Category và lớp Food là một-nhiều, cho thấy rằng một danh mục có thể chứa nhiều món ăn Các lớp còn lại trong hệ thống cũng có các mối liên kết ràng buộc với nhau.
Trong cơ sở dữ liệu, bảng đơn đặt hàng bao gồm các trường chính như sau: 'id' là khóa chính với kiểu dữ liệu Int(10) đại diện cho mã đơn hàng; 'food' với kiểu Varchar(150) lưu tên món ăn; 'price' có kiểu Decimal(10.0) thể hiện giá của món ăn; và 'qty' với kiểu Int(11) ghi nhận số lượng đặt.
Total Decimal(10.0) Tổng tiền thanh toán
Order_date date Ngày đặt hàng
Status Varchar(50) Trạng thái đơn hàng
Customer_name Varchar(150) Tên khách hàng
Customer_contact Varchar(11) Số điện thoại khách hàng
Customer_email Varchar(150) Email khách hàng
Customer_address Varchar(250) Địa chỉ nhận hàng
Id_customer Int(10) Khóa Ngoại Id của khách hàng
Food_id Int(10) Khóa Ngoại Id của món ăn
Bảng 2.6.2.1: Bảng đặt đồ ăn
BẢNG THỰC ĐƠN MÓN ĂN
Tên Trường Kiểu Dữ Liệu Ghi Chú Mô Tả id Int(10) Khóa Chính Id của món ăn
Title Varchar(100) Tên món ăn price Decimal(10.0) Giá món ăn
Image_name Varchar(255) Hình ảnh của món ăn
Category_id Int(10) Khóa Ngoại Món ăn thuộc danh mục nào
Active Varchar(20) Trạng Thái của món ăn
Bảng 2.6.2.2: Bảng thực đơn món ăn
Tên Trường Kiểu Dữ Liệu Ghi Chú Mô Tả id Int(10) Khóa Chính Id của danh mục món ăn
Title Varchar(100) Tên danh mục món ăn
Image_name Varchar(255) Hình ảnh của danh mục
Active Varchar(20) Trạng Thái của danh mục
Tên Trường Kiểu Dữ Liệu Ghi Chú Mô Tả id Int(10) Khóa Chính Id của khách hàng
Customer_name Varchar(50) Tên khách hàng
Customer_age Date Tuổi của khách hàng
Customer_gender Varchar(10) Giới tính của khách hàng Customer_contact Varchar(11) Số điện thoại khách hàng
Customer_email Varchar(150) Email khách hàng
Customer_address Varchar(250) Địa chỉ nhận hàng username Varchar(50) Tài khoản của khách hàng password Varchar(100) Mật Khẩu của khách hàng
Tên Trường Kiểu Dữ Liệu Ghi Chú Mô Tả
Comment Varchar(300) Bình luận của khách hàng Đánh giá Int(5) Đánh giá về món ăn
Bảng 2.6.2.5: Bảng đánh giá món ăn
Trường dữ liệu bao gồm các thông tin quan trọng cho hệ thống quản lý đánh giá Trường "id" với kiểu dữ liệu Int(10) là khóa chính, đại diện cho mã số duy nhất của lượt đánh giá Trường "username" có kiểu Varchar(50) lưu trữ tài khoản của quản trị viên, trong khi trường "password" với kiểu Varchar(300) chứa mật khẩu của quản trị viên.
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
MÔI TRƯỜNG TRIỂN KHAI
- Công cụ lập trình: Visual Studio.
- Ngôn ngữ lập trình: HTML/CSS, PHP, JAVASCRIP
- Hệ thống quản trị cơ sở dữ liệu: Sqli
KẾT QUẢ THỰC NGHIỆM
Hình 3.2.1.1: Giao diện đăng ký tài khoản
Hình 3.2.1.3: Giao diện trang chủ
3.2.1.4 Giao diện "Quản lý thông tin tài khoản"
Hình 3.2.1.4: Giao diện quản lý thông tin tài khoản
Hình 3.2.1.5.1: Danh mục món ăn
Hình 3.2.1.5.3: Danh mục cơm chiên
Hình 3.2.1.6.1: Thực Đơn món ăn
3.2.1.5 Giao diện "Thông tin món ăn"
Hình 3.2.1.7: Giao diện đặt đồ ăn
3.2.1.8 Giao diện "Thông tin đặt hàng"
Hình 3.2.1.8.1: Giao diện thông tin đơn hàng
Hình 3.2.1.8.2: Giao diện thông tin đơn hàng đang giao
Hình 3.2.1.8.3: Giao diện thông tin đơn hàng đã thành công
3.2.1.9 Giao diện "Đánh giá món ăn"
Hình 3.2.1.9: Giao diện thông tin đơn hàng đã thành công
3.2.2.1 Giao diện "Quản lý tài khoản"
Hình 3.2.2.1.1: Giao diện quản lý tài khoản
Hình 3.2.2.1.2: Giao diện thêm tài khoản
Hình 3.2.2.1.3: Giao diện update tài khoản
Hình 3.2.2.1.4: Giao diện thay đổi mật khẩu
3.2.2.3 Giao diện " Quản lý danh mục"
Hình 3.2.2.3.1: Giao diện quản lý danh mục
Hình 3.2.2.3.2: Giao diện thêm danh mục
Hình 3.2.2.3.3: Giao diện update danh mục
3.2.2.4 Giao diện " Quản lý thực Đơn"
Hình 3.2.2.4.1: Giao diện quản lý thực đơn
Hình 3.2.2.4.2: Giao diện thêm món ăn
Hình 3.2.2.4.4: Giao diện update món ăn
3.2.2.5 Giao diện " Quản lý khách hàng "
Hình 3.2.2.5.1: Giao diện quản lý khách hàng
Hình 3.2.2.5.2: Giao diện thêm khách hàng mới
3.2.2.6 Giao diện " Quản lý đơn hàng"
Hình 3.2.2.6.1: Giao diện quản lý đơn hàng
Hình 3.2.2.6.2: Giao diện cập nhật đơn hàng
3.2.2.7 Giao diện " Thống kê cửa hàng"
Hình 3.2.2.7: Giao diện thống kê cửa hàng
Hình 3.2.2.8: Giao diện đăng nhập quản trị viên