User bao gồm các chức năng về quản lý như quản lý combo, quản lý món ăn trong combo, quản lý đơn hàng, thu thập và phân tích dữ liệu.. Một yếu tố quan trọng của hệ thống Eatclean là khả
TỔNG QUAN
Giới thiệu đề tài
Trong xã hội ngày nay, tình trạng sức khỏe của con người luôn được xem là một vấn đề cốt lõi mà chúng ta cần quan tâm và coi trọng hàng đầu Với tốc độ phát triển không ngừng nghỉ của công nghệ và kỹ thuật, cuộc sống hiện đại đã mang lại nhiều tiện nghi và tiện ích cho mỗi người chúng ta Tuy nhiên, điều này cũng đi kèm với những tác động xấu đến sức khỏe Chúng ta thường xem nhẹ tầm quan trọng của sức khỏe cho đến khi có những vấn về cơ thể Áp lực từ công việc, cuộc sống bận rộn và những yêu cầu ngày càng cao đã khiến cho đại đa số chúng ta bỏ qua việc chăm sóc sức khỏe và không quan tâm đến chế độ dinh dưỡng Số lượng người mắc những căn bệnh liên quan đến việc ăn uống thiếu khoa học như suy dinh dưỡng, thừa cân béo phì, suy nhược cơ thể ngày một tăng Có nhiều bệnh lý không chỉ ảnh hưởng trực tiếp đến sức khỏe của một người, mà còn có thể ảnh hưởng đến các thế hệ sau này
Với mục tiêu nâng cao chất lượng cuộc sống, giữ gìn sức khỏe và rèn luyện ngoại hình tốt từ bên trong, việc chăm sóc bản thân và cung cấp đầy đủ dinh dưỡng từ mỗi bữa ăn trở thành yếu tố quan trọng hàng đầu Nhận thức về nhu cầu thiết yếu này của đa số người tiêu dùng ngày nay, website Eatclean ra đời như một hệ thống chuyên cung cấp dịch vụ thực phẩm sạch và lành mạnh, giúp mọi người tiếp cận các món ăn đa dạng được chuẩn bị sẵn Các món ăn này không chỉ vừa ngon miệng, mà còn đươc thiết kế để đảm bảo cung cấp đầy đủ chất dinh dưỡng giúp cho người dùng không cần mất nhiều thời gian để nấu nướng
Eatclean không chỉ đơn thuần là một trang web, mà còn là một nền tảng phát triển dựa trên nhu cầu sức khỏe của khách hàng Eatclean tận dụng các hệ thống công nghệ hiện đại để mang lại trải nghiệm tốt nhất cho khách hàng Với một giao diện thân thiện và dễ sử dụng, Eatclean tạo điều kiện cho người dùng dễ dàng tìm hiểu và tham gia vào việc xây dựng một chế độ ăn lành mạnh phù hợp với nhu cầu cá nhân của mỗi người Bằng cách cung cấp cho người dùng công cụ tính toán TDEE TDEE là tổng năng lượng mà cơ thể tiêu thụ trong một ngày, bao gồm năng lượng cần thiết để duy trì các hoạt động hàng ngày, quá trình trao đổi chất và vận động từ đó giúp cho người dùng có thể điều chỉnh chế độ ăn một cách phù hợp Ngoài ra, Eatlean còn cung cấp một loạt các tùy chọn thực đơn và gói ăn phù hợp Các món ăn được lựa chọn, tính toán kỹ càng và đáp ứng độ tươi ngon, đảm bảo rằng chúng cung cấp đủ lượng đạm, tinh bột, chất béo, vitamin và khoáng chất cần thiết để duy trì sức khỏe một cách an toàn và khoa học
Hệ thống Eatclean tận dụng các công nghệ phổ biến như ReactJS và Laravel để đảm bảo hiệu suất cao và trải nghiệm người dùng được tốt nhất Với việc sử dụng một thư viện Front-end là ReactJS, hệ thống đem lại khả năng tương tác cao, giúp trang web phản hồi nhanh chóng Bên cạnh đó, việc sử dụng thêm framework Back- end Laravel giúp hệ thống có khả năng xử lý dữ liệu từ đơn giản đến phức tạp, quản lý tài nguyên và an toàn về bảo mật cũng như khả năng xử lý lỗi.
Mục tiêu nghiên cứu
Khảo sát nhu cầu và ý tưởng của nhà kinh doanh về thực các món ăn sạch để tiếp cận khách hàng thông qua các phương tiện truyền thông đại chúng Tập trung vào việc hiểu rõ nhu cầu và mong muốn của nhà kinh doanh bao gồm việc tìm hiểu các yếu tố quan trọng mà khách hàng đang tìm kiếm trong dịch vụ thực phẩm sạch
Chọn ra các thao tác có thể chuyển đổi thành các tính năng trên hệ thống website để giúp cho công việc quản lý và vận hành trở nên đơn giản và tối ưu hơn
Nghiên cứu, tìm hiểu và chọn ra các kiến trúc và công nghệ phù hợp để xây dựng nên hệ thống ứng dụ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ợ người kinh doanh và khách hàng sử dụng hiệu quả.
Ý nghĩa đề tài
Xây dựng và phát triển hệ thống Eatclean mang ý nghĩa vô cùng quan trọng và hữu ích cho nhà kinh doanh Đầu tiên, nó giúp tối ưu hóa hoạt động mua bán, tạo điều kiện thuận lợi và tiện lợi cho việc giao dịch và giao hàng đối với khách hàng Việc áp dụng công nghệ thông tin vào hoạt động kinh doanh giúp tiết kiệm thời gian và công sức, từ đó gia tăng hiệu quả và lợi nhuận
Một ý nghĩa quan trọng khác của dự án này là tích hợp và phân tích dữ liệu khách hàng Hệ thống sẽ thu thập thông tin về hành vi tiêu dùng của khách hàng, từ đó giúp nhà kinh doanh hiểu rõ hơn về nhu cầu và sở thích của khách hàng Phân tích dữ liệu này sẽ cung cấp những giá trị, giúp người kinh doanh đưa ra chiến lược kinh doanh phù hợp và tối ưu hóa các quyết định về sản phẩm, tiếp thị và phân phối Bên cạnh đó, việc xây dựng hệ thống Eatclean cũng hỗ trợ phủ sóng thông điệp "Ăn sạch - Ăn khoẻ" của người kinh doanh tới khách hàng Nhờ sự tiện lợi và dễ dàng tiếp cận thông qua website, người kinh doanh có thể tăng cường thông điệp về lợi ích của việc ăn uống lành mạnh và chất lượng cao Điều này góp phần thúc đẩy ý thức về sức khỏe và tạo ra sự lan tỏa của phong cách sống Eatclean trong cộng đồng.
Phạm vi nghiên cứu
3 Ở đề tài này, sẽ triển khai xây dựng hoàn tất một hệ thống website sử dụng công nghệ ReactJS, nằm tạo ra trải nghiệm tốt nhất cho người dùng của hệ thống Eatclean Để xử lý thao tác quản lý và vận hành hệ thống Eatclean, sẽ sử dụng các quy trình đã được khảo sát và xây dựng API server, cung cấp các xử lý cho người dùng trên website bằng công nghệ Laravel
Hệ thống sẽ giải quyết các vấn đề trong việc quản lý và vận hành một nhà hàng như quản lý các combo, món ăn Qua đó, Eatclean dễ dàng cập nhật và đưa ra những món ăn, combo hấp dẫn và phù hợp đến với khách hàng
Ngoài việc quản lý menu, hệ thống cũng sẽ giải quyết các vấn đề về đặt hàng, cập nhật đơn đặt hàng Một yếu tố quan trọng của hệ thống Eatclean là khả năng thống kê và phân tích các dữ liệu từ đó nhìn nhận được xu hướng tiêu dùng và nắm bắt sở thích của khách hàng từ đó định hình được chiến lược kinh doanh
Ngoài ra, Eatclean còn mang lại lợi ích cho khách hàng bằng cách cung cấp một giao diện thân thiện và dễ sử dụng Khách hàng có thể chọn ra được những combo phù hợp với cơ thể một cách nhanh chóng và dễ dàng giúp tiết kiện một khoảng thời gian.
Phương pháp nghiên cứu
Dùng phương pháp nghiên cứu thông qua việc khảo sát từ người kinh doanh và khách hàng để kết hợp tạo nên hệ thống website dễ dàng tiếp cận và tạo hiệu quả tối đa khi sử dụng
Hành vi tiêu dùng thực tế của khách hàng sẽ thể hiện qua việc tìm kiếm, hành vi mua các sản phẩm bằng các trang mạng xã hội hay thương mại, đây là một nguồn dữ liệu lớn để người kinh doanh có thể đặt ra định hưởng xây dựng và phát triển website để tiếp cận đến khách hàng một cách tối ưu
Nghiên cứu các kiến trúc và công nghệ phù hợp để áp dụng Thiết kế, xây dựng ứng dụng, triển khai và cài đặt ứng dụng hệ thống API server
Trong hệ thống website này sẽ chủ yếu bao gồm bao gồm 3 đối tượng Admin, User và Customer cùng với các tính năng:
- Thống kê và phân tích dữ liệu
+ Thành viên mới đăng ký
+ Biểu đồ phân tích doanh thu và số lượng đơn hàng trong 12 tháng
+ Chỉnh sửa thông tin combo
+ Tìm kiếm thông tin combo
- Quản lý món ăn trong combo
+ Thêm món ăn vào trong combo
+ Chỉnh sửa thông tin món ăn
- Quản lý đơn đặt hàng
+ Xem chi tiết đơn đặt hàng
+ Cập nhật trạng thái đơn đặt hàng
Admin: tương tự như User và có thêm chức năng quản lý User:
- Chỉnh sửa thông tin tài khoản User
- Khóa và mở khóa tài khoản User
- Đăng ký và đăng nhập thành viên
- Tính toán chỉ số TDEE
- Đặt hàng chọn món ăn và chọn khu vực giao hàng
- Thanh toán bằng tiền mặt hoặc qua cổng thanh toán trực tuyến VNPAY
- Gửi email đơn hàng sau khi đã đặt hàng và thanh toán thành công
- Thành viên (xem và chỉnh sửa một số thông tin cá nhân, xem lịch sử đơn đặt hàng và hủy đơn hàng khi đơn hàng ở trạng thái đơn hàng mới)
1.7 Yêu cầu phi chức năng
Giao diện người dùng cần phải hài hòa, các thành phần, màu sắc và hình ảnh được sử dụng hợp lý nhằm thu hút người dùng sử dụng trang web
Hệ thống ổn định và tối ưu giúp người dùng có một trải nghiệm mượt mà, không gặp sự cố nào đó khi sử dụng Đồng thời phải tối ưu hiệu suất để trang web có thể tải trang nhanh
Trang web cần được thiết kế và phát triển để có khả năng mở rộng trong tương lai Nhu cầu con người ngày càng tăng vì vậy điều này giúp cho trang web có thể tích hợp tính năng một cách dễ dàng
Dễ sử dụng và trải nghiệm người dùng tốt Giao diện người dùng phải thiết kế rõ ràng, dễ hiểu và sắp xếp logic một cách đơn giản và hợp lý Đồng thời, đảm bảo được trang web có thể tương thích tốt trên các thiết bị và trình duyệt khác nhau
Cuối cùng là về tính bảo mật và an ninh thông tin cho người dùng Các biện pháp bảo mật giúp cho người dùng tránh được việc bị đánh cắp dữ liệu, các mối đe dọa bên ngoài Bao gồm việc sử dụng mã hóa dữ liệu, xác thực người dùng, …
Chương 1: Giới thiệu tổng quan
- Yêu cầu phi chức năng
Chương 2: Tìm hiểu cơ sở lý thuyết
- Tìm hiểu về các kiến trúc hệ thống
- Tìm hiểu về các công nghệ phù hợp để sử dụng trong việc xây dựng ứng dụng
Chương 3: Thiết kế hệ thống
- Phân tích hệ thống và đưa ra đặc tả cho ứng dụng
- Đưa ra sự đồ hoạt động của từng chức năng
Chương 4: Triển khai ứng dụng
- Hướng dẫn sử dụng ứng dụng
Chương 5: Đưa ra kết luận và hướng phát triển của hệ thống
Cấu trúc đồ án
Chương 1: Giới thiệu tổng quan
- Yêu cầu phi chức năng
Chương 2: Tìm hiểu cơ sở lý thuyết
- Tìm hiểu về các kiến trúc hệ thống
- Tìm hiểu về các công nghệ phù hợp để sử dụng trong việc xây dựng ứng dụng
Chương 3: Thiết kế hệ thống
- Phân tích hệ thống và đưa ra đặc tả cho ứng dụng
- Đưa ra sự đồ hoạt động của từng chức năng
Chương 4: Triển khai ứng dụng
- Hướng dẫn sử dụng ứng dụng
Chương 5: Đưa ra kết luận và hướng phát triển của hệ thống
CƠ SỞ LÝ THUYẾT
Kiến trúc hệ thống
Kiến trúc hệ thống là một phần quan trọng không thể thiếu trong thiết kế phần mềm Nó cung cấp một cái nhìn tổng quan về việc phát triển và quản lý một dự án phần mềm Kiến trúc hệ thống bao gồm các thành phần chính sau:
- Các thành phần cấu tạo hệ thống: Bao gồm ngôn ngữ lập trình, framework và thư viện được sử dụng trong quá trình phát triển hệ thống
- Luồng dữ liệu và quy trình: Xác định cách dữ liệu được xử lý, lưu trữ và truyền tải trong hệ thống Điều này bao gồm phân tích quy trình làm việc hiện tại và thiết kế quy trình mới để đạt được mục tiêu kinh doanh
- Ước tính số lượng người dùng, chi phí phát triển và duy trì hệ thống: Đánh giá và ước tính số lượng người dùng dự kiến sử dụng hệ thống, đồng thời xác định chi phí phát triển và duy trì hệ thống trong quá trình vận hành
Kiến trúc Front-Back [3] (còn được gọi là kiến trúc Client-Server) là một kiểu kiến trúc quan trọng và phổ biến trong thiết kế hệ thống website Theo kiến trúc này, ứng dụng được chia thành hai phần độc lập bao gồm:
- Front-end: Đây là phần giao diện người dùng, được sử dụng để hiển thị nội dung và tương tác với người dùng Front-end thường được xây dựng bằng các ngôn ngữ và công nghệ HTML, CSS, JavaScript, thư viện ReactJS và các framework như VueJS, Angular Front-end cung cấp giao diện người dùng tương tác và có khả năng đáp ứng trên các thiết bị di động với kích thước màn hình khác nhau, giúp cung cấp trải nghiệm tốt cho người dùng
- Back-end: Đây là phần xử lý logic, truy xuất và lưu trữ dữ liệu cho Front- end Back-end thường được xây dựng bằng các ngôn ngữ và framework như PHP, Laravel, Nodejs, Python, Ruby, và sử dụng một số cơ sở dữ liệu để lưu trữ thông tin dữ liệu Ngoài ra, phần Back-end cũng có trách nhiệm bảo mật dữ liệu và đảm bảo an toàn cho hệ thống khỏi các cuộc tấn công từ bên ngoài Ưu điểm:
- Kiến trúc Front-Back giúp tách biệt phần giao diện và xử lý logic của hệ thống, giúp việc phát triển và bảo trì trở nên dễ dàng hơn
- Cung cấp khả năng mở rộng và mô-đun hóa ứng dụng, đồng thời tăng tính bảo mật và khả năng phát triển độc lập giữa các thành viên phát triển 1 dự án
- Không phù hợp để xử lý tải quá lớn, gặp khó khăn trong việc phát triển đối với các dự án lớn
Kiến trúc Microservice là kiến trúc trong đó hệ thống Back-end được phân tách thành nhiều service nhỏ, mỗi service đảm nhận một hoặc một nhóm các chức năng theo từng module cụ thể
Ví dụ trong một trang web bán hàng, nó có thể có các module như sản phẩm, khách hàng, đơn hàng Và mỗi module này có thể được tách thành một dự án riêng biệt, được gọi là microservice Các microservice trong kiến trúc microservice là độc lập với nhau, có thể sử dụng kiến trúc và công nghệ khác nhau, thậm chí có thể sử dụng cơ sở dữ liệu riêng biệt
Các microservice trong kiến trúc microservice liên kết với nhau thông qua một thành phần gọi là API gateway hoặc message queue
API gateway là một điểm cuối (endpoint) đơn nhất mà các client có thể giao tiếp để truy cập vào các microservice Nó đảm bảo sự liên lạc giữa các microservice và cung cấp một giao diện đơn giản cho client giao tiếp với toàn bộ hệ thống
Message queue là một hệ thống phân phối thông điệp cho phép các microservice gửi và nhận thông điệp qua một hàng đợi, đảm bảo tính đồng bộ và truyền thông hiệu quả giữa các microservice Ưu điểm:
- Áp dụng nhiều công nghệ tùy theo nhu cầu mỗi chức năng Hệ thống website có thể tận dụng tối đa các công nghệ mới nhất
- Dễ dàng mở rộng hệ thống
- Linh hoạt triển khai các microservice đáp ứng tốt với tải hệ thống và tối ưu hóa hiệu năng
- Triển khai và quản lý kiến trúc microservice đòi hỏi nhân sự có kiến thức chuyên sâu về kiến trúc hệ thống
- Hệ thống có tính phức tạp cao Các microservice phải liên kết với nhau vì vậy mà xử lý lỗi phức tạp hơn các kiến trúc hệ thống khác
- Xây dựng và thiết kế hệ thống microservice đòi hỏi sự hiểu biết rõ ràng về các module và tương tác giữa chúng Đòi hỏi kỹ năng thiết kế cao.
Các công nghệ áp dụng
Laravel là một web Back-end framework [4] được viết bằng ngôn ngữ PHP Cung cấp các tính năng phát triển như quản lý định tuyến, quản lý cơ sở dữ liệu, xác
8 thực người dùng So với các ngôn ngữ Back-end khác, Laravel có cấu trúc an toàn, dễ sử dụng, dễ bảo trì và hiệu suất cao
Một số đặc điểm của Laravel:
- Routing: Laravel có hệ thống routing mạnh mẽ, hỗ trợ các loại HTTP request như GET, POST, PUT, DELETE, …
- Hệ thống middleware: giúp cho các người phát triển hệ thống xử lý các yêu cầu trước khi qua xử lý bởi ứng dụng Đồng thời xử lý dữ liệu, xác thực người dùng và kiểm tra quyền truy cập.
- Sử dụng mô hình MVC (Model-View-Controller): phân chia ứng dụng thành các phần độc lập để dễ bảo trì và phát triển.
- Hỗ trợ unit test: kiểm thử các đoạn code từ đó dễ dàng phát hiện lỗi trước khi đưa ra thị trường sử dụng. Để hiểu hơn về cách thức hoạt động của Laravel Các tính năng của Laravel được mô tả như sau:
Trong Laravel, Migration là một công cụ mạnh mẽ giúp quản lý dữ liệu và bảng trong cơ sở dữ liệu một cách dễ dàng
Thay vì tạo dữ liệu trên cơ sở dữ liệu một cách thủ công và sử dụng Query Builder để quản lý Laravel còn cung cấp phương pháp Migration để tạo, chỉnh sửa và xóa cấu trúc của cơ sở dữ liệu Ở mỗi Migration sẽ bao gồm hai phương thức chính là up và down Trong phương thức up, người dùng có thể thêm bảng, cột và các thay đổi cấu trúc cơ sở dữ liệu Ngược lại, phương thức down được sử dụng để thực hiện rollback, tức là hoàn tác các thay đổi được thực hiện bởi phương thức up
Trước khi sử dụng Migration, người dùng cần cấu hình thông tin kết nối cơ sở dữ liệu trong file env sử dụng khi đang phát triển trên localhost và file /config/database.php (sử dụng khi triển khai trên môi trường sản phẩm)
Migration giúp cho việc quản lý cơ sở dữ liệu trở nên dễ dàng và linh hoạt hơn Người dùng có thể theo dõi và kiểm soát các thay đổi cấu trúc cơ sở dữ liệu theo
9 thời gian, đồng thời cho phép đồng bộ hóa cấu trúc giữa các môi trường khác nhau của hệ thống ứng dụng Đây là một cách tốt để quản lý cơ sở dữ liệu trong Laravel Dễ dàng chuyển đổi các cấu trúc bảng sang một version mới chẳng hạn Ngoài ra, Migration đảm bảo tính nhất quán và dễ dàng triển khai với các thay đổi cấu trúc
Seeding và Factory là hai công cụ quan trọng trong Laravel được người dùng sử dụng để tạo dữ liệu mẫu và dữ liệu giả trong quá trình phát triển và kiểm thử hệ thống website Chúng giúp đảm bảo tính chính xác và hiệu suất của hệ thống, đồng thời tiết kiệm thời gian so với việc tạo dữ liệu bằm thủ công
Seeding cho phép người dùng tạo dữ liệu mẫu trong cơ sở dữ liệu Để tạo một file seeding, người dùng có thể sử dụng câu lệnh sau: php artisan make:seeder SeederName
Trong đó, “SeederName” là tên của file seeding mà người dùng muốn tạo Sau khi thực hiện câu lệnh, Laravel sẽ tạo một file seeding mới trong thư mục database/seeders của dự án
File gốc của seeding là DatabaseSeeder.php, người dùng có thể tạo nhiều file seeding khác nhau nhưng phải gọi chúng trong hàm run() của file DatabaseSeeder.php Để tiến hành chạy tất cả các file được gọi trong DatabaseSeeder.php và tạo dữ liệu, người dùng sử dụng câu lệnh: php artisan db:seed
Trong những trường hợp cần tạo một lượng lớn dữ liệu giả, seeding trở nên không hiệu quả Thay vào đó, Laravel cung cấp Factory để người dùng có thể tạo số lượng lớn dữ liệu giả một cách dễ dàng Để tạo một file Factory, người dùng có thể sử dụng câu lệnh: php artisan make:factory FactoryName
Trong đó, “FactoryName” là tên của file factory mà người dùng muốn tạo Sau khi thực hiện câu lệnh, Laravel sẽ tạo mộ file factory mới trong thư mục database/factories của dự án
Laravel còn cung cấp các hàm như fake() giúp người dùng tạo dữ liệu giả với các định dạng phổ biến như số điện thoại, công ty, màu sắc, số ngẫu nhiên, email, tên người dùng, mật khẩu, địa chỉ, Sau khi tạo file Factory, người dùng có thể gọi nó trong hàm run() của file seeding để chạy
Sử dụng Seeding hay Factory trong Laravel đều giúp người dùng dễ dàng tạo dữ liệu mẫu và dữ liệu giả, đồng thời giúp kiểm thử và phát triển ứng dụng một cách
PHÂN TÍCH VÀ THIẾT KẾ
Quy trình hoạt động
Hệ thống website Eatclean cung cấp một tài khoản Admin cho nhà kinh doanh, giúp họ quản lý các tài khoản User Với tài khoản Admin, nhà kinh doanh có quyền tạo mới, chỉnh sửa và khóa tài khoản và thực hiện các chức năng tương tự User
Các tài khoản User có thể đăng nhập vào hệ thống để sử dụng các dịch vụ liên quan đến quản lý combo, quản lý món ăn trong combo, quản lý đơn hàng và xem các thống kê liên quan và phân tích Các chức năng User bao gồm quản lý combo, quản lý món ăn trong combo, quản lý đơn đặt hàng, các thống kê liên quan đến đơn hàng như số lượng đơn hàng, doanh thu, phân tích doanh thu và đơn hàng theo mỗi tháng
Sau khi hệ thống đã có một quy trình quản lý chặt chẽ, website sẽ được đưa đến tay Customer Customer có thể sử dụng tính năng tính TDEE để tính toán lượng calories in để biết cơ thể cần nạp những chất dinh dưỡng như thế nào, từ đó dễ dàng đạt được mục tiêu của mình, bất kể là tăng cân, giữ cân hoặc giảm cân
Sau khi có thông tin về các chỉ số của mình, Customer có thể xem và lựa chọn các combo phù hợp với nhu cầu cá nhân Quá trình đặt hàng và thanh toán được thực hiện dễ dàng qua ba bước:
Bước 1: Chọn món ăn trong combo
- Customer lựa chọn số lượng các món ăn quy định trong combo Mỗi combo thường có nhiều món, Eatclean đã tính toán và cân đối chúng để tạo ra một combo hoàn hảo nhất có thể, đảm bảo lượng calories phù hợp
Bước 2: Chọn khu vực giao hàng
- Customer chọn khu vực muốn nhận hàng để tính toán giá trị tổng đơn hàng Các khu vực khác nhau có thể có mức phí giao hàng khác nhau Bước 3: Nhập thông tin giao hàng và thanh toán
- Customer cung cấp thông tin giao hàng và lựa chọn phương thức thanh toán Eatclean cung cấp hai phương thức thanh toán là COD (thanh toán khi nhận hàng) và VNPAY (thanh toán trực tuyến)
Sau khi thanh toán hoàn tất, hệ thống sẽ gửi email xác nhận thông tin về đơn đặt hàng đến Customer Đối với những Customer đã là thành viên, họ có thêm tính năng quản lý đơn hàng Thành viên có thể xem lịch sử các đơn hàng đã đặt, các đơn hàng hiện tại và có thể hủy đơn hàng với điều điện đơn hàng phải là đơn hàng mới
Qua quy trình trên, có thể thấy hệ thống Eatclean cung cấp một trải nghiệm thuận tiện và dễ dàng cho Admin, User và Customer, giúp họ quản lý combo, món ăn, đơn hàng và đạt được mục tiêu dinh dưỡng của mình một cách hiệu quả.
Mô hình use case và đặc tả
Use case quản lý tài khoản người dùng
Sơ đồ 3.1 Use case chức năng quản lý tài khoản
Use case Quản lý tài khoản người dùng
Summary Admin quản lý tài khoản người dùng trên hệ thống
1 Admin đăng nhập vào hệ thống trang quản trị
2 Hệ thống xác thực thông tin đăng nhập và hiển thị trang quản trị bao gồm những tính năng mà actor có thể sử dụng
3 Admin chọn chức năng quản lý người dùng để thực hiện các tác vụ liên quan đến quản lý tài khoản người dùng
4 Hệ thống hiển thị trang quản lý người dùng bao gồm danh sách tài khoản, các tính năng về CRUD và tìm kiếm thông tin tài khoản
5 Admin chọn chức năng thêm tài khoản người dùng mới
6 Hệ thống hiển thị popup thêm tài khoản và thực hiện thêm tài khoản theo yêu cầu người dùng
7 Admin chọn chức năng khóa hoặc mở khóa tài khoản người dùng cụ thể
8 Hệ thống hiển thị thông báo xác nhận khóa hoặc mở khóa người dùng trước khi thực hiện và sau đó thực hiện yêu cầu
9 Admin chọn chức năng chỉnh sửa thông tin của một tài khoản cụ thể
10 Hệ thống hiển thị popup chỉnh sửa thông tin tài khoản và thực hiện theo yêu cầu người dùng
11 Admin nhập các từ khóa để tìm kiếm thông tin tài khoản theo tên và email
12 Hệ thống hiển thị những kết quả tìm được theo từ khóa mà người dùng nhập
Triggers Admin muốn quản lý tài khoản trên hệ thống
Assumptions Admin đã thao tác các chức năng
Post conditions Các thông tin của tài khoản đã được lưu vào cơ sở dữ liệu
Bảng 3.1 Đặc tả use case chức năng quản lý tài khoản
Ngoài những chức năng quản lý trên, Admin còn có thể thực hiện các chức năng quản lý tương tự User như quản lý combo, quản lý món ăn trong combo, quản lý đơn đặt hàng, xem được trang thống kê và phân tích các dữ liệu Tóm lại, Admin có quyền hạn cao hơn User và bao quát User
3.2.2.1 Use case quản lý combo món ăn
Sơ đồ 3.2 Use case chức năng quản lý combo món ăn Use case Quản lý combo món ăn
Summary User quản lý combo món ăn trên hệ thống
1 User đăng nhập vào hệ thống trang quản trị
2 Hệ thống xác thực thông tin đăng nhập và hiển thị trang quản
23 trị bao gồm những tính năng mà actor có thể sử dụng
3 User chọn chức năng quản lý combo trong trang quản trị
4 Hệ thống hiển thị trang quản lý combo cho phép User tạo mới, chỉnh sửa, tìm kiếm các thông tin và xóa combo
5 User chọn chức năng tạo mới combo món ăn
6 Hệ thống hiển thị popup tạo combo món ăn và thực hiện theo yêu cầu người dùng
7 User nhập thông tin combo món ăn như: tên, mô tả, giá, hình ảnh, số món trong combo, chỉ số calories và lưu ý (không được trùng với combo có sẵn)
8 Hệ thống kiểm tra, lưu thông tin combo vào cơ sở dữ liệu và hiển thị thông báo tạo thành công
9 User chọn một combo cụ thể cần chỉnh sửa từ danh sách các combo có trong hệ thống
10 Hệ thống hiển thị pop chỉnh sửa các thông tin combo
11 User có thể chỉnh sửa một số thông tin combo về mô tả,
24 giá, số món, chỉ số calories và các thông tin chi tiết
12 Hệ thống lưu thông tin combo chỉnh sửa vào trong cơ sở dữ liệu và hiển thị thông báo thành công
13 User nhập từ khóa tìm kiếm theo tên của combo và nhấn nút nhấn tìm kiếm
14 Hệ thống tìm kiếm trong cơ sở dữ liệu các combo theo từ khóa mà người dùng đã nhập và hiển thị kết quả lên màn hình
15 User chọn một combo cụ thể cần xóa từ danh sách
16 Hệ thống hiển thị thông báo xác nhận xóa và xóa combo theo yêu cầu khỏi hệ thống
Triggers User muốn quản lý combo món ăn trên hệ thống
Assumptions User đã thao tác các chức năng
Post conditions Các thông tin của combo món ăn đã được lưu vào cơ sở dữ liệu
Bảng 3.2 Đặc tả use case chức năng quản lý combo
3.2.2.2 Use case quản lý món ăn trong combo
Sơ đồ 3.3 Use case chức năng quản lý món ăn trong combo
Use case Quản lý món ăn trong combo
Summary User quản lý các món ăn có trong combo trên hệ thống
1 User đăng nhập vào hệ thống trang quản trị
2 Hệ thống xác thực thông tin đăng nhập và hiển thị trang quản trị bao gồm những tính năng mà actor có thể sử dụng
3 User chọn chức năng quản lý món ăn trên trang quản trị
4 Hệ thống hiển thị trang quản lý món ăn với các tính năng CRUD, tìm kiếm và nhập file excel
5 User chọn chức năng tạo món ăn mới vào hệ thống
6 Hệ thống hiển thị popup thêm món ăn bao gồm: tên món ăn, mô tả món ăn, hình ảnh món ăn và chọn loại combo hiện có
7 User nhập thông tin tương ứng thêm món ăn và lưu lại
8 Hệ thống lưu thông tin món ăn đã thêm vào trong cơ sở dữ liệu và hiển thị thông báo thêm mới thành công
9 User chọn món ăn cụ thể cần chỉnh sửa từ danh sách món ăn hiển thị
10 Hệ thống hiển thị popup chỉnh sửa thông tin của món ăn (không cho phép chỉnh sửa loại combo)
11 User nhập thông tin cần chỉnh sửa món ăn và lưu lại
12 Hệ thống lưu thông tin món ăn đã chỉnh sửa vào cơ sở dữ liệu và hiển thị thông báo chỉnh sửa món ăn thành công
13 User nhập từ khóa tìm kiếm thông tin theo tên của món ăn và nhấn tìm kiếm
14 Hệ thống tìm trong cơ sở dữ liệu món ăn theo từ khóa mà người dùng nhập và hiển thị kết quả
15 User chọn món ăn cụ thể cần xóa từ danh sách
16 Hệ thống hiển thị thông báo xác nhận xóa món ăn khỏi cơ sở dữ liệu
17 User chọn chức năng nhập file Exel để thêm nhiều món ăn cùng lúc
18 Hệ thống thêm mới hàng loạt các món ăn có trong biểu mẫu mà User đã nhập
Triggers User muốn quản lý các món ăn có trong combo trên hệ thống
Assumptions User đã thao tác các chức năng
Post conditions Các thông tin của món ăn đã được lưu vào cơ sở dữ liệu
Bảng 3.3 Đặc tả use case chức năng quản lý món ăn
3.2.2.3 Use case quản lý đơn đặt hàng
Sơ đồ 3.4 Use case chức năng quản lý đơn đặt hàng
Use case Quản lý đơn đặt hàng
Summary User quản lý các đơn đặt hàng có trên hệ thống
1 User đăng nhập vào hệ thống trang quản trị
2 Hệ thống xác thực thông tin đăng nhập và hiển thị trang quản trị bao gồm những tính năng mà actor có thể sử dụng
3 User chọn chức năng quản lý đơn đặt hàng
4 Hệ thống hiển thị trang quản lý đơn đặt hàng với các đơn hàng có trong cơ sở dữ liệu
5 User chọn một đơn đặt hàng cụ thể từ danh sách các đơn đặt hàng
6 Hệ thống hiển thị thông tin chi tiết về đơn đặt hàng như mã đơn hàng, giá cả, thông tin người đặt hàng và trạng thái đơn hàng
7 User chọn một đơn đặt hàng cụ thể từ danh sách để cập nhật trạng thái
8 Hệ thống hiển thị chi tiết đơn hàng và trạng thái của đơn hàng
9 User chọn vào cập nhật trạng thái cho đơn hàng và lưu thay đổi
10 Hệ thống lưu trạng thái mới và cập nhật thông tin của đơn đặt hàng tương ứng vào cơ sở dữ liệu
Triggers User muốn quản lý các đơn đặt hàng có trên hệ thống
Assumptions User đã thao tác các chức năng
Post conditions Các thông tin của đơn đặt hàng được lưu vào cơ sở dữ liệu
Bảng 3.4 Đặc tả use case chức năng quản lý đơn đặt hàng
3.2.2.4 Use case thống kê, phân tích doanh thu và đơn hàng
Sơ đồ 3.5 Use case chức năng thống kê, phân tích doanh thu và đơn hàng Use case Thống kê, phân tích doanh thu và đơn hàng
Summary User thống kê, phân tích dựa trên doanh thu đơn hàng trên hệ thống
1 User đăng nhập vào hệ thống trang quản trị
2 Hệ thống xác thực thông tin đăng nhập và hiển thị trang quản trị bao gồm những tính năng mà actor có thể sử dụng
3 User chọn chức năng thống kế phân tích doanh thu và đơn hàng trên trang Dashboard
4 Hệ thống hiển thị trang Dashboard với các thông tin:
- Tổng doanh thu, đơn hàng, thành viên mới trong ngày
- Biểu đồ phân tích doanh thu và đơn hàng trong 12 tháng
5 User có thể di chuột đến từng tháng để xem chi tiết về doanh thu và đơn hàng của tháng đó
6 Hệ thống hiển thị doanh thu và đơn hàng của tháng đã di chuột đến
Triggers User muốn xem các thống kê, phân tích về doanh thu và đơn hàng
Assumptions User đã sử dụng các chức năng liên quan trước đó
Post conditions Hiển thị các thông tin thống kê và phân tích doanh thu và đơn hàng
Bảng 3.5 Đặc tả use case chức năng thống kê, phân tích doanh thu đơn hàng
3.2.3.1 Use case tính toán chỉ số TDEE
Sơ đồ 3.6 Use case chức năng tính toán chỉ số TDEE
Use case Tính toán chỉ số TDEE
Summary Customer tính toán chỉ số TDEE dựa trên chỉ số cơ thể đã nhập
1 Customer nhập thông tin chỉ số cơ thể theo form của hệ thống để tính toán TDEE
2 Hệ thống nhận thông tin đã nhập, tính toán trả về chỉ số calories cần nạp mỗi ngày và đưa ra gợi ý combo phù hợp
Triggers Customer muốn tính toán chỉ số TDEE
Post conditions Hiển thị các thông tin thống kê và phân tích doanh thu và đơn hàng
Bảng 3.6 Đặc tả use case chức năng tính toán chỉ số TDEE
Sơ đồ 3.7 Use case chức năng đặt hàng
Summary Customer chọn món và thực hiện các bước thanh toán trên hệ thống
1 Customer chọn món từ danh sách có trong combo
2 Hệ thống hiển thị hóa đơn tạm thời về combo đã chọn và giá tiền
3 Customer chọn khu vực giao hàng mong muốn
4, Hệ thống hiển thị phí giao hàng và cập nhật giá tiền tổng đơn hàng
5 Customer nhập thông tin giao hàng và chọn phương thức thanh toán
6 Sau khi đặt hàng hoặc thành toán thành công, hệ thống hiển thị thông báo thành công và gửi mail chi tiết đơn hàng đến Customer
Triggers Customer muốn thực hiện đặt hàng
Assumptions Customer đã thực hiện các thao tác cần thiết trước khi đặt hàng
Pre conditions Có sẵn các thông tin về sản phẩm, địa chỉ giao hàng, thông tin thanh toán từ Customer
Post conditions Đơn hàng đi được xác nhận và ghi nhận trong hệ thống
Bảng 3.7 Đặc tả use case chức năng đặt hàng
Sơ đồ 3.8 Use case chức năng thành viên
Summary Customer là thành viên có thêm một số tính năng nổi trội như xem lịch sử đơn hàng, xem lại thông tin cá nhân và hủy đơn hàng
1 Customer đăng nhập vào hệ thống với tư cách là thành viên
2 Hệ thống chuyển hướng hiển thị giao diện người dùng
3 Customer nhập và tính toán chỉ số calories
4, Hệ thống nhận thông tin, cập nhật dữ liệu vào trang cá nhân và hiển thị combo phù hợp với chỉ số calories
5 Customer xem, chỉnh sửa một số thông tin cá nhân
6 Hệ thống hiển thị modal thông tin cá nhân và thực hiện chỉnh sửa và cập nhật dữ liệu vào cơ sở dữ liệu
7 Customer xem lịch sử đơn hàng đã đặt
8 Hệ thống hiển thị thông tin về trang lịch sử đơn hàng
9 Customer có thể hủy đơn hàng với điều kiện khi đơn hàng phải là đơn hàng mới
10 Hệ thống cập nhật thông tin đơn hàng và lưu vào cơ sở dữ liệu
Triggers Customer muốn sử dụng các tính năng bao gồm xem lịch sử đơn hàng, xem lại thông tin cá nhân và hủy đơn hàng
Assumptions Customer đã đăng nhập và là thành viên của hệ thống
Pre conditions Customer đã thực hiện đăng nhập vào tài khoản cá nhân
Post conditions Customer có thể xem lịch sử đơn hàng, xem lại thông tin cá nhân và thực hiện hủy đơn hàng.
Sơ đồ hoạt động
Chức năng quản lý tài khoản User
Sơ đồ 3.9 Sơ đồ hoạt động quản lý tài khoản
3.3.2.1 Chức năng quản lý combo món ăn
Sơ đồ 3.10 Sơ đồ hoạt động quản lý combo
3.3.2.2 Chức năng quản lý món ăn trong combo
Sơ đồ 3.11 Sơ đồ hoạt động quản lý món ăn
3.3.2.3 Chức năng quản lý đơn đặt hàng
Sơ đồ 3.12 Sơ đồ hoạt động quản lý đơn đặt hàng
3.3.2.4 Chức năng thống kê, phân tích doanh thu và đơn hàng
Sơ đồ 3.13 Sơ đồ hoạt động chức năng thống kê phân tích doanh thu đơn hàng
3.3.3.1 Chức năng tính toán chỉ số TDEE
Sơ đồ 3.14 Sơ đồ hoạt động chức năng tính toán chỉ số TDEE
Sơ đồ 3.15 Sơ đồ hoạt động chức năng đặt hàng
Sơ đồ 3.16 Sơ đồ hoạt động chức năng thành viên
3.4 Mô hình thực thể kết hợp
Sơ đồ 3.17 Mô hình thực thể kết hợp
TRIỂN KHAI HỆ THỐNG
Hướng dẫn sử dụng hệ thống
Admin đã truy cập vào hệ thống website và thực hiện việc quản lý các tài khoản người dùng bằng cách chọn chức năng “Người Dùng” Chức năng này dùng thực hiện các hoạt động liên quan đến tài khoản người dùng bao gồm thêm mới, chỉnh sửa, tìm kiếm thông tin, khóa và mở khóa tài khoản của User
Hình 4.1 Giao diện trang quản lý tài khoản Đầu tiên, để thêm tài khoản User mới, Admin nhấn nút nhấn thêm mới để mở modal thêm mới tài khoản và nhập các thông tin
Admin nhập các thông tin cần thiết về tài khoản, email, họ và tên, mật khẩu, xác nhận mật khẩu Đảm bảo rằng tài khoản và email là duy nhất và phải hợp lệ, nếu không hệ thống sẽ bắt validate và không cho thực hiện thêm mới tài khoản
Hình 4.2 Giao diện modal thêm tài khoản
Khi đã nhập đầy đủ các thông tin tài khoản chính xác, Admin nhấn nút nhấn
“Lưu thay đổi” để tiến hành thêm tài khoản mới vào trong hệ thống
Hình 4.3 Thông báo tài khoản tạo mới thành công
Ngoài việc thêm mới tài khoản, để thay đổi thông tin tài khoản Admin có thể chọn một tài khoản bất kì có trong danh sách, nhấn vào nút nhấn chỉnh sửa và nhập các thông tin chỉnh sửa Admin chỉ có thể chỉnh sửa thông tin họ và tên và số điện thoại vì các thông tin khác mang tính duy nhất
Hình 4.4 Giao diện modal chỉnh sửa thông tin tài khoản
Khi chỉnh sửa thành công Admin nhấn nút nhấn “Lưu thay đổi” để thay đổi thông tin người dùng Các thông tin sẽ được cập nhật vào trong cơ sở dữ liệu Việc này đảm bảo rằng thông tin trong hệ thống luôn được cập nhật và chính xác
Hình 4.5 Thông báo chỉnh sửa tài khoản thành công
Ngoài ra, hệ thống còn cung cấp hai chức năng để Admin dễ dàng quản lý truy cập và kiểm soát hoạt động là tìm kiếm và khóa tài khoản User Đầu tiên để tìm kiếm thông tin về một User cụ thể, Admin có thể sử dụng chức năng tìm kiếm Admin nhập từ khóa bao gồm họ và tên hoặc email của User muốn tìm Khi đã nhập từ khóa, hệ thống sẽ trả về hiển thị kết quả tìm kiếm thông tin tài khoản, giúp Admin dễ dàng xác định và truy cập vào tài khoản cần tìm
Hình 4.6 Kết quả tìm kiếm tài khoản
Tiếp theo là chức năng khóa tài khoản User Admin chọn User muốn khóa trong danh sách và nhấn nút khóa Khi các tài khoản bị khóa, người dùng sẽ không thể đăng nhập vào hệ thống và sử dụng các chức năng liên quan Điều này hữu ích khi cần tạm thời ngừng truy cập cho một tài khoản có những hành động bất thường Admin có thể mở khóa tìa khoản cho phép người dùng tiếp tục sử dụng hệ thống như bình thường
Hình 4.7 Nhắc nhở xác nhận khóa tài khoản
Admin nhấn “Khóa” để xác nhận khóa tài khoản và “Hủy” để hủy bỏ thao tác Khi xác nhận khóa hệ thống sẽ hiển thị thông báo thành công
Hình 4.8 Thông báo khóa tài khoản thành công 4.1.1.2 Quản lý Combo
Các nguyên liệu sẽ được tính toán tỉ mỉ và chọn lọc Xác định các thông số như hàm lượng calories, chất đạm, tinh bột và chất béo Sau đó bắt đầu công đoạn chế biến cho từng món ăn và đưa ra combo với các thông số cụ thể để nêu ở trên Cuối cùng trưng bày và cung cấp cho người tiêu dùng
Hình 4.9 Giao diện trang quản lý combo Để thêm combo mới, Admin chọn chức năng modal thêm mới Giao diện thêm combo sẽ bao gồm thông số về: tên combo, giá thành, lượng calories, mô tả chi tiết, hình ảnh và số món có trong combo
Hình 4.10 Giao diện modal thêm combo
Sau khi đã nhập đầy đủ các thông tin về combo Admin có thể nhấn “Lưu thay đổi” để thêm combo mới hoặc “Đóng” để hủy bỏ thêm combo Hệ thống sẽ hiển thị thông báo thêm combo thành công
Hình 4.11 Thông báo thêm combo thành công
Với mỗi combo được thêm vào cố định Admin chỉ có thể chỉnh sửa các thông tin về giá, số món, lượng calories, mô tả, chi tiết và hình ảnh chứ không được chỉnh sửa tên của combo Tùy vào nhu cầu, những thay đổi và yêu cầu của Customer mà Admin lựa chọn chỉnh sửa thông tin sao cho phù hợp
Hình 4.12 Giao diện modal chỉnh sửa combo
Khi Admin muốn lưu thông tin chỉnh sửa thì chỉ cần nhấn “Lưu thay đổi” Hệ thống sẽ cập nhật thông tin mà Admin đã nhập cho combo và hiển thị thông báo
Hình 4.13 Giao diện modal chỉnh sửa combo Đối với những thay đổi nhu cầu trong thị trường, hiệu quả kinh doanh không cao hoặc nhận được nhiều phản hồi không tốt từ khách hàng Admin có thể chọn combo ảnh hưởng đó và xóa khỏi hệ thống
Khi chọn xóa combo cụ thể, hệ thống sẽ hiển thị xác nhận là bạn có muốn xóa combo đó không Nếu chắc chắn xóa thì chọn “Đồng ý”, không thì chọn “Hủy bỏ”
Hình 4.14 Thông báo xác nhận xóa combo
Khi đã thao tác xóa thành công, hệ thống sẽ hiển thị thông báo xóa thành công và xóa combo đã chọn ra khỏi hệ thống
Hình 4.15 Thông báo xóa combo thành công 4.1.1.3 Quản lý món ăn
Sau khi đã tạo combo, tính toán và chọn lựa ra các món ăn đảo bảo lượng calories Ở chức năng quản lý món ăn, Admin sẽ thêm và chỉnh sửa các món ăn vào trong combo đã xác định trước đó Một trong những yêu cầu quan trọng khi quản lý món ăn là đảm bảo rằng các món ăn trong combo có lượng calories tương đương nhau Điều này giúp đảm bảo Customer nhận được sự cân đối về dinh dưỡng, lượng calories hợp lý và có nhiều sự lựa chọn hơn khi sử dụng dịch vụ combo
Hình 4.16 Giao diện trang quản lý món ăn
Đánh giá hệ thống
Hệ thống website Eatclean được đánh giá thông qua các tiêu chí sau:
+ Tương đối đầy đủ tính năng của một website thương mại điện tử đặc biệt là về dịch vụ thực phẩm sạch
+ Tính năng thanh toán qua ví VNPAY giúp người dùng thực hiện thanh toán thuận tiện và nhanh chóng
+ Tính năng gửi email sau khi thanh toán Giúp cho người dùng có cái nhìn tổng quan về thông tin đơn hàng
+ Tính năng thống kê doanh thu đơn hàng giúp cho người dùng có thể đánh giá được sự phát triển và tăng trưởng của doanh nghiệp từ đó dự đoán xu hướng tương lai Người dùng có thể đưa ra các quyết định về điều chỉnh giá, quảng cáo hoặc các chương trình khuyến mãi
+ Tích hợp công cụ TDEE giúp cho người dùng có thể tính toán và nắm bắt được tổng số calories mà cơ thể cần nạp mỗi ngày Từ đó có thể chọn ra những combo phù hợp với mục tiêu đề ra của bản thân
+ Tuy nhiên, cần bổ sung thêm tính năng quản lý kho hàng để đảm bảo được việc cung cấp đầy đủ món ăn cho đơn hàng
+ Giao diện người dùng thân thiện với responsive trên các thiết bị di động hoặc kích cỡ màn hình khác nhau
+ Một số tính năng như đăng nhập, đăng ký, đặt hàng, CRUD đều sử dụng bằng POPUP thay vì chuyển trang Điều này tạo trải nghiệm liền mạch, người dùng không cần phải đợi tải lại trang mới mà có thể tiếp tục tương tác với nội dung gốc
+ Hệ thống được thiết kế với kiến trúc Front-Back tách biệt giao diện người dùng và logic xử lý dữ liệu Điều này giúp cho việc mở rộng phần giao diện và xử lý logic độc lập mà không ảnh hưởng đến nhau
+ Hệ thống sử dụng cơ sở dữ liệu MySQL cho phép mở rộng dung lượng lưu trữ và tăng hiệu suất xử lý dữ liệu với những dữ liệu lớn.h