1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Truyền thông và mạng máy tính: Xây dựng nền tảng thương mại sách điện tử tích hợp hệ thống phân loại thông qua bìa sách

104 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 54,88 MB

Nội dung

¢ Tim hiểu va sử dụng các mô hình máy học về xử ly hình ảnh và ngôn ngữ cho việc phân tích nội dung bìa sách lẫn hình ảnh để đưa ra dự đoán về thê loại trong những thể loại có sẵn ¢ Tich

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG DỮ LIỆU

LÊ TRỌNG HIẾU TRAN HOÀNG LONG

KHOA LUAN TOT NGHIEP

XAY DUNG NEN TANG THUONG MAI SACH DIEN

TU TICH HQP HE THONG PHAN LOAI THONG

QUA BIA SACH

Developing an e-book commerce platform with an automated

classification by book cover system

KY SU NGANH MANG MAY TINH VA TRUYEN THONG

TP HO CHÍ MINH, 2022

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA MANG MAY TINH VA TRUYEN THONG DU LIEU

LE TRỌNG HIẾU - 18520052 TRAN HOANG LONG - 18520093

KHOA LUAN TOT NGHIEP

XÂY DUNG NEN TANG THUONG MẠI SÁCH ĐIỆN TU

TÍCH HỢP HE THONG PHAN LOẠI THONG QUA BIA

SACH

Developing an e-book commerce platform with an automated

classification by book cover system

KY SU NGANH MANG MAY TINH VA TRUYEN THONG

GIANG VIEN HUONG DAN ThS DANG LE BAO CHUONG

TP HO CHI MINH, 2022

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

"— e eee eeeeeeaeeee ees ngay của Hiệu trưởng Trường Dai hoc Công nghệ

Trang 4

LỜI CẢM ƠN

Đầu tiên, nhóm đề tài xin cảm ơn tat cả thầy cô trong khoa Mạng máy tính và

Truyền thông nói riêng và những thầy cô ở trường Dai học Công nghệ Thông tin —

Đại học Quốc gia TP Hồ Chí Minh nói chung Những người đã tận tâm giảng dạy,

truyền đạt cho chúng em những kiến thức quan trọng và cả lời khuyên chân thành

trong suốt thời gian học vừa qua.

Đặt biệt, cảm ơn sâu sắc đến thầy ThS.Đặng Lê Bảo Chương, người đã tận tình hướng dẫn, giúp đỡ cũng như định hướng, góp ý và cung cap nhiều kiến thức cần thiết cho nhóm trong suốt thời gian thực hiện khóa luận tốt nghiệp.

Kết quả khóa luận tốt nghiệp là quá trình cố gắng và nỗ lực của nhóm, tuy nhiên với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của nhóm thì những

thiết sót là điều không thê tránh khỏi, vì vậy nhóm rất mong nhận được những ý kiến

đánh giá khách quan, những góp ý chân thành từ quý thầy cô dé từ đó nhóm có thé rút ra những kinh nghiệm quý báu cho bản than và hoàn thành khóa luận tốt nghiệp

Trang 5

ĐHQG TP HO CHÍMINH CONG HÒA XÃ HOI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

DE CUONG CHI TIẾT

TEN DE TAI:

¢ Tên tiếng Việt: Xây dựng nén tảng thương mai sách điện tử tích hợp hệ thống

phân loại thông qua bìa sách

¢ Tên tiếng Anh: Developing an e-book commerce platform with an automated

classification by book cover system

Cán bộ hướng dẫn: ThS Đặng Lê Bao Chương

Thời gian thực hiện: Từ ngày 28/02/2022 đến ngày 12/06/2022

Sinh viên thực hiện:

e Lê Trọng Hiếu - 18520052

¢ Tran Hoàng Long - 18520093 Nội dung đề tài:

Mục tiêu

e_ Xây dựng được nén tảng thương mại sách điện tử với những chức năng cơ bản

dành cho người dùng và nhà sách/nhà xuât bản.

¢ Tim hiểu va sử dụng các mô hình máy học về xử ly hình ảnh và ngôn ngữ cho

việc phân tích nội dung bìa sách lẫn hình ảnh để đưa ra dự đoán về thê loại trong những thể loại có sẵn

¢ Tich hợp hệ thống phân loại tự động vào nền tảng dé tối ưu quá trình nhập liệu

cho nhà sách/nhà xuât bản

Trang 6

Đối tượng

e_ Xây dựng nên tảng thương mại điện tử dành cho ebook Nền tảng phân quyền

chức năng giữa người dùng ân danh, người dùng đăng ký và người bán sách

¢ Nghiên cứu model về phân tích hình ảnh bìa sách đề phân loại theo những chủ

đê có san

¢ _ Tích hợp model vào nền tảng đề tối ưu việc phân loại sách theo những chủ đề

có săn

Pham vi nghiên cứu

e _ Nền tảng thương mại sẽ có những chức năng tìm kiến, lọc, đọc sách, đánh giá,

lưu sách cơ bản cho người dùng Nền tảng cung cấp chức năng thêm xóa sửa sách cho người bán.

e© Tìm hiểu và sử dụng lại model có sẵn về phân loại chủ đề dựa trên đặc trưng

bìa sách Dau vào model là hình anh bìa sách và dau ra là thê loại năm trong

những thê loại định nghĩa trước

Phương pháp thực hiện

¢ Tim hiểu kiến thức liên quan đến xây dựng nền tảng thương mại sách điện tử

e Tìm hiểu, thu gom và sử dụng thử những model có sẵn và xác định model phù

hợp cho đê tài

e _ Tích hợp model vào nên tảng.

¢ Đánh giá kết quả phân loại Kết quả mong đợi

e _ Xây dựng nên tảng thương mại điện tử về sách điện tử với những chức năng cơ

bản cho nhà sách và người dùng

¢ St dụng và tích hợp hệ thống phân loại tự động dựa trên bìa sách vào nền tang

Kế hoạch thực hiện:

Thời gian Nội dung

28/2 — 12/3 Tìm hiểu, lựa chọn đề tài và xây dựng đề cương khóa luận

14/3 — 10/4 Xây dựng ứng dụng web

11⁄4- 8/5 Tìm hiểu va ứng dụng máy học vào trang web

Trang 7

9/5 - 29/5 Tích hợp vào trang web và đánh giá mô hình

30/5 — 12/6 Viết báo cáo khóa luận

20/6 — 3/7 Phản biện khóa luận tốt nghiệp

4/7 — 10/7 Bảo vệ khóa luận tốt nghiệp

Xác nhận của CBHD TP HCM, ngày tháng năm 2022

