Phần mở đầu.1.1 Lý do lựa chọn đề tài Ngày nay với sự phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin đặc biệt với sự ra đời của Internet, nó đang dần trở thành một phần thiết yếu củ
Tổng qua về đề tài
Phạm vi hệ thống
Tên dự án Xây dựng website quản lý nhà hàng
Người thiết kế và xây dựng dự án Nguyễn Quốc Anh
Hệ thống đặt đồ ăn giúp nhà hàng tăng doanh thu bằng cách phục vụ khách hàng không thể đến trực tiếp, đồng thời cải thiện khả năng quản lý hoạt động kinh doanh.
Mục tiêu Giao diện thân thiện, dễ sử dụng.
Hệ thống có tính bảo mật.
Hệ thống phải chính xác về mặt dữ liệu.
Không vượt quá thời gian quy định.
Lợi ích mang lại Khách hàng dễ dàng tìm kiếm thông tin.
Khách hàng dễ dàng sử dụng và đặt món.
Nhà hàng có thể quản lý một cách tốt nhất cũng như đáp ứng nhu cầu của người mua một cách thuận tiện hơn.
Các bước thực hiện Khởi tạo dự án.
Phân tích yêu cầu và thiết kế hệ thống.
Bảng 1-1: Mô tả đối tượng và phạm vi sử dụng.
Đánh giá mức độ khả thi và mức dộ rủi ro
A Khả thi về kinh tế. Đối với nhà hàng: Có thêm kênh giao tiếp và quảng bá về đa dạng các món ăn góp phần tăng doanh thu Quảng bá được món ăn mới, thu hút nhiều khách hàng Nâng cao tính cạnh trang với các đối thủ trong cùng lĩnh vực Đối với khác hàng: Tiết kiệm thời gian, khách hàng không cần phải trực tiếp đến cửa hàng mà vẫn nắm bắt được thông tin chi tiết về các món ăn và dễ dàng đặt mua mọi lúc mọi nơi Dễ dàng nhận được sự trợ giúp, tư vấn online từ nhà hàng.
B Khả thi về hoạt động.
Hệ thống xây dựng giao diện thân thiện, dễ dàng sử dụng, không cần chuyên môn cũng có thể quản lý website.
C Khả thi về kỹ thuật. Đối với cửa hàng: Không yêu cầu phần cứng cao, không cần đường truyền internet có tốc độ cao nhằm đáp ứng nhu cầu sử dụng mọi lúc mọi nơi cho khách hàng Đối với người thực hiện: sử dụng ngôn ngữ lập trình PHP, chương trình tạo wed ảo XAMPP Công cụ lập trình Visual Studio Code, công cụ quản trị cơ sở dữ liệu SQL Server.
Dự án: Xây dựng web quản lý nhà hàng và đặt món
Rủi ro Mô tả Hướng khắc phục
Sự thay đổi từ phía cửa hàng
Các yêu cầu thay đổi từ phía cửa hàng như bố cục trang web, tổ chức dữ liệu.
Thu thập yêu cầu đầy đủ và chính xác.
Thay đổi lớn của dự án Yêu cầu thêm chức năng hoặc ràng buộc.
Yêu cầu tăng thời gian, chi phí để đáp ứng.
Trình độ tin học người dùng thấp
Người dùng không có nhiều kinh nghiệm về tin học, quản trị website.
Thiết kế giao diện thân thiện, dễ dàng sử dụng, viết các tài liệu hướng dẫn chi tiết.
Bảng 1-2: Miêu tả mức độ rủi ro và hướng khắc phục.
Giới thiệu ngôn ngữ và sử dụng ngôn ngữ
PHP, viết tắt của Personal Home Page, là một ngôn ngữ kịch bản được phát triển chủ yếu cho các ứng dụng trên máy chủ Khi lập trình viên viết chương trình bằng PHP, các lệnh sẽ được thực thi trên server, tạo ra mã HTML Điều này giúp các ứng dụng web hoạt động một cách hiệu quả và dễ dàng.
XAMPP là một phần mềm mã nguồn mở, viết tắt từ các chữ cái đầu của năm thành phần chính: Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) và Perl (P) Nó cho phép người dùng dễ dàng cài đặt và quản lý một máy chủ web trên nhiều hệ điều hành khác nhau.
Chữ X đầu tiên là viết tắt của hệ điều hành mà nó hoạt động với: Linux, Windows và Mac OS X.
Apache là máy chủ web mã nguồn mở phổ biến nhất toàn cầu, được sử dụng để phân phối nội dung web Phần mềm này được cung cấp miễn phí bởi Tổ chức Apache Software Foundation.
MySQL và MariaDB là hai hệ quản trị cơ sở dữ liệu quan hệ phổ biến, với MySQL được tích hợp trong XAMPP, một gói phần mềm bao gồm Web Server Apache và ngôn ngữ lập trình PHP Hiện tại, các phiên bản XAMPP đã thay thế MySQL bằng MariaDB, một nhánh của MySQL do cộng đồng phát triển và được thực hiện bởi các nhà phát triển ban đầu.
PHP là ngôn ngữ lập trình phía máy chủ, cho phép người dùng phát triển các trang web và ứng dụng động Ngôn ngữ này có thể được cài đặt trên mọi nền tảng và hỗ trợ nhiều hệ thống cơ sở dữ liệu khác nhau.
Perl là một ngôn ngữ kịch bản phổ biến, được ứng dụng rộng rãi trong quản trị hệ thống, phát triển Web và lập trình mạng Tương tự như PHP, Perl cho phép người dùng phát triển các ứng dụng Web động một cách hiệu quả.
XAMPP là chương trình tạo web server được ứng dụng trên các hệ điều hành Linux, MacOS, Windows, Cross-platform, Solaris.
XAMPP là một phần mềm tạo máy chủ web phổ biến, nổi bật với ưu điểm không mất phí bản quyền và mã nguồn mở Cấu hình đơn giản và gọn nhẹ của XAMPP đã khiến nó trở thành lựa chọn ưa chuộng trong việc phát triển web hiện nay.
Các ưu điểm của XAMPP bao gồm:
XAMPP có thể chạy được trên tất cả các hệ điều hành: Từ Cross-platform, Window, MacOS và Linux.
XAMPP có cấu hình đơn giản và nhiều chức năng hữu ích cho người dùng, bao gồm giả lập Server, giả lập Mail Server và hỗ trợ SSL trên Localhost Nó tích hợp nhiều thành phần với các tính năng đa dạng.
PHP (tạo môi trường chạy các tập tin script *.php);
MySql (hệ quản trị dữ liệu mysql);
Thay vì phải cài đặt từng thành phần trên, giờ đây các bạn chỉ cần cài XAMPP là chúng ta có 1 web server hoàn chỉnh.
XAMPP, khác với Appserv, cung cấp giao diện quản lý thân thiện, cho phép người dùng dễ dàng bật, tắt hoặc khởi động lại các dịch vụ máy chủ theo nhu cầu.
Bạn có thể tìm hiểu thêm về cách cài đặt Localhost trên AppServ qua bài viết: Localhost là gì? Cài đặt localhost bằng XAMPP, AppServ cực dễ
Khuyết điểm của XAMPP là gì?
Mặc dù XAMPP có cấu hình đơn giản, nhưng nó không hỗ trợ cấu hình Module và không có nhiều phiên bản MySQL, điều này có thể gây bất tiện cho người dùng Ngược lại, WAMP cung cấp nhiều tùy chọn hơn với nhiều phiên bản cho từng thành phần của server như PHP, Apache và MySQL.
Bên cạnh đó, dung lượng của XAMPP cũng tương đối nặng, dung lượng file cài đặt của XAMPP là 141Mb, nặng hơn nhiều so với WAMP chỉ 41Mb.
SQL Server is a relational database management system (RDBMS) that supports a wide range of transaction processing, enterprise applications, and analytical applications in IT companies It is one of the leading data technologies today, alongside Oracle Database and IBM’s DB2.
Giống như các phần mềm RDBMS khác, Microsoft SQL Server được phát triển dựa trên ngôn ngữ lập trình chuẩn SQL, được sử dụng bởi các quản trị viên cơ sở dữ liệu (DBAs) và chuyên gia CNTT để quản lý và truy vấn dữ liệu SQL Server thường được liên kết với Transact-SQL (T-SQL), một phiên bản mở rộng của SQL do Microsoft cung cấp.
SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM vào những năm 70, phục vụ cho các hệ thống cơ sở dữ liệu lớn Ban đầu, SQL Server chỉ được sử dụng trên các máy đơn lẻ, nhưng với sự gia tăng nhu cầu xây dựng cơ sở dữ liệu lớn theo mô hình khách-chủ, mọi thao tác xử lý dữ liệu hiện nay đều diễn ra trên máy chủ Ngày nay, SQL đóng vai trò quan trọng trong các ngôn ngữ lập trình, đặc biệt trong phát triển web động SQL đã được ANSI và ISO công nhận là ngôn ngữ chuẩn cho cơ sở dữ liệu quan hệ, tuy nhiên, chuẩn này vẫn chưa hoàn thiện 100%, dẫn đến sự khác biệt giữa các phiên bản SQL trong các ngôn ngữ lập trình khác nhau.
SQL Server cơ bản sử dụng cấu trúc bảng biểu để kết nối các phần tử dữ liệu liên quan, giúp loại bỏ việc lưu trữ dữ liệu ở nhiều vị trí trong cơ sở dữ liệu Mô hình quan hệ cung cấp các tham chiếu và ràng buộc toàn vẹn, duy trì độ chính xác của dữ liệu Những kiểm tra này thúc đẩy sự tuân thủ các nguyên tắc về tính nhất quán, tính độc lập và độ tin cậy, được gọi là các thuộc tính ACID, nhằm đảm bảo các giao dịch cơ sở dữ liệu được xử lý một cách ổn thỏa.
Hình 1.5: Cấu trúc SQL Server Đặc điểm và các phiên bản của SQL Sever Đặc điểm:
Hình 1.6: Đặc điểm SQL là ngôn ngữ tựa tiếng Anh.
SQL là một ngôn ngữ phi thủ tục, không yêu cầu người dùng phải biết cách truy cập cơ sở dữ liệu Tất cả các câu lệnh SQL đều dễ sử dụng và có ít khả năng gây lỗi.
SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
Chèn, cập nhật, xoá các hàng trong một quan hệ
Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL.
Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL
Đảm bảo tính nhất quán và sự ràng buộc của CSDL.
Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Kiến trúc hệ thống
Hình 2.2 Kiến trúc hệ thống
Tầng người dùng: Người dùng thông qua client giao tiếp với hệ thống gồm có: khách, người dùng có đăng ký tài khoản (User), quản trị viên (Admin)
Tầng hệ thống là nơi thực hiện các yêu cầu thao tác dữ liệu của người dùng, xử lý nguồn dữ liệu từ tầng người dùng trước khi chuyển xuống tầng dữ liệu Tại đây, các ràng buộc, tính toàn vẹn và hợp lệ của dữ liệu được kiểm tra, đồng thời thực hiện tính toán và xử lý các yêu cầu nghiệp vụ trước khi trả kết quả về tầng người dùng.
Tầng dữ liệu có vai trò quan trọng trong việc giao tiếp với hệ quản trị cơ sở dữ liệu, thực hiện các chức năng lưu trữ và truy vấn dữ liệu như tìm kiếm, thêm, xóa và sửa đổi thông tin.
Mô hình triển khai hệ thống
Hình 2.3: Mô hình triển khai hệ thống
- Hệ thống website giao dịch của nhà hàng online có thể được triển khai trên các host server trển thị trường một cách dễ dàng
Người dùng, Admin, Người bán hàng và Người mua hàng có thể dễ dàng truy cập hệ thống sàn giao dịch của cửa hàng online thông qua môi trường internet với mô hình này.
2.3 Tác nhân và ca sử dụng
Bảng 2.1: Tác nhân và ca sử dụng
2.5 Mô hình chức năng của hệ thống
2.5.1 Mô hình chức năng phần Backend
Tác nhân Ca sử dụng (Usecase)
Xem nhà hàng Tìm kiếm món ăn Xem món ăn Đánh giá món ăn Đặt món ăn Mua hàng
Admin Đăng nhập, đăng xuất hệ thống Quản lý nhà hàng
Quản lý danh mục Cập nhập thông tin nhà hàng Đăng món ăn
Xem trang chủQuản lý món ănXem khách hàng
Hình 2.4: Mô hình chức năng Backend
Để đăng nhập vào hệ thống, người sử dụng cần nhập tài khoản và mật khẩu Sau khi đăng nhập thành công, người quản trị có thể thực hiện các thao tác trong hệ thống.
Đăng xuất: Người dùng thoát ra khỏi hệ thống.
Quản lý danh mục: Admin có quyền thêm, sửa, xóa các danh mục của nhà hàng.
Quản lý món ăn: Admin có thể thêm,sửa,xóa các món ăn.
Kiểm duyệt báo cáo: Admin tiếp nhận các đơn hàng khi khách hàng đặt món.
Quản lý danh mục: Admin có quyền thêm, sửa, xóa các danh mục bài viết.
Quản lý nhà hàng: Admin có quyền thêm, sửa, xóa bài viết.
Giúp Admin xem được tổng quan thông số và tình hình hoạt động của website
2.5.2 Mô hình chức năng phần Frontend
Hình 2.5: Mô hình chức năng Frontend
Giúp người dùng tìm kiếm theo tên, theo danh mục của món ăn.
Nhà hàng có thể đăng bài viết theo món ăn mình muốn kinh doanh.
Quản lý món ăn đã đăng cho phép nhà hàng theo dõi và điều chỉnh chi tiết các món ăn đã được đăng tải, giúp họ dễ dàng sửa đổi những món ăn mà họ không còn hài lòng.
Người dùng có thể xem nhà hàng cũng như chi tiết món ăn…
Biểu đồ Usecase thể hiện sự tương tác giữa các Usecase (UC) và tác nhân, trong đó UC mô tả các chức năng của hệ thống Tác nhân có thể là con người hoặc hệ thống khác, chịu trách nhiệm cung cấp hoặc nhận thông tin từ hệ thống Biểu đồ UC tập trung vào trạng thái tĩnh của các UC, đóng vai trò quan trọng trong việc tổ chức và mô hình hóa hệ thống Do UC phản ánh yêu cầu của hệ thống từ góc nhìn người dùng, chúng là những chức năng thiết yếu mà hệ thống cần có Biểu đồ cũng chỉ rõ tác nhân nào khởi động UC và thời điểm tác nhân nhận thông tin từ hệ thống.
Hình 2.6: Mô hình Usecase tác nhân User
Mục đích: Cho người dùng truy cập website
Tác nhân: User Điều kiện: Không
Hành động của tác nhân Phản ứng của hệ thống
3 Chọn danh mục cần xem
4 Hiển thị trang danh mục về món ăn
6 Hiển thị chi tiết món ăn
10.Hiện thị giao diện thanh toán
Hình 2.7: Mô hình Usecase tác nhân Admin
Mục đích: Giúp Admin quản lý website
Tác nhân: Admin Điều kiện: Đăng nhập vào hệ thống
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
2 Hiển thị trang web với danh sách các mục
4 Hiển thị danh mục cần xem
5 Chọn mục tiếp theo để xem tiếp
2.7 Đặc tả chi tiết các Usecase (UC)
2.7.1 UC Tìm kiếm món ăn
Hình 2.8: Mô hình UC tìm kiếm món ăn
Mục đích: Để tìm kiếm món ăn theo nhu cầu của khách hàng.
Tác nhân: User Điều kiện: Không
Hành động của tác nhân Phản ứng của hệ thống
3 Chọn chức năng tìm kiếm
4 Chọn tìm kiếm theo yêu cầu
5 Trả ra kết quả tìm kiếm
6 Tiếp tục truy cập website
Hình 2.9: Mô hình UC Xem món ăn
Mục đích: Cho người dùng xem thông tin chi tiết về món ăn
Tác nhân: User Điều kiện: Không
Hành động của tác nhân Phản ứng của hệ thống
3 Chọn món ăn cần xem
6 Tiếp tục truy cập website
4 Hiển thị trang chi tiết về món ăn
5 Hiển thị thêm vào giỏ hàng
2.7.3 UC Quản lý bài đăng
Hình 2.10: Mô hình UC Quản lý bài đăng
Mục đích: Cho Admin quản lý các tin món ăn mình đã đăng hoặc lưu.
Tác nhân: Admin Điều kiện: Đăng nhập vào hệ thống
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào hệ thống
3 Chọn chức năng quản lý tin
5 Chọn chức năng Quản lý Tin đã đăng
2 Hiển thị trang web hệ thống
4 Hiển thị giao diện quản lý tin
6 Hiển thị các tin món ăn đã đăng
7 Tiếp tục truy cập website
2.7.4 UC Quản lý tin món ăn
Hình 2.11: Mô hình UC Quản lý tin món ăn
Mục đích: Cho người quản trị quản lý các tin món ăn
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
3 Chọn Quản lý tin món ăn
5 Chọn chức năng: Thêm, sửa xóa tin món ăn
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
2 Hiển thị trang quản trị
4 Hiển thị giao diện quản lý tin
6 Hiển thị form tương ứng
8 Kiểm tra nếu thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
1 Chọn Quản lý danh mục món ăn
3 Chọn chức năng: Thêm, sửa xóa danh mục
5 Điền thông tin cần thiết và gửi lên
7 Tiếp tục truy cập trang quản trị
2 Hiển thị danh sách danh mục
4 Hiển thị form tương ứng
6 Kiểm tra nếu thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
Admin xem báo cáo về món ăn được người dùng gửi lên để xử lý
2.7.5 UC Quản lý bài viết
Hình 2.12: Mô hình UC Quản lý bài viết
Mục đích: Cho người quản trị quản lý bài viết
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
3 Chọn Quản lý tin bài viết
5 Chọn chức năng: Thêm, sửa xóa món ăn
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
2 Hiển thị trang quản trị
4 Hiển thị giao diện quản lý bài viết
6 Hiển thị form tương ứng
8 Kiểm tra thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
1 Chọn Quản lý danh mục
3 Chọn chức năng: Thêm, sửa xóa danh mục món ăn
5 Điền thông tin cần thiết và gửi lên
2 Hiển thị danh sách danh mục
4 Hiển thị form tương ứng
6 Kiểm tra thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
7 Tiếp tục truy cập trang quản trị
2.7.6 UC Quản lý khách hàng
Hình 2.13: Mô hình UC Quản lý khách hàng
Mục đích: Cho người quản trị quản lý khách hàng đã mua để xem thông tin cũng như liên hệ
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
5 Chọn chức năng: Xóa khách hàng
2 Hiển thị trang quản trị
4 Hiển thị giao diện khách hàng
6 Hiển thị form tương ứng
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
8 Kiểm tra thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
2.7.7 UC Quản lý hệ thống
Hình 2.14: Mô hình UC Quản lý hệ thống
Mục đích: Cho người quản trị quản lý hệ thống
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Luồng sự kiện: Admin xem thống kê của trang web
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
2 Hiển thị trang quản trị
5 Tiếp tục truy cập trang quản trị
4 Hiển thị form tương ứng
2.8 Biểu đồ hoạt động của hệ thống
2.8.1 Biểu đồ hoạt động đăng ký tài khoản
Hình 2.15: Biểu đồ hoạt động Đăng ký tài khoản
II.8.2 Biểu đồ hoạt động đăng nhập
Hình 2.16: Biểu đồ hoạt động Đăng nhập
2.8.3 Biểu đồ hoạt động tìm kiếm món ăn
Hình 2.17: Biểu đồ hoạt động Tìm kiếm món ăn
2.8.4 Biểu đồ hoạt động xem món ăn
Hình 2.18: Biểu đồ hoạt động xem món ăn
2.8.5 Biểu đồ hoạt động cập nhật profile
Hình 2.19: Biểu đồ hoạt động Cập nhật profile
2.8.6 Biểu đồ hoạt động quản lý danh mục nhà hàng
Hình 2.20: Biểu đồ hoạt động Quản lý danh mục nhà hàng
2.8.7 Biểu đồ hoạt động quản lý bài viết
Hình 2.21: Biểu đồ hoạt động Quản lý bài viết
2.8.8 Biểu đồ hoạt động quản lý danh mục bài viết
Hình 2.22: Biểu đồ hoạt động Quản lý danh mục bài viết
2.8.9 Biểu đồ hoạt động quản lý user
Hình 2.23: Biểu đồ hoạt động Quản lý người dùng
2.8.10 Biểu đồ hoạt động quản lý hệ thống
Hình 2.24:Biểu đồ hoạt động Quản lý hệ thống
Mô hình chức năng của hệ thống
2.5.1 Mô hình chức năng phần Backend
Tác nhân Ca sử dụng (Usecase)
Xem nhà hàng Tìm kiếm món ăn Xem món ăn Đánh giá món ăn Đặt món ăn Mua hàng
Admin Đăng nhập, đăng xuất hệ thống Quản lý nhà hàng
Quản lý danh mục Cập nhập thông tin nhà hàng Đăng món ăn
Xem trang chủQuản lý món ănXem khách hàng
Hình 2.4: Mô hình chức năng Backend
Để đăng nhập vào hệ thống, người sử dụng cần nhập tài khoản và mật khẩu Sau khi đăng nhập thành công, người quản trị có thể thực hiện các thao tác trong hệ thống.
Đăng xuất: Người dùng thoát ra khỏi hệ thống.
Quản lý danh mục: Admin có quyền thêm, sửa, xóa các danh mục của nhà hàng.
Quản lý món ăn: Admin có thể thêm,sửa,xóa các món ăn.
Kiểm duyệt báo cáo: Admin tiếp nhận các đơn hàng khi khách hàng đặt món.
Quản lý danh mục: Admin có quyền thêm, sửa, xóa các danh mục bài viết.
Quản lý nhà hàng: Admin có quyền thêm, sửa, xóa bài viết.
Giúp Admin xem được tổng quan thông số và tình hình hoạt động của website
2.5.2 Mô hình chức năng phần Frontend
Hình 2.5: Mô hình chức năng Frontend
Giúp người dùng tìm kiếm theo tên, theo danh mục của món ăn.
Nhà hàng có thể đăng bài viết theo món ăn mình muốn kinh doanh.
Quản lý món ăn đã đăng cho phép nhà hàng theo dõi và điều chỉnh chi tiết các món ăn đã được đăng tải, giúp họ dễ dàng sửa đổi khi không hài lòng với món ăn cũ.
Người dùng có thể xem nhà hàng cũng như chi tiết món ăn…
Mô hình Usecase(UC)
Biểu đồ Usecase thể hiện sự tương tác giữa các Usecase (UC) và tác nhân, trong đó UC mô tả các chức năng của hệ thống Tác nhân có thể là con người hoặc hệ thống khác, chịu trách nhiệm cung cấp hoặc nhận thông tin từ hệ thống Biểu đồ UC tập trung vào trạng thái tĩnh của các UC, đóng vai trò quan trọng trong việc tổ chức và mô hình hóa hệ thống Do UC phản ánh yêu cầu của hệ thống từ góc nhìn người dùng, chúng là những chức năng thiết yếu mà hệ thống cần có Biểu đồ cũng chỉ rõ tác nhân nào khởi động UC và thời điểm tác nhân nhận thông tin từ hệ thống.
Hình 2.6: Mô hình Usecase tác nhân User
Mục đích: Cho người dùng truy cập website
Tác nhân: User Điều kiện: Không
Hành động của tác nhân Phản ứng của hệ thống
3 Chọn danh mục cần xem
4 Hiển thị trang danh mục về món ăn
6 Hiển thị chi tiết món ăn
10.Hiện thị giao diện thanh toán
Hình 2.7: Mô hình Usecase tác nhân Admin
Mục đích: Giúp Admin quản lý website
Tác nhân: Admin Điều kiện: Đăng nhập vào hệ thống
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
2 Hiển thị trang web với danh sách các mục
4 Hiển thị danh mục cần xem
5 Chọn mục tiếp theo để xem tiếp
Đặc tả chi tiết các Usecase (UC)
2.7.1 UC Tìm kiếm món ăn
Hình 2.8: Mô hình UC tìm kiếm món ăn
Mục đích: Để tìm kiếm món ăn theo nhu cầu của khách hàng.
Tác nhân: User Điều kiện: Không
Hành động của tác nhân Phản ứng của hệ thống
3 Chọn chức năng tìm kiếm
4 Chọn tìm kiếm theo yêu cầu
5 Trả ra kết quả tìm kiếm
6 Tiếp tục truy cập website
Hình 2.9: Mô hình UC Xem món ăn
Mục đích: Cho người dùng xem thông tin chi tiết về món ăn
Tác nhân: User Điều kiện: Không
Hành động của tác nhân Phản ứng của hệ thống
3 Chọn món ăn cần xem
6 Tiếp tục truy cập website
4 Hiển thị trang chi tiết về món ăn
5 Hiển thị thêm vào giỏ hàng
2.7.3 UC Quản lý bài đăng
Hình 2.10: Mô hình UC Quản lý bài đăng
Mục đích: Cho Admin quản lý các tin món ăn mình đã đăng hoặc lưu.
Tác nhân: Admin Điều kiện: Đăng nhập vào hệ thống
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào hệ thống
3 Chọn chức năng quản lý tin
5 Chọn chức năng Quản lý Tin đã đăng
2 Hiển thị trang web hệ thống
4 Hiển thị giao diện quản lý tin
6 Hiển thị các tin món ăn đã đăng
7 Tiếp tục truy cập website
2.7.4 UC Quản lý tin món ăn
Hình 2.11: Mô hình UC Quản lý tin món ăn
Mục đích: Cho người quản trị quản lý các tin món ăn
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
3 Chọn Quản lý tin món ăn
5 Chọn chức năng: Thêm, sửa xóa tin món ăn
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
2 Hiển thị trang quản trị
4 Hiển thị giao diện quản lý tin
6 Hiển thị form tương ứng
8 Kiểm tra nếu thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
1 Chọn Quản lý danh mục món ăn
3 Chọn chức năng: Thêm, sửa xóa danh mục
5 Điền thông tin cần thiết và gửi lên
7 Tiếp tục truy cập trang quản trị
2 Hiển thị danh sách danh mục
4 Hiển thị form tương ứng
6 Kiểm tra nếu thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
Admin xem báo cáo về món ăn được người dùng gửi lên để xử lý
2.7.5 UC Quản lý bài viết
Hình 2.12: Mô hình UC Quản lý bài viết
Mục đích: Cho người quản trị quản lý bài viết
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
3 Chọn Quản lý tin bài viết
5 Chọn chức năng: Thêm, sửa xóa món ăn
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
2 Hiển thị trang quản trị
4 Hiển thị giao diện quản lý bài viết
6 Hiển thị form tương ứng
8 Kiểm tra thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
1 Chọn Quản lý danh mục
3 Chọn chức năng: Thêm, sửa xóa danh mục món ăn
5 Điền thông tin cần thiết và gửi lên
2 Hiển thị danh sách danh mục
4 Hiển thị form tương ứng
6 Kiểm tra thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
7 Tiếp tục truy cập trang quản trị
2.7.6 UC Quản lý khách hàng
Hình 2.13: Mô hình UC Quản lý khách hàng
Mục đích: Cho người quản trị quản lý khách hàng đã mua để xem thông tin cũng như liên hệ
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
5 Chọn chức năng: Xóa khách hàng
2 Hiển thị trang quản trị
4 Hiển thị giao diện khách hàng
6 Hiển thị form tương ứng
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
8 Kiểm tra thông tin gửi lên đúng thì cập nhật vào CSDL, sai thì gửi thông báo
2.7.7 UC Quản lý hệ thống
Hình 2.14: Mô hình UC Quản lý hệ thống
Mục đích: Cho người quản trị quản lý hệ thống
Tác nhân: Admin Điều kiện: Đăng nhập vào trang quản trị
Luồng sự kiện: Admin xem thống kê của trang web
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
2 Hiển thị trang quản trị
5 Tiếp tục truy cập trang quản trị
4 Hiển thị form tương ứng
Biểu đồ hoạt động của hệ thống
2.8.1 Biểu đồ hoạt động đăng ký tài khoản
Hình 2.15: Biểu đồ hoạt động Đăng ký tài khoản
II.8.2 Biểu đồ hoạt động đăng nhập
Hình 2.16: Biểu đồ hoạt động Đăng nhập
2.8.3 Biểu đồ hoạt động tìm kiếm món ăn
Hình 2.17: Biểu đồ hoạt động Tìm kiếm món ăn
2.8.4 Biểu đồ hoạt động xem món ăn
Hình 2.18: Biểu đồ hoạt động xem món ăn
2.8.5 Biểu đồ hoạt động cập nhật profile
Hình 2.19: Biểu đồ hoạt động Cập nhật profile
2.8.6 Biểu đồ hoạt động quản lý danh mục nhà hàng
Hình 2.20: Biểu đồ hoạt động Quản lý danh mục nhà hàng
2.8.7 Biểu đồ hoạt động quản lý bài viết
Hình 2.21: Biểu đồ hoạt động Quản lý bài viết
2.8.8 Biểu đồ hoạt động quản lý danh mục bài viết
Hình 2.22: Biểu đồ hoạt động Quản lý danh mục bài viết
2.8.9 Biểu đồ hoạt động quản lý user
Hình 2.23: Biểu đồ hoạt động Quản lý người dùng
2.8.10 Biểu đồ hoạt động quản lý hệ thống
Hình 2.24:Biểu đồ hoạt động Quản lý hệ thống
Phân tích và thiết kế cơ sở dữ liệu
Biểu đồ diagram của nhà hàng
Hình 2.27: Biểu đồ diagram của nhà hàng
Bảng Food
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng Account
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng MigrationHistory
Stt Tên Kiểu dữ liệu Ràng buộc
3 Model varbinary(MAX) Not null
Bảng Category
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng Customer
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng Order
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng OrderInfo
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng Payment
Stt Tên Kiểu dữ liệu Ràng buộc
Bảng ShopInformation
Stt Tên Kiểu dữ liệu Ràng buộc
Cài đặt và thực nghiệm
Môi trường phát triển
Visual Studio IDE (Integrated Development Environment) is a software development tool created by Microsoft, widely utilized by programmers for software development.
Visual Studio, phiên bản đầu tiên được phát hành vào năm 1997, bao gồm hai phiên bản là Professional và Enterprise Từ đó đến nay, Visual Studio đã trải qua nhiều giai đoạn phát triển, với các phiên bản nổi bật như Visual Studio 2005, 2008, 2010, 2012, 2013, 2017, và 2019 Mỗi phiên bản đều mang đến nhiều công nghệ và tính năng mới, đáp ứng nhu cầu ngày càng cao của lập trình viên.
Người dùng có thể tải phiên bản Visual Studio Community miễn phí cho mục đích nghiên cứu và giáo dục, vì phiên bản này cung cấp đầy đủ các tính năng cần thiết cho việc học tập.
Trang chủ của Visual Studio: https://www.visualstudio.com.
4.1.2 Các chức năng của Visual Studio Code
Visual Studio Code có những chức năng gì?
Visual Studio Code là phần mềm được Microsoft ưu ái và nhận được sự hỗ trợ nhiệt tình từ cộng đồng lập trình viên Nhờ đó, Visual Studio Code không ngừng được nâng cấp, trang bị công nghệ tối ưu và cung cấp hỗ trợ tốt nhất cho lập trình viên.
Khả năng mở rộng ngôn ngữ
Cung cấp kho tiện ích mở rộng khổng lồ
Hỗ trợ đa nền tảng
Hỗ trợ tối ưu hóa việc code
Tối ưu hóa cho việc xây dựng website
Khả năng tích hợp đầu cuối
Một màn hình với nhiều chức năng
Hỗ trợ sử dụng Git
Cung cấp kho tiện ích mở rộng khổng lồ
Nếu bạn đang học hay làm việc với ngôn ngữ ASP.NET nhưng bạn đang cần phải sử dụng thêm ngôn ngữ C, C++, C# hay Java?
Không sao! Bạn chỉ cần truy cập kho extension của Visual Studio Code, tìm kiếm ngôn ngữ cần thiết, cài đặt và sử dụng ngay trong Visual Studio Code!
Bạn muốn thay đổi giao diện cho Visual Studio Code? Cửa hàng extension của họ cùng có sẵn rất nhiều để bạn lựa chọn đấy!
Tính năng Intellisense trong Visual Studio Code rất thông minh và chuyên nghiệp, giúp người dùng khai báo biến khi quên và tự động bổ sung cú pháp khi gõ code không đầy đủ.
Hỗ trợ đa nền tảng
Dù bạn sử dụng Windows, Linux hay MacOS, phần mềm Visual Studio Code đều có thể hoạt động trên tất cả các hệ điều hành này Giao diện có thể khác nhau một chút ở thanh công cụ, nhưng bạn sẽ nhanh chóng làm quen khi chuyển đổi giữa các hệ điều hành.
Tối ưu hóa cho việc xây dựng website
Bạn có thể dễ dàng thiết kế một website ngay trong Visual Studio Code Nhờ vào sự hỗ trợ tối ưu cho lập trình web và các extension đa dạng, bạn sẽ nhanh chóng tạo ra những website và ứng dụng web chất lượng.
Một màn hình với nhiều chức năng
Visual Studio Code cung cấp nhiều tính năng mạnh mẽ, cho phép bạn lập trình và quản lý thư mục một cách chuyên nghiệp mà không cần chuyển đổi giữa các màn hình hay quay lại thư mục gốc.
Bạn cũng có thể mở cùng lúc nhiều tệp tin, thư mục mà không cần thiết phải liên quan đến nhau đấy!
Hỗ trợ sử dụng Git
GitHub đã được Microsoft mua lại, dẫn đến việc Visual Studio Code được tối ưu hóa để lưu trữ mã an toàn trên GitHub, giúp bạn yên tâm hơn về việc bảo vệ dữ liệu khi thiết bị gặp sự cố Hy vọng bài viết này sẽ giúp bạn khám phá những tính năng yêu thích trong Visual Studio Code và áp dụng chúng một cách hiệu quả trong lập trình!
Những tiện ích mà Visual Studio cung cấp
Hỗ trợ viết mã nhanh chóng
Việc viết mã trên Notepad hoặc Notepad++ có thể gây khó khăn do người dùng dễ quên tên hàm, chức năng của hàm và các tham số liên quan Trong khi đó, Visual Studio cung cấp tính năng IntelliSense, giúp gợi ý tên biến và hàm ngay khi gõ, mang lại hiệu suất cao và trải nghiệm trực quan hơn.
Hay sử dụng các phím tắt để phát sinh code, ví gõ cw sau đó nhấn TAB TAB, Visual Studio tự phát sinh code là: System.Console.WriteLine().
Ngoài ra để tạo 1 thuộc tính trong class, chỉ cần gõ là prop TAB TAB, Visual Studio cũng tự phát sinh code.
Code sau khi phát sinh: public int MyProperty { get; set; }
Ngoài ra có thể cài thêm 1 số extension hỗ trợ quản lý và viết mã tốt hơn như:
Visual Assist: extension hỗ trợ với ngôn ngữ C++.
ReSharper: extension hỗ trợ các ngôn ngữ thuộc NET.
Công cụ Debug mạnh mẽ
Visual Studio IDE được đánh giá là công cụ hỗ trợ Debug mạnh mẽ nhất Ngoài việc xuất các thông số như giá trị của biến ra output thông qua các hàm như printf, cout, Console.WriteLine, và Debug.WriteLine, Visual Studio còn cho phép debug từng câu lệnh để kiểm tra giá trị qua mỗi câu lệnh thông qua breakpoints Để đặt breakpoint, chúng ta có hai cách.
Cách 1: nhấn chuột vào ngay bên mép trái dòng muốn debug.
Cách 2: trỏ cho trỏ chuột vào dòng muốn debug và nhấn phím tắt F9. Để xem kết quả chạy ra sao, nhấn phím F5 để chạy ở chế độ debug.
Khi chương trình khởi chạy thì chương trình sẽ dừng lại ở dòng số 26, có thể sử dụng phím F10 để chạy từng dòng lệnh.
Go To Definition to class và function
Khi lập trình, việc tìm kiếm các class và phương thức để sửa lỗi là cần thiết, nhưng điều này có thể tốn thời gian, đặc biệt trong các dự án lớn Visual Studio cung cấp tính năng Go To Definition, giúp tiết kiệm thời gian và nâng cao hiệu quả phát triển mã.
Tính năng này được sử dụng rất nhiều trong khi viết mã, giả sử cần khảo sát class StreamWriter từ khai báo sau:
You can place the mouse pointer over the class name StreamWriter and press F12 for Visual Studio to navigate directly to the StreamWriter class, or you can right-click and select "Go To Definition."
Visual Studio không chỉ hỗ trợ tính năng Go To Definition cho các lớp (class) mà còn cho cả các phương thức Để sử dụng tính năng này, bạn chỉ cần nhấn F12 khi đặt con trỏ chuột vào vị trí gọi phương thức, hoặc nhấn chuột phải vào tên phương thức và chọn Go To Definition.
Về mặt giao diện trước tiên chúng ta có trang chủ với thiết kế đơn giản dễ nhìn với mục như về hóa đơn, hàng hóa, thực đơn,
Hình 4.1: Giao diện trang web
Hình 4.2: Giao diện đăng nhập
Hình 4.3:Giao diện quản lý hóa đơn
Hình 4.4: Giao diện quản lý phòng, bàn
Hình 4.5: Chi tiết chức năng đặt bàn
Hình 4.6: Quản lý khách hàng
Hình 4.7: Chức năng thêm khách hàng
Hình 4.9: Chức năng Nhập hàng vào kho
Hình 4.10: Thực đơn nhà hàng