HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM TRẦN ANH THẮNG TRƯƠNG CÔNG TẤN PHÁT KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG TRANG WEB THỜI TRANG VỚI CÁC TIỆN ÍCH CHATBOT,
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
TRẦN ANH THẮNG TRƯƠNG CÔNG TẤN PHÁT
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG TRANG WEB THỜI TRANG VỚI CÁC TIỆN ÍCH CHATBOT, KHUYẾN NGHỊ SẢN PHẨM
ĐỂ NÂNG CAO TRẢI NGHIỆM NGƯỜI DÙNG Fashion website with support utility to enhance user experience
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM
TP HỒ CHÍ MINH, <2021>
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
TRẦN ANH THẮNG – 17520159 TRƯƠNG CÔNG TẤN PHÁT – 17520884
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG TRANG WEB THỜI TRANG VỚI CÁC TIỆN ÍCH CHATBOT, KHUYẾN NGHỊ SẢN PHẨM
ĐỂ NÂNG CAO TRẢI NGHIỆM NGƯỜI DÙNG Fashion website with support utility to enhance user experience
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN Ths.MAI TRỌNG KHANG
Trang 3DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………
Trang 4ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Tên khóa luận:
XÂY DỰNG TRANG WEB THỜI TRANG VỚI CÁC TIỆN ÍCH CHATBOT, KHUYẾN
NGHỊ SẢN PHẨM ĐỂ NÂNG CAO TRẢI NGHIỆM NGƯỜI DÙNG
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Trần Anh Thắng 17520159 ThS Mai Trọng Khang
Trương Công Tấn Phát 17520884
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
Trang 5
2 Về nội dung nghiên cứu:
3 Về chương trình ứng dụng:
Trang 6
4 Về thái độ làm việc của sinh viên:
Trang 7ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Tên khóa luận:
XÂY DỰNG TRANG WEB THỜI TRANG VỚI CÁC TIỆN ÍCH CHATBOT,
KHUYẾN NGHỊ SẢN PHẨM ĐỂ NÂNG CAO TRẢI NGHIỆM NGƯỜI DÙNG
Nhóm SV thực hiện: Cán bộ phản biện:
Trần Anh Thắng 17520159
ThS Trần Thị Hồng Yến Trương Công Tấn Phát 17520884
Đánh giá Khóa luận
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
2 Về nội dung nghiên cứu:
Trang 8
3 Về chương trình ứng dụng:
4 Về thái độ làm việc của sinh viên:
Trang 10ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng trang web thời trang với các tiện ích Chatbot,
khuyến nghị sản phẩm để nâng cao trải nghiệm người dùng
Cán bộ hướng dẫn: ThS Mai Trọng Khang
Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 20/06/2021
Sinh viên thực hiện:
Trương Công Tấn Phát – 17520884
Trần Anh Thắng – 17520159
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực
hiện, kết quả mong đợi của đề tài)
1 Mục tiêu của đề tài
1.1 Bối cảnh chọn đề tài
Công nghệ thông tin phát triển ngày càng hiện đại và đổi mới không ngừng, bằng việc chinh phục hết đỉnh cao này thành đỉnh cao khác Mạng internet đang trở thành mạng truyền thong có sức ảnh hưởng lớn nhất, không thể thiếu trong tất cả các hoạt động của con người trong việc truyền tải và trao đổi dữ liệu Không như ngày xưa ngày nay mọi việc liên quan đến thông tin ngày càng dễ dàng hơn cho người sử dụng bằng việc kết nối internet và một dòng dữ liệu truy tìm thì ngay lập tức cả kho tài nguyên không chỉ trong nước mà ngoài nước hiện
ra không chỉ bằng ngôn ngữ mà cả bằng hình ảnh , âm thanh Chính vì lợi ích
từ internet đã thúc đảy sự ra đời và phát triển của thương mại điện tử làm biến đổi bộ mặt văn hoá cũng như nâng cao chất lượng cuộc sống của con người các hoạt động thong thường như sản xuất, kinh doanh và các doing nghiệp cũng phát triển cuộc sống con người ngày càng phát triển thì nhu cầu sống của con người cũng được nâng cao và những nhu cầu đơn giản nhưng cũng rất thiết thực Đó là nhu cầu ăn, ở và mặc đây là vấn đề cũng đang là 1 bài toán của các nhà kinh doanh, làm sao để đáp ứng nhu cầu của con người để cải thiện đời sống ngày càng cao Chính lẽ đó để đáp ứng những nhu cầu đó của con người trên cơ sở kế thừa những trang web bán hang khác em xây dựng nên một website bán hang thời trang qua mạng để đáp ứng nhu cầu mua sắm của mọi người, giúp
họ tiết kiếm kiệm được thời gian, chi phí trong việc phải đi ra các shop, các cửa hàng hay các chợ truyền thống để mua và tìm kiếm sản phẩm Thay vào đó chỉ
Trang 11việc ngồi ở nhà với chiếc máy tính đã kết nối internet mọi người có thể thảo sức tìm kiếm, lựa chọn sản phẩm áo quần, mà mình yêu thích mọi lúc mọi nơi
Có các tính năng nổi bật và thuận lợi như chatbot khi không có nhân viên trực tiếp trả lời hay khuyến nghị sản phẩm cho người dùng khi không biết mua gì hay gợi ý các sản phẩm tương tự Giúp cho người quản trị dễ dàng trong việc phân quyền quản lí, quản lí khách hàng và các đơn đặt hàng của họ Đó là lí do chúng em chọn đề tài “Xây dựng trang web thời trang với các tiện ích chatbot, khuyến nghị sản phẩm để nâng cao trải nghiệm người dùng”,
1.2 Mục đích của đề tài
Trang web được thực hiện dựa trên hai mục đích chính sau:
Thứ nhất là nghiên cứu các công nghệ lập trình như: lập trình java web với SpringMVC
Thứ hai là phát triển trang web có tính thực tiễn cao, có khả năng triển khai
và ứng dụng vào thực tế, giúp những người có nhu cầu mua áo quần có thể thao tác dễ dàng và tiện lợi
Em hy vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết hợp với sự tìm hiểu công nghệ của nhóm, luận văn tốt nghiệp của em sẽ đạt được mục đích mong đợi
1.3 Ý nghĩa của đề tài
Trước hết, đề tài “Xây dựng trang web thời trang với các tiện ích chatbot, khuyến nghị sản phẩm để nâng cao trải nghiệm người dùng” là một trang web được xây dựng như một đề tài thể hiện việc áp dụng những kiến thức quý báu
đã được các thầy cô của trường Đại học Công nghệ Thông tin – Đại học Quốc gia thành phố Hồ Chí Minh đã nhiệt tình truyền thụ lại cho chúng em Và đặc biệt là sự theo dõi và quan tâm giúp đỡ của thầy Mai Trọng Khang trong suốt thời gian nhóm chúng em thực hiện đề tài này
Thứ hai là những kinh nghiệm quý báu mà nhóm có được trong quá trình thực hiện đề tài sẽ là hành trang tuyệt vời giúp ích rất nhiều cho công việc sau này của mỗi thành viên trong nhóm
Thứ ba, trong thời đại công nghệ thông tin phát triển như vũ bão ngày nay, công nghệ không ngừng được cải tiến, những công nghệ mới ra đời đòi hỏi người lập trình viên phải cố gắng nghiên cứu và tìm hiểu để áp dụng vào thực tiễn Điều này cũng được thể hiện qua sự cố gắng của mỗi thành viên trong nhóm khi quyết định thực hiện đề tài này với các công nghệ được coi là mạnh
và dự báo sẽ càng được dùng nhiều hơn nữa trong tương lai Do vậy, nhóm chúng em rất hy vọng sẽ tạo nên một sản phẩm hoàn chỉnh nhất có thể để đáp lại sự nhiệt tình giúp đỡ từ thầy cô và cả tâm huyết của nhóm khi quyết định thực hiện đề tài này
1.4 Nhiệm vụ của đề tài
Trang 12Đề tài “Xây dựng trang web thời trang với các tiện ích chatbot, khuyến nghị sản phẩm để nâng cao trải nghiệm người dùng” là một ứng dụng chạy trên điện thoại sử dụng hệ điều hành Android
Trang web được viết bằng ngôn ngữ Java
Mục tiêu của đề tài này là:
- Tìm hiểu các hoạt động kinh doanh của các shop thời trang trong thực
tế
- Tìm hiểu cách thức xây dựng một trang java web
- Xây dựng thành công website thời trang có chatbot hỗ trợ gợi ý sản phẩm trên android Hệ thống gợi ý sản phẩm đạt hiệu năng cao: phản hồi thời gian thực, độ chính xác cao
- Hệ thống tối ưu hóa lợi nhuận đối với những khách hàng mới
- Hệ thống có khả năng ứng dụng và triển khai vào thực tiễn nhanh chóng
Tìm hiểu về cách Crawler data vào trang web bằng jSoup, Selenium
3 Đối tượng nghiên cứu
Trang 13Cách tiếp cận: ứng dụng được xây dựng dựa theo framework SpringMVC Nhóm đã sử dụng các phương pháp nghiên cứu:
• Phương pháp đọc tài liệu
• Phương pháp phân tích các web hiện có
• Phương pháp thực nghiệm
Qua khảo sát tìm hiểu, các website thời trang nổi tiếng và giống với ý tưởng của nhóm, nhận thấy các ứng dụng đều có mô hình xử lý như sau:
● Cho phép nhập hàng vào CSDL
● Quản lý tài khoản người dùng và phân quyền
● Quản lý sản phẩm: quản lý thêm, xóa, sửa, tìm kiếm
● Quản lý Crawler dữ liệu từ trang web cung cấp
● Quản lý thông tin khách hàng
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, nhóm đã xây dựng ý
tưởng thiết kế trang web cần đạt được những mục tiêu sau:
o Đối với admin: Đảm bảo an toàn hệ thống, cung cấp tài khoản mật khẩu
để người quản trị có thể truy cập vào hệ thông quản lí, thao tác với CSDL của website Quản lí giúp cho việc theo dõi người dùng dễ dàng, nhanh chóng cập nhật được các mặt hàng, thể loại để phục vụ cho nhu cầu người dùng Quản lý cập nhật lấy dữ liệu từ trang web được crawler data
Có hệ thống chatbot trả lời nhanh chóng và tương tác hiệu quả với khách hàng Hệ thống khuyến nghị sản phẩm dành cho người mới và người dùng cũ
Trang 14o Đối với user: Có thể xem sản phẩm một cách nhanh chóng; Có thể đặt mua các mặt hàng và tiến hành thanh toán thuận tiện
o Đối với hệ thống: Website dung lượng không quá lớn, tốc độ xử lý nhanh, đảm bảo sự chính xác tránh sai sót, Ứng dụng có giao diện đẹp,
dễ sử dụng tâm lý thoải mái cuốn hút khách hàng khi sử dụng Tạo được
sự liên kết logic giữa các màn hình để khách hàng có thể chuyển màn hình một cách nhanh nhất và thuật tiện nhất Đảm bảo tính bảo mật về các thông tin nhạy cảm của khách hàng tạo cảm giác an toàn cho khách hàng
Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng
sinh viên tham gia)
Mô hình làm việc theo quy trình Scrum với các sprint kéo dài từ 01/03/2021 đến 20/06/2021 theo kế hoạch như sau:
Giai đoạn 1: Tìm hiểu phân tích nghiệp vụ và thực hiện các chức năng cơ bản
Trương Công Tấn Phát
Trần Anh Thắng
Trang 153 Sprint 3
(19/03/2021-
01/04/2021)
- Xây dựng CSDL
- Thực hiện source base
- Thực hiện các chức năng cơ bản
- Triển khai lần 1
Trương Công Tấn Phát
- Tích hợp các giải pháp đã nghiên cứu vào đồ án
Trương Công Tấn Phát
Trang 1606/06/2021) - Tiền hành sửa chữa các lỗi đã
- Tham khảo ý kiến
- Chuẩn bị slide và các câu hỏi
để biện hộ và phản biện
Trương Công Tấn Phát
Trương Công Tấn Phát
Trang 17Sinh viên 2
(Ký tên và ghi rõ họ tên)
Trần Anh Thắng
Trang 18LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ bản, các kỹ năng thực tế để có thể hoàn thành Khóa luận tốt nghiệp của mình
Để hoàn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến: Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin
Chúng em xin gửi lời cảm ơn chân thành đến thầy Mai Trọng Khang đã tận tình giúp đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho chúng em trong quá trình học tập và lập nghiệp sau này
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn bè, tập thể lớp KTPM2017 là những người luôn sẵn sàng sẻ chia và giúp
đỡ trong học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau
Trong quá trình làm khóa luận này chúng em không tránh khỏi được những sai sót, chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để khóa luận được hoàn thiện hơn
Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người
Thành phố Hồ Chí Minh, 30 tháng 06 năm 2021
Sinh viên
TRẦN ANH THẮNG TRƯƠNG CÔNG
Trang 19MỤC LỤC
Chương 1 GIỚI THIỆU CHUNG 29
1.1 Lý do chọn đề tài 29
1.2 Đối tượng nghiên cứu 30
1.3 Phạm vi nghiên cứu 30
1.4 Phương pháp nghiên cứu 31
Chương 2 KIẾN THỨC NỀN TẢNG 32
2.1 Sơ đồ kiến trúc hệ thống 32
2.2 Tổng quan về mô hình MVC 33
2.2.1 Khái niệm 33
2.2.2 Cấu trúc mô hình MVC 34
2.2.3 Luồng đi trong mô hình MVC 35
2.2.4 Tại sao dùng mô hình MVC 36
2.3 Tổng quan về Java SpringMVC 37
2.3.1 Khái niệm Java 37
2.3.2 SpringMVC 42
2.4 Hệ quản trị cơ sở dữ liệu MySQL 47
2.5 Tổng quan về Hibernate Framework 48
2.5.1 ORM 48
2.5.2 Hibernate 48
2.6 Frontend kết hợp giữa HTML + CSS + Bootstrap + jQuery 48
2.6.1 HTML 48
2.6.2 CSS 48
Trang 202.6.3 Bootstrap 49
2.6.4 Jquery 49
2.7 Tổng quan về Crawler data bằng Jsoup 49
2.8 Tổng quan về Chatbot 50
2.8.1 Chatbot là gì? 50
2.8.2 Chatbot bán hàng là gì? 51
2.8.3 Chatbot chăm sóc khách hàng là gì? 51
2.8.4 Nguyên tắc hoạt động của Chatbot 51
2.8.5 Chatbot được ứng dụng như thế nào? 52
2.8.6 Lợi ích của Chatbot 53
2.8.7 Ai nên sử dụng Chatbot 54
2.9 Tổng quan về hệ thống khuyến nghị sản phẩm 55
2.9.1 Khái niệm 55
2.9.2 Các phương pháp trong hệ thông khuyến nghị 57
Chương 3 PHÂN TÍCH HỆ THỐNG 64
3.1 Xây dựng kiến trúc hệ thống 64
3.1.1 Tổng quan khảo sát ứng dụng liên quan 64
3.1.2 Phân tích yêu cầu hệ thống 64
3.2 Phân tích thiết kế hệ thống 65
3.2.1 Sơ đồ use case 65
3.2.2 Phân tích và thiết kế CSDL 81
3.2.3 Thiết kế giao diện 88
Chương 4 MÔ TẢ CÁC TIỆN ÍCH CHỨC NĂNG 100
4.1 Chức năng khuyến nghị 100
Trang 214.1.1 Lựa chọn phương pháp 100
4.1.2 Ví dụ 101
4.2 Chức năng Chatbot 103
4.2.1 Cách làm việc 103
4.2.2 Thực hiện 103
Chương 5 KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 106
5.1 Kết quả đạt được 106
5.2 Ưu điểm 106
5.3 Nhược điểm 106
5.4 Hướng phát triển 107
TÀI LIỆU THAM KHẢO 108
Trang 22DANH MỤC HÌNH
Hình 2.1: Sơ đồ kiến trúc hệ thống 32Hình 2.2: Sơ đồ kiến trúc hệ thống khi triển khai lên Heroku 33Hình 2.3: Mô hình MVC 34Hình 2.4: Mô hình MVC pattern 36Hình 2.5: Mô hình hệ thống Complier Java 39Hình 2.6: Các phiên bản của Java 41Hình 2.7: Các JDK của Java 42Hình 2.8: Sprint Framework Runtime 43Hình 2.9: Spring MVC 46Hình 2.10: Sự phát triển và độ phổ biến của MYSQL 47Hình 2.11: Chatbot là 1 công cụ ứng dụng công nghệ AI để tương tác 50Hình 2.12: Chatbot giao tiếp với người dùng theo quy trình Translator -> Processor -> Respondent 52Hình 2.13: Chatbot được ứng dụng rất nhiều trong công việc kinh doanh bán hàng ngày nay 53Hình 2.14: Chatbot giúp giảm thiểu chi phí sale và chăm sóc khách hàng 54Hình 2.15: Chatbot được sử dụng nhiều trong ngành bán lẻ thời trang 55Hình 3.1: Mô hình Use case của hệ thống 66Hình 3.2: Sơ đồ lớp của trang web TP-Shop 81Hình 3.3: Giao diện trang chủ 1 90Hình 3.4: Giao diện trang chủ 2 90Hình 3.5: Giao diện trang chủ 3 91Hình 3.6: Giao diện đăng nhập/ đăng ký 91Hình 3.7: Giao diện đăng ký 92Hình 3.8: Giao diện danh mục và sản phẩm 92Hình 3.9: Giao diện chi tiết sản phẩm 93Hình 3.10: Giao diện giỏ hàng 94
Trang 23Hình 3.12: Giao diện tìm kiếm 95Hình 3.13: Giao diện liên hệ 95Hình 3.14: Giao diện Chatbot 96Hình 3.15: Giao diện Khuyến nghị 96Hình 3.16: Giao diện thống kê 97Hình 3.17: Giao diện quản lý đơn hàng 98Hình 3.18: Giao diện quản lý danh mục 98Hình 3.19: Giao diện quản lý sản phẩm 99Hình 3.20: Giao diện Crawler data 99Hình 4.1: Mô hình làm việc của Chatbot TP-Shop 103Hình 4.2: Thư viện mở Messenger4j 104Hình 4.3: Tích hợp thêm công cụ Chatfuel cho Chatbot 105
Trang 24DANH MỤC BẢNG
Bảng 3-1: Bảng danh sách các Actors 66Bảng 3-2: Bảng use case “Đăng nhập” 67Bảng 3-3: Bảng use case “Đăng ký” 67Bảng 3-4: Bảng use case “Xem thông tin mặt hàng” 68Bảng 3-5: Bảng use case “Xem chi tiết sản phẩm” 68Bảng 3-6: Bảng use case “Xem lại giỏ hàng” 69Bảng 3-7: Bảng use case “Xóa giỏ hàng” 69Bảng 3-8: Bảng use case “Thêm giỏ hàng” 70Bảng 3-9: Bảng use case “Cập nhật giỏ hàng” 70Bảng 3-10: Bảng use case “Tìm kiếm” 71Bảng 3-11: Bảng use case “Thanh toán” 71Bảng 3-12: Bảng use case “Phương thức thanh toán” 72Bảng 3-13: Bảng use case “Crawler data” 72Bảng 3-14: Bảng use case “Quản lý sản phẩm” 73Bảng 3-15: Bảng use case “Thêm sản phẩm” 73Bảng 3-16: Bảng use case “Sửa sản phẩm” 74Bảng 3-17: Bảng use case “Xóa sản phẩm” 74Bảng 3-18: Bảng use case “Quản lý đặt hàng” 75Bảng 3-19: Bảng use case “Quản lý tài khoản” 75Bảng 3-20: Bảng use case “Quản lý danh mục” 76Bảng 3-21: Bảng use case “Thêm danh mục” 76Bảng 3-22: Bảng use case “Sửa danh mục” 77Bảng 3-23: Bảng use case “Xóa danh mục” 77Bảng 3-24: Bảng use case “Chatbot” 78Bảng 3-25: Bảng use case “Báo cáo tổng kết” 78Bảng 3-26: Bảng use case “Doanh thu” 79Bảng 3-27: Bảng use case “Thống kê” 79
Trang 25Bảng 3-29: Bảng các tên bảng trong CSDL 82Bảng 3-30: Bảng “user” 82Bảng 3-31: Bảng “role” 83Bảng 3-32: Bảng “user-role” 83Bảng 3-33: Bảng “mausanpham” 83Bảng 3-34: Bảng “khuyenmai” 84Bảng 3-35: Bảng “chitietkhuyenmai” 84Bảng 3-36: Bảng “sizesanpham” 84Bảng 3-37: Bảng “sanpham” 85Bảng 3-38: Bảng “chitietsanpham” 85Bảng 3-39: Bảng “hoadon” 86Bảng 3-40: Bảng “chitiethoadon” 86Bảng 3-41: Bảng “danhmucsanpham” 87Bảng 3-42: Bảng “review” 87Bảng 3-43: Bảng “cosinesimilarity” 87Bảng 3-44: Bảng “recommendrating” 88Bảng 3-45: Bảng danh sách các màn hình 89
Trang 26DANH MỤC TỪ VIẾT TẮT
1 Jsp Java Scripting Preprocessor
2 API Application Programming Interface
3 CSS Cascading Style Sheets
4 HTML Hypertext Markup Language
6 XML eXtensible Markup Language
7 MVC Model-Controller-View
8 SoC Separation of Concern
9 JVM Java Virtual Machine
10 Java SE Java Standard Edition
11 Java EE Java Enterprise Edition
12 Java ME Java Mobile Edition
13 JRE Java Runtime Environment
14 JDK Java Development Kit
15 POJO Plain Old Java Object
16 IoC Inversion of Control
17 EJB Enterprise Java Bean
18 JMX Java Management Extensions
19 JDBC Java Database Connectivity
Trang 2721 ORM Object Relational Mapping
22 JMS Java Message Service
23 ACID Atomic-Consistent-Isolated-Durable
24 URL Uniform Resource Locator
25 DOM Document Object Model
Trang 28TÓM TẮT KHÓA LUẬN
Trong khóa luận này, nhóm chúng em tập trung nghiên cứu về SpringMVC, các công nghệ để xây dựng một trang web SpringMVC căn bản như Hibernate, Crawler data, … từ những kiến thức nghiên cứu nhóm đã áp dụng vào xây dựng một trang web thương mại, bên cạnh việc tìm hiểu về mô hình hệ thống SpringMVC nhóm chúng em tìm hiểu nghiệp vụ trong Thương Mại Điện Tử, kết hợp với những kiến
thức được dạy trong các năm học, nhóm chúng em xây dựng trang web TP-Shop
giúp cho người dùng có một trang web mua sắm thời nam trang nhanh chóng và hiệu quả
Bố cục của khóa luận:
Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các ứng dụng trước
Tiếp đến là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra Ngoài ra, trong chương này cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu
Chương 2: Trình bày các kiến thức nền tảng, các công nghệ sử dụng để xây dựng
trang web
Chương 3: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích
yêu cầu bài toán cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho trang web
Chương 4: Tập trung trình bày chức năng khuyến nghị và Chatbot Các kiến thức
cần nắm, đưa ra bài toán, cách chạy giải thuật, sau đó áp dụng vào trang web
Chương 5: Kết luận, rút ra được các ưu nhược điểm của trang web và hướng phát triển trong tương lai
Trang 29cả bằng hình ảnh, âm thanh Chính vì lợi ích từ Internet đã thúc đảy sự ra đời và phát triển của thương mại điện tử làm biến đổi bộ mặt văn hoá cũng như nâng cao chất lượng cuộc sống của con người các hoạt động thông thường như sản xuất, kinh doanh
và các doanh nghiệp cũng phát triển Cuộc sống con người ngày càng phát triển thì nhu cầu sống của con người cũng được nâng cao và những nhu cầu đơn giản nhưng cũng rất thiết thực Đó là nhu cầu ăn, ở và mặc đây là vấn đề cũng đang là bài toán của các nhà kinh doanh, làm sao để đáp ứng nhu cầu của con người để cải thiện đời sống ngày càng cao Chính lẽ đó để đáp ứng những nhu cầu đó của con người trên cơ
sở kế thừa những trang web bán hàng khác nhóm chúng em xây dựng nên một trang web bán hàng thời trang qua mạng để đáp ứng nhu cầu mua sắm của mọi người, giúp
họ tiết kiếm kiệm được thời gian, chi phí trong việc phải đi ra các shop, các cửa hàng hay các chợ truyền thống để mua và tìm kiếm sản phẩm Thay vào đó chỉ việc ngồi ở nhà với chiếc máy tính đã kết nối Internet mọi người có thể thỏa sức tìm kiếm, lựa chọn sản phẩm áo quần, mà mình yêu thích mọi lúc mọi nơi Giúp cho người quản trị dễ dàng trong việc phân quyền quản lí, quản lí người dùng và các đơn đặt hàng của họ
Trong những năm gần đây, với các thành tựu từ trí tuệ nhân tạo, bên cạnh sự bùng nổ của các ứng dụng nhắn tin, đang thúc đẩy sự phát triển của Chatbot một cách mạnh mẽ Các dự báo cho thấy sự tăng trưởng của Chatbot trong thời gian này đã tạo
Trang 30nên nhiều tác động tích cực tới các doanh nghiệp sử dụng chúng và dần trở thành một
xu hướng tất yếu của các doanh nghiệp, chủ hộ kinh doanh online Không những giúp giảm chi phí cho các doanh nghiệp, Chatbot còn có thể hoạt động trong các phân đoạn như tiếp thị, dịch vụ, thanh toán, truyền thông,
Bên cạnh đó để hình thức mua bán qua mạng thực sự phát triển nhờ các lợi thế vốn có thì hệ thống trợ giúp là hết sức cần thiết Hệ thống khuyến nghị sản phẩm được hình thành và phát triển không nằm ngoài mục đích đáp ứng những yêu cầu trên Một hệ thống tư vấn tốt có thể đóng vai trò trung gian giúp người tiêu dùng đưa
ra được quyết định lựa chọn hàng hóa của họ
Đó là lí do nhóm chúng em chọn đề tài “Xây dựng trang Web thời trang với các tiện ích Chatbot, khuyến nghị sản phẩm để nâng cao trải nghiệm người dùng”
1.2 Đối tượng nghiên cứu
Giao diện: Bootstrap, HTML, CSS
Đối tượng trong phạm vi đề tài hướng đến: Người dùng có nhu cầu mua sắm thời trang qua mạng Internet
1.3 Phạm vi nghiên cứu
Trang web TP-Shop được nhóm chúng em xây dựng dựa trên ngôn ngữ Java
và framework SpringMVC
Trang 3131
● Học SpringMVC5, Hibernate5
● Tìm hiểu Jsp, Jquery, Bootstrap, HTML, CSS kết hợp hệ CSDL MySQL
● Tìm hiểu về RESTful API và áp dụng vào đồ án
● Tìm hiểu về cách Crawler data vào trang web bằng jSoup, Selenium
● Cách đưa Chatbot Facebook vào trang web
● Cách deploy trang web lên Heroku
● Sử dụng Machine learning cho hệ thống khuyến nghị sản phẩm
1.4 Phương pháp nghiên cứu
Cách tiếp cận: Trang web được xây dựng dựa theo mô hình SpringMVC
Nhóm đã sử dụng các phương pháp nghiên cứu:
• Phương pháp đọc tài liệu
• Phương pháp phân tích những trang web thời trang tương tự hiện có
• Phương pháp thực nghiệm
• Nhằm giải quyết bài toán xây dựng chức năng khuyến nghị sản phẩm cho người dùng, nhóm chúng em đã nghiên cứu Machine learning để áp dụng vào
hệ thống
Trang 32Chương 2 KIẾN THỨC NỀN TẢNG 2.1 Sơ đồ kiến trúc hệ thống
Hình 2.1: Sơ đồ kiến trúc hệ thống Front-end: Sử dụng Bootstrap, HTML, CSS, …
Back-end: Java SpringMVC kết hợp Hibernate Framework
Hệ cơ sở dữ liệu: MySql
Trang 3333
Hình 2.2: Sơ đồ kiến trúc hệ thống khi triển khai lên Heroku
Cloud Platform: Heroku
Cơ sở dữ liệu: ClearDB MySql
2.2 Tổng quan về mô hình MVC
2.2.1 Khái niệm
MVC là từ viết tắt bởi 3 từ Model – View – Controller Đây là mô hình thiết
kế sử dụng trong kỹ thuật phần mềm Mô hình source code thành 3 phần, tương ứng mỗi từ Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình.[6]
Trang 34Hình 2.3: Mô hình MVC
2.2.2 Cấu trúc mô hình MVC
2.2.2.1 Tầng Model
Model (M):
Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng Bộ phận này
là một cầu nối giữa 2 thành phần bên dưới là View và Controller Model thể hiện dưới hình thức là một cơ sở dữ liệu hoặc có khi chỉ đơn giản là một file XML bình thường Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý
Thông thường, các trang web sử dụng MVC View như một phần của hệ thống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chức năng ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không
Trang 3535
có mối quan hệ trực tiếp với Controller, cũng không được lấy dữ liệu từ Controller
mà chỉ hiển thị yêu cầu chuyển cho Controller mà thôi. [6]
2.2.2.3 Tầng Controller
Controller (C):
Bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua view
Từ đó, C đưa ra dữ liệu phù hợp với người dùng Bên cạnh đó, Controller còn có chức năng kết nối với model. [6]
2.2.3 Luồng đi trong mô hình MVC
Luồng tương tác giữa các thành phần trong MVC
Ví dụ: Chức năng thêm bài viết mới trong trang quản trị trang web Nơi đây
có 2 trường nhập về tiêu đề và nội dung bài viết, thì trong đó:
View sẽ hiển thị ra phần nhập form tiêu đề và nội dung
Controller lấy dữ liệu từ 2 trường và gửi tới Model
Model lúc này sẽ nhận dữ liệu từ Controller để lưu trữ trong cơ sở dữ liệu Mỗi bộ phận thực hiện chức năng nhất định, nhưng chúng có sự thống nhất, liên kết với nhau tạo nên mô hình MVC Mô hình này tương đối nhẹ Nó có thể tích hợp được nhiều tính năng có trong Java hiện giờ Ví dụ như authentication (quá trình xác thực)
Người lập trình có thể hình dung, khi một yêu cầu từ máy client gửi tới server, Controller sẽ thực hiện nhiệm vụ của mình đó là tiếp nhận và xử lý yêu cầu Trong trường hợp cần thiết, nó có thể liên hệ Model – bộ phận làm việc với CSDL để hỗ trợ
Khi xử lý xong yêu cầu, kết quả sẽ được trả về View Tại View sẽ tạo mã HTML thành giao diện và trả về hiển thị trên trình duyệt. [6]
Trang 362.2.4 Tại sao dùng mô hình MVC
Ưu điểm của mô hình MVC
• Nhẹ, tiết kiệm băng thông: MVC không sử dụng viewstate nên khá tiết kiệm diện tích băng thông Khi sử dụng, người dùng có thể sử dụng ứng dụng trên web cần tương tác gửi và nhận dữ liệu một cách liên tục Do
đó, việc giảm băng thông giúp cho trang web hoạt động tốt và ổn định hơn
• View và size: View sẽ là nơi lưu trữ các dữ liệu Càng nhiều yêu cầu được thực hiện thì kích thước càng tệp càng lớn Khi đó, đường truyền mạng cũng giảm tốc độ load Việc sử dụng mô hình MVC sẽ giúp người dùng tiết kiệm được diện tích băng thông một cách tối ưu
Trang 37sẽ được giảm tải khá nhiều
• Đơn giản: Đây là một mô hình với kết cấu tương đối đơn giản Dù người lập trình không có quá nhiều chuyên môn cũng có thể sử dụng được. [6]
Nhược điểm của mô hình MVC:
• MVC thường được sử dụng vào những dự án lớn Do đó, với các dự án nhỏ, mô hình MVC có thể gây cồng kềnh, tốn thời gian trong quá trình phát triển cũng như thời gian trung chuyển dữ liệu. [6]
Tóm lại, MVC đang là mô hình được ứng dụng rất nhiều trong lập trình
• Hệ thống MVC phát triển tốt sẽ cho phép phát triển front – end, back – end cùng trên hệ thống mà không có sự can thiệp, chia sẻ, chỉnh sửa các tập tin trong khi một hoặc hai bên vẫn đang làm việc
• Việc sử dụng mô hình tương đối đơn giản Chỉ cần hiểu rõ quy trình vận hành, nắm được các chức năng của từng bộ phận thì việc triển khai
mô hình MVC tương đối dễ dàng. [6]
2.3 Tổng quan về Java SpringMVC
2.3.1 Khái niệm Java
Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động
Java được khởi đầu bởi James Gosling và đồng nghiệp ở Sun MicroSystem năm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem
Trang 38Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó. [7]
Đặc điểm của ngôn ngữ lập trình Java
Tương tự C++, hướng đối tượng hoàn toàn
Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trên nhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học và quen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cú pháp của
C và C++ Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính
an toàn và dễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct và union cũng được loại bỏ khỏi Java. [7]
Độc lập phần cứng và hệ điều hành
Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trường khác nhau Gọi là khả năng “cross-platform” Khả năng độc lập phần cứng và hệ điều hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân
Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau Java có riêng một bộ thư viện để hỗ trợ vấn đề này Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máy khác nhau
mà không gặp lỗi
Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau mà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine để thông dịch đoạn mã này. [7]
Ngôn ngữ thông dịch
Ngôn ngữ lập trình thường được chia ra làm 2 loại (tùy theo các hiện thực hóa ngôn ngữ đó) là ngôn ngữ thông dịch và ngôn ngữ biên dịch
Trang 39Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java
là loại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau:
Khi viết mã, hệ thống tạo ra một tệp java Khi biên dịch mã nguồn của chương trình sẽ được biên dịch ra mã byte code Máy ảo Java (Java Virtual Machine) sẽ thông dịch mã byte code này thành machine code (hay native code) khi nhận được yêu cầu chạy chương trình
Hình 2.5: Mô hình hệ thống Complier Java
Ưu điểm : Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy được trên nhiều nền tảng khác nhau Với điều kiện là JVM có hỗ trợ chạy trên nền tảng này
Nhược điểm : Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong một mức chấp nhận được). [7]
Cơ chế thu gom rác tự động
Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớ cho các đối tượng ở trên heap
Trang 40Với ngôn ngữ như C \ C++, người lập trình sẽ phải yêu cầu hủy vùng nhớ mà người lập trình đã cấp phát, để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, người lập trình không hủy một vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng chương trình
Ngôn ngữ lập trình Java hỗ trợ cho người lập trình điều đó, nghĩa là người lập trình không phải tự gọi hủy các vùng nhớ Bộ thu dọn rác của Java sẽ theo vết các tài nguyên đã được cấp Khi không có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ tiến hành thu hồi vùng nhớ đã được cấp phát. [7]
Đa luồng
Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng priority…).[7]
Tính an toàn và bảo mật
Tính an toàn
• Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu
• Dữ liệu phải được khai báo tường minh
• Không sử dụng con trỏ và các phép toán với con trỏ
• Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi Không cho phép sử dụng các kỹ thuật tràn Do đó các truy nhập sẽ không vượt quá kích thước của mảng hoặc chuỗi
• Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động
• Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn
Tính bảo mật
Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau
• Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện mà lớp cung cấp