(Ký tên và ghi rõ họ tên) Sinh viên 1

(Ký tên và ghi rõ họ tên)

Sinh viên 2 (Ký tên và ghi rõ họ tên)

Trang 8

TOM TAT KHÓA LUẬN

Chương 1 = TONG QUAN DE TÀI -222-222222+22222++222222t22EExerrrrrkrcree 2

1.1 Đặt vấn GG oe cccccccsseeeecccccssssneeseccessssnneceeccessssnmseeeesessssmeseceesssnmecsecesssnuesses 2

In n o®o”^ 2

1.3 Đối tượng và phạm vi nghiên cứu

1.3.1 Đối tượng 55cvcerrrrrrrrrrrrrrrrrrrrrrrrrre.3

1.3.2 Phạm vi nghiên CỨU - - tt SE #E£vEeEekerekskrkrkrrrerrkerree 3

1.4 Cấu trúc khóa luận ¿-©2++++22E+++22EEE++222221122221112222112 2221 cee 3 Chương2 CƠ SỞ LÝ THUYET

0 9

2.4.1 Tính năng.

242 Uuđiểm à eo 0

U09) .ẻ 0 2.5.1 Khái niệm - c5 2 + TT HH HH re 0

2.5.2 Tính năng - 5+ St t1 rrrrrrrrkrrrrer 0

CLOUdINALY 1 ốc 1 PIN NNH‹ in 1

P "ng n 2

Trang 9

2.8.1 Tổng quan 2.8.2 Ứng dụng.

2.9 Mạng neural tích chập (CNN) thư 4

2.9.1 Khái niệm c5 TT HH Hay 4 2.9.2 Các lớp trong CNN ác ng tre 4

2.9.3 Mạng phan dư (ResNet) cccccssssssesssssssesssssseesesssseessesstesssssseeesssseeeeesse 5

2.10 Phương pháp đánh giá mô hình ¿-¿- 5 ¿52 5*2++x+£+£££zrzxzksrerre 5

2.10.1 mAẠP 5⁄2 n, 5

2.102 TOP-K QI gorse vccsscssssscsces Ngsrsessessscotpbesessssoassssacensessnsessesensonse 6

Chương 3 PHÂN TÍCH VA THIET KE HỆ THÓNG - 8

3.2.5 Dấu trang (Bookmark) -.-c -722cvccccrstrrceevsecrcecrrrrxv.c 35

3.2.6 Thêm nhiều ebook & tự động phân loại .-:- ¿+ 37

3.3 Thiết kế cơ sở dữ liệu chhnhhiHHe 44

3.3.1 Sơ đồ quan hệ các bảng -: 222222cccrstcccEEvvrrrrrrrrrrrrrrerree 44

3.3.2 Hệ thống cơ sở dit liệu c¿:©2222+ccSccvvrrrtrrkrrrrrrrrrrerrkev 45

Trang 10

Chương 4 KÉT QUA THỰC NGHIỆM -¿-©2222c+2222+vcrscrvscez 48

4.1 Đánh giá mô hình ¿52-525 k2 2 2 1g ưn 48

4.1.1 Mô hình Keras c c2 ttiethtHHhheHeee 48 4.1.2 Mô hình PyTOrch ¿5 - + St S*Sk*k#kEEE 1111 te 50

4.1.3 Kết luận quá trình thử nghiệm ¿¿©2c++22v+ecerrrvscee 5s 4.2 Đánh giá hiệu năng trước và sau khi tối wu

4.2.1 Tối ưu phase l 2-++22222+22E22E112221122272112 222112 53

4.2.1.2 Thực hiện 3 request eee eee es eeeeseeseeeeseseassesseneseseeesneeneaeees 55

4.2.2 Tối ưu phase 2 -¿ 2222++222221222221112221112271112227112 221 e 57 4.2.3 Kết luận quá trình tối ưu hiệu năng - c¿:+222+szccczxscee 59

' tu n :tt 59

4.3.1 Xác thực 4⁄2 n 59

4.3.2 Tài khoản (pTOfil€) tt SEtskeesrrrrrrerreerkrrererrd 64 4.3.3 Ebook OP I x@ ” o.ceiniieieree 67 4.3.4 Đánh giá & bình luận 5-5: Scccsxertrtererirterrrreerrree 75

4.3.5 Dấu trang (bookmark).

4.3.6 Thêm nhiều ebook & tự động phân loại - : -+ 78

Chương 5 KÉT LUẬN VÀ HƯỚNG PHÁT TRIÊN - 83

5.1 Kết luận và đánh gia cccccccssssssssssseesssssssccssssesccsssseessssuseesssseseesssssecesssneeeease 83

5.1.1 Kếtluận

5.1.2 Đánh giá che 83

5.2 Hướng phát triển

5.2.1 Thực hiện nâng cấp và cải thiện những nhược điểm còn tồn tại 84

5.2.2 Nghiên cứu và tiếp tục phát triển ứng dụng -. - 85

5.3 Khó khăn và hướng giải quyẾt -¿¿:©222++2222+++t2vEEvrrerrrkrrrerrkee 85

