Sử dụng để truy cập một số phương thức của hệ thống, từ Software Development Kit, La các công cụ và phần mềm dùng dé phát triển ứng dụng thông qua một nền tảng nhất định Internet Informa
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
HO QUOC TUAN
HOANG THI THANH
KHOA LUAN TOT NGHIEP
XAY DUNG UNG DUNG WEBSITE BAN VAN PHONG PHAM VA SU DUNG THUAT TOÁN APRIORI DE GOI Ý
MUA HANGBuild a website for selling stationery and using Apriori algorithm for purchase suggestion
KY SU/ CU NHAN NGANH HE THONG THONG TIN QUAN LY
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
HO QUOC TUẦN - 17521211
HOANG THỊ THANH - 17521045
KHÓA LUẬN TÓT NGHIỆP
XÂY DỰNG UNG DUNG WEBSITE BAN VAN PHÒNG PHAM VÀ SỬ DỤNG THUẬT TOÁN APRIORI DE GỢI Ý
MUA HÀNG
Build a website for selling stationery and using Apriori algorithm for purchase suggestion
KY SU/ CU NHAN NGANH HE THONG THONG TIN QUAN LY
GIANG VIEN HUONG DAN Ths MAI XUAN HUNG
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4ĐHQG TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày tháng năm 2021
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CÁN BỘ HƯỚNG DAN)
Tên khóa luận:
XÂY DUNG UNG DỤNG WEBSITE BAN VAN PHONG PHAM
VA SU DUNG THUAT TOAN APRIORI DE GOI Y MUA HANG
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Hoàng Thị Thanh 17521045 ThS Mai Xuân Hùng
Hồ Quốc Tuan 17521211
Đánh giá Khóa luận
1 Vé cuôn báo cáo:
Số trang 115 Số chương 5
Số bảng 69 Số hình 93
Số tài liệu tham khảo 12 Sản phẩm 1
Trang 52 Về nội dung nghiên cứu
3 Về chương trình ứng dụng
4 Về thái độ làm việc của sinh viên
Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp
kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình
Điểm từng sinh viên:
Hoàng Thị Thanh /10
Hồ Quốc Tuan /10
Nguoi nhan xét (Ký tên và ghi rõ ho tên)
Trang 6ĐHQG TP HÒ CHi MINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Tên khóa luận:
XÂY DỰNG UNG DUNG WEBSITE BAN VĂN PHONG PHAM
VÀ SỬ DỤNG THUẬT TOÁN APRIORI DE GOI Ý MUA HANG
Nhóm SV thực hiện: Cán bộ phản biện:
Hồ Quốc Tuấn 17521211 ThS Vũ Minh Sang
Hoàng Thị Thanh 17521045
Đánh giá Khóa luận
1 Vé cuôn báo cáo:
Số trang 115 Sốchương 5
A 6 hình 9
Số bảng 69 Số hìh 93
Sảnphâm 1
Số tài liệu tham khảo 12
Một số nhận xét về hình thức cuốn báo cáo:
Trang 72 Về nội dung nghiên cứu:
3 Về chương trình ứng dụng:
4 Về thái độ làm việc của sinh viên:
Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp
kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình
Điểm từng sinh viên:
Hoàng Thị Thanh /10
Hồ Quốc Tuấn 0
Người nhận xét (Ký tên và ghi rõ họ tên)
Trang 8LỜI CẢM ƠNKhoảng thời gian bốn năm học tập tại Trường Đại học Công nghệ thông
tin đã giúp chúng em học hỏi được rất nhiều điều, từ những bài học vỡ lòng,
những kiến thức chuyên môn và những lời khuyên bổ ích Khóa luận tốt nghiệp
với dé tài “Xây dựng ứng dụng website bán văn phòng phẩm va sử dụng thuậttoán Apriori để gợi ý mua hàng” được ra đời là kết quả của việc vận dụng kiến
thức đã học, sự tìm tòi, học hỏi cái mới, bên cạnh đó là sự nhiệt tình hướng dẫncủa thầy cô, sự giúp đỡ và hỗ trợ từ gia đình và bạn bè chính là động lực lớn
giúp chúng em hoàn thiện khóa luận này Một cách đặc biệt, nhóm chúng em
xin được gửi lời cảm ơn chân thành đến:
Các thầy cô trường Đại học Công nghệ thông tin nói chung và các thầy cô
trong Khoa Hệ thống thông tin nói riêng đã tận tình truyền đạt kiến thức tới
chúng em trong những năm học tập tại trường Đó là tài sản quý báu đã giúp
chúng em hoàn thành khoá luận và cũng là hành trang cho con đường sự nghiệp của bản thân sau này.
Chúng em xin được gửi lời cảm ơn sâu sắc tới Ths Mai Xuân Hùng, người
trực tiếp hướng dẫn, đã luôn tạo điều kiện tốt nhất cho nhóm và giúp đỡ chúng emnhững lúc gặp khó khăn đề chúng em có thé hoàn thành khóa luận đúng tiến độ
Xin gửi lời cảm ơn đến bạn bè đã giúp đỡ, chia sẻ những kinh nghiệp quýbáu và ủng hộ nhóm trong quá trình thực hiện đề tài
Cuối cùng xin gửi lời cảm ơn đến gia đình, những người đã tạo điều kiện tỉnhthần, vật chất cho nhóm trong quá trình học tập và nghiên cứu
TP Hồ Chí Minh, ngày 05 tháng 07 năm 2021
Nhóm tác giả
Trang 9MỤC LỤC
Chương 1 MỞ ĐẦU 2 2222222222E2522222211122221122271112771112171112 2.111 ce 3
1.1 Giới thiệu đề tài -22222c222v 2222112222112 c1 cre 31.2 Lý do chọn đề tài :22++222v2+t2222312222111222111122211112271111 21111 xe 4Chương 2 TONG QUAN DE TÀI 222¿222222+22222E2222E2EE2EEEerrtrrkrcree 5
DL MUC Ti6U ố 5 2.2 PAM View a 5 2.3 Phương pháp thực hiỆn - + + S111 HT HH rêc 72.4 Ý nghĩa thực tiễn 2 22+-22S++222222121222111122771122271112227111 22.11 cv 72.5 Kết quả dự kiến .22: 2222222221111222111122711122771122.201112.1 2 eree 72.6 Hiện trạng bài tOán ¿+ - St 2 121211112121 1111110121200 0 01g00 ty 8
2.7 Hướng giải QUYẾT -22c:22222222222222222211222221111222111122221111.2111 1.2111 E11 ce 9Chương 3 KIÊN THỨC NEN TẢNG -ccccccz+22Evcvevecrrrrrrrrrrer 03.1 Thuật toán sử dụng
3.1.1 Thuật toán khai phá luật kết hợp Apriori -¿©2scc+ccsscee 0
knnn‹4 0 0 3.1.1.2 Tiêu chí chọn minsupp, minCOnÏ -++ ++-+x+c++xrrxer 2 3.1.1.3 Các bước thực hiện
3.1.1.4 Đánh giá thuật toán -. ¿- + ccc+ctetetereterkerierirerrrree 5
Trang 10K5.) 26 3.2.6 Identity
Kon 28
3.2.8 Azure SQL database
3.2.9 Azure App Service va App Service Plan - s5 555c+c+ccss+ 31
Chương 4 DỰNG WEBSITE BAN VAN PHONG PHAM
4.1 Phân tích yêu cầu hệ thOng ccccccssssesssssssesssssssesssssseessssssesesssssessssssesesssseeeeessne334.1.1 Phân tích yêu cầu chức năng
4.1.1.1 Yêu cầu lưu trữ cccccrrtrrttrrrrrrrrrrrrirriiiiiiiiriiiirrrirrrree 334.1.1.2 Yêu cầu về tính năng -¿¿22¿2222+++222vvzvcvEvvvrrrrrrrrrrrrrer 344.1.2 Phân tích yêu cầu phi chức năng ¿ vc+++z+2tcvvvvverrrrrrrr 344.1.3 Phân tích yêu cầu người dùng -::¿¿£2222vv+crtttrrrrrrrrrrrrrrrr 34
4.1.3.1 Mô hình Use case toàn hệ thống ¿ ©22z222+zz+cczs+ 354.1.3.2 Danh sách các AC{OFS ¿- - 5+ Ssxseetsrererrrerrrrrrrrrir DD, 4.1.3.3 Danh sách các Use Case - 55c csccsxseseererererscr TỔ
4.2 Phân tích thiết kế hệ thống -2¿:©222++22ES+++2EEEE+rttEEEEvrrtrrrrrrrrrrer 384.2.1 Thiết kế xử lý những chức năng chính ¿ 252552 384.2.1.1 So đồ hoạt động chức năng Đăng nhập -: 22 384.2.1.2 So đồ hoạt động chức năng Dang ký tài khoản -.- 42
4.2.1.3 Sơ đồ hoạt động chức năng Tìm kiếm sản phẩm - - 444.2.1.4 Sơ đồ hoạt động chức năng Đặt hàng -cccs⁄ 46
4.2.1.5 Sơ đồ hoạt động chức năng Quản lý thông tin người dùng 484.2.1.6 Sơ đồ chức năng Bình luận sản phẩm - -:55+ 504.2.1.7 Sơ đồ hoạt động chức năng Quản lý tài khoản .- 53
Trang 114.2.1.8 Sơ đồ hoạt động chức năng Quản lý đơn hàng .- 574.2.1.9 Sơ đồ hoạt động chức năng Quan lý giỏ hàng
4.2.1.10 Sơ đồ hoạt động chức năng Quản lý kho . -s+ 654.2.1.11 Sơ đồ hoạt động chức năng Quản lý khuyến nghị
4.2.1.12 Sơ đồ hoạt động chức năng Quên mật khẩu .- 73
4.2.1.13 Sơ đồ chức năng Quản lý thống kê doanh thu
4.2.2 Thiết kế cơ sở đữ liệu ::cccc 2222222221222 re 714.2.2.1 Lược đồ cơ sở đữ liệu
4.2.2.2 Mô tả các bảng dữ liệu 5< St tt ưêc 78
4.3 Triển khai hệ thỐng - -¿ 222222E2+++22E222+tEEESEvtEEEEvrertrrvrrrrrrkrrrerrrei 964.3.1 Kiến trúc hệ thống tổng th -+ccc+e+22EEErvrvrrrrrrrrrrrrrrerrrri 964.3.2 Kiến trúc hệ thống Web -¿ 2222222222212 re 97
4.3.3 Thiết kế giao dit csccsccsssccsssssseessssseessssssesssssssecssssiseesesssseesssssecsssseesesssseeee 974.3.3.1 Danh sách man hình - - ¿5+ x2 ‡£vEvxeEexstetevevrerrrerexee 974.3.3.2 Một số màn hình của trang web -cz+22ccvvsccccczee 00Chương 5 KET LUẬN VÀ HƯỚNG PHAT TRIÉN . : - + 14
5.1 Kết quả đạt được 22s: 2221112222112 212111 1111.1111 e recrrei 14
LH 0 00 18 15
cm nh ốẽ (£dqẬằậẬH)Hậ) 15
5.3 Hướng phát tridin cccscccscssssesscssssessssssecessssuesessssusesssssesessssessessssecsesssseseessseess 15
TÀI LIEU THAM KHAO\ sssscsssssssscsssssescssssscsssssssecsssiucscsssiscesssiscesssuecssstesessseess 16
Trang 12DANH MỤC HÌNH
Hình 3.1: Hình ảnh logo của HTML Õ ¿+ +52 ‡v£vxvEeveteterrererrrevee 17
Hình 3.2: Hình ảnh về CSS2 2 -2222-2222+22222211222211112212112221111E211ecrer 17Hình 3.3: Hình ảnh logo Javascript St 1k Sun 18
Hình 3.4: Logo bootstrap 5c S2 S223 12 9 221711311 121101111111 xe 19
Hình 3.5: Các phiên bản của ASP.NET Core và nền tảng thực thi 20Hình 3.6: Mô hình MVC cà HH HH nu 21
Hình 3.7: Ba khái niệm khác nhau - ¿652232 S33 SE ££E+t+eE+vEeteeEeereseereserszee 22Hình 3.8: Minh họa các DI làm việc va inject các dependency cho mô đun cấp cao
— 23
Hình 3.9: Các ứng dụng, hệ điều hành được hỗ trợ sử dung EF Core 24Hình 3.10: Các các tiếp cận của Entity Framework COre - : -:css+ 25Hình 3.11: Cách làm việc của SignalR - + 55+5c+c+ccscccecxseee 27Hình 3.12: Sơ đồ hoạt động của hangfire -ccc:++2222vcvvvrrrrrrrrrrrrrerree 30Hình 3.13: Bảng điều khiển phân tích SQL trên hệ thống Azure - - 31
Hình 3.14: Sơ đồ vị trí của App Service và App service plan 32
Hình 4.1: Sơ đồ UC chức năng đăng nhập -. -¿¿++z++222+ze+zrzxzresrr 38
Hình 4.2: Đăng nhập với bên thứ 3 ¿+ ¿5+ +‡tscx+tsrkerrtererrrkrrrkrrver 39
Hình 4.3: Đăng nhập bằng tài khoản hệ thống ¿¿2c++225+ccz+ccssce2 40Hình 4.4: Sơ đồ UC đăng ký tài khoản 222222 2222222 EErerrrtrrerrrrrrrrrr 42Hình 4.5: Đăng ký với hệ thống -©2222222+t222222 E211 re 43Hình 4.8: Tìm kiếm thông tin sản phẩm . :-¿¿£©+z++222vvcz+evvsvrerz 45
Hình 4.9: Sơ đồ UC đặt hàng „46Hình 4.10: Sơ đồ hoạt động chức năng đặt hàng 7
Hình 4.11: Sơ đồ UC quản lý thông tin người dùng 8Hình 4.12: Sơ đồ chức năng cập nhật thông tin người dùng 49
Hình 4.13: Sơ đồ chức năng xem thông tin người đùng - 2 50
Hình 4.14: Sơ đồ UC đánh giá, bình luận sản phẩm - -72c55cccc+2 50Hình 4.15: Sơ đồ chức năng đánh giá sản phẩm -¿©2+cz+222sz+z+rz 51
Trang 13Sơ đồ chức năng bình luận sản phẩm -.: ¿©5552 52
Sơ đỗ UC quản lý tài KHOA v eecccccccsssssesssssssesssssseceessssesesssseceessseeseessseeees 53
Sơ đồ chức năng thêm tài khoản -:¿52222vvvcvetrtrvrrreercee 54
Sơ d6 chức năng tìm kiếm tài khoản - -2¿5225+c+eccvsvcecrz 54
Sơ đỗ chức năng xóa tài khoản 2¿-©++z+22+z+z£E2E+zerrrrxeerrrr 55
Sơ dé chức năng xem thông tin tài khoản -.- ¿z2 55
Sơ đồ chức năng khóa tài khoản - 2222©222z+c2222vzceccvseresrr 56
Sơ đồ UC quản lý đơn hàng của A dmin - : 255c:5255scescz 57
Sơ đồ UC quản lý đơn hang của Quản kho - - -=+5s<+ 57
Sơ đồ UC quản lý đơn hàng của Shipper -ccc:-525cccccccce2 58
Sơ đồ UC quản lý đơn hàng của khách hàng -= 58
Sơ đồ chức năng xem đơn hàng -+£222222v2ccr+trcrvvxee 59
So dé chức năng hủy đơn hang 60
So dé chức năng thêm đơn hàng
Hình 4.30: Sơ đồ UC chức năng quản lý giỏ hàng 62
Hình 4.31: Sơ đồ chức năng thêm sản phẩm vào giỏ hàng „603
Hình 4.32: Sơ đồ chức năng cập nhật thông tin trong giỏ hàng 64Hình 4.33: Sơ đồ UC quản lý kho hàng của quản kho - ¿©c5sccz 65
Hình 4.34: Sơ đồ UC chức năng quan lý kho hàng của Admin 65
Hình 4.35: Sơ đồ chức năng thêm phiếu yêu cầu nhập kho - 66Hình 4.36: Sơ đồ chức năng xem sản phẩm tồn kho . -72cccccccc+2 67Hình 4.37: Sơ đồ chức năng cập nhật số lượng sản phẩm đã nhập của phiếu nhập
ANY 67Hình 4.38: Sơ đồ chức năng xem đơn nhập hàng ¿+2 68
Hình 4.39: Sơ đồ chức năng từ chối yêu cầu nhập hàng - 68
Hình 4.40: So đồ chức năng duyệt phiếu yêu cầu nhập hàng -. - 69Hình 4.41: Sơ đồ UC quản lý khuyến nghị cho Admin -z+ 69
Hình 4.42: Sơ đồ UC quản lý khuyến nghị đối cho khách hàng 70Hình 4.43: Sơ đồ UC quản lý khuyến nghị cho Quản kho - 70
Trang 14Hình 4.44: Sơ đồ chức năng xem sản phâm khuyến nghị - - 71
Hình 4.45: So đồ chức năng xem gợi ý sản phẩm - 2-22 72
Hình 4.46: Sơ đồ chức năng thực hiện thuật toán đề tìm luật kết hợp 72Hình 4.47: Sơ đồ UC chức năng quên mật khẩu : :2+2:5scez+ 73
Hình 4.48: Sơ đồ hoạt động chức năng quên mật khẩu -+ 74
Hình 4.49: Sơ đồ UC thống kê doanh thu 222222++z222222vvvzrrrrrrrrrrrer 75Hình 4.50: Sơ đồ chức năng thống kê doanh thu - ¿©2225 76Hình 4.51: Mô hình quan hệ của hệ thống - 2£©222++2222+zz+ccvsvrerr 78
Hình 4.52: Kiến trúc tổng thé của hệ thống -z£©22222cc+z++ccczvxe+ 96
Hình 4.59: Giao diện bình luận san pham 03
Hình 4.60: Giao diện gio hang 103
Hình 4.61: Giao diện đặt hang - ¿SE HH 04Hình 4.62: Giao diện thanh toán bằng ví Momo 2cz£222vscc+2 04Hình 4.63: Giao diện theo dõi đơn hàng cho khách hàng - - ++-++ 05
Hình 4.64: Giao diện quản lý thông tin cá nhân của khách hàng 05Hình 4.65: Giao diện bảng điều khiển cho quản trị viên .-: -s+ 06
Hình 4.66: Giao diện xem đơn hàng mới cho quản trị viên -‹- 06Hình 4.67: Giao điện danh sách các sản phẩm khuyến nghị cho quản trị viên 07
Hình 4.68: Giao diện quản lý thống kê -V2VV222222222222++rrrrttrrrrrrrrrr 07
Hình 4.69: Giao diện thống kê doanh thu theo năm -cz-+++ 08Hình 4.70: Giao diện quan lý tài khoản nhân viên -¿- ¿5-5 +5+5+s+c+s+xe+ 08
Hình 4.71: Giao diện quản lý thông tin khuyến mại cho quản trị viên 09
Hình 4.72: Giao diện cập nhật lại thông tin khuyến mại cho quản trị viên 09
Trang 16DANH MỤC BANG
Bảng 3.1:Bang lượt mua sản phẩm trong đơn hàng ¿+55 sscsxsesererersee 14
Bang 3.2: Bảng tập phổ biến 1 phần tử -22c22cc+2222EEvvvrrrrrrrrrrrrrrrree 14 Bảng 3.3: Bảng tập phô biến 2 phần tử - 2 222222222+t222ESzvetvExvrrerrrrrrrrrr 14
Bảng 3.4: So sánh kết quả thực hiện thuật toán tại các tham số khác nhau 16
Bảng 4.1: Danh sách các actor trong hệ thống ¿7c55ccvccvsccsrrssccc 3Õ) Bảng 4.2: Bảng tóm tắt các Use Case 2222222222222 221 re 37 Bang 4.3: Mô tả Use case Đăng nhập - + ¿52 SE 39 Bảng 4.4: Nguyên tắc thực hiện Use case Đăng nhập - ¿c2 Al Bang 4.5: Mô ta Use case Dang ký tài khoản «55s cccsccsrererxerrrrerrer 42 Bang 4.6: Nguyên tắc thực hiện Use case Dang ký tài khoản 44
Bảng 4.7: Mô tả Use case Tìm kiếm sản phẩm Bang 4.8: Nguyên tắc thực hiện Use case Tìm kiếm sản phẩm - 46
Bảng 4.9: Mô ta Use case Đặt hàng - 5:52 22222222 46 Bang 4.10: Nguyên tắc thực hiện Use case Dat hàng -: -2 48 Bảng 4.11: Mô tả Use case Quản lý thông tin người dùng -. - 49
Bang 4.12: Nguyên tắc thực hiện Use case Quản lý thông tin người dùng 50
Bang 4.13: Mô tả Use case Đánh giá bình luận sản phẩm - 5
Bảng 4.14: Nguyên tắc thực hiện Use case Bình luận sản phẩm 52
Bang 4.15: Mô ta Use case Quản lý tài khoản + scssveerrrrrerrrree 53 Bang 4.16: Nguyên tắc thực hiện Use case Quản lý tài khoản 56
Bảng 4.17: Mô tả Use case Quản lý đơn hàng ¿c6 + c+rrekererrek 59 Bang 4.18: Nguyên tắc thực hiện Use case Quản lý don hàng 62
Bảng 4.19: Mô tả Use case Quản lý giỏ hàng „603 Bang 4.20: Mô tả Use case Quản lý kho Ó6 Bảng 4.21: Nguyên tắc thực hiện Use case Quản lý kho 69
Bảng 4.22: Mô tả Use case Quản lý khuyến nghị 2¿22222cc2ccvzzcesrr 70 Bảng 4.23: Nguyên tắc thực hiện Use case Quản lý khuyến nghị - 73
Bảng 4.24: Mô tả Use case Quên mật khẩu -2¿2vzz+222vvre+cvvsrreerr 74
Trang 17Nguyên tắc thực hiện Use case Quên mật khẩu ccccccccee 75
Nguyên tắc thực hiện Use case Quan lý thống kê doanh thu 75
Mô tả Use case Quản lý thông kê doanh thu -c-+-+-++ 76
Bang Bann€Ts ¿5-5 + 5c S111 2 TT 121 1211212121 0111212 rên 78 Bảng Biill cà n nt tre 78 Bảng BillDetail 55t 2t re 79
Bảng CAaT(Ï(€INS, 6 E121 1 3 1912171211111 T HH0 ti 79
09,0 ÔÔỒ'Ô 79 Bảng COImmETI( 5-5-5 525525 S‡E*EEE2E2EEEEESEEEEEESEEErrkrkrrrrrrerkree 80
Bang Delivery Ad(T€Ss Sàn 12k SH HH vưy §0
Bảng Districts + Sàn” gu 81 Bang ExportWarehouse cccccesseeeesesesesseseseseseseesesesesrsneeasseeseseeaeee 81
Bang ImportWarehouse 81
Bang ImportWarehouseDetail 82
Bang MoMoPayment „82 Bang Notification „83
Bảng NotificationTypeld „83
40)" đố 85 Bang Orderetail - - c6 S22 E2 2 22121011111 rke 85 Bảng PaypalPayImenn( ‹ xà nén HH it §6
Bảng Product 5 5252222223232 212121 1111121212101 re 86
Bang Productletail ¿+ + St E1 HH1 10101 1 rên 87 Bang Productlmages c.ccsesssessssesescsesesseseseseseseesesescsssneseaeseesseeeseae 87 Bang PTOVIIC€S tt it 88
Bảng Rating Sàn HH HH ng it 88
Bang RatinglDetaill -¿- 5-5 2+ St HH Hư 88 Bảng ReceiptR€qU€S( - - càng it 89
Bang ReceiptRequestDetail - 555552 Sc+2+xcssrretererrrerree 89
Bang Recommendation - -¿-¿- ¿5S S2 S*£‡+‡Eekezeererererrkrxee 89
Trang 18Bảng S€S 2 2S 212212 2222121221122 111 re 94
Bảng Wards - Làn HH giờ 94 Bảng WorkflowHistory 5-55: 2S strsetetererrrrrrererrrrree 95
Bảng UserConnectiOn 5525 S+St2*‡+‡+2sexextkerrrerrerererreee 95
Bảng UserConnectionDetail -¿- 5-5 <5 St+x+x+Eexererkrkekererrkree 96 Danh sách màn hình -¿ - 55+ 5+ 5222S£+£2£+tzE+Eexererrtzrererreree 99
Trang 19DANH MỤC TU VIET TAT
Y nghia
Document Object Model La mot chuẩn được định nghĩa bởi
W3C (Tổ Chức Web Toàn Cầu — World Wide WebConsortium) DOM được dùng dé truy xuất và thao tác trên các
Application Programming Interface, Giao diện lập trình ứngdụng Sử dụng để truy cập một số phương thức của hệ thống, từ
Software Development Kit, La các công cụ và phần mềm dùng
dé phát triển ứng dụng thông qua một nền tảng nhất định
Internet Information Services, chính là các dịch vụ dành cho
máy chủ chạy trên nền hệ điều hành Window nhằm cung cấp và
User Interface: là những gi chting ta nhìn thấy va giao tiếp với
Asynchronous JavaScript and XML Day là một bộ các kỹ thuậtthiết kế web giúp cho các ứng dụng web hoạt động bat đồng bộ
— Xử lý mọi yêu câu tới server từ phía sau mà không cân tải lại
AJAX
cả trang web.
DNS Domain Name System là hệ thống phân giải tên miền
Trang 20TÓM TÁT KHÓA LUẬN
Khóa luận tốt nghiệp với dé tài 'Xây dựng ứng dung website bán văn phòng
phẩm và sử dụng thuật toán Apriori để gợi ý mua hang’ tập trung vào việc tim hiểu,
nghiên cứu và phân tích thực trạng những website hiện tại và xây dựng một website
mới, học hỏi những ưu điểm và khắc phục các khuyết điểm của các website cũ Đâycũng là cơ hội để vận dụng những kiến thức đã học vào bài toán thực tế, tìm tòi, học
hỏi những công nghệ mới phù hợp với khóa luận.
Nhóm đã áp dụng mô hình thác nước trong quá trình nghiên cứu và phát triển
website Ở giai đoạn đầu, nhóm tiến hành nghiên cứu tìm hiểu lý thuyết về cách
phát triển website bằng ASP.NET CORE, HTML, CSS, Javascript, Jquery,
Bootstrap, Entity Framework Core, kỹ thuật lập trình Dependency Injection và cácthư viện SignalR, Identity, Hangfire Ở giai đoạn tiếp theo, nhóm thực hiện phân
tích va thiết kế các chức năng cho website, thiết kế cơ sở đữ liệu ban đầu Ở giai
đoạn thực hiện, nhóm tiến hành thiết kế giao diện và hoàn thiện website Trong giaiđoạn vận hành, website đã được triển khai lên Azure sử dụng các dịch vụ Azure
SQL Database, Azure App Service và App Service Plan.
Phần cuối cùng của khóa luận là trình bày kết quả đạt được, đưa ra kết luận
và hướng phát triển cho website trong tương lai
Trang 21Chuong 1 MỞ DAU
1.1 Giới thiệu đề tai
Van phòng phẩm là những vật phẩm phục vụ cho các hoạt động văn phòng, họctập của học sinh, sinh viên, Ngành kinh doanh văn phòng phẩm là một ngành
thiết yếu trong cuộc sống, có tiềm năng nhờ thị trường lớn, nhu cầu lớn đến từ các
em học sinh, sinh viên và các văn phòng Các sản phẩm văn phòng pham đang ngàycàng phong phú, đa dạng, đáp ứng nhu cầu học tập, làm việc và sáng tạo của người
tiêu dùng.
Các doanh nghiệp kinh doanh văn phòng phẩm có những điều kiện thuận lợi
nhất định để phát triển mạnh mẽ Để tăng sức cạnh tranh, bên cạnh việc bài trí cửahàng hợp lý, đẹp mắt, cung cấp các sản phâm da dang đề thu hút người mua, nhiều
cửa hàng đã và đang ứng dụng công nghệ thông tin vào việc quản lý, bán hàng để
tăng hiệu quả kinh doanh và giảm chi phí quản lý.
Theo danh sách số lượng người sử dụng Internet của các quốc gia năm 20211, Việt
Nam hiện có khoảng 74 triệu người sử dụng Internet, chiếm 76.1 % tổng dân số Đây
sẽ là lợi thế lớn với các doanh nghiệp tiếp cận được lượng người dùng này
Việc ứng dụng công nghệ thông tin đã tạo ra những lợi thế canh tranh cho ngành
kinh doanh văn phòng phẩm, đồng thời tạo ra những cơ hội cho ngành công nghệ
thông tin khi vẫn còn nhiều những doanh nghiệp chưa có cho riêng mình trang web
để quảng bá và hỗ trợ việc mua bán, quản lý Chính vì vậy, nhóm đã quyết định lên
ý tưởng và thực hiện đề tài với mong muốn đưa công nghệ thông tin ứng dụng
nhiều hơn nữa vào đời sống, cụ thể là trong ngành kinh doanh văn phòng phẩm
' Danh sách từ nguồn World Internet Users: https://www.internetworldstats.com/stats3.htm
Trang 221.2 Lý do chọn đề tài
Xuất phát từ sự yêu thích đối với những cuốn sách, những món đô đáng yêu
được bài trí trong các cửa hàng văn phòng phẩm, nhóm đã ghé thăm một số websitebán văn phòng phẩm dé tìm hiểu và nhận thấy rằng, ngoài những của hàng thực sự
lớn như Fahasa mới có website chính thức đáp ứng đầy đủ những chức năng cần
thiết và đem lại trải nghiệm tốt nhất cho người dùng, hầu hết các website mà nhómtìm hiểu đều có những khuyết điểm riêng Nhóm mong muốn có thể dùng khả năng
và hiểu biết của minh dé xây dựng một trang web đáp ứng các chức năng cơ bản và
khắc phục những khuyết điểm mà nhóm đã trải nghiệm, xa hơn nữa là đưa sản
phẩm đến với những doanh nghiệp vừa và nhỏ dé góp phan tin học hóa những
doanh nghiệp chưa có cơ hội để ứng dụng công nghệ thông tin vào doanh
nghiệp/cửa hàng của mình.
Trang 23Chương 2 TONG QUAN DE TÀI
2.1 Mục tiêu
Đề tài hướng đến việc xây dựng một website bán hàng và quản lý cửa hàng cơ bảnnhắm đến đối tượng là các cửa hàng văn phòng phẩm ở quy mô trung bình, có chỉ
phí đầu tư website bán hàng ở mức vừa phải Website không chỉ là nơi để khách
hàng có thể ghé thăm và đặt hàng online mà còn có khả năng giúp chủ cửa hàng
quản lý cửa hàng bao gồm việc bán hàng, quản lý hàng tồn kho và nắm bắt các
thông tin giao hàng.
Ngoài ra, ứng dụng cũng là nơi sinh viên áp dụng những kiến thức đã học về xây
dựng website, các bài toán khai thác dữ liệu cũng như học hỏi những công nghệ
mới.
2.2 Phạm vi
Đề tài tập trung vào xây dựng website bán hàng với các chức năng chính:
a Admin:
- Thêm, xóa, sửa, tim kiếm thông tin sản phẩm
- Xem thống kê doanh thu, thống kê lượng hàng nhập vào, bán ra theo mốc thời
gian, theo loại sản phẩm, theo danh mục sản phẩm
- Quản lý khuyến mãi
- _ Xem khuyến nghị sản phẩm nên nhập (sử dụng thuật toán Appriori để tính toán)
- _ Xem thông tin kho
- Nhận thông báo khi có đơn hang mới đặt, hàng nhập kho
- _ Thêm, xóa tài khoản của nhân viên
- Xem, thay đổi thông tin cá nhân
- Duyệt yêu cầu nhập xuất kho
- _ Xem thông tin nhập xuất kho
- Quản lý đơn hàng
- Quản lý hóa đơn
Trang 24Khách hàng
Đăng ký, đăng nhập tài khoản
Tìm kiếm danh sách sản phẩm
Goi ý san pham (Sử dụng thuật toán Apriori)
Thêm vào giỏ hàng
Thay đổi số lượng sản phẩm
Xem thông tin đơn hàng nhập kho/xuất kho
Tạo yêu cầu nhập xuất kho
Xem, thay đổi thông tin cá nhân
Tạo phiếu nhập kho, phiếu xuất kho
Shipper
Xem thông tin đơn hang
Xem, thay đồi thông tin cá nhân
Cập nhật trạng thái đơn hàng (hàng giao cho khách)
Trang 252.3 Phương pháp thực hiện
Đề tài được thực hiện bằng cách tìm hiểu, đánh giá các giải pháp đã có, tìm ra
những điểm hay, phù hợp với đề tài dé kế thừa, những nhược điểm đề cải tiền Cáctính năng mới sẽ được bé sung dé website được hoàn thiện hơn và đáp ứng như cầu
sử dụng thực tế của người dùng
Mô hình thác nước được ứng dụng vào quá trình xây dựng và phát triển website
Các giai đoạn được phân chia rõ ràng Các công nghệ mới hữu ích với dự án sẽ
được xác định và tìm hiểu ở giai đoạn đầu và ứng dụng trong suốt quá trình phát
triển
2.4 Ý nghĩa thực tiễn
Website sẽ là cầu nói đưa của hàng đến với khách hàng gan hon, xây dựng môi
trường nơi những người mua có thé khám phá, tìm hiểu các sản phẩm của cửa hang
và có cái nhìn khách quan nhất về các sản phẩm thông qua các nhận xét, đánh giá từkhách hàng đã sử dụng sản phẩm
Sử dụng website cũng là một cách dé tiết kiệm chi phí quản lý, vận hành cũng như
tối ưu hóa hiệu quả kinh doanh nhờ khai thác được tiềm năng từ các khác hàng sử
dụng mạng Internet.
2.5 Kết quá dự kiến
Hiểu rõ về cách hoạt động của các framework, công nghệ được sử dụng như
Identity, Entity Framework, Dependency Injection va ứng dụng một cách hợp lý
vào quá trình xây dựng website.
Xây dựng website với đầy đủ chức năng đã được thiết kế, có độ hoàn thiện cao,
giao diện thân thiện với người dùng, có khả năng mở rộng và sẵn sàng đưa vào môitrường thực tế
Trang 262.6 Hiện trạng bài toán
Hiện nay, cùng với sự phát triển của công nghệ hiện đại và mạng Internet,việc ứng
dụng công nghệ thông tin vào quản lý và mua bán thông qua các website các hệ
thống quản lý đang ngày càng phổ biến Bên cạnh đó, dịch bệnh đang trong diễn
biến phức tạp, các cửa hàng đang hạn chế nơi đông người Lúc này các website đãcho thay sự cần thiết dé người tiêu dùng và các chủ cửa hàng kết nối với nhau mộtcách dễ dàng và an toàn hơn Tuy nhiên, theo tìm hiểu của nhóm, các website của
các cửa hàng vừa và nhỏ tuy đáp ứng được một số yêu cầu cơ bản nhưng vẫn còn
nhiều hạn chế Để phục vụ mục đích nghiên cứu cho khóa luận, nhóm đã trải
nghiệm thực tế trực tiếp sử dụng các website của một số cửa hàng văn phòng phẩm
Sau khi trải nghiệm các trang web trên, nhóm đã đưa ra một số nhận xét như sau:
Hau như các website đều có giao diện đẹp mắt, thân thiện với người dùng, các danh
mục phong phú Tuy nhiên, nhóm nhận thấy còn nhiều bat cập, có thé kề đến như:
- _ Đặt hàng không cần đăng nhập: Đây là một tinh năng tiện lợi với những khách
hàng yêu cầu quá trình nhanh, gọn, nhưng khách hang không thé xem lại thông
tin đặt hàng, không thé hủy hàng nếu có nhu cầu
- Phương thức thanh toán mặc định là thanh toán khi nhận hàng: Điều này khá
bất tiện cho những khách hàng có nhu cầu thanh toán trực tuyến
- Không hiển thị phương thức thanh toán: Ở trang web VPP Minh Anh, phương
thức thanh toán hầu như không được thông báo trong bước đặt hàng
? Các trang web được tham khảo từ https://www.yellowpages.vn/tgcls/80224510/danh-s%C3%A
Ich-c%C3%Báng-ty-v%C4%83n-ph%C3%B2ng-ph%E1%BA%A9m.html?i=7
Trang 27- Đặt hàng và thanh toán thông qua các phương thức khác như Zalo, Messenger,
gọi điện liên hệ trực tiếp,
2.7 Hướng giải quyết
Có thé thấy, các doanh nghiệp đang từng bước ứng dụng công nghệ thông tin vàocác quy trình bán hàng va quản lý Tuy nhiên, vẫn còn tôn tại nhiều bat cập làm
giảm trải nghiệm người dùng ở nhiều trang web Chính vì vậy, nhóm hy vọng có thể
sử dụng những kiến thức, khả năng của mình, tận dụng những tài nguyên có sẵn,
xây dựng một website kế thừa những ưu điểm của website đã có và phát triển, bé
sung tính năng mới Với mong muốn đưa sản phẩm đến gần hơn với những doanhnghiệp bán văn phòng phẩm, cải thiện mức độ ứng dụng công nghệ thông tin trong
ngành này.
Trang 28Chương 3 KIÊN THUC NEN TANG
biến riêng biệt rồi mở rộng thành các tập lớn hơn đảm bảo thỏa mãn điều kiện
tập thỏa độ phổ biến quy định trước
Các tập phô biến được xác định bởi Apriori được dùng dé xây dựng các quy
tắc kết hợp làm nổi bật các xu hướng chung trong dữ liệu Thuật toán nàythường được ứng dụng trong việc phân tích thị trường: biết được xu hướng
mua hàng của khách hàng và phân tích dữ liệu giỏ hàng.
Cách thực hiện:
Cách tính thuật toán:
Cho ngữ cảnh khai thác dữ liệu
O: Tập hữu hạn khác rỗng các hóa đơn.
I: Tập hữu hạn khác rỗng các mặt hàng.
R: Quan hệ hai ngôi giữa O và I với o€O và ¡€I[, (o,¡)€R© hóa đơn o có chứa mặt hàng i
-_ Ngữ cảnh khai thác dữ liệu là bộ ba (O, I, R)
- Độ phổ biến của S được định nghĩa là tỉ số giữa số các hóa đơn có chứa S
và số lượng hoá đơn trong O
Ký hiệu:
- SP(S)=|p(S)| / |O|
- p(§) biểu diễn tập các hóa đơn có chung tat cả các mặt hàng trong S
3 Tham khảo từ: https://en.wikipedia.org/wiki/Apriori_algorithm
Trang 29- Tập phổ biến là những tập có độ phổ biến lớn hơn hoặc bằng | ngưỡng
cho trước là minsupp
Quy trình tìm tập phổ biến tối đại:
Cho độ phổ biến tối thiểu (minsupp) và độ tin cậy tối thiểu (minconf) do
người dùng xác định.
Bài toán khai thác luật kết hợp là bài toán tìm tat cả các luật dạng X > Y“ (X,
Y là tập con của M và X giao Y = {}) thỏa mãn độ phổ biến và độ tin cậy tối
thiểu:
supp(X > Y) > minsupp
conf(X>Y) > minconf
- Tìm tat cả các tập phô biến 1 - hạng mục (C1)
- Tao các tập ứng viên kích thước k - hạng mục (k — candidate itemset) từ
các tập phổ biến có kích thước (k-1)-hang mục Vi dụ, tao ứng viên Ca từtập phổ biến Ci
- Kiểm tra độ phổ biến của các ứng viên trên cơ sở dữ liệu và loại các ứng
viên không thỏa điều kiện
Trang 30Các bước khai thác luật kết hợp:
Từ tập phổ biến tối đại ta vừa tìm được ở bước trên, ta thực hiện xây dựngcác luật như sau:
- Các luật có dang X > Y, với X, Y là các tập con của tập tối đại M và
thỏa mãn X NY = {}
- Luật kêt hợp dang tin cậy là luật thỏa ngưỡng
conf(X—Y) > minconf Với conf(X—Y) = Supp(X U_ Y)/Supp(X)Ung dung:
Sau khi tìm hiểu cách thực hiện và các ứng dụng thực tế của thuật toán,
nhóm đã ứng dụng thuật toán vào các trường hợp sau:
- Phan tích sở thích mua hang của khác hang, từ đó gợi ý những món hang
khách hàng thường mua kèm với sản phẩm khách hàng đang xem Việc
gợi ý có chọn lọc sẽ tăng khả năng khách hàng mua thêm sản phẩm, tăngdoanh thu bán hàng và tối ưu hóa hiệu quả kinh doanh
- Phân tích việc mua hàng của khách hàng dé tìm ra những sản phẩm bán
chạy nhất và các sản phẩm thường được mua kèm, đưa ra những gợi ý
nhập hàng cho người quản kho để nhập đúng các mặt hàng dễ tiêu thụ,
tránh nhập tràn lan các mặt hàng gây ứ đọng, tồn kho và hao ton chỉ phíbảo quản.
3.1.1.2 Tiêu chí chọn minsupp, minconf
Thuật toán được thực hiện khi quản kho hoặc admin yêu cầu trong chức năng
xem khuyến nghị nhập hàng hoặc thực hiện tự động bởi tác vụ ngầm Đối vớiyêu cầu thực hiện từ người dùng, minsupp và minconf được người dùng nhập
từ bàn phím Đối với tác vụ chạy ngầm, minsupp và minconf được chọn dựatrên các tiêu chí sau:
Trang 31- Minsupp được lưa chọn trong khoảng [0;0.5], lựa chọn giá trị phù hợp
dựa trên kết quả so sánh thời gian chạy và số luật sinh ra sao cho thời
gian thực hiện nhỏ nhất có thể nhưng vẫn đảm bảo sinh ra số lượng luật
không quá ít Giá trị trong khoảng [0.5;1] không được đưa vào thử
nghiệm vì khả năng dé một nhóm sản phẩm cùng xuat hiện trong hơn
50% số lượng đơn đặt hàng trong thực tế khó có thé xảy ra trong một cửa
hàng đa dạng sản phẩm Chính vì vậy, số luật được sinh ra từ trường hợpnày là rất thấp, thậm chí là không có, từ đó không đáp ứng được mục đíchban đâu khi ứng dụng thuật toán vào hệ thống
- Minconf = 0.81 (81%): độ tin cậy cao để luật sinh ra có tính chính xác
cao hơn.
3.1.1.3 Các bước thực hiện
a) Chuẩn bị dữ liệu
Dữ liệu được tổng hơp từ các chỉ tiết hóa đơn trong bảng OrderDetail với 2
trường Orderld và ProductDetailld, dựng thành ma trận 2 chiều
Với tác vụ chạy thủ công do người dùng yêu cầu, các đơn hàng phải có ngàyđặt hàng nằm trong khoảng người dùng chọn Với tác vụ chạy tự động, đơn
hàng phải có ngày đặt thuộc tháng hiện tại.
Dưới đây là bảng thé hiện cho lượt mua các sản phẩm trong các đơn hàng
trong tháng:
OrderID ProductDetailld
Order 1 | GÔM, BUT CHI, COMPA
Order2 | TAP VO
Order 3 | TAP VG, COMPA
Order 4 | GOM, TAP VO, BUT CHI
Trang 32Order5 | GÔM, BUT CHI MÀU
Order6 | GÔM, BUT CHI
Bảng 3.1:Bang lượt mua sản phâm trong đơn hàng
b) Thực hiện thuật toán
Thực hiện thuật toán:
- Tham số đầu vào: Tập dé liệu đầu vào, minsupp = 0.3, minconf = 0.81
- Kết quả đầu ra: Các luật sinh ra từ tập dữ liệu
Bảng 3.2: Bang tập phô biến 1 phan tử
Tập phô biến 2 phan tử:
Product Detail Support
GÔM, BÚT CHÌ 0.5
Bảng 3.3: Bảng tập phô biến 2 phần tử
Tập phô biến {GOM, BUT CHI} là tập phổ biến 2 phân tử duy nhất nên
cũng là tập phô biến tối đại
Sinh luật kết hợp:
GÔM — BUT CHI: 0.5/0.67 = 0.75 < 0.81
BUT CHI > GÔM: 0.5/0.5 = 1> 0.81
Vay két quả sau khi thực hiện thuật toán ta có tập luật có 1 phần tử:
{BUT CHI — GÔM}
Lưu kết quả thuật toán:
- Tham số đầu vào: Tập các luật kết hợp
- Tham số dau ra: 1 tương ứng với lưu thành công, 0 tương ứng với lưu
thất bại
Trang 33Các bước thức hiện:
o Xóa các luật cũ trong cơ sở dữ liệu
o Duyệt từng dòng luật, khởi tạo đối tượng RecomandationDetail, gán
X, Y tương ứng vào trường Input, Output.
o Lưu xuống cơ sở đữ liệu, nếu thất bại trả cơ sở dữ liệu về trạng thái
ban đầu
c) Khai thác luật
Dữ liệu đầu vào: tập các sản phâm cần tìm gợi ý/khuyến nghị
Dữ liệu đầu ra: Các sản phẩm gợi ý mua kèm
Các bước thực hiện:
o Tập sản phẩm đầu vào: GÔM, TAP VO, BUT CHI
o_ Sinh tat cả các tập kết hợp từ các mã sản phẩm:
{GOM}, {TAP VO}, {BUT CHI}, {GOM, TAP VO}, {GOM, BUT
CHI}, {TAP VO, BUT CHI}, {GOM, TAP VO, BUT CHI}
o Tìm tất ca các luật có Input tương ứng với các tập trên:
BUT CHI GÔM
o Lấy thông tin sản phẩm tương ứng với tap Output {GOM} và hiền thị
lên màn hình
3.1.1.4 Đánh giá thuật toán
So sánh hiệu quả thuật toán tại các giá trị tham số khác nhau:
Apriori là một thuật toán máy học có tham số đầu vào, vì vậy, việc lựa chọn
tham số phù hợp cũng sẽ giúp cải thiện hiệu năng của thuật toán Để tìm ra bộ
số minsupp và minconf phù hợp, nhóm đã thử nghiệm các bộ số khác nhaunằm trong khoảng minsupp từ [0.3;0.5] và minconf = 0.81 Bộ dữ liệu bao
gồm 132849 chỉ tiết đơn hàng với 93 sản phẩm Kết quả thu được như sau:
Số dòng Minsupp Minconf Thời gian Số luật
dữ liệu thực hiện (s) sinh ra
32285 0.1 0.81 36.01 732
32285 0.2 0.81 14.24 628
Trang 34Bảng 3.4: So sánh kết quả thực hiện thuật toán tại các tham số khác nhau
Nhìn chung, mức minsupp càng nhỏ sẽ tạo được càng nhiều luật kết hợp, đổilại cũng sẽ cần tốn nhiêu thời gian hơn Thời gian thực hiện thuật toán khá
lớn Đây cũng là lý do nhóm chọn cách thực hiện thông qua tác vụ ngầm
theo chu kì | ngày và truy van kết quả thực hiện khi cần cho các yêu cầukhông có sự thay đôi tham số minsupp và minconf như chức năng gợi ý sảnphẩm cho khách hàng
Tir bảng kết quả trên, có thé thấy với mức minsupp = 0.5 và minsupp = 0.4
có thời gian chạy thấp nhất, tuy nhiên số luật sinh ra lai quá ít Ở mức
[0.1.0.2] có số luật sinh ra lớn nhưng thời gian thực hiện lại quá lớn Vì vậy,nhóm quyết định chọn mức minsupp = 0.3 dé sử dụng cho tác vụ chạy ngầmtrong hệ thông
3.2 Công nghệ sử dụng
3.2.1 HTML, CSS, Javascript, Jquery, Bootstrap
HTML
HTML (viết tắt của từ Hypertext Markup Language, hay là "Ngôn ngữ Đánh
dâu Siêu văn bản") là một ngôn ngữ đánh dẫu được thiết kế ra dé tạo nên các
trang web trên World Wide Web Nó có thé được trợ giúp bởi các công nghệ
như CSS và các ngôn ngữ kịch bản giống như JavaScript."
+ Nguồn https://vi.wikipedia.org/wiki/HTML
Trang 35Hình 3.1: Hình ảnh logo của HTML 5°
HTML được tạo ra bởi Tim Berners-Lee, một nhà vật lý học của trung tâm
nghiên cứu CERN ở Thụy Sĩ Hiện nay, HTML đã trở thành một chuẩn Internetđược tổ chức W3C (World Wide Web Consortium) vận hành và phát triển
Css
CSS hay Cascading Style Sheets là ngôn ngữ định kiểu dữ liệu theo tang, hay cóthé hiểu là ngôn ngữ dùng dé mô ta các thành phan hiền thị trên trang web Trên
trang web CSS đóng vai trò làm đẹp cho trang web như chia cột, chia layout,
định đạng cho từng khối hiển thị
CSS có thể tái sử dụng lại cho nhiều trang web khác nhau
Hình 3.2: Hình ảnh về CSS3CSS3 là phiên bản thứ 3 và cũng là mới nhất của CSS, CSS3 được bồ sung thêm
nhiều tính năng mới tiện lợi hơn CSS cho người dùng
Thay đổi lớn nhất hiện của CSS3 là việc giới thiệu các mô-đun Ưu điểm của các
mô-đun là cho phép thuộc tính được hoàn thành và phê duyệt nhanh hơn vì cácphân đoạn được hoàn thành và được phê duyệt theo từng khối
Các tính năng được bao gồm trong CSS3 bao gồm hỗ trợ cho các bộ chọn bổ
sung, d6 bóng, góc tròn, nhiều hình nền, hình động, độ trong suốt vv5 cho phép
chúng ta có thé bồ trí, định dạng hiển thị cho trang web một cách dé dàng hon
Š Nguồn hình https://vi.wikipedia.org/wiki/HTML#/media/T%E1%BA%ADp_tin: HTMLS_logo_resized.svg
© Nguồn https://websolutions.com.vn/css3-la-gi-su-khac-nhau-giua-css-va-css3
Trang 36Javascript là một ngôn ngữ lập trình thông dịch, một ngôn ngữ kịch bản dựa vào
những đối tượng đã phát triển sẵn hoặc tự định nghĩa, xuất hiện lần đầu tiên vào
tháng 5 năm 1995 Được sử dụng rộng rãi trong các ứng dụng website, hỗ trợ
hầu hết trên tất cả các trình duyệt như Chrome, Firefox, ” Cho đến hiện tại,
phiên bản ồn định nhất của Javascript là ES6 xuất hiện vào ngày 17/6/2015
ds
Hinh 3.3: Hinh anh logo Javascript®
Javascript có thé can thiệp vào cây DOM, cho phép các hành động như thêm,
xóa, sửa các thẻ, thuộc tính HTML cũng như CSS một cách dễ dàng Ngoài ra
Javascript cũng có thé tạo, phản ứng lại với các sự kiện HTML trong trang
Javascript được thiết kế chủ yếu dé lập trình ở phía client, nhưng những năm gần
đây, cùng với sự xuất hiện của NodeJs (Lập trình backend với web realtime),
Angular, React (lập trình Frontend) đã biến Javascript trở thành một ngôn ngữlập trình được cho cả 2 phía là client và server.
Jquery
Là một thư viện của Javascript giúp đơn giản hóa cách viết Javascript và tăng
tốc độ xử lý các sự kiện trên trang web,hỗ trợ các nhà lập trình web tạo ra các
tương tác trên website một cách nhanh nhất
jQuery được khởi xướng bởi John Resig (hiện là trưởng dự án của Mozzila) vàonăm 2006, jQuery có mã nguồn mở và hoàn toàn miễn phí
Lợi ích khi sử dụng Jquery
- Đơn giản hóa việc quản lý các thành phần trong HTML/DOM
7 Nguồn https://freetuts.net/javascript-la-gi-viet-ung-dùng-javascript-dau-tien-263.html
# Nguồn: Slide bài giảng trường đại học Công Nghệ Thông Tin
Trang 37-_ Thay đổi giao diện của một trang web trong việc sử dung CSS
- Tương tác với người dùng qua Event Handler API
- Tạo hiệu ứng động cho trang web
- Đơn giản hóa AJAX
3.2.2 ASP.NET Core
Là một framework đa nền tảng (cross-platform) chạy trên nền tảng NET Core
ASP.NET Core là một phiên bản mã nguồn mở của ASP.NET, chạy trên các nền
tảng như Mac Os, Linux và Windows Được phát hành lần đầu tiên vào năm
2016 và cũng là phiên bản được thiết kế lại từ các phiên bản ASP.NET vốn chỉ
dành cho nền tảng windows trước đó !9
9 Nguồn: https://getbootstrap.com
19 Nguồn: https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core
Trang 38.NET Core 2.x NET Core 3.x
Windows Windows/macOS
Hình 3.5: Các phiên bản của ASP.NET Core và nền tảng thực thi
So với ASP.NET, ASP.NET Core có những ưu điểm vượt trội hơn như sau:
Hợp nhất giữa việc xây dựng web UI và web APIs lại với nhau
Xây dựng và chạy đa nền tảng (Windows, Mac và Linux)
HTTP request được tối ưu nhẹ hơn
Có thé host trên IIS hoặc tự host
Dependency injection được xây dựng sẵn mà không cần phải cấu hình lại
Mã nguồn mở và lượng cộng đồng lớn
Razor Page cho phép viết các đoạn mã một cách dé dàng và có hiệu quả hơn
nhờ sợ kết hợp giữa HTML và C#
Có thể triển khai ứng dụng viết trên ASP.NET Core như một web server độc
lập hoặc kết hợp với các web server khác như: IIS, Apache, Nginx
Phiên bản mới nhất hiện tại của ASP.NET Core là phiên bản 5.0
ASP.NET Core MVC:
Là một framework cho việc xây dựng và phát triển ứng dụng web sử dụng mô
hình MVC.
MVC là viết tắt của 3 từ (Model — View - Controller) là một mô hình tổ chức
chương trình thành 3 thành phần khác nhau là Model, View và Controller Mỗi
một thành phần có một nhiện vụ riêng biệt và độc lập với các thành phần còn lại
Trang 39- Model: Là thành phần chứa các lớp ánh xạ với các bang trong cơ sở dữ liệu,
chứa các phương thức xử lý thao tác với cơ sở dữ liệu, truy xuất và lưu trữ
dữ liệu vào cơ sở dữ liệu.
- View: Là thành phan nhận và hién thị thông tin phía người dùng, tương tác
với người dùng thông qua giao diện và gửi yêu cầu đến controller và nhận lại
phải hồi từ controller
- Controller: Là thành phan xử lý, điều hướng các hành động từ phía người
dùng, có nhiện vụ là cầu nói giữa Model và View
Cung cấp các tính năng mạnh mẽ cho việc xây dựng web động như:
- Tag Helper cho phép code bên phía server tham gia vào việc tạo va render
phần tử HTML
- Model Binding tự động ánh xạ dữ liệu từ HTTP request tới tham số của
method action.
- Model Validation: ràng buộc dữ liệu cho các thuộc tính trong model, thuộc
tính sẽ được kiểm tra ở phía client trước khi đưa về server
- Tích hợp sẵn các thư viện và Framework phát triển cho phía người dùng như
Angular, Bootstrap, React.
"| Nguồn Slide bài giảng trường đại học Công Nghệ Thông Tin.
Trang 403.2.3 Dependency Injection
Dependency injection là một kỹ thuật lập trình giúp tách một class độc lập vớicác biến phụ thuộc hay nói cách khác là giúp chúng ta làm giảm sự phụ thuộccủa các Module cấp cao vào các Modelu cấp thấp Khi nói đến DI tức
Dependency injection không phải là Dependency Inversion.
Dependency Inversion: Đây là một nguyên lý dé thiết kế và viết code, nội dung
nguyên lý được phát biéu như sau:
Các mô đun cấp cao không nên phụ thuộc vào mô đun cấp cấp, cả hai nên
phụ thuộc vào Abstraction.
Interface (Acstraction) không phụ thuộc vào chỉ tiết mà là ngược lại, nghĩa là
các lớp giao tiếp với nhau thông qua interface chứ không phải thông qua
cách chúng triển khai
Inversion of Control: Đây là một Design Parttern!3 được tạo ra để code có thé
tuân thủ theo nguyên lý Dependency Inversion, va Dependency Injection là mộtcách được phát triển từ Design Pattern này
12 Tham khảo từ: https://sites google.com/site/toilamaichovui/nghien-cuu-khac/software-development
3 Design Pattern là các giải pháp tông thé đã được tối ưu hóa, được tái sử dụng cho các van đề phổ biến
trong thiết kế phần mềm thường gặp