Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh xã hội hiện đại, sự phát triển nhanh chóng của công nghệ mang lại nhiều tiện ích nhưng cũng kéo theo những hệ lụy đối với sức khỏe con người. Tình trạng bận rộn với công việc khiến nhiều người bỏ qua chế độ dinh dưỡng hợp lý, dẫn đến sự gia tăng của các bệnh lý liên quan đến ăn uống thiếu khoa học như suy dinh dưỡng, thừa cân, béo phì và suy nhược cơ thể. Tại Việt Nam, tỷ lệ người mắc các chứng bệnh liên quan đến dinh dưỡng ngày càng phổ biến. Nhận thức được tầm quan trọng của việc duy trì lối sống lành mạnh, nhu cầu tiếp cận thực phẩm sạch, an toàn và tiện lợi theo phong cách "Eatclean" ngày càng trở nên cấp thiết.
Đồ án tốt nghiệp "Thiết kế hệ thống Eatclean sử dụng công nghệ ReactJS và Laravel" do sinh viên Cao Nhật Khang (ngành Công nghệ Kỹ thuật Máy tính, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) thực hiện dưới sự hướng dẫn của ThS. Trương Quang Phúc nhằm giải quyết bài toán quản trị kinh doanh thực phẩm sạch kết hợp cá nhân hóa dinh dưỡng cho người tiêu dùng.
Mục tiêu nghiên cứu của đề tài được tác giả xác định cụ thể qua 5 nhiệm vụ:
- Khảo sát nhu cầu và ý tưởng của nhà kinh doanh về các món ăn sạch để tiếp cận khách hàng thông qua phương tiện truyền thông đại chúng.
- Tìm hiểu chi tiết các yếu tố và mong muốn quan trọng mà khách hàng tìm kiếm trong dịch vụ thực phẩm sạch.
- Lựa chọn các thao tác nghiệp vụ thực tế để chuyển đổi thành các tính năng trên website, giúp tối ưu hóa công tác quản lý và vận hành.
- Nghiên cứu, tìm hiểu và lựa chọn kiến trúc phần mềm cùng các công nghệ phù hợp để xây dựng hệ thống.
- Xây dựng hoàn tất một hệ thống thương mại điện tử về thực phẩm sạch hỗ trợ cả người kinh doanh và khách hàng vận hành hiệu quả.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình quản lý, kinh doanh các gói ăn thực phẩm sạch và hành vi mua hàng dựa trên nhu cầu dinh dưỡng cá nhân của người tiêu dùng.
- Phạm vi kỹ thuật: Xây dựng hệ thống web application hoàn chỉnh gồm hai phân hệ (hệ thống quản trị và hệ thống khách hàng), sử dụng thư viện ReactJS cho tầng giao diện người dùng và framework Laravel cho tầng API máy chủ, lưu trữ trên cơ sở dữ liệu MySQL.
- Phạm vi thời gian và địa điểm: Đề tài được giao từ ngày 21/02/2023 và hoàn thành nộp báo cáo vào ngày 26/06/2023 tại Bộ môn Công nghệ Kỹ thuật Máy tính, Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.
Cơ sở lý thuyết và phương pháp tiếp cận
Khung kiến trúc và lý thuyết nền tảng
Để xây dựng hệ thống, tác giả đã tiến hành khảo sát và đánh giá hai mô hình kiến trúc phần mềm phổ biến:
- Kiến trúc Front-Back (Client-Server phân tách): Ứng dụng được chia thành hai phần độc lập gồm Front-end (hiển thị, tương tác) và Back-end (xử lý logic, truy xuất, bảo mật dữ liệu). Mô hình này mang lại ưu điểm rõ rệt về việc phân tách trách nhiệm phát triển, dễ bảo trì, tăng tính mở rộng và mô-đun hóa.
- Kiến trúc Microservice: Phân tách hệ thống Back-end thành nhiều dịch vụ nhỏ độc lập tương tác qua API Gateway hoặc Message Queue. Mặc dù có tính linh hoạt cao, mô hình này đòi hỏi kỹ năng thiết kế chuyên sâu và làm tăng độ phức tạp trong xử lý lỗi, do đó tác giả quyết định lựa chọn mô hình Front-Back kết hợp RESTful API để phù hợp với quy mô đề tài.
Ở tầng máy chủ, hệ thống ứng dụng mô hình MVC (Model - View - Controller) cùng mẫu thiết kế Repository Pattern trong Laravel:
- Repository Pattern: Đóng vai trò lớp trung gian (cầu nối) giữa Controller và Model (Eloquent ORM), giúp tách biệt hoàn toàn tầng logic nghiệp vụ khỏi tầng truy cập dữ liệu, tăng khả năng tái sử dụng mã nguồn và thuận tiện cho việc kiểm thử phần mềm.
- Cơ chế tính toán chỉ số TDEE (Total Daily Energy Expenditure): Ứng dụng công thức tính tổng năng lượng tiêu thụ hàng ngày dựa trên các chỉ số nhân trắc học (chiều cao, cân nặng, độ tuổi, giới tính, cường độ vận động) để đưa ra định mức năng lượng (calories in) cần nạp, từ đó hỗ trợ gợi ý khẩu phần ăn phù hợp với mục tiêu giảm cân, giữ cân hoặc tăng cân.
Phương pháp nghiên cứu
Tác giả kết hợp phương pháp nghiên cứu thực nghiệm và phân tích hệ thống thông tin:
- Khảo sát nghiệp vụ: Khảo sát nhu cầu vận hành thực tế của nhà kinh doanh thực phẩm và hành vi tiêu dùng trực tuyến của khách hàng trên các nền tảng số.
- Phân tích và thiết kế hệ thống: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng biểu đồ ca sử dụng (Use Case Diagram), đặc tả ca sử dụng chi tiết (Use Case Specification), sơ đồ hoạt động (Activity Diagram) cho từng tiến trình nghiệp vụ, và mô hình thực thể kết hợp (ERD) cho cơ sở dữ liệu.
- Thực nghiệm kỹ thuật: Cài đặt, lập trình hệ thống bằng các công cụ chuyên dụng, kiểm thử tích hợp các module chức năng và cổng thanh toán trung gian.
Nguồn dữ liệu
Dữ liệu sử dụng trong đề tài gồm có:
- Dữ liệu định mức dinh dưỡng, thực đơn các món ăn sạch và công thức tính TDEE.
- Dữ liệu mẫu (mock data) được tạo lập tự động qua công cụ Seeding và Factory của Laravel (
DatabaseSeeder.php, hàm fake()) để phục vụ kiểm thử hệ thống.
- Cấu trúc dữ liệu danh mục món ăn hỗ trợ nhập từ tệp bảng tính Excel.
Thiết kế và triển khai hệ thống
Hệ thống Eatclean được tổ chức thành hai phân hệ chính: Phân hệ quản trị (dành cho Admin và User) và Phân hệ khách hàng (Customer).
[ Client: ReactJS SPA ] <--- Axios / JSON REST API ---> [ Server: Laravel Framework ]
- React Hooks / Redux - Routing API / Middleware
- Virtual DOM / Axios - Repository Pattern / Eloquent ORM
[ Database: MySQL Server ]
Công nghệ áp dụng
Hệ thống sử dụng các công nghệ, thư viện và giao thức sau:
| Thành phần |
Công nghệ / Thư viện |
Vai trò và đặc tả kỹ thuật |
| Front-end |
ReactJS, Redux, Axios |
Ứng dụng đơn trang (SPA), cơ chế Virtual DOM, ràng buộc dữ liệu một chiều (One-Way Binding), quản lý trạng thái tập trung qua Redux store, sử dụng React Hooks (useState, useEffect, useContext, useRef). |
| Back-end |
Laravel Framework (PHP) |
Cung cấp RESTful API, hệ thống Routing API, Middleware kiểm soát quyền truy cập, Eloquent ORM, quản lý lược đồ dữ liệu qua Migration, tích hợp Repository Pattern. |
| Cơ sở dữ liệu |
MySQL |
Hệ quản trị cơ sở dữ liệu quan hệ, xử lý truy vấn dữ liệu có cấu trúc, đảm bảo tính toàn vẹn dữ liệu. |
| Tích hợp bên thứ ba |
VNPAY Sandbox, SMTP Email |
Xử lý thanh toán trực tuyến qua cổng VNPAY có xác thực mã OTP, gửi email tự động hóa đơn đặt hàng cho khách hàng. |
Phân quyền người dùng và chức năng
Hệ thống phân định rõ quyền hạn của 3 nhóm tác nhân:
- Admin: Có toàn bộ quyền quản trị như User, đồng thời có đặc quyền quản lý tài khoản người dùng nội bộ (tạo tài khoản User, cập nhật thông tin, tìm kiếm, khóa và mở khóa tài khoản).
- User (Nhân viên quản lý):
- Quản lý combo món ăn: Thực hiện các thao tác CRUD (tạo mới, chỉnh sửa thông tin, tìm kiếm theo tên, xóa combo), cấu hình giá, số lượng món và chỉ số calories định mức.
- Quản lý món ăn trong combo: Thêm món ăn mới, phân loại combo, chỉnh sửa, xóa món ăn, tìm kiếm và đặc biệt hỗ trợ nhập dữ liệu hàng loạt từ file Excel.
- Quản lý đơn đặt hàng: Xem danh sách chi tiết đơn hàng (mã đơn, thông tin khách, giá tiền, trạng thái) và cập nhật tiến trình xử lý đơn hàng.
- Thống kê và phân tích: Bảng điều khiển (Dashboard) hiển thị tổng doanh thu, tổng số đơn hàng, số lượng thành viên mới trong ngày; trực quan hóa dữ liệu qua biểu đồ doanh thu và biểu đồ đơn hàng trong chu kỳ 12 tháng.
- Customer (Khách hàng và Thành viên):
- Đăng ký, đăng nhập tài khoản.
- Sử dụng công cụ tính toán TDEE từ chỉ số cơ thể để nhận gợi ý combo món ăn phù hợp.
- Quy trình đặt hàng 3 bước: Chọn món ăn theo quy định của combo -> Chọn khu vực nhận hàng để tính phí vận chuyển -> Nhập thông tin giao hàng và chọn phương thức thanh toán (COD hoặc VNPAY).
- Nhận hóa đơn điện tử tự động qua email sau khi thanh toán thành công.
- Quyền lợi thành viên: Quản lý hồ sơ cá nhân, xem lịch sử các đơn hàng đã đặt và quyền hủy đơn hàng khi đơn còn ở trạng thái "đơn hàng mới".
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 giới thiệu tính cấp thiết của đề tài xuất phát từ thực trạng sức khỏe cộng đồng và nhu cầu dinh dưỡng lành mạnh tại Việt Nam. Tác giả nêu rõ mục tiêu, ý nghĩa và phạm vi nghiên cứu của hệ thống Eatclean. Nội dung chương tập trung xác định chi tiết hai nhóm yêu cầu:
- Yêu cầu chức năng: Phân định ranh giới tính năng giữa Admin, User và Customer; các tiến trình tính toán chỉ số TDEE, đặt hàng, thanh toán điện tử và báo cáo phân tích.
- Yêu cầu phi chức năng: Đảm bảo tính hài hòa của giao diện người dùng (UI), độ ổn định hệ thống, hiệu suất tải trang mượt mà, tính bảo mật dữ liệu qua xác thực người dùng và mã hóa, tính tương thích trên đa nền tảng trình duyệt/thiết bị và khả năng mở rộng kiến trúc trong tương lai.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày tổng quan các kiến thức nền tảng về kiến trúc và công nghệ được áp dụng trong đồ án:
- Kiến trúc hệ thống: Phân tích chuyên sâu ưu và nhược điểm của kiến trúc Front-Back (Client-Server) và kiến trúc Microservice, làm rõ cơ chế hoạt động của API Gateway và Message Queue.
- Framework Laravel: Trình bày chi tiết cơ chế hoạt động của mô hình MVC, hệ thống Routing (Web và API), Middleware, công cụ quản lý cơ sở dữ liệu Migration (phương thức
up và down), Seeding và Factory với thư viện tạo dữ liệu giả lập fake(), Eloquent ORM và các quan hệ thực thể (One-to-One, One-to-Many, Many-to-Many), Blade template, Controller và kiến trúc Repository Pattern. Ngoài ra, chương cũng đề cập đến các tính năng bảo mật, quản lý Sessions và gửi Email tích hợp sẵn trong Laravel.
- Thư viện ReactJS: Giải thích nguyên lý Single Page Application (SPA), cấu trúc Component, cơ chế truyền dữ liệu qua Props và State, Virtual DOM so với DOM truyền thống, luồng dữ liệu một chiều (One-Way Binding), các React Hook phổ biến (
useState, useEffect, useContext, useRef), thư viện quản lý trạng thái Redux (với các nguyên tắc State is Read-Only, Single Source of Truth, Unidirectional Data Flow), và so sánh hai phương thức giao tiếp API là Axios và Fetch.
- Hệ quản trị cơ sở dữ liệu MySQL: Trình bày các đặc tính về truy vấn SQL, độ tin cậy, sao lưu phục hồi dữ liệu, khả năng hoạt động đa nền tảng và hiệu năng xử lý.
Chương 3: Phân tích và thiết kế
Chương 3 là phần trọng tâm về kỹ thuật, mô tả chi tiết quy trình hoạt động toàn hệ thống và đặc tả yêu cầu bằng các mô hình chuẩn:
- Quy trình hoạt động: Chuỗi tiến trình khép kín từ khâu quản trị danh mục của Admin/User, tiếp cận của Customer qua công cụ TDEE, đến quy trình đặt hàng 3 bước và xử lý hậu mãi qua email.
- Hệ thống Use Case và đặc tả: Tác giả xây dựng 8 sơ đồ use case cùng 8 bảng đặc tả chi tiết tương ứng gồm:
- Use case quản lý tài khoản người dùng (Admin)
- Use case quản lý combo món ăn (User)
- Use case quản lý món ăn trong combo (User)
- Use case quản lý đơn đặt hàng (User)
- Use case thống kê, phân tích doanh thu và đơn hàng (User)
- Use case tính toán chỉ số TDEE (Customer)
- Use case đặt hàng (Customer)
- Use case thành viên (Customer)
- Mỗi use case được đặc tả cụ thể qua các mục: Tác nhân (Actor), Tóm tắt (Summary), Luồng sự kiện chính (Basic Course of Events bao gồm hành động của Actor và phản hồi của Hệ thống), Tác nhân kích hoạt (Triggers), Giả định (Assumptions), Điều kiện tiên quyết (Pre-conditions) và Điều kiện sau thực hiện (Post-conditions).
- Mô hình hóa động và dữ liệu: Trình bày các sơ đồ hoạt động (Activity Diagram) cho từng ca sử dụng và hoàn thiện mô hình thực thể kết hợp (ERD) với cấu trúc các bảng dữ liệu liên kết trong MySQL.
Chương 4: Triển khai hệ thống
Chương 4 thuyết minh kết quả xây dựng ứng dụng thông qua hệ thống giao diện thực tế và kịch bản vận hành chi tiết:
- Giao diện trang quản trị: Triển khai các màn hình quản lý tài khoản (danh sách, modal thêm mới, chỉnh sửa, khóa/mở khóa tài khoản), quản lý combo (danh sách combo, modal tạo mới/sửa combo, cảnh báo xóa), quản lý món ăn (giao diện thêm món, biểu mẫu và kết quả sau khi import file Excel), quản lý đơn hàng (danh sách, xem chi tiết và modal cập nhật trạng thái đơn hàng).
- Trang thống kê Dashboard: Hiển thị các khối dữ liệu tổng quan trong ngày và biểu đồ đường/cột thể hiện biến động doanh thu và tổng số lượng đơn hàng qua 12 tháng.
- Giao diện trang khách hàng: Triển khai công cụ tính chỉ số TDEE, hiển thị lượng calories khuyến nghị và danh mục combo tương ứng; giao diện chi tiết combo cho phép chọn từng món ăn theo số lượng quy định; giao diện chọn khu vực giao hàng và tính toán tổng tiền; màn hình thanh toán trực tiếp (COD) và tích hợp cổng thanh toán trực tuyến VNPAY (màn hình chuyển hướng VNPAY, nhập mã OTP và thông báo thành công); giao diện email xác nhận đơn hàng gửi về hòm thư khách hàng; trang hồ sơ cá nhân và trang lịch sử đơn hàng với tính năng xác nhận hủy đơn hàng mới.
- Đánh giá hệ thống: Kiểm tra mức độ đáp ứng của hệ thống so với các yêu cầu chức năng và phi chức năng đã đề ra ban đầu.
Chương 5: Kết luận và hướng phát triển
Chương 5 đúc kết các kết quả đạt được sau quá trình thực hiện đồ án và đề xuất các định hướng nâng cấp, phát triển hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả chính đạt được
Dựa trên các nội dung và minh chứng thực tế trong văn bản đồ án, các kết quả cụ thể bao gồm:
- Xây dựng hoàn chỉnh website thương mại điện tử Eatclean hoạt động theo mô hình Front-Back, phân tách rõ ràng giữa giao diện ReactJS và API máy chủ Laravel.
- Hiện thực hóa thành công công cụ tính toán chỉ số TDEE, giúp người dùng xác định năng lượng tiêu thụ hàng ngày và tự động gợi ý gói ăn (combo) phù hợp với mục tiêu thể chất cá nhân.
- Hoàn thiện quy trình đặt hàng trực tuyến 3 bước khép kín, cho phép tùy biến lựa chọn các món ăn đơn lẻ trong một combo theo định mức quy định, tự động tính phí vận chuyển theo từng khu vực địa lý cụ thể.
- Tích hợp thành công hai phương thức thanh toán: thanh toán khi nhận hàng (COD) và thanh toán trực tuyến qua cổng VNPAY có bảo mật mã xác thực OTP.
- Xây dựng hệ thống thông báo hóa đơn tự động qua email và cung cấp tính năng quản lý lịch sử đơn hàng, hỗ trợ thành viên hủy đơn hàng khi đơn chưa chuyển sang trạng thái xử lý.
- Thiết lập bảng điều khiển quản trị (Dashboard) hoàn chỉnh với khả năng trực quan hóa số liệu doanh thu và số lượng đơn hàng liên tục trong chu kỳ 12 tháng.
- Tối ưu hóa nghiệp vụ quản lý thực đơn thông qua tính năng nhập dữ liệu món ăn hàng loạt bằng tệp Excel.
Đóng góp về mặt giải pháp và kỹ thuật
- Đóng góp kỹ thuật: Áp dụng mô hình thiết kế Repository Pattern trong framework Laravel, giúp cấu trúc mã nguồn máy chủ có tính phân tầng rõ rệt, giảm sự phụ thuộc trực tiếp giữa Controller và Eloquent Model, nâng cao tính mô-đun hóa và khả năng bảo trì.
- Đóng góp thực tiễn: Số hóa mô hình kinh doanh ẩm thực sạch theo hướng cá nhân hóa, kết hợp giữa thương mại điện tử truyền thống và tư vấn sức khỏe chủ động thông qua công cụ TDEE, tạo giải pháp quản lý bán hàng và tiếp thị hiệu quả cho nhà kinh doanh thực phẩm dinh dưỡng.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
Căn cứ vào phạm vi và nội dung trình bày trong đồ án, hệ thống còn một số điểm giới hạn:
- Hệ thống mới được triển khai và thử nghiệm ở quy mô đồ án tốt nghiệp với dữ liệu giả lập (qua Factory/Seeder) và môi trường thử nghiệm thanh toán (VNPAY Sandbox), chưa qua kiểm thử tải cao với lượng truy cập đồng thời lớn trong môi trường kinh doanh thực tế.
- Tính năng tính TDEE và gợi ý khẩu phần dừng lại ở mức tính toán công thức cố định và gợi ý combo theo mức calo định sẵn, chưa thể cá nhân hóa sâu theo từng bệnh lý nền cụ thể hoặc tiền sử dị ứng thực phẩm của người dùng.
- Hệ thống mới dừng lại ở nền tảng web application, chưa có ứng dụng di động độc lập (native app) trên iOS và Android.
Hướng phát triển tiếp
Đồ án chỉ ra các hướng mở rộng kỹ thuật cần tập trung nghiên cứu:
- Tối ưu hóa hiệu năng hệ thống Back-end và cơ sở dữ liệu để đáp ứng lưu lượng truy cập lớn khi triển khai thực tế.
- Mở rộng tích hợp thêm các cổng thanh toán điện tử và ví điện tử phổ biến khác ngoài VNPAY.
- Phát triển ứng dụng trên thiết bị di động (Mobile App) nhằm gia tăng tiện ích và khả năng tiếp cận khách hàng.
- Nâng cấp thuật toán gợi ý thực đơn, nghiên cứu tích hợp trí tuệ nhân tạo để phân tích sâu hơn về sở thích ẩm thực và tình trạng sức khỏe cá nhân của từng khách hàng.
Giá trị tham khảo
Báo cáo đồ án tốt nghiệp này mang lại giá trị tham khảo kỹ thuật và nghiệp vụ đối với các đối tượng cụ thể:
- Sinh viên ngành Công nghệ Kỹ thuật Máy tính, Công nghệ Thông tin, Kỹ thuật Phần mềm: Là tài liệu tham khảo thực tế về cách tổ chức và trình bày một đồ án tốt nghiệp phát triển phần mềm; từ khâu xác định yêu cầu, khảo sát kiến trúc, viết tài liệu đặc tả ca sử dụng (Use Case Specification), thiết kế mô hình dữ liệu (ERD) đến lập trình triển khai.
- Lập trình viên Full-stack (ReactJS - Laravel): Tài liệu cung cấp cách thức tích hợp giữa ReactJS (SPA, Hooks, Redux, Axios) với Laravel RESTful API; minh họa phương pháp triển khai Repository Pattern trong Laravel nhằm chuẩn hóa kiến trúc mã nguồn.
- Nhà phát triển hệ thống thương mại điện tử chuyên biệt: Tham khảo quy trình tích hợp cổng thanh toán trực tuyến VNPAY (xác thực OTP), cơ chế nhập liệu hàng loạt bằng file Excel và giải pháp xây dựng tính năng cá nhân hóa dịch vụ (công cụ tính TDEE kết hợp thực đơn combo).
Câu hỏi thường gặp
1. Hệ thống Eatclean phân định quyền hạn giữa tài khoản Admin và tài khoản User như thế nào?
Tài khoản User đảm nhiệm các chức năng vận hành thường nhật gồm: quản lý combo món ăn, quản lý món ăn trong combo (kể cả import Excel), quản lý và cập nhật trạng thái đơn đặt hàng, và xem các chỉ số thống kê, biểu đồ phân tích trên Dashboard. Tài khoản Admin sở hữu toàn bộ các quyền năng của User, đồng thời nắm giữ độc quyền chức năng quản lý tài khoản người dùng (tạo tài khoản User mới, chỉnh sửa thông tin, tìm kiếm, khóa hoặc mở khóa tài khoản của User).
2. Quy trình đặt hàng của khách hàng trên hệ thống gồm những bước cụ thể nào?
Quy trình đặt hàng gồm 3 bước:
- Bước 1 (Chọn món ăn): Khách hàng chọn một combo phù hợp và tùy chọn các món ăn đơn lẻ nằm trong combo đó, miễn là bảo đảm đủ số lượng món mà combo đã quy định.
- Bước 2 (Chọn khu vực giao hàng): Khách hàng chọn địa bàn nhận hàng để hệ thống tính toán phí vận chuyển và cập nhật giá trị tổng đơn hàng tạm tính.
- Bước 3 (Nhập thông tin và thanh toán): Khách hàng điền thông tin giao hàng và lựa chọn phương thức thanh toán bằng tiền mặt khi nhận hàng (COD) hoặc thanh toán trực tuyến qua cổng VNPAY. Sau khi thanh toán thành công, hệ thống sẽ tự động gửi email hóa đơn chi tiết về địa chỉ thư điện tử của khách hàng.
3. Tác giả áp dụng mô hình thiết kế (Design Pattern) nào cho phần Back-end Laravel và nhằm mục đích gì?
Tác giả áp dụng Repository Pattern. Đây là mẫu thiết kế sử dụng lớp trung gian (Repository) đóng vai trò cầu nối giữa Controller và Model. Controller sẽ gọi các phương thức thông qua Repository thay vì truy vấn trực tiếp vào Model, giúp tái sử dụng mã nguồn, dễ dàng kiểm thử độc lập mà không cần kết nối cơ sở dữ liệu thực tế, giảm sự phụ thuộc của Controller vào cơ sở dữ liệu và xử lý gọn gàng các logic truy vấn phức tạp.
4. Chức năng tính toán chỉ số TDEE hoạt động như thế nào và đem lại tiện ích gì cho khách hàng?
Khách hàng nhập các chỉ số cơ thể (nhân trắc học) vào biểu mẫu trên hệ thống. Hệ thống sẽ tính toán chỉ số TDEE (tổng năng lượng tiêu thụ trong ngày) để xác định lượng calories cần nạp mỗi ngày phù hợp với mục tiêu tăng cân, giữ cân hoặc giảm cân. Dựa trên kết quả đó, hệ thống sẽ tự động đưa ra các gợi ý combo món ăn có định mức calories phù hợp, giúp khách hàng tiết kiệm thời gian lựa chọn thực đơn lành mạnh.
5. Khách hàng là thành viên có những quyền hạn bổ sung nào so với khách vãng lai?
Khách hàng có tài khoản thành viên được cung cấp trang hồ sơ cá nhân để quản lý và chỉnh sửa thông tin, có trang theo dõi lịch sử đơn đặt hàng (bao gồm đơn hàng hiện tại và các đơn hàng trong quá khứ), đồng thời có quyền tự hủy đơn hàng trực tiếp trên hệ thống với điều kiện đơn hàng đó vẫn đang ở trạng thái "đơn hàng mới".
Kết luận
Đồ án tốt nghiệp "Thiết kế hệ thống Eatclean sử dụng công nghệ ReactJS và Laravel" của tác giả Cao Nhật Khang đã giải quyết thành công bài toán xây dựng nền tảng thương mại điện tử chuyên biệt cho lĩnh vực thực phẩm dinh dưỡng lành mạnh. Thông qua việc kết hợp thư viện ReactJS ở tầng giao diện và framework Laravel áp dụng Repository Pattern ở tầng máy chủ, hệ thống đảm bảo tính toàn vẹn trong quy trình vận hành từ khâu quản trị danh mục, nhập liệu Excel, thanh toán VNPAY đến phân tích báo cáo doanh thu 12 tháng. Điểm nổi bật mang tính thực tiễn của công trình là việc tích hợp công cụ tính toán TDEE hỗ trợ người tiêu dùng cá nhân hóa khẩu phần ăn, mang lại tài liệu tham khảo có giá trị cao cho sinh viên và lập trình viên phát triển các ứng dụng web hướng dịch vụ sức khỏe.