5.3.1 Khó khan 5.3.2 Hướng giải QUyÊ( 5c tt ưên 85

TÀI LIEU THAM KHẢO 22222-2222S22222+2222E22Y222+ttEEEEEEYErrrerrrrrrrrrrrree §6

Trang 12

DANH MỤC HÌNH

Hình 2.1: Framework ]NeX(.JS G1 HH HH TH HH HH HH 4 Hình 2.2: Cách hoạt động của server-side rendering .- - - 5+ +++sxs++ssssexess 5 Hình 2.3: Ngôn ngữ lập trình O - . G11 HH HH Hư, 7

Hình 2.4: Những tính năng nổi bật của ngôn ngữ GoO 2 ¿5+ s+c++£zzzzzez 8

Hinh 2.5: Framework Gin 000 ea 4 9

Hình 2.6: Hệ quan tri cơ sở dữ liệu PostgreSQL oe eeeecceeeeseeeneeeeeeseeeeceeeeeneeaeees 10 Hình 2.7: Dịch vụ lưu trữ trên đám mây CÏoudinary ¿ - s5 s++s++s+sexess 12 Hình 2.8: Micro framework FastALPÌ - - s s 19019111911 11 HH ngư 12

Hình 2.9: Nền tang ảo hoá Dockker - 2 s5 + 2+EE2EE£EE£EEE2EE2EEEEEerEErEkrrkerkrrex 13

Hình 2.10: Các lớp trong CNN - - LH HH HH HH HH 14

Hình 2.11: Công tính tính mAP - 5 1121011110111 11 11 1911 9v vn ve 16

Hình 2.12: Công thức tính Accuracy - - G5 + SE HH giết 16

Hình 3.2: Sơ đồ kiến trúc docker ccc:-cc2vcccctEttrrrttrrrrtrttrrrrrrrirrrrrrrieg 19

Hình 3.4: Sơ đồ tuần tự cho đăng ký - 2: ¿+S2+EE+EEEEEEEEEEEEEEEErrkerkerkrrex 22

Hình 3.5: Sơ đồ tuần tự cho § t0: 1 24

Hình 3.8: Sơ đồ tuần tự cho thêm 1 ebook mới ccc:+ccvecrsercvverrrrrrrer 28

Hình 3.9: Sơ đỗ tuần tự cho hiển thị dashboard -:-s¿2cxvvsvcxvvsrrversre 29Hình 3.10: Sơ đồ tuần tự cho hiền thị ebook chỉ tiẾt - -ccc-ccccc+ccvccere 30Hình 3.11: Sơ đồ tuần tự cho cập nhật thông tin ebook : ¿szs+=++ 31

Hình 3.15: Sơ đồ tuần tự cho xóa đánh giá - 2-2 s22+EE+EEeEEerEerrxsrkerkrrex 35

Trang 13

Hình 3.16: Sơ đồ tuần tự cho thêm/xóa bookmark - ¿ - s+s+z++E+£x+Eerxzxezxzzs 36

Hình 3.19: Sơ đồ tuần tự cho chức năng thêm nhiều ebook -5:s 40Hình 3.20: So đồ luồng dự đoán và xử lí khi phân loại genre - 42

Hình 3.21: Sơ đồ tuần tự cho chức năng sửa những ebook lỗi - 43

Hình 3.23: Bảng US€TS Á- Ác HT HH TH kg 45

Ig0ii)i0 25011300000 ằ 45 Hình 3.25: Bảng DOOKS - - - c1 11.1 TH TH TH HH 46 Hình 3.26: Bang ð€TT€S G01 HH HH nh 46 Hình 3.27: Bảng boOK_ Ø€TT€S c G1 21112111 101 v1 HH HH 47

Hình 3.28: Bang bookmarks «5 <6 + 111938211 E3 11 1 nh ng ng 47

Hình 4.1: Kết qua training mô hình Keras với 10 thé loai cecccscceessesseessesssesseeseeee 49

Hình 4.3: Kết quả mAP và top-k của mô hình Keras với 8 thé loại - 50

Hình 4.6: Sơ đồ luồng hoạt động phase 1 khi thực hiện 1 request 53

Hình 4.9: CPU va Memory khi tối ưu hệ thống và chưa tôi ưu ở service 54Hình 4.10: CPU va Memory khi tối ưu hệ thống và chưa tối ưu ở service Python 54Hình 4.11: Sơ đồ luồng hoạt động phase 1 khi thực hiện 3 request 55Hinh 4.12: Log thoi gian thuc thi 3 request tao nhiều ebooks với chế độ tuần tự 55Hình 4.13: CPU và Memory khi thực hiện 3 request tạo nhiều ebooks với chế độ

Trang 14

Sơ đồ luồng hoạt động phase 2 2-2 ©522S22EE+EEtEEcEEEEEerkerkeres 57

Giao diện trang chủ khi chưa đăng nhập - - 55s «<< <<++ 60 Giao dién trang dang KY 60 Giao diện trang đăng nhập - - - 2-2 3+ 19 31 1 re 61 Trang CHU 8u :021à 2n 61 Trang chủ CỦa SẨOTC óc HH ng 62 Giao diện trên điện thoại - - - + E232 1 11221232 E512 Exxxe 62

Giao điện khi mở menu - << 552333222 EEE++++eeEEEkeeesseeeeerxss 63

