Hệ thống sẽ cung cấp các tính năng cho nhiều đối tượng người dùng như kháchvãng lai, khách thành viên, và quản trị viên.. Hệ thống tích hợp AI để tư vấn gợi ý kế hoạch tập luyện cá nhân
Trang 1Sinh viên thực hiện : Nguyễn Lê Thảo Nguyệt
Mã sinh viên : 2050531200239
Lớp : 20T2
Người hướng dẫn : PGS.TS Võ Trung Hùng
Đà Nẵng, 12/2024
Trang 2Giảng viên hướng dẫn duyệt
Đà Nẵng, 12/2024
Trang 5Tên đề tài: Xây dựng website hỗ trợ kinh doanh phụ kiện thể thao tích hợp trợ lý ảo
tư vấn cá nhân hóa kế hoạch tập luyện FitSmart
Sinh viên thực hiện: Nguyễn Lê Thảo Nguyệt
Mã SV: 2050531200239 Lớp: 20T2
Hiện nay, nhu cầu nâng cao sức khỏe và thể lực thông qua tập luyện thể thao ngàycàng tăng do người tiêu dùng ngày càng quan tâm đến sức khỏe và chất lượng cuộc sống.Tuy nhiên, họ gặp khó khăn trong việc tìm kiếm phụ kiện thể thao phù hợp với mục tiêuluyện tập, thiếu kiến thức về phương pháp tập luyện đúng cách, và thiếu sự cá nhân hóa
Vì vậy, việc xây dựng hệ thống hỗ trợ kinh doanh phụ kiện thể thao tích hợp trợ lý ảo tưvấn cá nhân hóa kế hoạch tập luyện là cần thiết và hữu ích
Em mong muốn xây dựng một website hỗ trợ kinh doanh phụ kiện thể thao để kháchhàng dễ dàng tiếp cận với các sản phẩm chất lượng, phù hợp với nhu cầu tập luyện cánhân Hệ thống sẽ cung cấp các tính năng cho nhiều đối tượng người dùng như kháchvãng lai, khách thành viên, và quản trị viên Khách vãng lai có thể xem thông tin về cáccác sản phẩm Khách hàng thành viên có thể xem, lọc, tìm kiếm sản phẩm, mua hàng,thanh toán online, xem lịch sử mua hàng Quản trị viên có quyền quản lý thương hiệu,danh mục, sản phẩm, khách hàng và thống kê
Hệ thống tích hợp AI để tư vấn gợi ý kế hoạch tập luyện cá nhân hóa dựa trên mụctiêu và tình trạng thể chất của người dùngVới sự kết hợp hoàn hảo của các công nghệhiện đại như Laravel, Blade, HTML, CSS, Bootstrap, JavaScript và MySQL, chúng tôitin rằng hệ thống hỗ trợ kinh doanh phụ kiện thể thao này sẽ mang đến những trải nghiệmmua sắm tuyệt vời cho khách hàng Đồng thời, hệ thống cũng cung cấp cho chủ cửa hàngmột công cụ quản lý hiệu quả, giúp tối ưu hóa hoạt động kinh doanh
Trang 6Giảng viên hướng dẫn: PGS.TS Võ Trung Hùng
Sinh viên thực hiện: Nguyễn Lê Thảo Nguyệt Mã SV: 2050531200239
1 Tên đề tài
Xây dựng website hỗ trợ kinh doanh phụ kiện thể thao tích hợp trợ lý ảo tư vấn cánhân hóa kế hoạch tập luyện FitSmart
2 Nội dung chính của đồ án
Quá trình xây dựng website hỗ trợ kinh doanh phụ kiện thể thao tích hợp trợ lý ảo tưvấn cá nhân hóa kế hoạch tập luyện FitSmart:
- Thu thập thông tin tài liệu liên quan và khảo sát thực tế
- Phân tích thiết kế các chức năng của hệ thống
- Phân tích thiết kế cơ sơ dữ liệu
- Thiết kế giao diện cho các chức năng
- Xây dựng hệ thống website
- Kiểm thử chương trình
- Hoàn thành báo cáo tổng hợp
3 Các sản phẩm dự kiến
- Website hỗ trợ kinh doanh phụ kiện thể thao tích hợp trợ lý ảo tư vấn cá nhân hóa
kế hoạch tập luyện FitSmart
- File báo cáo hoàn chỉnh
- Slide giới thiệu
Trang 7Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ngay cả trong gia đình.
Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị.
Hiện nay các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải thiện các giải pháp cũng như các sản phẩm nhằm cho phép tiến hành tự động hóa trên Internet Thông qua các sản phẩm và công nghệ này, chúng ta dễ dàng nhận ra tầm quan trọng và tính tất yếu của website Với những thao tác đơn giản trên máy có nối mạng Internet bạn
sẽ có tận tay những gì mình cần mà không phải mất nhiều thời gian Bạn chỉ cần vào các trang web làm theo hướng dẫn và click vào những gì bạn cần Các hoạt động sẽ thực hiện ngay trên hệ thống đó
Ở Việt Nam cũng có rất nhiều trường đại học tự động hóa các quy trình trên hệ thống website nhưng do những khó khăn về cơ sở hạ tầng như viễn thông chưa phát triển mạnh nên các quy trình vẫn còn rất nhiều sổ sách, giấy tờ thủ công dẫn đến thiếu hiệu quả, mất khá nhiều thời gian
Để tiếp cận và góp phần đẩy mạnh sự phổ biến và tiện ích của website, em đã tìm hiểu và cài đặt “Xây dựng hệ thống hỗ trợ kinh doanh phụ kiện thể thao tích hợp trợ lí ảo
tư vấn cá nhân hóa quá trình tập luyện”.
Với sự hướng dẫn tận tình của PGS.TS Võ Trung Hùng em đã hoàn thành đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và góp ý của quí Thầy cô
Em xin chân thành cảm ơn!
Trang 8Em xin cam đoan:
1 Những nội dung trong luận văn này do em thực hiện dưới sự hướng dẫn của thầyPGS.TS Võ Trung Hùng
2 Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên côngtrình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịuhoàn toàn trách nhiệm
Sinh viên thực hiện
Nguyễn Lê Thảo Nguyệt
Trang 9NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN i
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ii
TÓM TẮT iii
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP iv
LỜI NÓI ĐẦU ii
CAM ĐOAN iii
MỤC LỤC iv
DANH MỤC BẢNG BIỂU viii
DANH MỤC HÌNH VẼ ix
DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT xi
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH xii
MỞ ĐẦU 1
Chương 1 CƠ SỞ LÝ THUYẾT 4
1.1 Ngôn ngữ lập trình PHP 4
1.1.1 Khái niệm PHP 4
1.1.2 Một số ưu điểm và nhược điểm của PHP 4
1.2 Laravel Framework 5
1.2.1 Giới thiệu 5
1.2.2 Đặc điểm 5
1.2.3 Ưu điểm và hạn chế 6
1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL và công cụ quản trị cơ sở dữ liệu mã nguồn mở phpMyAdmin 8
1.3.1 Khái niệm MySQL 8
1.3.2 Khái niệm phpMyAdmin 8
Trang 101.4 Tìm hiểu về Gemini AI của Google 9
1.4.1 Giới thiệu 9
1.4.2 Cách sử dụng Gemini AI 10
1.4.3 Những tính năng của Google Gemini AI 10
1.4.4 Lợi ích và hạn chế của việc sử dụng Gemini AI 10
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 12
2.1 Khảo sát yêu cầu 12
2.1.1 Hoạt động nghiệp vụ 12
2.1.2 Sơ đồ nghiệp vụ thực tế 13
2.1.3 Liệt kê người dùng và yêu cầu 16
2.1.3.1 Yêu cầu chức năng: 16
2.1.3.2 Yêu cầu phi chức năng 17
2.2 Phân tích thiết kế hệ thống 17
2.2.1 Liệt kê Actor và Usecase 17
2.2.1.1 Actor 17
2.2.1.2 Use Case 17
2.2.2 Sơ đồ usecase 19
2.2.3 Kịch bản và sơ đồ hoạt động 19
2.2.3.1 Đăng ký 19
2.2.3.2 Đăng nhập 21
2.2.3.3 Quên mật khẩu 22
2.2.3.4 Đăng xuất 23
2.2.3.5 Xem sản phẩm 24
2.2.3.6 Xem chi tiết sản phẩm 25
2.2.3.7 Lọc sản phẩm 26
Trang 112.2.3.9 Mua hàng 28
2.2.3.10 Xem lịch sử mua hàng 30
2.2.3.11 Quản lí thương hiệu 31
2.2.3.12 Quản lí danh mục 33
2.2.3.13 Quản lí sản phẩm 35
2.2.3.14 Quản lý tài khoản khách hàng 37
2.2.3.15 Duyệt đơn hàng 38
2.2.3.16 Xem thống kê 39
2.2.3.17 Lập kế hoạch tập luyện bằng AI 40
2.2.4 Thiết kế ERD 41
2.2.5 Sơ đồ Class mức 1 42
2.2.6 Sơ đồ tuần tự 43
2.2.6.1 Đăng ký 43
2.2.6.2 Mua hàng 44
2.2.6.3 Quản lí sản phẩm 45
2.2.6.4 Duyệt đơn hàng 46
2.2.6.5 Lập kế hoạch tập luyện với AI 46
2.2.7 Sơ đồ Class mức 2 47
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 48
3.1 Thiết kế hệ cơ sở dữ liệu 48
3.2 Công cụ xây dựng chương trình 50
3.2.1 Ngôn ngữ lập trình 50
3.2.2 Công nghệ hỗ trợ 51
3.2.3 Công cụ hỗ trợ 51
3.3 Giao diện chương trình 51
Trang 123.3.2 Giao diện đăng nhập 52
3.3.3 Giao diện trang chủ 52
3.3.4 Giao diện xem chi tiết sản phẩm 53
3.3.5 Giao diện mua hàng 53
3.3.6 Giao diện thanh toán bằng VNPay 54
3.3.7 Giao diện xem lịch sử mua hàng 54
3.3.8 Giao diện quản lí sản phẩm 55
3.3.9 Giao diện quản lí danh mục 55
3.3.10 Giao diện quản lí thương hiệu 56
3.3.11 Giao diện quản lí tài khoản khách hàng 56
3.3.12 Giao diện thống kê 57
3.3.13 Giao diện duyệt đơn hàng 1 57
3.3.14 Giao diện duyệt đơn hàng 2 58
3.3.15 Giao diện lập kế hoạch luyện tập bằng AI 58
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59
3.1 Kết luận 59
3.2 Hướng phát triển 59
TÀI LIỆU THAM KHẢO 60
Trang 13Bảng 2.1: Diễn giải quy trình nghiệp vụ khách thành viên 13Bảng 2.2: Diễn giải quy trình nghiệp vụ khách vãng lai 14Bảng 2.3: Diễn giải quy trình nghiệp vụ admin 15Bảng 2.4: Kịch bản Đăng ký 19Bảng 2.5: Kịch bản Đăng nhập 21Bảng 2.6: Kịch bản Quên mật khẩu 22Bảng 2.7: Kịch bản Đăng xuất 23Bảng 2.8: Kịch bản Xem sản phẩm 24Bảng 2.9: Kịch bản Xem chi tiết sản phẩm 25Bảng 2.10: Kịch bản Lọc sản phẩm 26Bảng 2.11: Kịch bản Tìm kiếm sản phẩm 27Bảng 2.12: Kịch bản Mua hàng 28Bảng 2.13: Kịch bản Xem lịch sử mua hàng 30Bảng 2.14: Kịch bản Quản lí thương hiệu 31Bảng 2.15: Kịch bản Quản lí danh mục 33Bảng 2.16: Kịch bản Quản lí sản phẩm 35Bảng 2.17: Kịch bản Quản lý tài khoản khách hàng 37Bảng 2.18: Kịch bản Duyệt đơn hàng 38Bảng 2.19: Kịch bản Xem thống kê 39Bảng 2.20: Kịch bản Lập kế hoạch tập luyện bằng AI 40
Bảng 3.2: Bảng nguoi_dung 48Bảng 3.3: Bảng don_hang 48Bảng 3.4: Bảng danh_muc 49Bảng 3.5: Bảng thuong_hieu 49Bảng 3.6: Bảng san_pham 49Bảng 3.7: Bảng chi_tiet_san_pham 49Bảng 3.8: Bảng chi_tiet_don_hang 50Bảng 3.9: Bảng gio_hang 50Bảng 3.10: Bảng chi_tiet_gio_hang 50
Trang 14Hình 2.1: Quy trình nghiệp vụ của khách thành viên 12Hình 2.2: Sơ đồ nghiệp vụ khách vãng lai 13Hình 2.3: Quy trình nghiệp vụ của admin 13Hình 2.4: Sơ đồ usecase 19Hình 2.5: Sơ đồ hoạt động Đăng ký 20Hình 2.6: Sơ đồ hoạt động Đăng nhập 22Hình 2.7: Sơ đồ hoạt động Quên mật khẩu 23Hình 2.8: Sơ đồ hoạt động Đăng xuất 24Hình 2.9: Sơ đồ hoạt động Xem sản phẩm 25Hình 2.10: Sơ đồ hoạt động Xem chi tiết sản phẩm 26Hình 2.11: Sơ đồ hoạt động Lọc sản phẩm 27Hình 2.12: Sơ đồ hoạt động Tìm kiếm sản phẩm 28Hình 2.13: Sơ đồ hoạt động Mua hàng 30Hình 2.14: Sơ đồ hoạt động Xem lịch sử mua hàng 31Hình 2.15: Sơ đồ hoạt động Quản lí thương hiệu 33Hình 2.16: Sơ đồ hoạt động Quản lí sản phẩm 34Hình 2.17: Sơ đồ hoạt động Quản lí sản phẩm 37Hình 2.18: Sơ đồ hoạt động Quản lý người dùng 38Hình 2.19: Sơ đồ hoạt động Duyệt đơn hàng 39Hình 2.20: Sơ đồ hoạt động Xem thống kê 40Hình 2.21: Sơ đồ hoạt động Lập kế hoạch tập luyện bằng AI 41
Hình 2.23: Sơ đồ Class mức 1 42Hình 2.24: Sơ đồ tuần tự Đăng ký 43Hình 2.25: Sơ đồ tuần tự Mua hàng 44Hình 2.26: Sơ đồ tuần tự quản lí sản phẩm 45Hình 2.27: Sơ đồ tuần tự Duyệt đơn hàng 46
Trang 15Hình 2.29: Sơ đồ Class mức 2 47Hình 3.1: Giao diện đăng ký 51Hình 3.2: Giao diện đăng nhập 52Hình 3.3: Giao diện trang chủ 52Hình 3.4: Giao diện xem chi tiết sản phẩm 53Hình 3.5: Giao diện mua hàng 54Hình 3.6: Giao diện thanh toán bằng VNPay 54Hình 3.7: Giao diện xem lịch sử mua hàng 55Hình 3.8: Giao diện quản lí sản phẩm 55Hình 3.9: Giao diện quản lí danh mục 55Hình 3.10: Giao diện quản lí thương hiệu 56Hình 3.11: Giao diện quản lí tài khoản khách hàng 56Hình 3.12: Giao diện thống kê 57Hình 3.13: Giao diện duyệt đơn hàng 1 57Hình 3.14: Giao diện duyệt đơn hàng 2 58Hình 3.15: Giao diện lập kế hoạch luyện tập bằng AI 58
Trang 16STT Chữ viết tắt Giải nghĩa
1 CNTT Công nghệ thông tin
2 CSDL Cơ sở dữ liệu
3 PGS.TS Phó giáo sư, Tiến sĩ
Trang 17Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt
1. HTML Hyper Text Markup
Language Ngôn ngữ đánh dấu siêu văn bản
2. CSS Cascading Style Sheets Ngôn ngữ tạo phong cách cho trang
web
3. PHP Hypertext Preprocessor Ngôn ngữ lập trình hướng đối
tượng dành cho thiết kế web
4. ERD Entity Relationship
Diagram Sơ đồ thực thể quan hệ
5. AI Artificial Intelligence Trí tuệ nhân tạo
Trang 18Mục tiêu cụ thể
Về chức năng:
- Website cung cấp các chức năng của một website thương mại điện tử cho kháchhàng ví dụ tìm kiếm, lọc sản phẩm, mua hàng, thanh toán online, xem lịch sử muahàng
- Website cung cấp các chức năng chính hỗ trợ chủ cửa hàng trong việc kinh doanhmột cách hiệu quả: quản lí thương hiệu, quản lí danh mục, quản lí sản phẩm(thêm, sửa, xóa), quản lí người dùng, xem doanh thu thống kê chi tiết
- Tích hợp AI tư vấn hỗ trợ về cá nhân hóa về kế hoạch tập luyện và lựa chọn sảnphẩm phù hợp
Về kỹ thuật:
- Website được xây dựng với giao diện đẹp mắt, thân thiện và dễ sử dụng
- Website hoạt động ổn định, mượt mà trên mọi trình duyệt web và thiết bị di động
- Website có tính bảo mật cao, đảm bảo an toàn thông tin cho người dùng
Về hiệu quả:
- Website thu hút được lượng lớn người dùng truy cập và sử dụng
- Người dùng đánh giá cao tính hữu ích và hiệu quả của website trong việc mua sắmphụ kiện thể thao cũng như việc được hỗ trợ tư vấn về kế hoạch tập
- Website góp phần giúp khách hàng có được những trải nghiệm mua sắm tốt nhất
2. Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Trang 19Website hỗ trợ kinh doanh phụ kiện thể thao hướng đến các đối tượng chính sau:
- Khách hàng người có nhu cầu mua sắm đối với các sản phẩm phụ kiện thể thao vàdịch vụ tư vấn trực tuyến
- Chủ cửa hàng người muốn nâng cao hoạt động kinh doanh theo hướng tự độnghóa một phần nhằm nâng cao hiệu quả hoạt động
b Phạm vi nghiên cứu
Về nội dung:
- Website cung cấp các chức năng của một website thương mại điện tử cho kháchhàng ví dụ tìm kiếm, lọc sản phẩm, mua hàng, thanh toán online, xem lịch sử muahàng
- Website cung cấp các chức năng chính hỗ trợ chủ cửa hàng trong việc kinh doanhmột cách hiệu quả: quản lí thương hiệu, quản lí danh mục, quản lí sản phẩm(thêm, sửa, xóa), quản lí người dùng, xem doanh thu thống kê chi tiết
- Tích hợp AI tư vấn hỗ trợ về cá nhân hóa về kế hoạch tập luyện và lựa chọn sảnphẩm phù hợp
Về kỹ thuật:
- Website được xây dựng với giao diện đẹp mắt, thân thiện và dễ sử dụng
- Website hoạt động ổn định, mượt mà trên mọi trình duyệt web và thiết bị di động
- Website có tính bảo mật cao, đảm bảo an toàn thông tin cho người dùng
3. Phương pháp nghiên cứu
Nghiên cứu tài liệu: Sách, báo, tạp chí, website về phụ kiện thể thao và tư vấnluyện tập
Khảo sát: Khảo sát khách hàng và chủ shop về nhu cầu và mong muốn của họ đốivới một website hỗ trợ kinh doanh tích hợp tư vấn kế hoạch tập luyện
Lập trình: Sử dụng các ngôn ngữ lập trình web hiện đại để xây dựng website
Thử nghiệm: Thử nghiệm website với người dùng thực tế để đánh giá hiệu quả củawebsite
4. Giải pháp công nghệ
- Website: Xây dựng bằng PHP Laravel, sử dụng MySQL để lưu trữ dữ liệu
Trang 20- Trợ lý ảo: Tích hợp API Gemini hỗ trợ tư vấn kế hoạch tập luyện.
- Giao diện: Thiết kế với HTML5, CSS3, Bootstrap, thân thiện và dễ sử dụng
- Thanh toán và bảo mật: tích hợp cổng thanh toán VNPay
5. Cấu trúc của đồ án tốt nghiệp
Cấu trúc đồ án tốt nghiệp gồm các phần như sau:
Mở đầu
Chương 1: Cơ sở lí thuyết
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Xây dựng chương trình
Kết luận và hướng phát triển của đề tài
Trang 21Chương 1
CƠ SỞ LÝ THUYẾT
Chương này trình bày tóm lược kết quả nghiên cứu về cơ sở lý thuyết để phục vụviệc xây dựng ứng dụng Nội dung chính bao gồm giới thiệu về các ngôn ngữ lập trình,Laravel Framework, hệ quản trị cơ sở dữ liệu MySQL, công cụ quản trị cơ sở dữ liệu mãnguồn mở phpMyAdmin và Gemini AI của Google
1.1 Ngôn ngữ lập trình PHP
1.1.1 Khái niệm PHP
PHP: Hypertext Preprocessor, thường được viết tắt thành PHP là một ngôn ngữ lậptrình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viếtcho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và
có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩmtương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành mộtngôn ngữ lập trình web phổ biến nhất thế giới
1.1.2 Một số ưu điểm và nhược điểm của PHP
PHP là một trong những ngôn ngữ lập trình phổ biến nhất vì những lợi ích mà nóđem lại Về cơ bản, có 4 ưu điểm chính:
- Tính đơn giản và linh động: PHP sử dụng mã nguồn mở nên việc cài đặt và sửdụng nó rất dễ dàng Ngôn ngữ này phù hợp với cả những người hoàn toàn mớivới nghề lập trình viên Bạn chỉ cần học chăm chỉ trong 3 – 6 tháng để thuần thụcnó
- Cộng đồng hỗ trợ lớn: PHP là một ngôn ngữ phổ biến nên các diễn đàn, đội nhómchuyên sâu của PHP thuộc hàng ngũ đầu của ngành Bên cạnh đó, thị trườngtuyển dụng cho công việc này cũng chưa bao giờ giảm nhiệt
- Cơ sở dữ liệu đa dạng: PHP cho phép kết nối với hầu hết các loại cơ sở dữ liệu nhưMySQL, mSQL, MS-SQL, SQLite, PostgreSQL, v.v Nhờ vậy, bạn sẽ không bịgiới hạn và có thể chọn cơ sở dữ liệu tối ưu nhất cho ứng dụng của mình
- Thư viện phong phú: Nhiều sách hướng dẫn và các tài liệu tham khảo có sẵn, cungcấp các kiến thức hữu ích cho các lập trình viên mới làm quen dần
Trang 22Mặc dù ngôn ngữ lập trình PHP hữu ích cho việc phát triển web, nhưng nó cũng cómột số nhược điểm nhất định Trong đó, hạn chế lớn nhất có thể kể đến chính là lỗi bảomật đến từ hai nguyên do chính:
- Bản chất mã nguồn PHP: Ngôn ngữ PHP có mã nguồn mở Điều này có nghĩa làcác lỗ hổng của mã nguồn sẽ bị công khai ngay sau khi chúng được tìm thấy Do
đó, trước khi kịp sửa chữa, các lỗ hổng có thể bị khai thác cho các mục đích xấu
- Một số ứng dụng bằng ngôn ngữ PHP được thiết kế bởi người thiếu kinh nghiệm:Bởi PHP phù hợp với lập trình viên mới vào nghề Cho nên một số trang web vàứng dụng được phát triển bởi những người còn thiếu kinh nghiệm cũng sẽ đemđến hiệu suất và bảo mật kém hơn
1.2 Laravel Framework
1.2.1 Giới thiệu
Laravel là một framework web mã nguồn mở được viết bằng ngôn ngữ PHP Nóđược phát triển bởi Taylor Otwell và được phát hành lần đầu vào năm 2011 Laravelcung cấp một kiến trúc MVC (Model-View-Controller) cho phép phát triển ứng dụngweb dễ dàng hơn và có tính bảo mật cao hơn
Laravel cũng cung cấp nhiều tính năng mạnh mẽ, bao gồm hệ thống định tuyến(routing), tạo truy vấn cơ sở dữ liệu (query builder), hỗ trợ giao diện dòng lệnh(command line interface) và cách tiếp cận đối tượng (object-oriented approach) Laravelcũng có thư viện mở rộng (package) khá phong phú và được cộng đồng hỗ trợ nhiệt tình.Laravel được sử dụng rộng rãi trong phát triển ứng dụng web, từ các ứng dụng đơngiản đến các hệ thống phức tạp và lớn Nó là một trong những framework PHP phổ biếnnhất hiện nay và được đánh giá là có hiệu suất tốt và dễ dàng sử dụng
- Hiệu suất cao: Laravel được thiết kế để tối ưu hóa hiệu suất và tốc độ, cho phép xử
lý nhanh hơn và giảm thời gian phản hồi của ứng dụng web
Trang 23- Tính bảo mật cao: Laravel có tính bảo mật cao và cung cấp các tính năng bảo vệnhư xác thực, mã hóa mật khẩu và chống tấn công CSRF.
- Hệ thống định tuyến mạnh mẽ: Laravel cung cấp hệ thống định tuyến mạnh mẽ vàlinh hoạt, cho phép xử lý các yêu cầu đến từ nhiều phương thức HTTP khác nhau
- Truy vấn cơ sở dữ liệu: Laravel cung cấp một cách tiếp cận đơn giản và hiệu quả
để truy vấn cơ sở dữ liệu, cho phép truy vấn thông qua cú pháp đơn giản hoặc sửdụng một bộ lọc mạnh mẽ
- Hỗ trợ tốt cho giao diện dòng lệnh: Laravel có thể được sử dụng để tạo và quản lýcác tác vụ liên quan đến dòng lệnh như tạo migration, seed database hoặc tạo test
- Cộng đồng phát triển mạnh mẽ: Laravel có một cộng đồng phát triển rộng lớn vànhiệt tình, với nhiều tài liệu hướng dẫn, ví dụ mã nguồn và các gói mở rộng đượcchia sẻ miễn phí
Những lý do trên chỉ là một phần nhỏ trong những lợi ích của Laravel Nó là mộttrong những framework web PHP mạnh mẽ nhất và được đánh giá cao bởi cộng đồngphát triển và người dùng
1.2.3 Ưu điểm và hạn chế
Ưu điểm của Laravel:
- Tính mô-đun cao: Laravel là một framework modul được phát triển để cho phépcác nhà phát triển xây dựng ứng dụng web một cách linh hoạt và dễ dàng hơn
- Định tuyến mạnh mẽ: Laravel cung cấp hệ thống định tuyến mạnh mẽ và dễ sửdụng, cho phép xác định các URL và điều hướng người dùng đến các trang web
cụ thể
- Tính năng bảo mật cao: Laravel cung cấp các tính năng bảo mật mạnh mẽ như mãhóa, xác thực và phân quyền
- Tính năng Artisan: Laravel có tính năng Artisan cho phép tạo các lệnh tùy chỉnh
và tự động hóa các tác vụ thường xuyên trong quá trình phát triển
- Tính năng Blade Template: Laravel cung cấp một hệ thống mẫu gọi là Blade, giúpphát triển các giao diện người dùng dễ dàng hơn
- Tính năng ORM (Object-Relational Mapping): Laravel cung cấp một ORM mạnh
mẽ, cho phép tương tác với CSDL một cách dễ dàng
- Hỗ trợ cộng đồng: Laravel có một cộng đồng lớn, với nhiều tài liệu, ví dụ và góiphần mềm có sẵn để giúp các nhà phát triển
Trang 24- Cấu hình phức tạp: Cấu hình Laravel có thể phức tạp, đặc biệt là đối với các nhàphát triển mới, khi phải làm quen với các tính năng mới và cấu trúc củaframework.
- Độ phức tạp của quá trình triển khai: Vì Laravel cung cấp nhiều tính năng và phụthuộc vào nhiều thư viện khác nhau, quá trình triển khai có thể phức tạp hơn sovới các framework khác
- Khả năng mở rộng có hạn: Mặc dù Laravel cung cấp nhiều tính năng và gói mởrộng, nhưng nó vẫn có những giới hạn về khả năng mở rộng khi cần tích hợp cáctính năng mới hoặc các công nghệ khác
- Yêu cầu cấu hình máy chủ tốt: Vì Laravel là một framework PHP mạnh mẽ và cónhiều tính năng, vì vậy để chạy một ứng dụng Laravel cần có cấu hình máy chủ tốthơn so với các framework PHP khác
Tuy nhiên, những nhược điểm này có thể được khắc phục bằng cách nâng cao kiếnthức và kinh nghiệm phát triển web của các nhà phát triển, cũng như tối ưu hóa mã nguồn
và cấu hình máy chủ để tăng tốc độ và hiệu suất của ứng dụng Với những ưu điểm mạnh
mẽ của mình, Laravel vẫn là một trong những lựa chọn phổ biến cho việc phát triển cácứng dụng web PHP
1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL và công cụ quản trị cơ
sở dữ liệu mã nguồn mở phpMyAdmin
1.3.1 Khái niệm MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS)hoạt động theo mô hình client-server MySQL được tích hợp apache, PHP MySQL quản
lý dữ liệu thông qua các cơ sở dữ liệu Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệchứa dữ liệu MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữSQL
Trang 251.3.2 Khái niệm phpMyAdmin
phpMyAdmin là một công cụ quản trị cơ sở dữ liệu MySQL thông qua giao diệnweb, giúp người dùng thao tác với cơ sở dữ liệu một cách dễ dàng và thuận tiện Công cụnày được viết bằng ngôn ngữ lập trình PHP và được phát triển nhằm đơn giản hóa quátrình quản lý cơ sở dữ liệu MySQL
1.3.3 Ưu điểm và nhược điểm của phpMyAdmin
Ưu điểm của phpMyAdmin:
- Tương thích đa hệ điều hành: Chạy trên tất cả các hệ điều hành và môi trường máychủ, đảm bảo sự linh hoạt và tiện ích cho người quản trị
- Quản lý dữ liệu đồ họa: Giao diện đồ họa của phpMyAdmin giúp quản trị viênthực hiện các thao tác tạo, xóa và chỉnh sửa cơ sở dữ liệu một cách dễ dàng
- Kiểm soát người dùng và máy chủ: Cho phép kiểm soát quyền của người dùng và
hỗ trợ nhiều máy chủ vận hành đồng thời
- Sao lưu và xuất dữ liệu: Hỗ trợ sao lưu cơ sở dữ liệu và xuất dữ liệu ra nhiều địnhdạng khác nhau, tăng tính linh hoạt và an toàn
- Hỗ trợ câu lệnh SQL phức tạp: Cung cấp khả năng tạo, chỉnh sửa các câu lệnhSQL phức tạp, cũng như làm việc với hàm, trình kích hoạt và sự kiện
- Tăng hiệu quả công tác quản lý: Trực quan hóa các thao tác quản lý cơ sở dữ liệu,giúp tiết kiệm thời gian và giảm độ phức tạp so với việc sử dụng dòng lệnh
- Đa nhiệm và xử lý lỗi: Là công cụ đa năng có khả năng xử lý nhiều tình huống,bao gồm cả lỗi người dùng và tình huống database
- Cộng đồng hỗ trợ rộng lớn: Hưởng lợi từ sự đóng góp của cộng đồng lập trìnhviên trên toàn thế giới, đảm bảo sự hỗ trợ và phát triển liên tục
- Đa ngôn ngữ: Hỗ trợ đến 64 ngôn ngữ khác nhau, tạo điều kiện thuận lợi chongười dùng toàn cầu
- Miễn phí: Hoàn toàn miễn phí, mang lại lợi ích và chức năng quản lý cơ sở dữ liệumạnh mẽ mà không tốn chi phí
Do đó, phpMyAdmin là một công cụ quản trị cơ sở dữ liệu đa chức năng và tiện ích,
là sự lựa chọn lý tưởng cho việc quản lý hệ cơ sở dữ liệu MySQL
Nhược điểm của phpMyAdmin:
Trang 26- Bảo mật: Hạn chế truy cập URL từ các địa chỉ IP cố định để cải thiện bảo mật,nhưng vấn đề về an ninh vẫn là một thách thức của các mã nguồn mở.
- Định dạng file xuất không được mã hóa, gây thiếu an toàn, và chiếm dung lượngđĩa lớn
- Sự ổn định của sao lưu tự động: Chức năng sao lưu tự động cài đặt trước chưa đạtđến mức ổn định, tạo ra thách thức cho việc duy trì và đảm bảo tính an toàn của dữliệu
- Phương thức lưu trữ phương tiện truyền thông: Hệ thống chỉ hỗ trợ sao lưu vàoLocal Drive tích hợp trong hệ thống, giới hạn khả năng lưu trữ và truy cập
- Lưu trữ file không mã hóa: Định dạng file xuất từ phpMyAdmin không được mãhóa, tăng nguy cơ về an toàn và bảo mật của dữ liệu
Mặc dù phpMyAdmin mang lại nhiều lợi ích, nhưng những hạn chế trên đều là điểmcần xem xét và cải thiện để đảm bảo tính an toàn và ổn định
1.4 Tìm hiểu về Gemini AI của Google
1.4.1 Giới thiệu
Google Gemini AI, trước đây được gọi là Google Bard, là một công cụ chatbot trítuệ nhân tạo (AI) do Google thiết kế, ra mắt vào tháng 12 năm 2023
Gemini tích hợp các khả năng xử lý ngôn ngữ tự nhiên (NLP), cho phép nó hiểu và
xử lý ngôn ngữ một cách hiệu quả Nó cũng có khả năng nhận diện và hiểu hình ảnh, giúp
nó phân tích các hình ảnh phức tạp một cách dễ dàng
Bên cạnh đó, Gemini còn sở hữu khả năng đa ngôn ngữ rộng lớn, hỗ trợ nhiều nhiệm
vụ dịch thuật và chức năng trên các ngôn ngữ khác nhau Ngoài ra, Google Gemini cókhả năng tích hợp vào các website, nền tảng nhắn tin hoặc ứng dụng để cung cấp cácphản hồi ngôn ngữ tự nhiên cho người dùng
Không giống như những mô hình AI của Google trước, cách thức hoạt động củaGemini AI dựa vào việc được huấn luyện và ghi nhớ dựa trên các tập dữ liệu bao gồmnhiều loại dữ liệu khác nhau, từ văn bản, hình ảnh, đến âm thanh và video Từ đó, GoogleGemini cho phép xử lý và phân tích các loại thông tin phức tạp một cách trực quan hơn,như hiểu được các ghi chú viết tay, biểu đồ và sơ đồ, từ đó giải quyết các vấn đề phức tạp
mà không cần đến các công cụ phân tích bên ngoài
Trang 271.4.2 Cách sử dụng Gemini AI
Để sử dụng Gemini AI, các nhà phát triển sẽ cần tạo tài khoản và lấy khóa API Khi
có khóa API, họ có thể sử dụng nó để gọi API Gemini AI API sẽ cho phép họ tương tácvới Gemini AI và sử dụng các tính năng của nó
1.4.3 Những tính năng của Google Gemini AI
Tạo lập văn bản: Gemini có khả năng tạo ra văn bản dựa trên các yêu cầu của ngườidùng
Tạo lập hình ảnh: Gemini sử dụng công nghệ AI đa phương tiện để phân tích và hiểucác hình ảnh phức tạp
Phân tích thông tin và tạo code: Gemini AI sở hữu khả năng mã hóa vượt trội, chophép hiểu và tạo ra code chất lượng cao bằng nhiều ngôn ngữ lập trình phổ biến nhưPython, C++, Java và Go
Phân tích dữ liệu: Tính năng phân tích dữ liệu của Gemini cho phép nó xử lý vàtương tác với dữ liệu từ nhiều nguồn như văn bản, âm thanh, hình ảnh, và video
1.4.4 Lợi ích và hạn chế của việc sử dụng Gemini AI
Gemini AI mang lại rất nhiều lợi ích cho việc phát triển ứng dụng AI Với Gemini
AI, bạn có thể xây dựng các ứng dụng thông minh, giúp người dùng tự động hoá nhiềucông việc Bạn có thể tạo ra các ứng dụng tiện ích, tận dụng sức mạnh của trí tuệ nhân tạo
để giải quyết các vấn đề phức tạp Bạn cũng có thể tạo ra các ứng dụng giải trí, hỗ trợ tròchơi và cung cấp giải pháp tổ chức thông minh Gemini AI mở ra không gian mới cho sựsáng tạo và phát triển ứng dụng AI
Mặc dù Gemini AI mang lại rất nhiều tiềm năng, nhưng nó cũng có một số hạn chế.Một số hạn chế của Gemini AI bao gồm:
- Đòi hỏi kiến thức về lập trình và AI để sử dụng hiệu quả
- Đôi khi thông tin trả về của Gemini AI có thể không chính xác hoặc không đápứng yêu cầu của người dùng
- Sử dụng Gemini AI có thể gặp phải vấn đề về bảo mật dữ liệu và quản lý thông tin
cá nhân
Trang 28Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Chương này trình bày tóm lược kết quả khảo sát kỹ lưỡng các yêu cầu của ngườidùng, phân tích và xây dựng một thiết kế hệ thống chi tiết, đảm bảo đáp ứng mọi yêu cầuđặt ra
2.1 Khảo sát yêu cầu
2.1.1 Hoạt động nghiệp vụ
Hình 2.1: Quy trình nghiệp vụ của khách thành viên
Trang 29Hình 2.2: Sơ đồ nghiệp vụ khách vãng lai
Hình 2.3: Quy trình nghiệp vụ của admin
2.1.2 Sơ đồ nghiệp vụ thực tế
Bảng 2.1: Diễn giải quy trình nghiệp vụ khách thành viên
1 Đăng nhập Email, mật
khẩu Trang chủ
Khách thành viên
2 Xem chi tiết sản phẩm Sản phẩm được
chọn
Thông tin chi tiết của sản phẩm
Khách thành viên
3 Tìm kiếm sản phẩm Từ khóa tìm
kiếm
Danh sách sản phẩm phù hợp với tiêu chí tìm
Khách thành viên
Trang 304 Lọc sản phẩm Tên danh mục
cần lọc
Danh sách sản phẩm phù hợp với danh mục lọc
Khách thành viên
5 Thêm sản phẩm vào giỏ
hàng
Sản phẩm đượcchọn
Sản phẩm được thêm vào giỏ hàng của khách hàng
Khách thành viên
6 Thanh toán
Thông tin giỏ hàng, thông tin giao hàng, phương thức thanh toán
Thông tin đơn hàng và trạng thái thanh toán
Khách thành viên
7 Xem lịch sử mua hàng Tài khoản
người dùng
Danh sách đơn hàng đã mua vàtrạng thái của đơn hàng
Khách thành viên
8 AI tư vấn kế hoạch
luyện tập
Thông tin về sức khỏe và mục tiêu luyện tập từ khách hàng
Kế hoạch luyện tập cá nhân hóaKhách hàng
Khách thành viên
Bảng 2.2: Diễn giải quy trình nghiệp vụ khách vãng lai
1 Xem chi tiết sản phẩm Sản phẩm được
chọn
Thông tin chi tiết của sản phẩm
Khách vãng lai
2 Tìm kiếm sản phẩm Từ khóa tìm
kiếm
Danh sách sản phẩm phù hợp với tiêu chí tìm kiếm
Khách vãng lai
3 Lọc sản phẩm Tên danh mục Danh sách sản Khách vãng
Trang 31cần lọc
phẩm phù hợp với danh mục lọc
lai
Bảng 2.3: Diễn giải quy trình nghiệp vụ admin
1 Duyệt đơn hàng Đơn hàng cần
duyệt
Trạng thái đơn hàng được cập nhật
Admin
2 Quản lí thương hiệu Tên thương
hiệu
Thương hiệu được thêm/cập nhật/ xóa thành công
Admin
3 Quản lí danh mục Tên danh mục
Danh mục đượcthêm/ cập nhật/xóa thành công
Admin
4 Quản lí sản phẩm
Thông tin về sản phẩm ( tên,
mô tả, hình ảnh,…)
Sản phẩm được thêm mới/ cập nhật/ khóa thành công
Admin
Trang 322.1.3 Liệt kê người dùng và yêu cầu
- Lập kế hoạch tập luyện với AI
Quản trị viên (Admin):
- Quản lí thương hiệu (thêm, sửa, xóa)
- Quản lí danh mục (thêm, sửa, xóa)
- Quản lí sản phẩm (thêm, sửa, khóa)
- Quản lí tài khoản khách hàng (xem danh sách, khóa tài khoản, mở tài khoản)
- Duyệt đơn hàng
- Xem báo cáo thống kê
Trang 332.1.3.2 Yêu cầu phi chức năng
- Giao diện thân thiện: Website phải có giao diện đẹp mắt, dễ sử dụng và trực quan
- Điều hướng dễ dàng: Người dùng phải có thể dễ dàng tìm kiếm thông tin và điềuhướng website mà không gặp khó khăn
- Nội dung dễ đọc: Nội dung trên website phải dễ đọc, dễ hiểu và được trình bày rõràng
Khả năng tương thích: website phải hoạt động tốt trên nhiều trình duyệt web và thiết
Trang 34Quản trị viên (Admin):
- Quản lí thương hiệu (thêm, sửa, xóa)
- Quản lí danh mục sản phẩm (thêm sửa xóa)
- Quản lí sản phẩm (thêm, sửa, xóa)
- Quản lí người dùng
- Duyệt đơn hàng
- Xem thống kê
Trang 35Use case name Đăng ký
Description Cho phép người dùng mới tạo tài khoản trên hệ thống
Actors Khách vãng lai
Input Thông tin cá nhân (Tên, Email, Mật khẩu)
Output
Thông báo đăng ký thành công
Email xác thực gửi đến người dùng
Tài khoản được kích hoạt sau khi xác thực email
Basic flow 1 Actor vào trang đăng ký → Bắt đầu use case.
2 Actor nhập tên đăng nhập, email, mật khẩu và xác nhận
Trang 36mật khẩu.
3 Actor nhấn nút "Đăng ký"
4 Hệ thống kiểm tra tính hợp lệ
5 Hệ thống tạo tài khoản và gửi email xác thực
6 Hệ thống gửi thông báo gửi mail thành công, nếu khôngnhận được mail thì click vào link resent
7 Actor vào email
8 Actor nhấp vào link xác thực trong email
9 Hệ thống kích hoạt tài khoản và hiển thị thông báo
"Đăng ký thành công" → Kết thúc use case
Alternative flow
4.1 Nếu thông tin không hợp lệ hoặc thiếu → Hệthống hiển thị thông báo lỗi → Actor sử#a lại thôngtin và thử# lại tử( bửợ)c 2
4.2 Nếu email đã được sử dụng → Hệ thống hiển thị thôngbáo email đã tồn tại → Actor nhập email khác và thử lại từbước 2
6.1 Nếu email xác thực không được gửi hoặc không đượcxác thực → Actor yêu cầu gửi lại email xác thực → Hệthống gửi lại email xác thực
Hình 2.2: Sơ đồ hoạt động Đăng ký
Trang 372.2.3.2 Đăng nhập
Bảng 2.1: Kịch bản Đăng nhập
Use case name Đăng nhập
Description Người dùng hoặc quản trị viên muốn đăng nhập vào hệthống.Actors Khách thành viên, admin
Input Thông tin tài khoản (Email, Mật khẩu)
Output Thông báo đăng nhập thành công.
Chuyển đến trang chủ sau khi đăng nhập thành công
Basic flow
1 Actor truy cập trang đăng nhập → Bắt đầu use case
2 Actor chọn phương thức đăng nhập (hệ thống hoặcGoogle)
3 Nếu chọn đăng nhập bằng hệ thống:
3.1 Actor nhập thông tin tài khoản (email, mật khẩu).3.2 Actor nhấn nút "Đăng nhập"
3.3 Hệ thống xác thực thông tin tài khoản
3.4 Hệ thống chuyển đến trang chủ và hiển thị thôngbáo "Đăng nhập thành công" → Kết thúc use case
4 Nếu chọn đăng nhập bằng Google:
4.1 Hệ thống chuyển hướng đến trang xác thựcGoogle
4.2 Actor chọn tài khoản Google để đăng nhập
4.3 Google xác thực và cung cấp thông tin đăng nhậpcho hệ thống
4.4 Hệ thống chuyển đến trang chủ và hiển thị thôngbáo "Đăng nhập thành công" → Kết thúc use case
Alternative flow
3.3.1 Nếu thông tin tài khoản không hợp lệ hoặcthiếu → Hệ thống hiển thị thông báo lỗi và yêu cầuActor nhập lại tử( bửợ)c 3.1
3.3.2 Nếu thông tin tài khoản không chính xác hoặckhông tìm thấy → Hệ thống hiển thị thông báo lỗi vàyêu cầu Actor nhập lại tử( bửợ)c 3.1
Trang 38Hình 2.2: Sơ đồ hoạt động Đăng nhập
2.2.3.3 Quên mật khẩu
Bảng 2.1: Kịch bản Quên mật khẩu
Use case name Quên mật khẩu
Description Cho phép người dùng khôi phục mật khẩu khi quên mật
khẩu
Actors Khách thành viên, admin
Input Địa chỉ email đã đăng ký
Output Tạo mật khẩu mới thành công
Basic flow
1 Actor nhấn “Quên mật khẩu?” → Bắt đầu usecase
2 Actor nhập địa chỉ email đã đăng ký và nhấn “Gửi linkđặt lại mật khẩu”
3 Hệ thống kiểm tra tính hợp lệ của địa chỉ email
4 Hệ thống gửi email chứa liên kết đặt lại mật khẩu tới địachỉ email đã cung cấp
5 Actor mở email, nhấp vào liên kết để tiếp tục quá trìnhđặt lại mật khẩu
6 Hệ thống hiển thị giao diện đặt lại mật khẩu và yêu cầunhập mật khẩu mới
7 Actor nhập mật khẩu mới và xác nhận mật khẩu
8 Hệ thống cập nhật mật khẩu mới trong cơ sở dữ liệu vàhiển thị thông báo "Đặt lại mật khẩu thành công" → Kếtthúc use case
Alternative flow 2.1 Nếu địa chỉ email không hợp lệ hoặc không tồn tại
trong hệ thống → Hệ thống hiển thị thông báo lỗi "Email