Mục tiêu chính là tạo ra một nền tảng thương mại điện tử hiện đại, tậndụng lợi ích của Blockchain dé cải thiện tính minh bạch và trải nghiệm người dùng.Các nội dung trình bày trong báo c
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THONG TIN
KHOA CÔNG NGHỆ PHAN MEM
Tran Trong Hoang — 20520521
Tran Ngoc Tién — 20520808
KHOA LUAN TOT NGHIEP XAY DUNG WEBSITE BAN QUAN AO
TICH HOP WEB3
Building A Website Selling Clothes
With Web3 Integration
GIANG VIEN HUONG DAN
ThS Tran Thị Hồng Yến
Thành phố Hồ Chí Minh, tháng 7 năm 2024
Trang 2LỜI CẢM ƠN
Khóa luận tốt nghiệp tốt nghiệp với đề tài “Xây dựng Website bán quần áo tíchhợp Web3” là minh chứng cho quá trình cố gang không ngừng trong việc tìm tòi,
học hỏi trong suốt hơn 4 năm học tập tại trường Đại học Công nghệ Thông tin.
Thé hiện khả năng của bản thân trong việc áp dụng kiến thức chuyên môn vàogiải quyết bài toán thực tế
Chúng em xin được gửi lời cảm ơn sâu sắc tới ThS Trần Thị Hồng Yến, người
đã trực tiếp hướng dẫn, chỉ bảo, giúp đỡ chúng em những lúc khó khăn, đưa ranhững lời khuyên bồ ích dé khóa luận tốt nghiệp được hoàn thành đúng tiến độ vàđáp ứng các yêu cầu đề ra ban đầu
Thành phố Hồ Chí Minh, tháng 6 năm 2024
Sinh viên
Trần Trọng Hoàng
Trân Ngọc Tiên
Trang 3MỤC LỤC
Chương 1: GIỚI THIEU DE TAL - 5-5 s2 s2 se=sessessesee
1.1 Giới thiệu đề tài -s-s-csccsccsersesstseteetsersersersersersersersesee1.2 Ly do chọn đề tài 2< 5< s< scs©csexsEssEseEsstsevsevsersersersersesee
1.3 Mục tiêu trong đề tài c 5 -scsecssceserserssersersersersserserssree
1.4 Đối tượng nghiên cứu s5 s°s sess+ss+ss+sseseEsersersersessesse
1.4.1 Cac co linh .
1.4.2 Déi tượng phạm vi dé tài hướng đến -2- 2 sSs+c++£z£zcee2
1.5 PRAM VỈ 0G ĂSẤ 9 9 TT 0 0 00 0000400090 1.6 Phương pháp thực hiỆn - so 5-5 5 5< s5 9 9 1 90 98 8951
1.7 Ý nghĩa thực iễn -scs°©ss©csecscsstssersersetssessersersee
1.8 Kết quả dự kiến 5° s©c<£ssexsessEssesstsersersersersersersesee
Chương 2: CƠ SỞ LÝ THUYÊTT 2-s-s° s2 ©ssssessessesseesees
2.1 TPES 21 Alito MIIN By spear tacet, HIB oo corf cvssosdeovsconsesescnsconsconscensessconsconscenecs
2.1.1 Giới thiệu ĂĂ 2S 2t tre
Trang 42.4.2 Các đặc trưng cL TH HH TH Hư 8
Phu on 9
2.5 PostgreSQL cọ Họ họ TH TT 0000.0000 06 9
"toàn 9 2.5.2 Các đặc frưng ch 9 2.5.3 LY as on ae e 10
2.6 MongoDB cóc 5s Họ H c0 0.0004.000 0009.00000496 0006 10
2.6.1 Con 10
2.6.2 Các đặc frưng ccc nh TH HT TH ng HH ng riệp 11 2.6.3 Lý do ChOML ee eeceeceeccesceeceeseceseeeceeseceneceeeaeceaeseeeeaeeneeeaeeeaeeeeeentenaees 11 2.7 ASP.NET Core 7 APÌ o «5-5 5< ưng 12
2.7.1 Giới thiệu W7 nỗ T ii 12 2.7.2 Các đặc tr: sếpc À Like 12
Phun 12
2.8 VNPAY SandDoX 0-5 5 5s 9 nọ 00000 000 13
2.8.1 GiớiHiu.Ðl ƒƑ ae <@Ø®1\111 / 13
2.8.2 Các đặc frưng cc nQnn HS TH TH ng TH ng Hiệp 13 2.8.3 Lý do chọn TQ SH TH TH ng HH ng Hư 13
2.10.1 — Giới thiệu Ăn HH HH HH re 16 2.10.2 Các đặc trưng cà St H* HH SH TH TH HH Hy rrệp 16
2.10.3 LY do chọn SG n1 S1 HH HT HH nh Hư 16
2.11 Blockchain so 55G 5s 5 9 9 00 0108996 18
2.12 WWeblđ ceĂ#SĂ HH HH n0 0018086008080106800016 06 19
Trang 52.13 Ethereum Sepollia co 55 <5 5S 5 9 9993.290 0996005056696 6896 20
2.13.1 _ Giới thiệu SĂ S2 SSS SH he 20
2.13.2 Các đặc trưng -.c SH ng HH ng rệt 20
2.14 Hợp đồng thông minh (Smart C0OnTFAC Ê) 5< <5 55 <5 ss<s sssss+ 21
2.15 ERC-721 SH HH HH HH ngu u00 22
2.15.1 — Giới thiỆu SĂ S2 S St set ri 22 2.15.2 Cac đặc trưng HH ng HH HH rệt 23
2.15.3 LY do chọn 5 cSS S3 SH 1111111111 ngư 23
2.16 OpenzZepplin - << 5 5 << s sọ 00060080 23
2.16.1 Khái niệm -.- 5c 2S 2.1911 1211111211111 1E tre 23 2.16.2 Các đặc frưng ch HH rệt 24 2.16.3 Lý dochọn eee re cree TÔ àìằàằềềicceĂi 24
2.17 Clone Factory COnẨTAC o s55 5 5s S3 99 996 850568956896 24
2.17.1 Đặt vẫn đề: re 24
2.17.2 Kết quả thực nghiệm -. -2:©22©52+2E++Ex2Exvtrrerxeerxeee 262.18 Thanh toán đơn hàng bằng token -ses<ssecssessse 26
2.18.1 Mô hình hoạt động - 2 S213 +EEsisrrererererske 27
2.19 Áp dụng Blockchain vào khoá luận -2-sssessscssess 28
2.20 Chafbof 5c HH HH gu 0g 0e 31
2.20.1 — Giới thiệu Ặ 2.5 CS St S St riey 31
2.20.2 Cong nghệ sử dụng - -.LSc St St n* HH HH Hy 31 2.20.3 — Quy trình tạo DOf - 2c St S21 SH 1111111111 1 kg re 31
2.20.4 Thực tế áp dụng ¿5c tt EE21121121121121 21 1y ee 34
Chương 3: PHAN TÍCH VÀ THIẾT KE HE THÓNG 36
3.1 Xác định yêu cầu °-scs©css©ssersersersserserserssrrserserssrse 36
3.1.1 So đồ phân rã chức năng - + + k+Ek+EE2EE2EE2E2E2ErEerrerres 373.1.2 Phân tích yêu cầu phi chức năng 2- 2 ++z2zz+zxerxzzsze 37
3.1.3 Mô hình hóa các yêu cầu 2- 22 ++Ex+2E2EEEEEEEEEEEEEkerrerrrees 37
E5"? li ae G A11 40
Trang 63.2 Thiết kế hệ thống °-s-scss©ss+esersetsstreerserssrrsrrssrssrse 60
3.2.1 Tổng quan thiết kế kiến trúc hệ thống -. 2 5¿+++z2se2 603.2.2 Mô hình hệ thống -:- 2 ©E+SE2EE2EE2EE2E2EE2E717171 2121 se 613.2.3 Thiết kế xử lý 2 tk TT E1 1121121121121111 11kg 623.2.4 Thiết kế cơ sở dữ liệu ccc-ccccrtrkrrrrttrirrrrrirrrrireriiee 66
Chương 4: XÂY DỰNG ỨNG DỰNG Go Ăn 1 2, 75
4.1 Danh sách giao dỆNn d <6 5 9 9 9 0 0 00 689868896 75
4.1.1 Danh sách giao diện khách hàng - 55c *+c+vcssersseres 75 4.1.2 Danh sách giao diện Admin và Merchant - - 55+ +-<+ 76 4.2 Mô tả các màn hìnhh - s5 < «<< s9 99 1 9 8909508580 56.50 77
4.2.1 Giao diện trang Chủ - - 2c 3 S3 v1 ng ng ray 77 4.2.2 Giao diện đăng nhập - - - 2c 2 32t 1* 3S 1211 ray 78
4.2.3 Giao diện đăng KY HH HH ng HH tiệt 79
4.2.4 _ Giao diện xem sản phẩm -¿©22 + x+2+++E++Exerxrzzesrxerxersee 80
4.2.5 Giao diện Giỏ hang c3 tt HH gi ri, 81 4.2.6 Giao diện dat hàng - c3 E931 111 1x rệt 81
4.2.7 Giao diện thanh toán thành CONG eceeseeeesseeeeteeeteeeseeneeesees 82
4.2.8 Giao điện lọc sản phẩm 2: + eEE£EE+EE2EE2EE2EE2E2ErEerkered 83
4.2.9 Giao diện thanh toán online - + +++s+£++s+++ee++eesse+sss2 84
4.2.10 _ Giao diện hién thị danh sách yêu thích - ¿5z s=s¿ 84
4.2.11 _ Giao diện hién thị don hang cececceceeccesessessessessessessessesseseeseeseens 854.2.12 Giao điện quan lý review sản phẩm c.cccccccsscessesssessseeeessteseees S6
4.2.13 Giao diện quản ly don đăng ký ban hàng 5+ ++-++ S6 4.2.14 _ Giao diện quản lý thông báo ¿5525 + ++svsseeseeeeeesee 87
4.2.15 _ Giao diện gid hang , - - c kg HH ng ray 87
4.2.16 _ Giao diện nhập thông tin giao hang - 555cc s+s+s 88 4.2.17 Giao diện chọn phương thức thanh toán - +55 <+++ 88
4.2.18 Giao diện dashboard - - << < E2 11111E£ E231 EEEEEEsskkeeeees 89
4.2.19 Giao diện quản lý sản phẩm 2 2522 2+E++E+EzEezEerxered 90
Trang 7Giao diện thêm san pham MOi c.cceccesseesessesseessessesseessessesseesees 91
Giao diện quan lý đơn hang 00 c eee eceeceeceeeeeseeeseeeeeeteeeseenrensees 92
Giao điện xem chi tiết đơn hang - 2-52 2+2: 93
Giao diện quản lý NÏT, c5 31132 EEEEsrrerererske 93
Giao điện thêm sản phẩm NFT - 2-2 2+5 +x+£E££xe£zzszes 94
Giao diện quản ly đơn hàng NET - 5 + *+svsseeeeses 95
Giao diện chỉ tiết đơn hàng NFT 2¿5¿©2s22+csz+zsce2 96
Giao diện quan lý don đăng ký ban hàng 5 5555 +>5 96 Giao diện quan lý Voucher 55s + +++s+++scxseeeeeeesesss 97 Giao diện thêm voucher- <5 + 2+ * + +22 +++eeeeeseeeeeszese 97
Giao điện quản lý đơn hàng thanh toán băng VNPAY 98
s.essssssesseesssoonaSSSSSSTS.„.z77Z7P2 ợYGSIẾT THẦÀ ooeeceeseennessseeeessseoseesse 99
TÀI LIEU THAM KHẢO - 2° 22 2s s£ s2 seSssSssessessersessee 101
Trang 8DANH MỤC BANG
Bảng 3.1: Danh sách Cac aCfOTS - 122111121111 111911 1191118111101 1811 E81 8x rrrện 37
Bảng 3.2: Danh sách các USe CaSe - - 222 120112112 1111111111111 11x 38
Bảng 3.3: Đặc ta Use case đăng nhập - c1 1121911 111111 8x rkp 4I
Bảng 3.4: Đặc ta Use case Đăng xuất ¿- 22222 2122122212211 2E rrke 42
Bảng 3.5: Đặc ta Use case Xem sản phẩm 2-5255 E2E22EEeEE2ESExerxerrerred 42
Bang 3.6: Đặc ta Use case thêm sản phẩm vào giỏ hàng 2-52 25z25+¿ 43Bang 3.7: Đặc ta Use case tìm kiếm sản phẩm 2- 2 52z+£z+£xe£Ezrssred 44
Bảng 3.8: Đặc ta Use case quản lý ø1ỏ hang - 2c c1 33 ssirerrresve 45
Bang 3.9: Đặc ta Use case Thêm bớt số lượng sản phẩm - 2-2 2252 45
Bang 3.10: Đặc tả Use case xoá sản phẩm 2-5252 2E2EEEE2EEExerErrrrrred 46
Bảng 3.11: Đặc tả Use case đặt hàng . 5Á n1 1S SH tệp 47 Bang 3.12: Đặc ta Use case Thanh foán «+ + HH HH giết 48 Bang 3.13: Đặc ta Use case thanh toán online - «+ sex svsvsveeeereeeexrs 49 Bảng 3.14: Đặc ta Use case thanh toán khi nhận hàng - 55555 <++s+2 49
Bang 3.15: Đặc ta Use case Loc sản phẩm M.U TT 51
Bảng 3.16: Dac ta Use case Chat với Chatbot .- 2 3+ +2 +++seserserssers 52 Bảng 3.17: Đặc ta Use case chỉnh sửa danh mục - - ¿ + +++s£++x+sex+e+sxss 52
Bang 3.18: Đặc ta Use case xem sản pham cccccccccccsscssessessessessessessessssessesseeseeseeses 53
Bang 3.19: Đặc ta Use case Chỉnh sửa sản pham 0 ccccecccssesscessesseessessesseessessesseeeee 54
Bang 3.20: Đặc ta Use case Tạo INE TÌ - 11H re 5S
Bảng 3.21: Đặc tả Use case Xem chỉ tiết đơn bán hàng 2- 22 5¿52s25s2 56
Bảng 3.22: Dac ta Use case chỉnh sửa trạng thai đơn - 5-5-5 + +5 <++scx+s+ 57 Bảng 3.23: Đặc tả Use case Xoá đơn ban hàng - - 5 3+ ++*vssseeeseeeeses 58
Bảng 3.24: Đặc tả Use case Tim kiếm đơn bán hàng 2- 22 5¿22sz2z+2s+2 58
Bảng 3.25: Dac ta Use Case Xem báo cáo doanh thu - ¿+55 s+s++s+sss+ 59
Bảng 3.26:Bảng dt liệu uS€TS - G0 21121112111 112 11H 11 ng nh ng nh 67 Bảng 3.27: Bang dữ liệu role permissions 5 2+3 3+2 sseseeresreeers 67 Bang 6 2.1057iii-8:1 0100:9117 68
Trang 9Bảng 3.29: Bảng dữ liệu perIm1SSIOTIS ó5 1n HH HH ng rệt 68
Bảng 3.30: Bang dữ liệu ÍaVOTI{€ - -Q S 1S t* SH HH 1 1111 11 kết 68
Bảng 3.31: Bang dữ liệu prOdUCI 5 2c 2222123113331 33511 151111151111 kem 68 Bảng 3.32: Bang dữ liệu Caf€ØOTY G11 1121112 1110111191118 1110111811 811g Hiện 69
Bảng 3.33: Bang dữ liệu product_Caf€ØOTV c S2 12 S2 irrrrirsrrsee 69
Bảng 3.34: Bảng dữ liệu product_ defaIÏ - - - c5 311 + EE*Exeeereeeeeeereeee 69 Bảng 3.35: Bảng dữ liệu S1Ze -.- - Gà HT Hà HH ngàn Hết 70
Bảng 3.36: Bảng dữ liệu CaTẲ - -.- G0222 122112111111121 11 1111111111111 111 11 11 ke 70
Bảng 3.37: Bang dữ liệu Cart._ defaIÌ - - c1 2c 3321113311111 1E1errrke 70 Bảng 3.38: Bang dữ liệu Order_ defalÌ 5S S3 SsEEsEEsrssrrsrrrreeree 71
Bang 3.39: Bang dữ liệu Order oo cee ceccecccesceesceseeeseeseeeseceseeseeeseceeeeeesseesseeeeeseeaes 72
Bang 3.40: Bang dữ liệu Review ccc ceccecscccesscescceesecessceeseeeeseeeseeceseeeseeenseeeeeenss 73 Bang 3.41: Bang dữ liệu TransaCtIOT - G19 9H HH giết 73
Bảng 3.42: Bang dữ liệu PayímeI c2 2c 3221121331111 Ekrrrre 74
Bảng 4.1: Danh sách giao diện khách hàng 5 + S5 2s seeserreeeres 75 Bảng 4.2: Danh sách giao diện Admin và Merchant ¿- 65+ c+xc+ecsss 76
Trang 10DANH MỤC HÌNH ẢNH
I§001:900)3;:dÝỐỐỐỶỶÝÝ 4
Hình 2.2: Logo NextJŠ - c3 1 111 112111211111 111 111111 110110111 11 11 TH HH nh Hy 5
g0: 605421 S0 7 Hình 2.4: Logo PostgreSQÌL - c6 cv nh ng TT nh TT nh nh nưệp 9
Hình 2.5: Logo ASP.NET 7 Sàn HH TT Hàn Hàn Hàn Hàn rệt 12
Hinh 2.6: Logo VNPAY hả-tầŨŨỖ 13
Hình 2.7: Cac bước thược hiện thanh toán online bang VNPAY o.oo ecceececcceeeetteeeees 14
Hinh 2.8: voi nh 15 Hinh 2.9: Docker oo eee ồồ.Ốồồ ồ 16
ii 1:02110005)0/ c4 nh 18 Hình 2.11: Web3 - các c 2t 21121 911011111 TT TH TH TH TH HH TH HH ng Hà hệ 19
gi) V2Ắ19)0)181.ii 10111177 20 Hinh 2.13: Smart Contract 1 21 Hình 2.14: No need for a 3rd partyERC-721 - 5 5+5 *++£++sk+seseeereseeeeres 22 Hinh 2.15: OpenZeppelin 00101117 - 24
Hình 2.16: Mô hình factory contract truyền thống - 2 2 2+ z+szxezxerxez 25
Hình 2.17: Clone Factory COTIẦTACẨ - 2c 2 221321112115 1195EE1E1 5111111 eExre 25
Hình 2.18: Delegate function COTIfTAC + St 3119 91131 1E Errkeskerkeree 25 Hình 2.19: Mô hình hoạt động của conlone factory confract ‹ s<+s++ 26
Hình 2.20: Sơ đồ tuần tự mua hàng bang ví Metamark 2 2 2522552 27Hình 2.21: Mô hình hoạt động mua hàng bằng Token -2- 22 5¿2sz25+2 28
Hình 2.22: Giao dịch được lưu trữ on-chain 555522 +++*£secc++seeessss 28 Hình 2.23: Fashion-flow smart Contracts - - 0 SE 2211113312 E11 gi, 29
Hình 2.24: Mô hình hoạt động của NFT trong đề tài -2- 22 5z2cxcszxccsed 29
Hình 2.25: Mô hình triển khai Blockchain tổng thé trong khoá luận - 30
Hình 2.26: Trích xuất dit liệu database cho bot -¿-s- 5: s+x+SEE+E+EeEEzEexerxzxrzez 32Hình 2.27: Sơ đồ hệ thống Chatbot AI - 2-2-2 2+EE+£E++E+£EE£EE++EE2EEerEerresred 33
Hình 2.28: Hình ảnh code sử dụng GPT AsSISfanIf - 5 5S S + sseereseeeeses 34
Trang 11Hình 2.29: Hình anh sử dụng chafbOt Ăn HH HH giết 35
Hình 3.1: Sơ đồ phân rã chức năng - 2 2 s2 +2EE£EE£EE2EE2EEEEEEEEEEEErErrrrrred 37Hình 3.2: Sơ đồ Use case tổng - ¿+ St EE12112112112112112111 111111 1x xe 39
Hình 3.3: Use case đăng nhập - 2 2222112111111 111911 1811111118111 811 811 ke 40
Hình 3.4: Use case xem sản phẩm - 2-2 E£SE£EE2EE2EE2EE2EE2EEEEEEEEEEErkrrkrrree 42Hình 3.5: Use case Tìm kiếm sản phẩm 2-2 2 2+S2+E2E2E£EEeEEEEEeEkerxerkee 44
Hình 3.6: Use case quản lý gid hằng s1 HH HH HH HH rệt 45
Hình 3.7; Use case lọc sản phẩm 2 2 £+S9SE9EE£EESEEEE12E122122121121171221 21 cxe 50
Hình 3.8: Đặc tả Use case chat 2 1111 1222311111 129923111119 11 ng xer 51
Hình 3.9: Use case quan lý sản pham c.ccccccsccecsessesssessessesssessessesssessessesssessesseesseese 53
Hình 3.10: Use case Quan lý đơn bán hang ccc ccceceeeeeseesseeseeseeeseeeeeeseessenseeses 56
Hình 3.11: Use Case Báo cáo thống kê - ¿5.5555 EE2EE2EE2EE2EE2EEErEerkerker 59Hình 3.12: Kiến trúc tổng thé dự án - 2 ©5222E£2EE+2EEt2EEtEEEtEEEtrksrkrrrkerred 60
Hình 3.13: Lược đồ hoạt động của hệ thống thanh toán - 2 + +52: 62
Hình 3.14: Sơ đồ tuần tự của hệ thống thanh toán online - - «-+++s<<++ + 62Hình 3.15: Sơ đồ tuần tự thao tác thêm sản phẩm 2 ¿+2 2+£++£E£+£z+cs2 63Hình 3.16: Sơ đồ tuần tự thao tác tạo INFTT -:- + St+x+EEE+EEEEEEESEEEkrkrrrxsrrree 64Hình 3.17: Sơ đồ hoạt động hệ thống gợi ý sản phẩm - 2-2 522522522 65Hình 3.18: Lược đỗ cơ sở đữ liệu - 252c 22+ 66
Hình 4.1: Giao diện trang chủ - - c2 22 3211311311511 151 1115111111111 11 xe 77
Hình 4.2: Giao diện đăng nhập - - - G0 2 2211121115115 119111151111 111 1 11 ke 78 Hình 4.3: Giao diện đăng ký tài khoản -.- 5c 2+ 121112 1EEEEErrrreree 79
Hình 4.4: Giao điện Xem sản phẩm ¿+ E+SE+EE£EE2EE£EE2EE2EE2EZErEerkerker 80
Hình 4.5: Giao diện gid hang c2 2211211121115 1 5111111111111 EEEerkre 81 Hinh 4.6: Giao dién dat hang 0n e 81 Hình 4.7: Giao diện thanh toán thành công . 555 3+ ++**++s‡+xvexeeeeeeeeessvs 82
Hình 4.8: Giao diện lọc sản phẩm ¬— 83
Hình 4.9: Giao diện thanh toán online - - - + 5522222 13+ E£++zE£ezeeezeeeees 84 Hình 4.10: Giao diện danh sách yêu thích - 5 se + + *+ksseseersrrsrrsrrs 84
Trang 12Giao diện danh sách đơn hàng «+ + xi 85
Giao diện quản lý review sản pham ccccccscescessessesssessessessessesseeseesees 86
Giao diện quan ly don đăng ky ban hàng - 5 555 +++<c++sxs+ 86 Giao diện quan lý thông b40 - - - + 32c 11231133111 xexrs 87
Giao dién gid Hang 017 Ố 87
Giao diện nhập thông tin giao hang . 55 5< c + ‡+svsseeesseess 88 Giao diện chọn phương thức thanh toán - - 5+5 +++s*++x+sx+s 88
Giao điện dashboard - ¿+ + 22 3321111223113 23311 25311 E211 xe 89
Giao điện quản lý sản phẩm 2- 2-52 SE‡EE2EE2EE2EE2EE2E2EEEerkervers 90Giao diện thêm sản phẩm -2- 2-52 E+2E+2E£2EE£EEtEEZEEEEEEEErrrrrrree 91
Giao diện quan lý đơn hang - - c3 3211213211 11Exrsrrres 92
Giao diện xem chỉ tiết đơn hàng 2- 2-5252 £2S£2EE2EzEzxrxeei 93
Giao diện quản lý NETT, - c1 k9 19 nh HH ng ng dt 93
Giao diện thêm sản phẩm NFT - 2-2 2+S£+E22E£E££EeEEerxerxersrrs 94
Giao diện quản ly đơn hàng INET - S1 rhg 95
Giao diện xem chi tiết đơn hàng 2- 22 5¿22+2£+£E£+£xzzxezzed 96
Giao diện quan lý don dang ký bán hằng 255555 <++c+scss 96 Giao diện quản lý VOuUCh€T- 11kg ghe 97
Giao diện thêm voucher - - - - - << << E221 188 E££23 31 EEEEEEzSEkkeeeezzzee 97
Giao điện thanh toán bằng VNPPAY - 2-52 52+S22E22E2E2E2Ecrrerreeg 98
Trang 13DANH MỤC TỪ VIET TAT
STT | Từ viết tắt | Tir đầy đủ Ý nghĩa
Thương mại điện
3 TMDT Lĩnh vực thương mai điện tử
tử
Trang 14TÓM TẮT KHOÁ LUẬN
Khoá luận này trình bày việc xây dựng một Website bán quần áo tích hợp côngnghệ Web3 Mục tiêu chính là tạo ra một nền tảng thương mại điện tử hiện đại, tậndụng lợi ích của Blockchain dé cải thiện tính minh bạch và trải nghiệm người dùng.Các nội dung trình bày trong báo cáo này bao gồm:
e Chương 1: Giới thiệu đề tài: Ở chương này chúng em trình bày sơ lược về
đề tài, lý do chọn đề tài, các mục tiêu trong đề tài, các công nghệ sử dụng trong
đề tài, kèm theo đó là đối tượng nghiên cứu.
e Chương 2: Cơ sở lý thuyết: Trình bày chi tiết các công nghệ đã nghiên cứu
và tìm hiểu trong đề tài, bao gồm khái niệm, các đặc trừng và lý do chọn các
công nghệ này.
e_ Chương 3: Phân tích và Thiết kế hệ thống: Trong chương trình bày các sơ
đồ use-case, kiến trúc hệ thong, sơ đồ phân rã chức năng, sơ đồ thiết kế xử lýcác tác vụ và thiết kế cơ sở dit liệu
e Chương 4: Xây dựng ứng dung: Trình bày danh sách các giao diện của sản
phẩm, hình chụp các giao diện kèm theo đó là mô tả các màn hình
e Kết luận: Trong phan này trình bày những công nghệ mà nhóm đã tìm hiểu
và nghiên cứu áp dụng trong khóa luận cũng như các thuận lợi và khó khăn đã
trải qua qua trong quá trình làm và hướng phát triển sản phẩm trong tương lai
Kết quả đạt được là một Website thương mại điện tử tích hợp công nghệ Web3,
giúp nâng cao trải nghiệm người dùng va đảm bảo an toàn đữ liệu Các thách thức va
hạn chế cũng được thảo luận, cùng với các dé xuất cải tiến cho các nghiên cứu và
phát triển trong tương lai.
Trang 15Chương 1: GIỚI THIỆU DE TÀI
Ở chương này chúng em trình bày sơ lược về đề tài, lý do chọn đề tài, các mụctiêu trong đề tài, kèm theo đó là đối tượng nghiên cứu
1.1 Giới thiệu đề tài
Đề tài Website bán quần áo tích hợp Web3 là một đề tài thú vị và có ý nghĩa trong
lĩnh vực thương mại điện tử Website bán quần áo là một loại Website chuyên cungcấp các sản phẩm quan áo của nhiều thương hiệu, kiểu đáng va mức giá khác nhau
1.2 Ly do chọn dé tài
Trong thời đại hiện nay mạng internet là một sản phẩm hết sức lớn lao và là nền
tảng chính cho sự truyền tài, trao đổi thông tin trên toàn cầu Trong hoạt động sanxuất kinh doanh, giờ đây thương mại điện tử đã khang định được vai trò xúc tiễn vàthúc đây hoạt động của doanh nghiệp Đối với một cửa hàng, việc quảng bá và giớithiệu đến khách hàng các sản phâm mới đáp ứng được nhu cầu của khách hàng là rất
cần thiết Vì vậy, nhóm em đã quyết định “Xây dựng Website bán quan áo tích hợp
Web3" có tên là Fashion Flow giới thiệu và cung cấp các loại quần áo sang trọngđang có mặt trên thị trường và khách hàng có thê đặt hàng ngay tại Website mà khôngcần đến trực tiếp điểm giao dịch Việc này giúp cho khách hàng có thể chủ động vàtiết kiệm thời gian của chính mình
1.3 Mục tiêu trong đề tài
Xây dựng Website bán quan áo cùng hệ thống gợi ý sản phâm cho khách hang
Xây dựng được hệ thống quản lý bán hàng đảm bảo thực hiện được đầy đủ các
chức năng cơ bản của một Website bán hàng.
Giải quyết tối ưu hóa quá trình mua bán qua mạng phù hợp với thực tiễn
Tìm hiểu nghiên cứu về Blockchain, áp dụng công nghệ thanh toán Web3 vào của
hàng.
Tìm hiéu va ứng dụng các công nghệ mới, nâng cao kỹ năng phát triên phân mêm.
Trang 161.4 Đối tượng nghiên cứu
1.4.1 Các công nghệ
- Front-end: Nextjs, Redux, Tailwind, Ant design, Metamark, Recaptcha
- Backend: NodeJS, asp.net core, clean architecture, ImediaR
- Web3: Ethereum, solidity, sepolia, openzepplin, ERC-721
- Database: Postgres, Cloudinary, MongoDB
- Recombee Service
- Google Analytics 4
1.4.2 Đối tượng phạm vi dé tài hướng đến
- _ Các cửa hàng muốn có một Website bán quan áo
- _ Khách hàng muốn mua sản phẩm trực tuyến
- _ Khách hàng có kiến thức cơ bản về Web3
1.5 Phạm vi
Đề tài tập trung vào xây dựng hệ thống trên nền tảng Website hướng tới đối tượng
sử dụng là những người có nhu cầu mua quần áo
Áp dụng tại các cửa hàng bán quần áo muốn có Website bán quần áo trực tuyến.Người dùng có điện thoại hoặc laptop có internet là có thể truy cập
1.6 Phương pháp thực hiện
Tìm hiểu và phân tích quy trình tìm kiếm, mua bán sản phẩm tại các Website bán
quân áo
Phân tích các giải pháp của các sản phẩm tương tự trên thị trường
Xây dựng chức năng ở mức MVP (Minimum Viable Product) để đo lường tính
hiệu quả.
1.7 Y nghĩa thực tiễn
- Viéc tìm kiếm sản phâm ưng ý dé dang hơn cho khách hàng
- _ Người quan trị có thé dé dàng quản lý các sản phẩm có trong cửa hàng
2
Trang 17Hệ thống giúp khách hàng tìm kiếm và lựa chọn sản phẩm ưng ý một cáchnhanh chóng và thuận tiện nhờ vào các tính năng lọc, tìm kiếm theo từkhóa, và gợi ý sản phẩm dựa trên sở thích cá nhân.
Khách hàng có thê tìm thấy một địa điểm mua sắm tin cậy với các sản phẩmquần áo chất lượng cao, được kiểm duyệt và đánh giá kỹ lưỡng trước khi
Hiểu rõ các công nghệ mới:
e Front- end: Tailwind , NextJs, Reactjs, Ant Design.
e Back — end: NodeJS, Postgres, MongoDB, Cloudinary, ASP.NET core 7,
hệ thống gợi ý
e Web3: Ethereum, solidity, sepolia, openzepplin, ERC-721.
Hoàn thành sản phẩm với các chức năng đã được trình bày:
e Giao diện người dùng: Hoàn thiện giao diện người dùng với thiết kế đẹp
mắt, dễ sử dụng và thân thiện Giao diện sẽ bao gồm các trang như trang
chủ, trang danh mục sản phâm, trang chi tiết sản phẩm, giỏ hàng, và thanh
toán.
e Chức năng mua sam: Cung cap các chức năng mua sam cơ bản như thêm
sản phẩm vào giỏ hàng, thanh toán trực tuyến, và theo dõi đơn hàng Hỗtrợ nhiều phương thức thanh toán
e Giao diện thân thiện và tạo ra được những giá trị của mục tiêu.
Trang 18Chương 2: CƠ SỞ LY THUYET
Ở chương này chúng em trình bày sơ lược về lý thuyết các công nghệ được sửdụng trong khoá luận Mỗi công nghệ sẽ được giới thiệu ngắn gọn, bao gồm phần
giới thiệu, các đặc trưng và lý do chọn công nghệ đó.
2.1 IPFS
2.1.1 Giới thiệu
IPFS (InterPlanetary File System) là một giao thức va mạng lưới phân tan dùng
để lưu trữ và chia sẻ đữ liệu trong một hệ thống tập tin ngang hàng (peer-to-peer)
IPFS được thiết kế để làm cho mạng Internet trở nên phi tập trung hơn và chống lại
Không thay đổi: Một khi dữ liệu được thêm vào IPFS, nó không thé bị thay
đôi, dam bao tính toàn vẹn của dữ liệu
Dia chỉ nội dung (Content Addressing): IPFS sử dụng hàm băm mật mã để tạo
ra các địa chỉ duy nhất cho các tập tin, thay vì sử dụng địa chỉ IP Điều này giúp tìmkiếm và xác thực dữ liệu nhanh chóng
Hiệu quả: Hệ thống này tiết kiệm băng thông bằng cách lưu trữ và phân phốicác tập tin theo cách phi tập trung, giảm thiêu sự trùng lặp đữ liệu
Trang 192.1.3 Lý do chọn
Chống kiểm duyệt: Do dữ liệu được lưu trữ trên nhiều nút mạng, IPFS khó bịkiểm duyệt hoặc ngăn chặn bởi bat kỳ tô chức hay chính phủ nào
Kha năng mở rộng: Mạng IPFS có thé dé dang mở rộng và xử lý khối lượng dữ liệu
lớn mà không cần các cơ sở hạ tầng máy chủ trung tâm lớn
Tính bên vững: Dữ liệu trên IPFS có thể được truy cập và duy trì lâu dài, ngay
cả khi các nguồn ban dau bi mắt
Hiệu suất cao: Do cách thức lưu trữ và phân phối dữ liệu phi tập trung, IPFSgiúp tăng tốc độ truy cập và tải xuống đữ liệu so với các hệ thống truyền thống
Bảo mật: Việc sử dụng hàm băm mật mã giúp đảm bảo tính toàn vẹn và bảo mật của dữ liệu.
Hỗ trợ và tài liệu phong phú: Hỗ trợ tốt từ cộng đồng và tài liệu chỉ tiết
2.2 NextJS
2.2.1 Giới thiệu
NEXT.
Hinh 2.2: Logo NextJS
Next.js là một framework phát triển ứng dụng web React với kha năng xâydựng Server-side Rendering (SSR) và Static Site Generation (SSG) Nó cung cấp mộtcách tiếp cận hybric rendering, cho phép lựa chọn giữa client-side rendering và
server-side rendering tùy thuộc vào yêu cầu của ứng dụng
2.2.2 Các đặc trưng
Server-side Rendering (SSR): Next.Js cho phép xây dựng ứng dụng với khả
năng render trên phía máy chủ Khi một yêu cầu được gửi đến máy chủ, Next.js sẽ
5
Trang 20thực hiện việc render trước trang và trả về nội dung HTML đã được tạo ra cho trìnhduyệt Điều này giúp cải thiện khả năng tìm kiếm và trải nghiệm người dùng ban đầu.
Static Site Generation (SSG): Next.js hỗ trợ xây dựng các trang tĩnh trước
(pre-rendered) với nội dung được tao ra trong quá trình xây dựng ứng dụng.
Incremental Static Regeneration (ISR): Next.Js cho phép cập nhật lại các trang tĩnh
đã được tạo ra trước theo một lịch trình định sẵn Khi có yêu cầu mới, Next.Js có thétạo lai các trang tinh chỉ trong vài giây và cung cấp nội dung mới nhất cho người
dùng.
2.2.3 Lý do chọn NextJS cho đề tài
Performanee: Next.js cung cấp khả năng SSR và SSG giúp cải thiện hiệu suất
và tốc độ tải trang Trang được render trước trên phía máy chủ hoặc tạo trước dướidạng trang tĩnh, giúp giảm thời gian phản hồi và tăng trải nghiệm người dùng
SEO-friendly: Với khả năng SSR và SSG, Next.Js giúp cải thiện khả năng tìm
kiếm của trang web Các trang được tạo ra trước có thê chứa nội dung đầy đủ và đáng
tin cậy cho các công cụ tìm kiếm
Developer Experience: Next.js cung cấp một số tính năng hữu ích như HMR
và Fast Refresh giúp tăng tốc quá trình phát triển và giúp nhà phát triển dé dang xây
dựng ứng dụng React phức tạp.
Scalability: Next.js hỗ trợ việc xây dựng các ứng dụng có khả năng mở rộng và
điều chỉnh linh hoạt Với khả năng render trên phía máy chủ và tạo trước các trang
tinh, Next.Js giúp giảm tải cho máy chủ và cho phép ứng dụng xử lý tải trong cao.
Trang 21ExpressJS là một framework web nhẹ và linh hoạt dành cho Node.js, được
phát triển bởi TJ Holowaychuk và phát hành lần đầu vào năm 2010 Nó được thiết kế
dé xây dựng các ứng dung web và API nhanh chóng và dé dang ExpressJS cung capmột tập hợp các tinh năng mạnh mẽ dé quản lý các yêu cầu HTTP và tạo các tuyến
đường (routes) cho ứng dụng.
2.3.2 Các đặc trưng
Đơn giản và nhẹ nhàng: Cung cấp một cấu trúc đơn giản dé xây dựng ứng dụng
web và API.
Middleware linh hoạt: Dễ dàng thêm các chức năng qua middleware, giúp xử
lý yêu cầu và phản hồi một cách linh hoạt
Routing mạnh mẽ: Hỗ trợ hệ thống routing mạnh mẽ, giúp quản lý các tuyến
đường (routes) phức tap.
Hỗ trợ template engines: Dễ dàng tích hợp với các template engine như Pug, EJS
dé render trang HTML
Tương thích tốt với các framework khác: Dễ dàng tích hop với các framework
khác như React, Angular, và Vue.
Trang 222.3.3 Lý do chọn
Học nhanh và dễ sử dụng: Cấu trúc đơn giản và tài liệu phong phú giúp người
mới bắt đầu dé dàng nắm bat
Hiệu suất cao: Do được xây dựng trên nền tảng Node.js, Express.js có khảnăng xử lý lượng yêu cầu lớn một cách hiệu quả
Tính linh hoạt: Middleware linh hoạt cho phép tùy chỉnh ứng dụng theo nhu cầu
cụ thé
Hỗ trợ đầy đủ cho RESTful API: Cung cấp các tinh năng mạnh mẽ dé xây
dựng API RESTful, phù hợp cho các ứng dụng hiện đại.
2.4 Typescript
2.4.1 Giới thiệu
TypeScript là một ngôn ngữ lập trình mã nguồn mở phát triển bởi Microsoft.
Nó là một phiên bản mở rộng của JavaScript, được thiết kế để xây dựng ứng dụnglớn, phức tạp và dé bảo trì TypeScript cung cấp các tinh năng kiểm tra kiểu tĩnh, khắc
phục một số hạn chế của JavaScript và giúp phát triển dự án có tính bảo trì cao hơn
2.4.2 Các đặc trưng
Kiểm tra kiểu tĩnh: Một trong những đặc điểm quan trọng nhất của TypeScript
là khả năng kiểm tra kiểu tĩnh TypeScript cho phép xác định kiểu đữ liệu cho biến,tham số, và giá tri trả về của hàm Điều này giúp phát hiện lỗi kiểu và cung cấp cungcấp thông tin hữu ich dé phát triển và bảo trì mã nguồn
Tính mở rộng: TypeScript cho phép mở rộng các kiêu dit liệu có sẵn và tạo ra
các kiểu dữ liệu tùy chỉnh Điều này giúp mô hình hóa các cấu trúc đữ liệu phức tạp
và tạo ra mã nguồn dé đọc và dé bảo trì hơn
Tích hợp công cụ phát triển: TypeScript tích hợp tốt với các công cụ phát triểnnhư trình biên dịch TypeScript (tsc), trình gỡ lỗi và trình thông báo lỗi Điều này giúpphát triển và gỡ lỗi mã nguồn TypeScript một cách hiệu quả
Hệ sinh thái mạnh mẽ: TypeScript có một hệ sinh thái mạnh mẽ với nhiều thư
Trang 23viện, framework và công cụ phat triển hỗ trợ Các thư viện phô biến như React,Angular và Node.js đều hỗ trợ TypeScript, giúp xây dựng các ứng dụng web, mobile
Mở rộng JavaScript: TypeScript là một phiên ban mở rộng của JavaScript, cho
phép sử dụng các tính năng mới trong ECMAScript và xây dựng ứng dụng hiện dai.
2.5 PostgreSQL
2.5.1 Giới thiệu
PostgreSQL
Hinh 2.5: Logo PostgreSQL
PostgreSQL là một hệ quan trị cơ sở dữ liệu quan hệ mã nguồn mở và mạnh
mẽ Được phát triển từ nguồn gốc của Ingres vào những năm 1980, PostgreSQL đãtrở thành một trong những hệ quản tri cơ sở dt liệu phổ biến nhất trên thế giới
2.5.2 Cac đặc trưng
Mã nguồn mở: PostgreSQL là một phần mềm mã nguồn mở, điều này có nghĩa
là có thể xem, sửa đổi và phân phối mã nguồn theo nhu cầu của Điều này mang lại
sự linh hoạt và khả năng tùy chỉnh mạnh mẽ cho người dùng.
Quan lý dit liệu phong phú: PostgreSQL hỗ trợ nhiều kiêu dữ liệu khác nhau,
Trang 24bao gồm cả số nguyên, số thực, chuỗi ký tự, kiêu đữ liệu ngày tháng, kiểu dữ liệu địa
lý và nhiều hơn nữa Nó cung cấp các tính năng phong phú như khóa ngoại, giao dịch,
chức năng và trình tự, giúp quản lý dữ liệu một cách hiệu quả.
Hiệu suất cao: PostgreSQL được tối ưu hóa để đạt hiệu suất cao, đồng thời hỗtrợ khả năng mở rộng đọc và ngang Nó có thé xử lý các bộ dữ liệu lớn và tải côngviệc lớn mà vẫn duy trì tốc độ và độ tin cậy
Bảo mật mạnh mẽ: PostgreSQL cung cấp các tính năng bảo mật mạnh mẽ débảo vệ dit liệu của Nó hỗ trợ xác thực người dùng, kiểm soát truy cập dựa trên vaitrò và quyền hạn, mã hóa dữ liệu và các tính năng khác để đảm bảo an ninh cao
Cộng đồng lớn và hỗ trợ: PostgreSQL có một cộng đồng rộng lớn với hàngngàn người dùng và nha phát triển trên toàn thé giới Cộng đồng này cung cấp tai liệuphong phú, diễn đàn thảo luận, tài liệu hướng dẫn và hỗ trợ cho người dùng Có thểtìm thấy giải pháp cho các vấn đề cụ thể hoặc nhận sự hỗ trợ từ cộng đồng rất dễ
dàng.
2.5.3 Lý do chọn
Độ tin cậy và ôn định: PostgreSQL đã được thử nghiệm và sử dụng rộng rãi
trong nhiều ứng dụng lớn và quy mô doanh nghiệp Nó đã chứng tỏ được tính 6n định
và độ tin cậy cao trong việc xử lý và quản lý dữ liệu.
Kha năng mở rộng: PostgreSQL cho phép mở rộng dọc và ngang, cho phép
tăng cường khả năng xử lý và lưu trữ đữ liệu theo nhu cầu.Có thể thêm các máy chủ,
phân chia dữ liệu và tối ưu hóa hiệu suất mà không gặp nhiều rào cản
Bảo mật và tuân thủ chuẩn: PostgreSQL tuân thủ các chuẩn bảo mật và chuẩnSQL quốc tế, như ANSI SQL và ACID (Atomicity, Consistency, Isolation,Durability) Điều này đảm bao rang dữ liệu của được bảo vệ và tuân thủ các quy tắcquan trọng về đồng nhất và bảo mật
2.6 MongoDB
2.6.1 Giới thiệu
MongoDB là một hệ quản tri cơ sở dữ liệu NoSQL mã nguồn mở, được thiết
10
Trang 25kế dé lưu trữ và quản lý dit liệu phi cấu trúc hoặc bán câu trúc MongoDB sử dụng
mô hình đữ liệu hướng tài liệu, giúp nó linh hoạt và dé dàng mở rộng.
2.6.2 Các đặc trưng
Hướng tài liệu: Thay vì lưu trữ dữ liệu dưới dạng bảng và hàng như trong SQL,
MongoDB lưu trữ đữ liệu dưới dạng các tài liệu JSON, giúp dễ dàng quản lý đữ liệu
Hiệu suất cao: MongoDB được thiết kế để cung cấp hiệu suất cao với khả năng
truy cập dữ liệu nhanh chóng và hiệu quả.
2.6.3 Lý do chọn
Linh hoạt va dé sử dụng: Cấu trúc tài liệu JSON giúp MongoDB dễ dàng quản
ly và thay đổi dit liệu mà không cần thay đổi cấu trúc cơ sở dữ liệu, phù hợp với các
ứng dụng có yêu cầu dit liệu biến đồi
Mở rộng dễ dàng: Khả năng mở rộng ngang giúp MongoDB quản lý khối
lượng dữ liệu lớn và đáp ứng các yêu cầu về hiệu suất của các ứng dụng hiện đại
Tích hợp tốt: MongoDB dễ dàng tích hợp với nhiều ngôn ngữ lập trình và côngnghệ khác nhau, giúp phát trién ứng dụng nhanh chóng
I
Trang 262.7 ASP.NET Core 7 API
2.7.1 Giới thiệu
Á Vv TM
ASP.NET
Hinh 2.6: Logo ASP.NET 7
ASP.NET Core 7 API là một phan của framework mã nguồn mở ASP.NETCore, được sử dụng dé xây dung các dich vụ và ứng dung web API với NET VớiASP.NET Core 7 API, có thé tao ra các dịch vụ web API hiệu quả, linh hoạt va cókhả năng mở rộng trên nhiều nén tảng, bao gồm Windows, Linux và macOS
2.7.3 Ly do chọn
Độ tin cậy và hỗ trợ từ Microsoft: ASP.NET Core là một sản phẩm củaMicrosoft, một công ty công nghệ hàng đầu thế giới Việc được phát triển và hỗ trợbởi Microsoft đảm bảo rằng ASP.NET Core 7 API sẽ được duy trì và cập nhật thường
xuyên, bao gồm các bản vá lỗi và cải tiến tính năng mới
Hiệu suất cao: ASP.NET Core 7 API được thiết kế để có hiệu suất cao Nó sử dụng
mô hình xử ly không đồng bộ và sự tối ưu hóa dé đảm bảo khả năng phản hồi nhanh
12
Trang 27chóng và xử lý đông thời nhiêu yêu câu từ các client Điêu này làm cho ứng dụng của
có thể xử lý lượng lớn yêu cầu một cách hiệu quả
2.8 VNPAY Sandbox
2.8.1 Giới thiệu
VNPAY“*
Scan to Pay
Hinh 2.7: Logo VNPAY
VNPAY Sandbox là một môi trường thử nghiệm cho phép các nhà phat triểnứng dụng tích hợp và kiểm tra tính năng của VNPAY, một hệ thống thanh toán điện
tử hàng đầu tại Việt Nam Được giới thiệu vào năm 2018, VNPAY Sandbox đã trởthành công cụ quan trọng trong quá trình phát triển và kiểm tra ứng dụng thanh toáncủa các nha phát trién
2.8.2 Các đặc trưng
Môi trường thử nghiệm an toàn: VNPAY Sandbox cung cấp một môi trườngthử nghiệm an toàn và đáng tin cậy dé các nhà phát triển kiểm tra tính năng và tíchhợp thanh toán của VNPAY mà không cần lo lắng về việc ảnh hưởng đến hệ thốngthực tế Điều này giúp giảm thiểu rủi ro và tăng tính đáng tin cậy của các ứng dụngthanh toán được phát triển
Tích hợp dễ dàng: VNPAY Sandbox cung cấp tài liệu và hướng dẫn chỉ tiết vềcách tích hợp thanh toán vào ứng dụng Các nhà phát triển có thể sử dụng API(Application Programming Interface) của VNPAY dé tương tác với hệ thống thanh
toán và kiểm tra tính năng như thanh toán trực tuyến, thanh toán hóa đơn, chuyên
khoản, và nhiều tính năng khác
2.8.3 Lý do chọn
Đáng tin cậy và an toàn: VNPAY là một trong những hệ thống thanh toán hàng
13
Trang 28đầu tại Việt Nam với nhiều năm kinh nghiệm trong lĩnh vực thanh toán điện tử.
VNPAY Sandbox được xây dung dựa trên cơ sở hạ tầng đáng tin cậy của VNPAY,
dam bảo tính an toàn và bảo mật cho các giao dịch thanh toán.
Dễ dàng tích hợp: VNPAY Sandbox cung cấp tài liệu và hướng dẫn chỉ tiết về
cách tích hợp thanh toán vào ứng dụng Việc tích hợp được thực hiện một cách dễ
dàng và nhanh chóng, giúp các nhà phát triển tiết kiệm thời gian và công sức trongquá trình phát triển ứng dụng thanh toán
Trang 29Khả năng mở rộng: Recombee được thiết kế để hoạt động hiệu quả trên các hệ
thống lớn, có khả năng mở rộng theo nhu cầu của doanh nghiệp.
2.9.3 Lý do chọn
Tăng cường trải nghiệm người dùng: Recombee giúp tạo ra các khuyến nghị
cá nhân hóa, làm tăng sự hài lòng và tương tác của người dùng với ứng dụng hoặc trang web.
Thúc day doanh số: Các khuyến nghị chính xác giúp tăng tỉ lệ chuyển đổi vàdoanh số bán hàng bang cách gợi ý sản phâm hoặc nội dung phù hợp với từng người
dùng.
Triên khai nhanh chóng: Với các API đễ sử dụng, doanh nghiệp có thể nhanhchóng tích hợp Recombee vào hệ thống của mình mà không cần thay đổi nhiều về cơ
15
Trang 30sở hạ tầng.
Phân tích và tôi ưu hóa: Recombee cung cấp các công cụ phân tích giúp doanh
nghiệp hiéu rõ hơn về hành vi người dùng và tối ưu hóa các chiến lược khuyến nghị
2.10 Docker
2.10.1 Giới thiệu
Docker là một nền tảng mã nguồn mở cung cấp khả năng tự động hóa việctriển khai ứng dụng trong các container phần mềm Container là một môi trường đónggói toàn bộ mã nguồn, thư viện, và các thành phan phụ thuộc cần thiết, giúp ứng dụngchạy mượt mà trên bất kỳ hệ thống nào
Hiệu quả tài nguyên: Container nhẹ hơn và sử dụng ít tài nguyên hệ thống hơn
so với máy ảo (VM), giúp tối ưu hóa hiệu suất và giảm chi phí
Cơ sở hạ tầng linh hoạt: Docker cho phép dé dang quản ly và mở rộng cáccontainer, giúp tăng tính linh hoạt và khả năng mở rộng của hệ thống
Tính di động: Ứng dụng trong container Docker có thê chạy trên bat ky máychủ nào có Docker, bất ké hệ điều hành hay nền tang cơ sở hạ tang
2.10.3 Ly do chọn
Nhất quán và độ tin cậy cao: Docker đảm bảo ứng dụng chạy nhất quán trên
mọi môi trường từ phát triển đến sản xuất, giúp giảm thiêu lỗi do khác biệt môi
16
Trang 31Tăng cường hiệu suất: Với Docker, các ứng dụng được triển khai và chạy
nhanh hơn, giúp tăng hiệu suất làm việc và giảm thời gian triển khai
Quản lý và mở rộng dễ dàng: Docker giúp quản lý và mở rộng ứng dụng dễ
dàng thông qua các container, giúp doanh nghiệp dé dàng điều chỉnh tài nguyên theonhu cầu
Chỉ phí thấp: Docker giảm chỉ phí phần cứng và tài nguyên so với việc sử dụngmáy ảo, đồng thời tối ưu hóa việc sử dụng tài nguyên hệ thống
Hỗ trợ DevOps: Docker hỗ trợ mạnh mẽ cho các quy trình DevOps, giúp tích hợp
liên tục (CI) và triển khai liên tục (CD), cải thiện quy trình phát triển và triển khai
phân mêm.
17
Trang 322.11 Blockchain
Blockchain là một công nghệ lưu trữ và truyền tải thông tin một cách phi tập trung,
an toàn và minh bạch Có thê hiểu đơn giản như sau:
e_ Cấu trúc: Blockchain là một chuỗi các khối (blocks) chứa thông tin, được liênkết với nhau và mở rộng liên tục
e_ Phi tập trung: Dữ liệu được lưu trữ trên nhiều máy tính trong mạng lưới thay
vì một máy chủ trung tâm.
e_ Bảo mật: Mỗi khối đều được mã hóa và liên kết với khối trước đó, làm choviệc thay đôi thông tin rất khó khăn
e Minh bạch: Mọi giao dịch đều được ghi lại và có thé kiểm tra bởi tất cả người
tham gia mạng lưới.
18
Trang 332.12 Web3
Web3 là khái niệm về thế hệ tiếp theo cua Internet, dựa trên công nghệ Blockchain
và phi tập trung Có một số đặc điểm sau:
e Phi tập trung: Web3 nhằm mục dich phân quyền Internet, giảm sự phụ thuộc
e©_ Ứng dụng phi tập trung (dApps): Các ứng dụng chạy trên mạng lưới phi tập
trung thay vì máy chủ tập trung.
e_ Hợp đồng thông minh (smart contract): Sử dung các hợp đồng tự thực thi trên
Trang 342.13 Ethereum Sepolia
2.13.1 Giới thiệu
Ethereum Sepolia là một trong những testnet (mạng thử nghiệm) cua
Ethereum, được sử dụng đề thử nghiệm các ứng dụng và hợp đồng thông minh mà
không cần dùng đến mạng chính (mainnet) và chi phí thực Sepolia giúp các nhà pháttriển kiểm tra tính năng, tìm lỗi và cải tiễn sản phâm trước khi triển khai chính thức
2.13.2 Các đặc trưng
Phí giao dịch thấp: Giống như các testnet khác, Sepolia có phí giao dịch rất
thấp, giúp nhà phát triển tiết kiệm chi phí khi thử nghiệm
Môi trường thử nghiệm an toàn: Sepolia cung cấp một môi trường an toàn déthử nghiệm các hợp đồng thông minh và ứng dụng phi tập trung (dApps) mà khôngảnh hưởng đến tài sản thật
Đồng bộ với Ethereum mainnet: Sepolia thường xuyên cập nhật dé phản ánhcác thay đổi và nâng cấp từ mạng chính Ethereum, đảm bảo sự tương thích và hiệuquả khi triển khai
Dé dàng tiếp cận: Các nhà phát triển có thê dé dàng truy cập vào Sepolia thông
qua các công cụ và tài liệu phong phú.
Kiểm tra trước khi triển khai: Sepolia giúp các nhà phát triển kiểm tra các hợp
20
Trang 35đồng thông minh và dApps kỹ lưỡng trước khi triển khai lên mạng chính, giảm thiểurủi ro lỗi và lỗ hồng bảo mật.
Tiết kiệm chi phí: Sử dụng testnet như Sepolia giúp tiết kiệm chi phí vì khôngcần sử dụng ether thật
Hỗ trợ phát triển và học tập: Là một môi trường lý tưởng cho việc học tập vàphát triển kỹ năng lập trình Ethereum, đặc biệt là cho người mới bắt đầu
Tích hợp dé dàng: Sepolia cung cấp các công cụ va API tương thích với mạngchính, giúp dé dàng chuyền đổi từ giai đoạn thử nghiệm sang triển khai thật
Đánh giá hiệu suất: Giúp các nhà phát triển đánh giá hiệu suất của ứng dụng và tối
ưu hóa nó trước khi đưa lên mạng chính.
2.14 Hợp đồng thông minh (Smart contract)
Smart contract, hay hợp đồng thông minh, là một chương trình máy tính tự thựcthi được lưu trữ trên Blockchain Các hợp đồng này tự động thực hiện, kiểm soát hoặc
ghi lại các sự kiện và hành động quan trọng theo các điều khoản của thỏa thuận đã
được lập trình sẵn Không cần trung gian, smart contract hoạt động trên nguyên tắc
"if-then" (néu-thi), tự động thực hiện khi các điều kiện được đáp ứng
Smart Contract
ort
200
Create Transactions
Trang 36người dung thanh toán bằng token Đặc tính này thé hiện như sau:
Tự động hóa: Smart contract tự thực thi dựa trên các điều kiện đã được lậptrình sẵn, không cần sự can thiệp của bên trung gian
Phi tập trung: Hợp đồng được lưu trữ và thực thi trên mạng Blockchain phi
tập trung, không phụ thuộc vào một co quan trung tâm nao.
Giảm chi phí: Loại bỏ các khoản phí trung gian thường phát sinh trong các
giao dịch truyền thống
Tăng tốc độ: Quá trình thực hiện hợp đồng diễn ra nhanh chóng do không cần
chờ đợi xử lý từ bên thứ ba.
Minh bạch: Mọi điều khoản và quá trình thực hiện đều công khai trên
Blockchain, tăng tính minh bach.
Giảm rủi ro: Hạn chế rủi ro từ sự can thiệp hoặc lỗi của con người trong quátrình thực hiện hợp đồng
Tin cậy: Tao ra sự tin cậy giữa các bên thông qua mã lệnh thay vì phải tin
tưởng vào bên trung gian.
Smart Contracts
Secure
H
Trust less ¥., H
Parties (Buyer _ [Smart Contracts No Third Party/ | Execution Of
and Seller) gen Middlemen The Contract
Autonomous
*
Cost Effective <> WallStreetMojo
Hình 2.15: No need for a 3rd party
2.15 ERC-721
2.15.1 Giới thiệu
ERC-721 là một tiêu chuẩn cho các mã thông báo không thẻ thay thế (NFT)
22
Trang 37trên chuỗi khối Ethereum Được dé xuất vào năm 2017, ERC-721 cho phép tạo ra các
mã thông báo độc nhất, không thể hoán đồi với nhau
2.15.2 Các đặc trưng
Tính không thể thay thế: Mỗi mã thông báo là duy nhất
Quyền sở hữu: Có thé chứng minh quyền sở hữu và chuyên giao
Khả năng tương tác: Hoạt động trên các ứng dụng và hợp đồng khác nhau trên
quả.
4 OpenZeppelin
23
Trang 38Hình 2.16: OpenZeppelin
2.16.2 Cac đặc trưng
o An toàn: Được kiểm toán bởi các chuyên gia bảo mật
o Dễ sử dụng: Cung cấp các hợp đồng thông minh chuẩn và tài liệu chỉ tiết
o Tính mở rộng: Hỗ trợ các mô-đun mở rộng, giúp tùy chỉnh dé dàng.
o Cộng đồng lớn: Được sử dụng rộng rãi bởi cộng đồng phát triển Blockchain
2.16.3 Ly do chọn
o Tin cậy: Các hợp đồng thông minh đã qua kiểm toán giảm thiểu rủi ro bao mật.o_ Tiết kiệm thời gian: Tận dụng các hợp đồng chuẩn, giảm thời gian phát triển
o_ Tương thích: Dễ dàng tích hợp với các dự án và công cụ khác trên Ethereum
2.17 Clone Factory Contract
2.17.1 Đặt van đề:
Trong quá trình nghiên cứu và tim hiểu về việc viết một smart contract tập
trung để giúp tạo ra và quản lý các sản phẩm được bán dưới dạng NFTs, nhóm đã
tìm hiểu đến “Factory design pattern”, một design pattern được sử dung rộng rãitrong các ngôn ngữ lập trình hướng đối tượng Nhưng có một vấn đề là mô hình
này tiêu tốn rất nhiều phí gas để deploy một NFT theo chuẩn ERC-721 Điều này
xảy ra mỗi khi có một NFT mới được merchant tạo trên trang web, và mô hình
trang web được thiết kế dé hỗ trợ phí gas cho merchant tạo ban sản phẩm dưới
dạng NET nên đây thực sự là một vấn đề về mặt chỉ phí
Depoy new
24
Trang 39Hình 2.17: Mô hình factory contract truyền thong
Nhận thấy cấu trúc byte code của mỗi một NFT lúc deploy gần như là giốngnhau, chỉ khác nhau các đoạn byte code về các thông tin được người dùng địnhnghĩa Nhóm đã đi đến tìm hiểu và nghiên cứu một design pattern tối ưu hơn là
Clone Factory Contract.
Hình 2.18: Clone Factory contract
"Clone Factory Smart Contract" là một phương pháp sáng tao va hiệu qua
dé triển khai các phiên ban mới của các hợp đồng thông minh hiện có trênBlockchain Ethereum, giúp tiết kiệm chỉ phí gas
Hinh 2.19: Delegate function contract
Ý tưởng ở đây là ta sé dùng contract factory dé deploy logic ERC-721đúng một lần lên lên chain (Implement contract), các lần deploy NFT mới sé
25
Trang 40tạo ra một contract chỉ chứa byte code của riêng NET đó, còn logic sẽ được
thực hiện ở Implement contract Lượng code deploy trên chain giảm, dẫn đến
phí gas giảm.
Khi user gọi function lên NFT của họ, nó sẽ delegate call kèm data của
NFT để thực hiện các logic trong implement contract
‘4 - Return the result from step 3 if succeeded or revert the transaction
Hình 2.20: Mô hình hoạt động của conlone factory contract
Hình 2.21: So sánh phí gas giữa 2 pattern factory contract
2.18 Thanh toán đơn hàng bằng token
Dựa vào smart contract nhóm cũng đã thực hiện viết smart contract dé xử ly
thanh toán đơn hang bằng đồng ETH thông qua ví Metamark
Thông thường, với các sản thương mại điện tử như shoppe, lazada, tiền hàngthanh toán từ khách hàng sẽ được sản giữ lại và sẽ được tất toán định kỳ sau khi trừ
26