Giao diện cách truy cập vào trang prOfTÏ€ - - «+ +-s<++s++sesssess 64 Trang profile CỦA VI@WT G1 HH Hưng ngư 64 Trang profile CUa SEOTG - (2c 1191 HH ng 65 Trang profile trên kích cỡ điện thoại - - «5+ £+£+s£+se+se+sx 65 Cách truy cập vào trang chỉnh sửa profile -«<++s<++<s++ss+ 66

Giao diện trang chỉnh sửa thông tin pTrOfiÏe - «+ +-««++<+++ss++ 66

Nhập nội dung vào khung search dé tìm kiếm tựa sách 67

Giao diện trang kết quả tìm KiéM cece esseeseessesseesesssessesseestessessesseens 67

Giao diện lựa chọn thé lodi ceccccscscssessssesssseseesessessssesesssersesevsesevenseveees 68

Giao diện trang đọc €DOOK - sc + S311 2 1 911 1 ng ng re 70 Cách thức truy cập trang dashboard - - «+ +sx+sskksseeesseeeeeers 71 Giao diện trang dashboatd - - - 5 5 + x1 vn ng ng rư 71

Trang 15

Giao diện trang thêm ©bOOK <6 + + + 1£ ***kEESsEE+eeeEseeeeeseeerere 72

Nhắn vào biéu tượng chỉnh sửa để tới trang chỉnh sửa ebook 73

Giao diện trang chỉnh sủa €bOOK - s5 + £++skE+veerseeeeeerereers 73

Nhắn biéu tượng xoá để xoá ebook -¿©2c++cx+zxczrzrxrrxeres 74

Giao diện danh sách đánh giá c3 1+2 trsirerrkrrrrree 75 Giao diện khi đang đánh giá Sach 5 + s + ++sesveexeeesseeers 75

Giao diện danh sách bookmarK - 22+ + s + ++++2+e++zeeeeeees 76

Bam vào biéu tượng lần nữa dé xoá bookmark 2-5552 77

Cách truy cập vào trang upload nhiều file ¿2 s2 s22 78

Giao diện trang upload nhiều file khi upload thumbnails 78Giao diện trang upload nhiều file khi chuyển sang PDF 79

Giao diện các file được Upload - 5s ++<s++sx+eexeeeeerssereeereeres 79

Giao diện modal chỉnh sửa ebook lỗi - - + 2 2 + s+s+S+S+E+E+Ez£zxez 82

Trang 16

DANH MỤC BANG

Bang 4.1: So sánh kết quả thử nghiệm tốt nhất giữa 2 mô hình - 51Bang 4.2: So sánh kết quả khi thực hiện 1 request phase l -5 52 54Bảng 4.3: So sánh kết quả khi thực hiện 3 request phase 1 (trung bình) 57Bảng 4.4: So sánh kết quả tạo 3 request giữa phase 1 và phase 2 - 58

Bảng 4.5: Hiệu năng trung bình từng request ở phase 2 cceseeseeeeeteeeteeseeeteees 58

Trang 17

DANH MỤC TỪ VIET TAT

CNN Convolutional Neural Network

CSV comma-separated values

HTML HyperText Markup Language

ResNet Residual Networks

REST API Prectannine Int Sine Transfer Application

SEO Search Engine Optimization

SSR Server Side Rendering

UI/UX User Interface/ User Experience

Trang 18

TÓM TẮT KHÓA LUẬN

Hiện nay chúng ta đang chứng kiến sự bùng nổ của hàng loạt những nên tangthương mại điện tử như Tiki, Shopee, Lazada, dần dần trở thành một phần trongcuộc sống của chúng ta Những nên tảng này cho phép chúng ta có thé mua bán đủ

moi loại hàng hóa, sản phẩm từ quần áo giày dép tới những thiết bị điện tử như điện

thoại tivi, Có thé nói sự phát triển của những nên tảng trên đang dan thay đổi thói quen mua sắm của con người, kế cả thói quen đọc sách Việc tìm kiếm và đọc sách

online đang dan trở nên phổ biến hơn là minh chứng cho việc nay Vì thế, chúng em

quyết định xây dựng OpenBook nên tang thương mại điện tử về sách điện tử dé đáp ứng được nhu câu nay.

Khi xây dựng OpenBook, chúng em nhận thấy khi người bán muốn đăng một

số lượng lớn sách lên, việc nhập liệu băng tay trở nên khá khó khăn khi có rất nhiềusách và mỗi cuốn sách lại có nhiều thé loại khác nhau Ngoài ra,việc người ban cần

phải chọn trong những thê loại có sẵn của nền tảng cũng là một trở ngại Vì thế, chúng

em quyết định tích hợp hệ thống phân loại thé loại sách tự động bằng hình anh bìasách vào OpenBook đề giảm bớt thời gian nhập liệu cho người bán

Nền tảng OpenBook mang giao diện thân thiện với người dùng và người bán

từ web cho tới điện thoại OpenBook cũng có đây đủ chức năng phân loại và tìm kiêm

dé người dùng dé dàng tìm sách phù hợp với nhu cầu Cùng với hệ thống phân loại

tự động, OpenBook sẽ mang lại trải nghiệm tuyệt vời cho cả người đọc lần người bán

Trang 19

Chương 1 TONG QUAN DE TÀI

1.1 Đặt van đề

Sự bùng nỗ của công nghệ cùng với dịch Covid-19 đang dan thay đổi mọi thói

quen trong cuộc sống hằng ngày của người tiêu dùng Khởi đầu từ việc sử dụng Grab

- ứng dụng đặt xe thay cho xe ôm truyền thống cho tới việc mua hàng online trên những ứng dụng thương mại điện tử Không khó dé có thê biết được độ phủ sóng cực

kỳ lớn của những ứng dụng này, minh chứng là con số hàng trăm nghìn lượt tải và

hàng trăm nghìn lượt truy cập mỗi ngày Việc mua hàng online giờ đây không còn quá xa lạ với người dùng hiện tại nữa, điều này cũng đồng nghĩa với việc thói quen mua, đọc sách cũng sẽ dân thay đồi Tiki là một nền tang thương mại điện tử rất phd

biến ở Việt Nam cũng bat dau từ việc bán sách Tuy nhiên, Tiki chỉ có thé bán sách

tiếp trang web dé đọc Việc này sẽ có những hạn chế như: phải chờ sách được ship

đến, chất lượng sách có thé không đảm bảo, Hơn nữa, sẽ có những người dùng rất yêu sách và có sở thích sở hữu nhiều sách, việc phải quản lí và lưu trữ hàng chục hay

thậm chí hang trăm cuốn sách khác nhau ở nhà cũng là một van đề khó Hay một van

đề đơn giản hơn là người dùng đang ở ngoài đường và muốn đọc sách, việc phải cầm

theo một cuốn sách khoảng 3-500 trang quả thật không phải là một ý tưởng hay Vì thế, người ding cần một nơi có thé tim mua và đọc sách online dé dang ở bat cứ đâu

và đó là lí do mà OpenBook ra đời.

Đề có thê bán sách trên OpenBook, người bán cần phải đăng những cuốn sách

mình có lên nền tảng trước đã Sách là một mặt hàng có số lượng rất lớn lên tới hàng

trăm, hàng nghìn cuôn Vậy nên một vân đề khác nảy sinh ra đó là việc phải tìm kiếm

và nhập tay quá nhiều thé loại khác nhau khi đăng tải sách cũng là một vân đề khó khăn Việc dự đoán thê loại thông qua bìa sách rất tiên lợi khi người bán chỉ cần đăng

hình ảnh mà không cần phải tải cả file sách lên rất tốn thời gian Nhận thấy vấn đềtrên, nhóm đã quyết định tìm hiểu và tích hợp thêm hệ thống phân loại tự động thôngqua hình ảnh bìa sách nhằm giảm bớt thời gian nhập liệu của người bán

1.2 Mục tiêu

Xây dựng nền tảng thương mại sách điện tử với những chức năng:

e Dang ký/Đăng nhập

e Phân quyền người dùng

e Đọc, thêm, xóa sửa ebook

e Lọc hoặc tìm kiếm ebook

e Đánh giá và bình luận

e Đánh dấu sách (bookmark)

Trang 20

Ứng dụng hệ thống phân loại thông qua bìa sách vào nên tang dé tối ưu việc

nhập liệu thé loại khi đăng tải nhiều cuốn sách Giám sát và tôi ưu hiệu năng ở phan server sau khi tích hợp vào nền tảng

1.3 Đối tượng và phạm vi nghiên cứu

1.3.1 Đối tượng

Nghiên cứu việc xây dựng nền tảng thương mại điện tử sách sử dụng

Next.js, Go-Gin,

Nghiên cứu về CNN và những mô hình trong CNN sử dụng cho việc phân

loại thông qua hình ảnh bìa sách

Nghiên cứu và thực thi cách tích hợp hệ thống phân loại vào nền tảng

Giám sát hiệu năng và nghiên cứu phương pháp cải thiện 1.3.2 Phạm vi nghiên cứu

Xây dựng trên nền tảng web có giao diện thân thiện nhiều thiết bị như máy

tính, máy tính bảng, điện thoại thông minh

Nền tảng chỉ có những chức năng cơ bản dé người dùng đăng nhập, tìm

sách, đọc sách online, Nên tảng không tích hợp hệ thông thanh toán hay vận chuyên

Đề tài chỉ tìm hiểu va sử dụng lại những model có sẵn dé tích hợp vào nền

tảng

1.4 Cấu trúc khóa luận

Chương 1 TONG QUAN DE TÀI: Giới thiệu về dé tài, đưa ra những vấn

đê cũng như giải pháp mà đê tài này mang lại đê giải quyét vân những van

dé trên.

Chương 2 CƠ SỞ LÝ THUYET: Trình bày các kiến thức, nền tảng về

những công nghệ được dùng trong đê tài.

Chương 3 PHAN TÍCH VA THIET KE HE THONG: Trinh bày các chức

năng, luông hoạt động và co sở dữ liệu của ứng dụng.

Chương 4 KET QUÁ THUC NGHIỆM: Trình bày những kết quả của đề

tài như hình ảnh của nên tảng và kêt quả của việc tích hợp hệ thông phân loại.

Chương 5: KET LUẬN VÀ ĐÁNH GIA: Dua ra những kết luận về kết

quả đạt được so với dự tính ban đầu cũng như những định hướng phát triển trong tương lai.

Trang 21

Chuong 2 CƠ SỞ LÝ THUYET

2.1 Tổng quan

Công nghệ sử dụng dé xây dựng nên tảng:

e Frontend: Next.js, Material UI

e Backend: Go-Gin

e Cơ sở dt liệu: ProgreSQL

e Lưu trữ file: Cloudinary

e Deployment: Docker

Lí thuyết và công nghệ dùng cho việc phân loại sách

e Mang neutral network: Convolutional neural network

e M6 hình: ResNet50

e Framework máy học: PyTourch

e Môi trường training mô hình: Google Colab

e Backend phân loại sách: FastAPI 2.2 Next.js

2.2.1 Khai niém

Next.js là một framework được xây dựng dựa trên React Next.js hỗ trợ

server-side rendering (SSR) mà không cần phải cau hình gì Next.js không tập trung nhiều

vào hiệu suất mà tập trung vào cải thiện trải nghiệm của các developer và giúp phát triển các ứng dụng web một cách dé dang hơn.

NEXT:

Hình 2.1: Framework Next.Js

Trang 22

2.2.2 Tính năng

2.2.2.1 Server-side rendering

Trước khi di vào tính năng nay ta cần phải hiểu server-side rendering là gì

Server Side Sendering (SSR) là cơ chế xử lý logic | nằm ở phía server Server sẽ xử lý

và thao tác với databse dé render ra HTML gửi về cho client Browser chỉ cần hiển thị HTML ra cho người dùng Đặc điểm của server-side rendering là việc trang web

sẽ được xử lí va render tại server trước khi hiển thị lên cho người dùng

Serverside Rendered

Client Server Database

GET /blogs

Retrieve clay render items ~~

< rendered HTML

Client Server Database

Hình 2.2: Cách hoạt động cua server-side rendering

Nextjs hỗ trợ 2 kiểu pre-rendering là static generation và server-side

rendering Sự khác biệt năm ở thời diém tạo HTML cho trang như sau:

e Static generation: đây là kiểu render khuyến nghị trong Next.js Trang web

sẽ được tạo ra trước trong quá trình build và sẽ được sử dụng lại trong môi

Trang 23

Next.js chỉ load những polyfills cho những phần mềm sử dụng chúng Những trang web trên thế giới sẽ không cần phải tải những polyfills này.

2.2.2.4 Routing

Có thé xem là tính năng co ban nhất của Next.js Nếu như ở React phải sửdụng những thư viện ngoài khá phức tạp thì đối với Next.js sẽ làm giùm luôn việc đó

Dé có thé sử dung routing, don gian chi can sắp xếp thư mục và đặt tên file, folder là

đường dẫn mong muốn, Next.js sẽ tự động hiểu và điều hướng chính xác đến file đó tương ứng với đường dẫn trên URL Dé có thé điều hướng người dùng, đơn giản chỉ

cần sử dụng component Link do Next.js cung cấp

2.2.2.5 Lazy loading

Tinh nang lazy loading của Next.js giúp cho ứng dụng của bạn có được trai nghiệm người dùng tốt hơn Việc trang web can tốn thời gian dé load hon 10 giây, người dùng có thé rời khỏi trang web ngay lập tức Cách xử lí dé tránh được tình huống trên đó là cho người dùng biết trang web đang được load bằng cách hiền thị những biểu tượng loading Lazy loading là một element cho phép quan lý, điều khiển

và load những đoạn code cần thiết lên trước

2.2.2.6 Các tính năng khác

e Hot Code Reloading: Next.js sẽ tải lại trang khi phát hiện bat kỳ thay đổi

nào được lưu vào bộ nhớ

e Automatic Code Splitting: Các trang sẽ được render với những thư viện

và JavaScript mà chúng cân, sẽ không sử dụng những thư viện không cần thiết, từ đó tối ưu việc tải trang

e Prefetching: Link component sẽ được sử dụng dé liên kết các trang khác

nhau với nhau, hồ trợ phương thức tìm và nạp trước tài nguyên trang trước khi trả vê cho client.

e Dynamic Components: Cho phép import các JavaScript module và các

React Components tai day

e Static Exports: Next.js cho phép export một trang web tinh từ ứng dụng

React

2.2.3 Uu & nhuge diém

2.2.3.1 Uu điểm

e Xây dựng ứng dụng web tĩnh nhưng tích hợp động cực kỳ nhanh

e Tăng lượt tương tac và bán hàng thông qua SEO

e Tang khả năng quảng cáo

Trang 24

e Tăng trải nghiệm người dùng

© Chỉ phí bảo trì thấp

e Dễ dàng mở rộng doanh nghiệp

e Tăng hiệu năng website hoặc ứng dụng web

e Linh động trong việc xây dựng UI UX

2.2.3.2 Nhược điểm

e Yêu cầu việc phát triển phải thay đổi

e Hệ sinh thái plugin chưa dược phong phú

e Không có thư viện state-manager sẵn

© Chi phí xây dựng dat hơn

2.3 Go

2.3.1 Khái niệm

Go là 1 ngôn ngữ lập trình mã nguồn mở được thiết kế dựa trên tư duy lập trình hệ thống được phát triển bởi Google Ngôn ngữ được xây dựng dựa trên sự

đơn giản, hiệu năng cao, dễ đọc và hiệu quả Go được phát hành vào năm 2009

bởi Robert Griesemer, Rob Pike và Ken Thompson.

Điểm mạnh của Go là bộ thu gom rác và hỗ trợ lập trình đồng thời Go là

một ngôn ngữ biên dịch như C/C++, Java, Pascal, Phiên bản ồn định được

phát hành vào năm 2001 và phiên bản mới nhất ở thời điểm hiện tại là 1.17 phát

hành vào năm 2021.

Trang 25

2.3.2 Tính năng

2.3.2.1 Nhỏ gọn và đơn giản

Go đơn giản dé học, dé làm việc và dé dang đọc bởi các nhà phát triển khác

Và Go không hề có một bộ tính năng lớn, đặc biệt là khi so sánh với các ngôn ngữ

như C ++ Ngoài ra Go còn gợi nhớ đến C bởi cú pháp của nó, điều đó giúp các lập trình viên C lâu năm tương đối dé dàng học nó Điều đó nói rằng, nhiều tính năng của

Go, đặc biệt là tính năng concurrency.

2.3.2.2 Dành cho mọi người

Tài liệu về Go, mô tả Go là “một ngôn ngữ biên dịch nhanh, static type,

compiled language (ngôn ngữ biên dịch), nhưng lại giống như một dynamic,

interpreted language (ngôn ngữ thông dịch)” Ngay cả khi một chương trình Go lớn, cũng sẽ được biên dịch chỉ trong vòng vài giây Thêm vào đó, Go còn tránh được

những điểm hạn chế của C liên quan đến các file và thư viện Nói tóm lại, Go giúp

cuộc sống của lập trình viên trở nên dé dang bằng nhiều cách

Static Typing

Features

Package Management

Hình 2.4: Những tính năng nổi bat của ngôn ngữ Go

2.3.2.3 Tiện lợi

Go được so sánh với các scripting language (ngôn ngữ kịch bản) như Python với khả năng đáp ứng nhiều nhu cầu lập trình phô biến Một số tinh năng này được tích hợp vào trong chính ngôn ngữ, chang hạn như ‘ ‘goroutines” là một hàm cho concurrency và kiêu giống như behavior, ngoài ra các tính năng bổ sung được có sẵn trong các package thư viện Go chuẩn, như http package của Go Giống như Python,

Go cung cấp khả năng quản lý bộ nhớ tự động bao gồm việc garbage collection (đọn

file rác).

Trang 26

2.3.2.4 Hiệu năng

Chạy nhị phân chậm hơn so với C, nhưng sự khác biệt về tốc độ này không

đáng ké đối với hầu hết các ứng dụng Hiệu suất của Go tốt ngang với C trong phan

lớn công việc và nói chung là nhanh hơn so với các ngôn ngữ khác nổi tiếng về tốc

độ (ví dụ: JavaScript, Python và Ruby).

2.3.2.5 Tương thích

Go cung cấp tất cả những điều trên mà không bị mat quyền, truy cập vào hệ

thong bên dưới (underlying system) Phương mềm Go có thé liên kết với thư viện C

bên ngoài hoặc thực hiện các lệnh call hệ thống native Ví dụ trong Docker, Go

interface với các chức năng Linux low-level, cgroups và namespace (tạm dịch: không

gian tên), dé hoạt động với container

2.4 Gin

Hình 2.5: Framework Gin

Gin là 1 web framework được viet bang Go mã nguồn mở được phát triển với

mục đích đê xây dựng các ứng dụng web băng Go với hiệu năng cao Nó sở hữu API giông Martini nhưng với hiệu năng cao hơn gap 40 lân.

2.4.1 Tính năng

e Tốc độ nhanh

e Hỗ trợ middleware

e Hỗ trợ xử ly crash và hồi phục, đảm bảo server luôn sẵn sảng

e Hỗ trợ kiểm tra tính hợp lệ của yêu cầu HTTP

e Định tuyến theo nhóm: Tổ chức định tuyến theo cấu trúc tốt hơn mà không

ảnh hưởng lớn đên hiệu năng

e Thu thập tat cả các lỗi xảy ra trong 1 yêu cầu HTTP

Trang 27

Dễ dàng mở rộng

2.4.2 Ưu điểm

Phù hợp xây dựng REST API: Gin là một framework rất tối giản Gin chỉ bao gồm những chức năng hoặc thư viện cần thiết nhất và điều này làm cho Gin trở thành framework có hiệu năng cao nhất cho việc xây dựng

REST API

Tài liệu phong phú: Tài liệu cho framework Gin rất nhiều và đầy đủ

Những công việc liên quan đên router đêu có thê dé dang tìm thay trong document

Middlewares đa dạng và kiểm tra kĩ lưỡng: Cộng đồng Gin đã tạo ra vô

vàn những middleware giúp cho việc phát triển với Gin thật dé dàng Những chức năng như gzip, middleware xác thực va sentry

Hiệu năng cao: Gin có toc độ cao gap 40 lân so với Martini và khi so sánh với những framework Go khác cũng không kém cạnh

2.5 ProgreSQL

2.5.1 Khái niệm

PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ và đối tượng

(object-relational database management system) miễn phi và nguồn mở (RDBMS)

tiên tiễn nhất hiện nay khả năng mở rộng cao và tuân thủ các tiêu chuẩn kỹ thuật Nó được thiết kế dé xử lý một loạt các khối lượng công việc lớn, từ các máy tính cá nhân đến kho dữ liệu hoặc dịch vụ Web có nhiều người dùng cùng một lúc.

Trang 28

Các khung nhìn (view)

Tính toàn vẹn của các giao dich (integrity transactions)

Việc kiêm tra truy cập đồng thời đa phiên ban (multiversion concurrency

Ngôn ngữ thủ tục: PL / PGSQL, Perl, Python (và nhiều ngôn ngữ khác)

Trình wrapper dữ liệu ngoài: kêt nôi với các cơ sở dữ liệu hoặc luông khác với giao diện SQL chuân

Và nhiều tiện ích mở rộng cung cấp chức năng bổ sung, bao gồm cả

PostGIS

Tìm kiếm văn bản:

Hỗ trợ các bộ ký tự quốc tế, ví dụ: thông qua ICU collations

Tim kiém van ban day du

2.6 Cloudinary

2.6.1 Khai niém

Cloudinary là 1 giải pháp phần mềm hướng dịch vụ (Software-as-a-Service)

cho việc quản lý tất cả dữ liệu truyền thông (anh, video, file, ) của ứng dụng web

và di động trên đám mây Cloudinary cung cap | giải pháp về đầu cuối cho tất cả các nhu câu về hình ảnh và video, bao gôm tải lên, lưu trữ, quản lý, biến đổi và tối ưu truyền tải Xử lý, tải dữ liệu và truyền tải được xử lý ở máy chủ của Cloudinary, được

tự động mở rộng để xử lý tải cao và sự gia tăng truy cập đột ngột.

II

Trang 29

2.6.2 Tính năng

e Xây dựng các URL để chuyền đổi và thao tác với hình ảnh

e Rails view helper cho việc nhúng và thay đôi hình ảnh

e API wrappers: upload image, quản lý và nhiều thứ khác

e Upload image trực tiếp từ trình duyệt sử dụng một jQuery plugin

e Tích hợp với Active Record

e CarrierWave plugin

e Hinh anh tĩnh đồng bộ với CDN delivery

e Migration tool 2.7 FastAPI

Trang 30

2.7.2 Tính năng

e Nhanh: Hiệu suất cao ngang với NodeJS và Go

e Phat triển nhanh: Code nhanh hơn, tốc độ code các features tăng khoảng

200 đến 300 %

e Ít bug: do đơn giản nên giảm số bugs của developper đến 40%

© Gợi ý: hỗ trợ code dé hơn với tự động gợi ý, debug cần ít thời gian hơn

SO VỚI trƯỚC.

e_ Đơn giản: được thiết kế sao cho dé dùng dé học

e Ngan gọn: Tối thiêu việc lặp code Các tham số truyền vào có nhiều

tính năng Ít bugs

e Robust: hiệu năng mạnh mẽ, có thé tương tac API qua docs

2.8 Docker

2.8.1 Tổng quan

Docker là một nền tang dé cung cấp cách dé building, deploying và running

ứng dụng dễ dàng hơn bằng cách sử dụng các containers (trên nên tảng ảo hóa) Ban

đầu Docker được viết bằng Python nhưng sau này đã chuyên sang Golang Các

Container giúp đơn giản hóa việc vận chuyên và phân phối các ứng dụng, do đó chúng

ngày càng trở nên phô biến trong các tô chức, công ty khi muốn chuyên đổi lên môi trường Cloud hoặc môi trường hybrid.

Docker cung cấp các công cụ cần thiết, giúp các lập trình viên xây dựng, triển

khai, thực thi, cập nhật hoặc thậm chí là dừng các Container chỉ băng câu lệnh hoặc thông qua API.

ocker

Hình 2.9: Nền tảng ảo hoá Docker

2.8.2 Ứng dụng

e Triên khai kiên trúc Microservices.

e Khi xây dựng ứng dụng và cần scale một cách linh hoạt

13

Trang 31

e Khi bạn muốn không tốn khá nhiều thời gian dé config máy local và

server cùng một môi trường dé chạy được ứng dụng Bạn chỉ cần build 1 lần chạy ở nhiều nơi mà thôi.

e Sản phẩm của công ty bạn cần một cách tiếp cận mới về xây dựng,

đây lên server, thực thi ứng dụng một cách nhanh chóng dê dàng.

2.9 Mang neural tích chập (CNN)

2.9.1 Khái niệm

Convolutional Neural Network (CNN) hay còn gọi là mang neural tích chập

là một trong những mô hình deep learning tiên tiến giúp nhận dạng và phân loại hìnhảnh CNN giúp xây dựng những hệ thống nhận diện thông minh với độ chính xác cao.Nhận diện khuôn mặt và xác định đối tượng là những lĩnh vực mà được CNN sử dụng

rộng rai.

Mạng neural tích chập là một tập hợp các lớp convolution (tích chập) chồnglên nhau và sử dụng các hàm nonlinear activation như ReLU dé kích hoạt các trọng

số trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các

thông tin trừu tương được sử dụng cho các lớp tiếp theo

Lớp tích chập là lớp đầu tiên của mô hình Lớp tích chập có nhiệm vụ trích

xuất các tính năng (đặt trưng) của hình ảnh đầu vào như là các viền và màu sắc Tích chập duy trì mối quan hệ giữa các pixel bằng cách tìm hiểu các tính năng hình ảnh thông qua việc sử dụng các ô vuông nhỏ từ dữ liệu đầu vào Các layer liên kết với nhau thông qua cơ chế convolution Layer tiếp theo là kết quả convolution từ layter trước đó Thêm càng nhiều lớp tích chập vào CNN sẽ giúp model phân rã những đặc

trưng phức tạp và có được một sự am hiéu sâu về hình ảnh trong dataset

14

Trang 32

2.9.2.2 Lớp gộp (pooling layer)

Lớp gộp sẽ có trách nhiệm giảm bot số lượng tham số khi hình ảnh quá lớn

Lớp gộp sẽ giảm kích thước của mỗi map nhưng van giữ lại những thông tin quan trọng Lớp gộp có nhiều loại khác nhau như:

e Max pooling

e Average pooling

e Sum pooling

2.9.2.3 Lớp kết nói đầy đủ (fully connected layer)

Lớp kết nối đầy đủ được sử dụng dé học các đặc trưng đã được rút trích từ các

tầng trên với cơ chế lan truyền ngược (back-propagation) cùng với việc sử dụng hàm

softmax cho việc phân lớp Lớp kết nối day đủ là nơi xử lí việc phân loại của model

Cụm từ “kết nối đầy đủ” ám chỉ việc mỗi neuron ở lớp trước được kết nối với mỗi

neuron của lớp tiếp theo Đặc trưng được rút trích từ lớp trước sẽ được truyền tới hàm SoftMax activation dé xuất ra kết quả cuối cùng Kết qua cuối cùng là một vector có

độ dài ứng với số lượng nhãn.

2.9.3 Mạng phan dư (ResNet)

Mang phan dư hay còn gọi là residual neural network (ResNet) là một kiến

trúc mạng neural dược sử dụng cho thị giác máy tính học sâu như phát hiện vật thê hay phân tách hình ảnh ResNet có thể chứa sô lượng lớn các lớp tích chập, thông thường vào khoảng 18-152 nhưng thực tế có thé hỗ trợ lên tới hàng ngàn lớp Đề tai

sử dụng model ResNet-50 cho việc phân loại sách thông qua bìa.

2.10 Phương pháp đánh giá mô hình

Đề có thể đánh giá những mô hình học sâu sử dụng cho việc phân loại sách

thông qua bìa, nhóm sử dụng 2 phương pháp đánh giá là mAP và top-k.

2.10.1 mAP

Mean Average Precision (hay còn gọi là mAP) là một phương pháp ange cho việc đánh giá mô hình dự đoán vật thé như Fast R-CNN, YOLO, Mask-R-CNN.,

15

Trang 33

precision + recall

Hình 2.11: Công tính tinh mAP

e Precision: đánh giá độ tin cậy của kết luận đưa ra (bao nhiêu % kết luận

model đưa ra là chính xác)

e Recall: đánh giá khả năng tìm kiếm toàn bộ các ground truth của mô hình

(bao nhiêu % mẫu tích cực mà model nhân diện được)

e Average Precision: trung bình các giá tri precision tại các diém có kết quả

đúng

e Mean Average Precision: trung bình của các Average Precision cho một

tập các queries

e loU (Intersection over Unit): đo độ trùng khớp giữa ground truth bouding

box và bouding box mà mô hình dự đoán

2.10.2 Top-k

Top-k là một phương pháp đánh giá mô hình phân loại dự đoán dựa trên kết quả đúng có nằm trong top k của kết quả dựa đoán hay không Accuracy là thước đo

dé đánh giá độ chính xác của một mô hình Accuracy được tính bang tổng số lượng

kết qua đúng Lấy ví dụ: nếu có 90 dự đoán đúng trên tổng 100 dự đoán thi accuracy

Top-1 accuracy la phuong phap danh gia phổ biết nhất Kết qua đúng phải là

dự đoán có phần trăm cao nhất của model Ví dụ: mô hình thực hiện dự đoán hình trái cây cherry và có kết quả như sau:

e cherry: 0.35

16

Trang 34

_ Nhìn dự đoán trên thi cherry là kết quả có phần trăm cao nhất và trùng khớp

với kêt quả thực tê.

17

Trang 35

Chương 3. PHAN TÍCH VA THIẾT KE HE THONG

Webapp: nền tảng web được xây dựng bang Next.js, nơi người dùng sử

dụng OpenBook Webapp sẽ gọi API thông qua các request và nhận dữ

liệu trả vê là các response.

Backend server: server dùng đề xử lí logic chính cho OpenBook, được xây

dựng bằng Go-Gin Server nhận các request từ webapp thông qua API, thực hiện lay dữ liệu từ cơ sở dữ liệu và xử lí, sau đó trả về cho webapp

dé hiển thi cho người dùng

Cơ sở dữ liệu: sử dụng PosgreSQL, nơi lưu trữ dữ liệu chính của OpenBook, là nơi dé backend server lay dữ liệu.

Cloudinary: là nơi lưu trữ hình ảnh và tài liệu trên đám mây Webapp sẽ

sử dụng link mà backend server trả vê đê gọi đên cloudinary lây hình ảnh hoặc file ebook

Server phân loại: server được xây dựng bằng ngôn ngữ Python sử dụngframework FastAPI Server này được sử dụng cho việc phân loại thể loại

tự động Server sẽ nhận ảnh bìa sách là input và trả về các thé loại dựa trên

việc phân tích bìa sách.

18

Trang 36

OpenBook sử dung Docker dé đóng gói các server va database Việc này giúp

chuân bị môi trường trở nên nhanh và ôn định hơn Dưới đây là những phân được đóng gói thành container

e API server (backend server)

e Coso dữ liệu

e Classify service (server phan loai)

19

Trang 37

3.1.2 Phân rã chức năng

OpenBook

A ae ié Đánh giá & bình

Xác thực — Người dùng mm Sách Loc/Tim kiêm luận Bookmark

|—| pang ky |——>| Hiến thi thông tin >| Hiển thị danh sách >| Theoten [>] Them Gann giá + |»! Thêm bookmark

+—>| Đăngnhập L—>| Chỉnh sửa thông tin ——>| Hiến thị chỉ tiết ——Y[ Theogenres Xóa bình luận Xóa bookmark

sl phan quyền Xem PDF | CC“ ÿ Theo năm xuất bản Fi ty iden sách Hiễn thi đanh sách

[> Annonymous | Thêm 1 ebook —— Theo tac gid

L—>} vewr

[>| chinh sửa thông tin L—> Store Xóa

[>| Dashboard quản lý

——>| Thêm nhiều ebooks

——>| Upload nhiều file

Hình 3.3: Sơ đồ phân rã chức năng

3.1.3 Phân quyền

OpenBook có 3 loại người dùng là: anonymous, viewer và store Dưới đây là định nghĩa và quyên hạn của 3 loại người dùng này:

e Anonymous (an danh): người dùng truy cập vào trang web nhưng chưa

đăng nhập Đây là loại người dùng có ít quyên hạn nhất khi chỉ được tìm kiếm và xem thông tin sách

e Viewer (người dùng thông thường): day là người dùng đã đăng nhập vào

trang web, sử dụng OpenBook đê đọc ebook

e Store (cửa hàng): những người dùng quản lý cửa hàng sách, bán sách Cửa

hàng sẽ có những tính năng dành riêng cho việc quản lý và bán sách Đặc

biệt chỉ loại người dùng này được sử dụng tính năng phân loại thé loại

sách tự động.

Bảng 3.1: Phân quyền tính năng cho các loại người dùng

Loại người dùng Tính năng

Anonymous Viewer Store

20

Trang 38

Xem thông tin cá nhân

Chỉnh sửa thông tin cá nhân

Đánh dấu ebook (bookmark)

Xem những ebook đã đánh dấu

Đánh giá & bình luận

Xóa bình luận

Đăng tải ebook

Sửa ebook

Xóa ebook

Quản lý danh sách ebook đã đăng

Tự động phân loại thê loại & thêm

nhiêu ebook

Upload nhiều file

21

Trang 39

3.2 So đồ tuần tự cho các tính năng

3.2.1 Xác thực

Tao người dùng

Trả response

Đăng nhập sử dụng = tài khoản vừa đẳng ký

Xắc thực tai khoản

Trả kết quả

Trả respone thành công

Điều hướng tới trang chủ

Hình 3.4: Sơ đồ tuần tự cho đăng ký

Đặc tả chức năng đăng ký:

e Chỉ có anonymous được truy cập chức năng này

22

Trang 40

e Néu user va store cô găng truy cập vào trang đăng ky sẽ được điêu hướng

về trang chủ

e Anonymous nhập dữ liệu vào input và Open Book sẽ kiểm tra (trường bat

buộc, mật khâu quá ngăn hoặc quá dai )

e Nêu input phù hợp, server sẽ kiêm tra tài khoản có tôn tại chưa

o Có tồn tại: server trả response lỗi, trang web hién thị thông báo

người dùng

o Chưa tôn tại: server tiép tục thêm dữ liệu vào cơ sở dữ liệu va

trả về response thành công Sau đó, trang web tự động đăng nhập

và điêu hướng người dùng tới trang chủ

23

Ngày đăng: 03/11/2024, 18:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN