CHƯƠNG 1. KHẢO SÁT VÀ PHÂN TÍCH BÀI TOÁN Ở chương đầu tiên này em sẽ đi tìm hiểu về yêu cầu đề ra của đề tài, xác định phạm vi và khảo sát về một trang web mẫu tham khảo. Tiếp đến là phân tích toàn bộ bài toán cũng như là thiết kế sơ đồ ca sử dụng. Cuối cùng là nêu ra được công nghệ sử dụng và cài đặt được môi trường phát triển đề tài 1.
Yêu cầu của bài toán và phạm vi đề tài Yêu cầu: Hệ thống website quản lý cửa hàng bán đồ ăn fastfood cần được xây dựng nhằm đáp ứng nhu cầu đặt hàng trực tuyến của khách hàng và hỗ trợ công tác quản lý hiệu quả cho chủ cửa hàng cũng như nhân viên. Giao diện người dùng dành cho khách hàng phải trực quan, thân thiện, dễ dàng điều hướng và tương thích trên nhiều thiết bị khác nhau như máy tính để bàn, máy tính bảng và điện thoại di động. Khách hàng có thể xem danh sách các món ăn được phân loại rõ ràng theo từng danh mục (ví dụ: burger, gà rán, khoai tây chiên, đồ uống, combo khuyến mãi). Về phía hệ thống thì cần xây dựng một hệ thống quản lý đầy đủ các chức năng, người quản trị có thể truy cập, kiểm tra và quản lý các đơn đặt hàng, cũng như là theo dõi tiến trình hệ thống và quản lý khách hàng để có thể dễ dàng bảo trì và nâng cấp hệ thống phù hợp theo thời gian Phạm vi: Dành cho người quản lý của 1 cửa hàng bán đồ ăn nhanh và khách hàng 1.
Khảo sát về một trang web bán đồ ăn nhanh Chúng ta sẽ khảo sát về trang web foody.vn Giao diện trang chủ: Hình 1. Giao diện trang chủ foody 10 Hình 1. Giao diện menu Giao diện đăng nhập: 11 Hình 1. Giao diện đăng nhập menu foody Giao diện hồ sơ cá nhân: Hình 1.
Giao diện hồ sơ cá nhân foody Giao diện đặt đồ ăn: 12 Hình 1. Giao diện đặt đồ ăn 1. Phân tích đề tài và yêu cầu của hệ thống 1. Chức năng cho Khách hàng: 1.
Quản lý tài khoản: Đăng ký, đăng nhập Cập nhật thông tin cá nhân Đổi mật khẩu 2. Đặt đồ ăn: Xem danh sách sản phẩm Tìm kiếm và lọc sản phẩm theo danh mục Xem chi tiết sản phẩm Thêm vào giỏ hàng Áp dụng mã giảm giá (coupons) Tạo đơn hàng Chọn phương thức thanh toán Theo dõi trạng thái đơn hàng Đánh giá sản phẩm 13 1. Chức năng cho Quản trị viên: 1. Quản lý sản phẩm: Thêm/sửa/xóa sản phẩm Cập nhật danh mục sản phẩm Cập nhật kho hàng 2.
Quản lý đơn hàng: Xem danh sách đơn hàng Cập nhật trạng thái đơn hàng Xử lý đơn hàng 3. Quản lý khuyến mãi: Tạo và cập nhật mã giảm giá Thiết lập chương trình khuyến mãi 4. Quản lý người dùng: Xem danh sách người dùng Phân quyền người dùng Khóa/mở khóa tài khoản 5. Báo cáo và thống kê: Tổng kết doanh thu theo mục Thống kê về thông tin sản phẩm hoặc khách hàng theo một mốc nhất định 1.
Yêu cầu phi chức năng: 1. Bảo mật: Xác thực và phân quyền người dùng Bảo vệ thông tin cá nhân Mã hóa dữ liệu nhạy cảm 2. Hiệu suất: Thời gian phản hồi nhanh Xử lý được nhiều người dùng đồng thời 3. Giao diện: Thiết kế responsive Giao diện thân thiện với người dùng Tương thích với các trình duyệt phổ biến 14 1.
Thiết kế sơ đồ use – case 1. Biểu đồ use - case tổng quát Hình 1. Biểu đồ use – case tổng quát 15 1. Biểu đồ use - case quản trị viên Hình 1.
Biểu đồ use – case quản trị viên 1. Biểu đồ use case khách hàng 16 Hình 1. Biểu đồ use – case khách hàng 1. Công nghệ sử dụng trong đề tài đồ án Springboot: Là một framework mã nguồn mở dựa trên Java, được phát triển bởi Pivotal Team.
Framework này giúp đơn giản hóa quá trình phát triển ứng dụng Java bằng cách cung cấp các tính năng tự động cấu hình và các starter dependencies Java: Là ngôn ngữ lập trình hướng đối tượng mạnh mẽ, được sử dụng làm ngôn ngữ chính cho phần backend của dự án Food-VN 17 HTML: Là ngôn ngữ đánh dấu tiêu chuẩn để tạo các trang web. Trong dự án Food-VN, HTML đóng vai trò nền tảng trong việc xây dựng giao diện người dùng. CSS: Là ngôn ngữ định kiểu được sử dụng để mô tả cách hiển thị của các phần tử HTML. Trong dự án Food-VN, CSS được sử dụng thông qua Tailwind CSS để tạo ra giao diện người dùng đẹp mắt và chuyên nghiệp.
JavaScript: Là ngôn ngữ lập trình phía client, được sử dụng trong dự án Food-VN thông qua React.js để tạo ra các ứng dụng web động và tương tác. JavaScript cho phép xử lý các sự kiện người dùng, thao tác với DOM, và tạo ra các trải nghiệm người dùng phong phú Reactjs: ReactJS là một thư viện mã nguồn mở được phát triển bởi Facebook dùng để xây dựng các giao diện người dùng trong ứng dụng web. Với ReactJS, các nhà phát triển có thể tạo ra các thành phần UI (User Interface) tái sử dụng, dễ quản lý và dễ bảo trì. ReactJS hoạt động trên cơ sở một hệ thống Virtual DOM, cho phép trình duyệt chỉ cập nhật lại những phần cần thiết trong giao diện người dùng, giúp tăng tốc độ hiển thị của ứng dụng.
Ngoài ra, ReactJS cũng hỗ trợ việc xây dựng các ứng dụng SPA (Single Page Application), cho phép người dùng trải nghiệm các ứng dụng mượt mà và không bị gián đoạn [1]. MySQL: Là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, mạnh mẽ và đáng tin cậy. Trong dự án Food-VN, MySQL được sử dụng làm hệ thống cơ sở dữ liệu chính để lưu trữ và quản lý dữ liệu. Cài đặt môi trường sử dụng Sau đây em xin giới thiệu về cách cài đặt và cấu hình môi trường phát triển trên hệ điều hành Microsoft Windows Môi trường: - IntelliJ IDEA: Cài đặt môi trường code dự án từ website: https://www.com/idea/download/?section=windows 18 - MySQL: Cài đặt hệ quản trị cơ sở dữ liệu MySQL được tích hợp trong phần mềm từ website: https://www.com/downloads/ - VSCODE: Cài đặt môi trường code dự án từ website: https://code.
[7] Chọn phiên bản dành cho Window [Image] 19 Tổng kết chương: Như vậy qua chương một em đã tìm hiểu về yêu cầu đề ra của đề tài, xác định phạm vi và khảo sát về một trang web mẫu tham khảo cũng như là phân tích và thiết kế biểu đồ ca sử dụng và cuối cùng là nêu lên được công nghệ sử dụng và cài đặt môi trường CHƯƠNG 2. THIẾT KẾ CƠ SỞ DỮ LIỆU 2. Sơ đồ phân rã chức năng Hình 2. Sơ đồ phân rã chức năng 2.
Đặc tả các chức năng chính Bảng 2. Đặc tả chức năng STT Tên chức năng Miêu tả 1 Đăng kí - Người dùng đăng kí tài khoản để đăng nhập. 2 Đăng nhập - Người dùng đăng nhập để cập vào web 3 Cập nhật tài khoản - Người dùng vào profile edit thông tin cá nhân. 4 Đổi mật khẩu - Người dùng có thể thay đổi mật khẩu đăng nhập 20 5 Tìm kiếm và lọc sản phẩm - Tìm kiếm sản phẩm theo tên hoặc giá 6 Thêm vào giỏ hàng - Người dùng chọn đồ ăn để đặt 7 Áp dụng mã giảm giá - Nhập mã khuyến mãi để được giảm giá đồ ăn.
8 Đánh giá sản phẩm - Người dùng nhận xét và đánh giá đồ ăn. 9 Xem danh sách và chi tiết sản - Hiển thị đồ ăn, mức giá của sảm phẩm, địa phẩm chỉ. 10 Chọn phương thức thanh toán - Lựa chọn hình thức để thanh toán đồ ăn. 11 Cập nhập sản phẩm - Thêm, sửa, xóa thông tin của món ăn.
12 Cập nhập danh mục sản phẩm - Quản lý các sản phẩm hiện có. 13 Cập nhập kho hàng - Xem chi tiết xem đồ ăn còn bao nhiêu. 14 Xem danh sách đơn hàng - Xem các đơn hàng đồ ăn đang được đặt. 15 Cập nhập trạng thái đơn hàng - Xem tiến độ xử lý của đơn hàng.
16 Tạo và cập nhập mã giảm giá - Tạo mã giảm giá cho đồ ăn. 17 Thiết lập chương trình khuyến - Tạo thêm mã giảm giá giới hạn và thiết lập mãi thời hạn cho mã giảm giá. 18 - Xem doanh thu sản phẩm, sản phẩm nào Thống kê doanh thu theo mục được bán chạy. 19 Thống kê về sản phẩm và - Xem sản phẩm nào được bán chạy, khách khách hàng hàng nào mua nhiều.
20 Xem danh sách người dùng - Xem danh sách người dùng đăng ký tài khoản cho web. 21 Phân quyền người dùng - Cấp quyền cho khách hàng. 22 Khóa/ mở khóa tài khoản - Tạm thời chặn tài khoản của người dùng nếu vi phạm quy định. Tổng quan về yêu cầu các bảng cơ sở dữ liệu chính 2.
Các bảng chính Bảng 2. Thông tin các bảng chính STT các bảng chính Giải thích 1 user_role Bảng vai trò của người dùng 2 user Bảng người dùng 3 role Bảng vai trò 4 coupon Bảng khuyến mãi 6 category Bảng danh mục 7 notification Bảng thông báo 7 orders Bảng đơn đặt hàng 8 order_detail Bảng chi tiết đơn đặt hàng 9 address Bảng địa chỉ 10 evaluation Bảng đánh giá sản phẩm 11 revenue Bảng thống kê sản phẩm 12 product_coupon Bảng khuyến mãi sản phẩm 13 product Bảng sản phẩm 2. Thông tin chi biết các bảng và quan hệ Bảng user_role Bảng 2. Bảng user_role STT Thực thể Kiểu dữ liệu Ràng buộc Mô tả 1 user_id BIGINT PRIMARY Mã người dùng KEY, FOREIGN KEY 2 role_id BIGINT PRIMARY Mã vai trò KEY, FOREIGN KEY Mô tả: - Mỗi người dùng có thể có nhiều vai trò, mỗi vai trò có thể có nhiều người.
- user_id và role_id là hai cặp khóa chính và khóa phụ tham chiếu đến lần lượt bảng user và bảng role. - Bảng user_role gồm: user_id, role_id. 22 Bảng user Bảng 2. Bảng user STT Thực thể Kiểu dữ liệu Ràng buộc Mô tả 1 id BIGINT PRIMARY Mã người dùng KEY 2 created_at DATETIME(6) NOT NULL Ngày tạo 3 update_at DATETIME(6) NOT NULL Ngày cập nhật 4 confirm_password VARCHAR(255) NOT NULL Xác nhận mật khẩu 5 enable BIT(1) NOT NULL Cho phép 6 password VARCHAR(255) NOT NULL Mật khẩu 7 username VARCHAR(255) NOT NULL, Tên đăng nhập UNIQUE 8 email VARCHAR(255) NOT NULL, Email UNIQUE 9 avatar VARCHAR(255) DEFAULT ‘’ Ảnh đại diện 10 date_of_birth VARCHAR(255) NULL Ngày tháng năm sinh 11 gender VARCHAR(255) NULL Giới tính 12 phone_number VARCHAR(255) NULL Số điện thoại Mô tả: - Mỗi người dùng có một mã tài khoản duy nhất.
- Id là một khoá chính tự sinh ra. - usename và email là trường dữ liệu duy nhất.