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

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống tự động tổng hợp tin tức và phân tích nội dung

118 1 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

Tiêu đề Xây dựng hệ thống tự động tổng hợp tin tức và phân tích nội dung
Tác giả Pham Ho Luong, Phan Tran Khanh Hung
Người hướng dẫn THS. Thai Bao Tran
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Hệ thống Thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 118
Dung lượng 62,62 MB

Nội dung

Clean architecture cũng đề xuất sử dụng các công nghệ tương thích với mục tiêu của kiến trúc này, chăng hạn như các hệ thống quản lý phụ thuộc dependency management systems và các framew

Trang 1

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA HỆ THONG THONG TIN

PHAM HO LƯỢNG - 19521814PHAN TRAN KHANH HUNG - 19521582

KHOA LUAN TOT NGHIEP

XAY DUNG HE THONG TU DONG

TONG HOP TIN TUC VA PHAN TICH NOI DUNG

BUILDING AUTOMATIC SYSTEMS

NEWS AGGREGATION AND CONTENT ANALYSIS

KY SU NGANH HE THONG THONG TIN

GIANG VIEN HUONG DAN

THS THAI BAO TRAN

TP HO CHÍ MINH, 1/2024

Trang 2

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

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

ngày của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 3

LỜI CẢM ƠN

Đầu tiên, nhóm em muốn gửi lời cảm ơn sâu sắc đến giảng viên hướng

dẫn của em, cô Thái Bảo Trân, vì sự hướng dẫn, kiến thức và sự công hiến

không ngừng để giúp nhóm hoàn thiện khóa luận này Cảm ơn vì đã dành thờigian và tâm huyết dé hỗ trợ nhóm vượt qua những khó khăn và đạt được nhữngkết quả tốt nhất

Nhóm em cũng muốn bày tỏ lòng biết ơn đến toàn thé giáo viên và cán

bộ khoa Hệ Thống Thông Tin đã tạo môi trường học tập chuyên nghiệp và đầythử thách cho nhóm em Những kiến thức và kỹ năng nhóm em đã học từ quýthầy cô không chỉ đóng góp quan trọng cho khóa luận này, mà còn mang lạinhững kiến thức bồ ích cho sự phát triển của các em

Nhóm muốn bày tỏ lòng biết ơn đặc biệt đến gia đình và bạn bè, vì sựủng hộ và động viên không ngừng suốt quá trình nghiên cứu Những lời khích

lệ và niềm tin từ các bạn đã truyền động lực mạnh mẽ dé nhóm em vượt qua

những thách thức và hoàn thành khóa luận này.

Lời cảm ơn này không thể đủ để bày tỏ tất cả sự biết ơn của nhóm đốivới mọi người Nhóm em hy vọng rằng công trình này có thé là một sự ghi nhậnnhỏ bé về lòng biết ơn và lòng tôn trọng của nhóm đối với tất cả những người

đã đóng góp vào thành công của khóa luận tốt nghiệp này

Xin chân thành cảm ơn!

Nhóm sinh viên thực hiện

Phan Trần Khánh Hưng, Phạm Hồ Lượng

Trang 4

MỤC LỤCDANH MỤC HÌNH - 5< 5< 52s £SsEsSEssEvsEEseEseEsstvsttserserssrssrrsrrssrssree iIJ.9J:810/0:7901627777 ii

DANH MỤC TỪ VIET TAT VÀ THUAT NGỮ .s 5- s2 ss©ss¿ iiiTOM TAT KHOA LUẬN -s- 2< s° s2 ©Ss£SsEssEssEssEEserserssssstrserssrssrssee 1Chương 1 GIỚI THIỆU -.2- 2-2 2s s£s£S££Ss£Es£Es£EssessesseEssessessss 3

LL (iö na 3

1.2 Pham vVI -Ă ST 2Q S311 ng ng HH re 3

1.3 Đối tượng sử dụng -:- 5c Sk St E2 E1 E1 1EE1011211 111111111 cke 3

1.4 Phương pháp thực hiỆn c1 2c 122211121133 E1EEEEEErrrersere 4

Chương 2 CƠ SỞ LÝ THUYÊÊT 2 s©s£ se s£EssEssEss£sseEssessesses 6

2.1 Quy trình phát triển phần mềm 2-2-2 S2 £+E£+E£+E££E££EeEEerxerxeẻ 6

2.4 Giới thiệu Docker 0 cece cccccccssscceesseccessceceesseecesseecesseeceseeceesseeeeseeeees 12 2.5 Môi trường tích hop sử MUNG cee ceseescessceseeeseeseeeeeeeeceeeeeeeseesneeaeenes 13

2.6 Công nghệ sử ụng - - c5 Tnhh ng ng nh nh nh 14

Trang 5

2.6.2 Backend - - - - L c k SĐT TS ST ST ng 5155 ke 16

2.6.3 Các công nghệ hỗ trợ 2-52 St22+22t2E2xerxerxerxerrerrrrrrree 17

Chương 3 PHAT TRIEN HE THÓNG -2- 2s secse©ssessesseessss 19

3.1 Khảo sát hiện trạng, yêu CẦU SH ST HE E1 121 1111111111151111 115111 19

3.1.1 Khảo sát các hệ thống tương tự hiện hiện có - 2 25+ 193.1.2 Cac chức năng theo yêu cầu - ¿+52 +E++E+£EeEEeEEeErrrrerrered 213.2 Phan tích thiết kế hệ thong - 2+ 2++++EE+EEt2E2EEEEEerErrrerrkrrxees 22

3.2.1 Thiết kế hệ thống -2¿©52+EE+EE£EESEEEEEEEEEEEEEErrrrrkrrree 22

3.2.2 Sơ đồ trường hợp sử dụng của các đối tượng (Usecase Diagram) 243.2.3 Danh sách các tác nhân của hệ thống . : z-5z 243.2.4 Danh sách các usecase của hệ thống: - 2 + s+c+zezxered 253.2.5 Sơ đồ hoạt động (Activities Diagram) -csccce+c+rscrxee 58

3.2.6 So đồ trình tự một số chức năng chính (Sequence Diagram) 603.2.7 Sơ đồ lớp (Class Diagram)) -¿- s+x++x+E+Eerkerxerrerrxerxee 68

3.2.8 Anh xạ từ sơ đồ lớp thành lược đồ cơ sở dữ liệu vật lý: 733.3 Thiết kế giao điện -ccctEt 2E 1021111211211 21 11211111111 ty 79

3.3.1 Giao diện hệ thống -¿-++©2++2+++EESEEtEEEEEsrkrrrrerkree 79

3.3.2 _ Giao diện Ứng dỤng -c tt n* SH HT HH ng re, 82

Chương 4 KET QUA VÀ ĐỊNH HUONG PHAT TRIÉN 85

AL Kết quả thu dug o.ocecceccceccecccssessesseessessessesssessessesssessessesseesessssssesseeseeaseeses 85

4.2 Định hướng phat trién oo cecccccccessesesessessessessessessesssesseesessessseseseeseess 87

4.3 Bảng phân công công vVIỆC - - 5s HH ng ng như 87 31080002225 90

A _ Giao điện hệ thống -2¿©22+222k+EE2EEEEEEEEEEEEEEEEEEEErkrrrrrrvee 90

Trang 6

A.I _ Giao diện đăng nhập của hệ thống — 90

A.2 _ Giao diện trang giới thiỆU - 5 6 5 2+ Sx SEvesrrirskrrkre 90

A.3 _ Giao diện trang chủ của hệ thống ¿2 scs++£z+£zxered 92

A.4 — Giao diện trang bookimarK - ¿+ s-s + s**+++eeEseeerseeerrseres 93

A.5 Giao diện trang thư vIỆn - + c + ts+ 3S tirerirerrrrerrrrske 93 A.6 _ Giao diện trang ỞỌC SaU - St S3 ghen 94

A.7 Giao diện danh sách bài báo 2< - 5 5 S221 seeeeess 95

A.8 _ Giao diện chỉ tiẾt SOUFC€ - ¿St tSk+EEESEEEEEEESEEEkrEerkerrrkrrees 95

A.9 _ Giao điện thêm nguồn mới 2- 2 +¿++++++zx++zx+zx+zrszeex 95A.10 Giao diện kết quá scan RSS -©ccccc+cxcrxerreersree 96A.1I Giao diện chỉ tiết bài báo sau khi thu thập .cc.cccesexes 98

A.12 Giao diện quản lý CrOfnJOb 5 xxx SssEssrsrseskerkre 98

B Giao diện Ứng dung oe eceecececceseeesesecceseeeseeeceeseeeseceseceeeseenseesseeeeeas 99

B.1 Giao diện đăng ky mobile oo eee cece ceeeeeeseeeeeeeeseeeeseeeeens 99

B.2 Giao diện đăng nhập mobiÏe 5 scs«£s£+s+sesssseeske 100

B.3 Giao diện đổi mật khẩu và vô hiệu hóa tài khoản mobile 101B.4 Giao diện chi tiết một bài báo mobile 2-5 s cx+serxee+ 103

B.5 Giao diện trang đọc sau mobIÏÌe - 5 +5 + *+++sexssxeerses 104 B.6 Giao diện trang home mobile s5 + + + +++svxssexseexss 105

Trang 7

DANH MỤC HÌNH ẢNH Hình 2.0 Mô tả kiến trúc clean architeCfUFe - 2: ¿52 £+++£x+£xtzEzzxerxerxezes 9

Hinh 2.1 Logo 0ivvcưệgIaađ - 12

Hình 2.2 Logo Visual Studio Code ccecceccessesssesseeseeeseeeseeseesseeeseeseesseeseeeseeseeens 13 p0): 800500051117 14

Hinh 02 50).c10=x¬a.°°.ễ".'- 14

Hinh 2.5 Logo Typescript 101777 15

Hinh 2.6 Logo Nextss wo eee ốốằốỐ 15 Hình 2.7 Logo Golang ie eecessssessecseceecseceseesessessecsecseceesesseeseseeseaeesesseeesaeeneens 16 Hình 2.8 Logo PostgreSQL, c1 2112211121111 11 1111 11191 1H 1H vn ky 16 Hình 2.9 Logo Gin FraIm€WOFEK - - + + 1k vn HH nh nh nưệt 16 Hình 2.10 Logo S€TIẨTY 2c 0 20111192199 1119111901111 HH Hy 17

Hình 2.11 Logo Service WOTK€T óc c1 1361139111911 9111 1 11g vn ky 17

Hình 3.0: Mô hình tổng quan hệ thống 2-2 2£ +£2££2££2£E+£E+£E£zEe+rxsred 22 Hình 3.1: Cấu trúc thư mục hệ thống backend theo kiến trúc Clean Architecture 23 Hình 3.2 Sơ đồ usecase ¿2c 22 222122111121 ri 24 Hình 3.3 Sơ đồ hoạt động thu thập thông tin -2- 2 5¿22+2x++zxe+rxezred 58 Hình 3.4 Sơ đồ hoạt động thêm mới trang báo - + 2 2s s+£++£++£++xe+xez 59 Hình 3.5 Sơ đồ trình tự tạo CraWÏ€T -¿- - St xxx +EEEEEEEEEEEEEEEEEEEkrkrkererkrkrrrree 60 Hình 3.6 Sơ đồ trình tự quản lý Feed - + + +2 £+E£E££EerEerxerxerxrrxzrerree 61 Hình 3.7 Sơ đồ trình tự quản lý bài báo -¿ 2¿25¿22++2x++cx2zxrzreerxeerxesred 62 Hình 3.8 Sơ đồ trình tự quản lý CrawwÏer - 2 2 x+E+zE2E++EEerxerxezrssrkeree 63 Hình 3.9 Sơ đồ trình tự quản lý CategOFy - ¿- +52 2+E‡EcEEeEEeEEEEEEkrrerrerree 64 Hình 3.10 Sơ đồ trình tự quản lý Topic ¿©2252 x+2E2E£+EEtEEcrxezresrxered 65

Trang 8

Hình 3.11 Sơ đồ trình tự quản lý Role - 5-2 22x+£E£E++EE+zEcrxezresrxrred 66Hình 3.12 Sơ đồ trình tự quản lý người dùng -¿- 5¿©2x2x++zxeerxesred 67Hình 3.13 Sơ đồ lớp quản lý craw Ïer - - 2c + s+S++E++E££E££EeEEeExeExerkrrxrrerree 68Hình 3.14 Sơ đồ lớp quản lý bài báo 2-2 5+ £+S£+EE+£E£E++EEtrxerxerrerrxrred 69Hình 3.15 Sơ đồ lớp quản lý feed - ¿+52 s+2£+E2E£EE2EEEEEEEEEkerkrrrrerrrree 70Hình 3.16 Sơ đồ lớp quản lý người dùng - 2-2 2+ z+Ee£Ee£xerxexerxrrezrerree 71Hình 3.17 So đồ lớp quản ly permission va role -2- 222 s++zxzzz+zz+re+ 71Hình 3.18 So đồ lớp quan lý thé loại (categOry) - 2-2222 £+z++zxzxz+cssred 72Hình 3.19 Sơ đồ lớp quản lý chủ dé (OpiC) - 2 2 + 5s2£2+££+£xezxzxezrxered 72Hình 3.20 Database hệ thống ¿2+¿2+£©522522x22EEEEEEEEESEkerkkerkrerkerred 73

Hình 3.21 Giao điện tao CfaWÏ€T c2 2111123232111 11 1111195111111 c2 rrẻ 79

Hình 3.22 Giao diện popup gợi ý người dùng - 5 +5 ++sx++sseeseeseeske 80

Hình 3.23 Giao diện trang tìm kiếm feeds - 2-2-5 2E22EEeEEerxerrerrkrred 81Hình 3.24 Giao diện trang tìm kiếm với tùy chọn -. ¿ ¿++cs++cxz+z+¿ 81

Hình 3.25 Giao diện trang thư viện mobIÏe - - 55555322 **+*++v++e+ereexeerssxe 82

Hình 3.26 Giao diện trang thêm crawler mobiÏe€ 55s ++s‡++x+sx+sexsessss2 83

Hình 3.27 Trang lịch sử bài báo xem gần đây mobile - : 2 ¿- ¿5552 84Hình 4.0 Giao diện đăng nhập của hệ thống 2- 2© 22522 E+£E+zEzE+rxsred 90

Hình 4.1 Giao diện trang giới thiỆU c2 22+ E*EEEEeEEteereerrsrrrrrske 91

Hình 4.2 Giao diện trang chủ của hệ thống - 2-2 2 ©2E++E£+EEerxzEezrsrred 92

Hình 4.3 Giao diện trang bookimarK - c +s +3 *+ + EEexeerererrrrrererrrrxre 93 Hình 4.4 Giao diện trang thư VIỆN G6 S11 v E2 1191119111 vn ng nh rưkp 94

Hình 4.5 Giao diện đọc SaU - 2E E21 12223111 1111 9331111 119955311 kg re 94 Hình 4.6 Giao diện danh sách các bài báo 2+5 52222 **+++zscezeeeeeszeeee 95

Trang 9

Hình 4.7 Giao diện chi tiẾt SOUTC€ - St StềE+EEEESEEEEEEEEEEEEEEEEEEErrkererkerves 96Hình 4.8 Giao diện trang thêm nguồn mới -2- 2 +¿+zx>x++zx++rxezzed 96Hình 4.9 Giao diện kết qua scan rS$ c.ccccsccescsssesesseesessessessessessesecsesseesessessesseseseeees 97Hình 4.10 Giao diện chỉ tiết bài báo sau khi thu thậẬp - re 98

Hình 4.11 Giao diện quản lý crofnJOB .- c 35+ 33+ EEvrersrerrrrrrrrrrrrrxre 99

Hình 4.12 Giao diện đăng ký mobIÏ€ - c5 2333 **E+EEsexrereeersserrsrs 100

Hình 4.13 Giao diện đăng nhập mobile - 6 + svesersersersrs 101

Hình 4.14 Giao diện đổi mật khẩu và vô hiệu hóa tải khoản mobile 102Hình 4.15 Giao diện chi tiết một bài báo mobile -¿- s5 ezx+xerx+xerxrrs 103

Hình 4.16 Giao diện trang đọc sau mobIÏ€ - - c3 s*++‡++sesseexeeesresess 104

Hình 4.18 Giao diện trang home moObIÏe - - 2 22333 *+3£+*EE+e+eereeereeeresrss 105

Trang 10

DANH MỤC BANG

Bang 3.1 Danh sách các tác nhân của hệ thống - ¿2 + 22s s+£zzsze: 25

Bang 3.2 Danh sách các usecase của hệ thống - 2 2 2 +sx+£++£++E+zEzzzei 27

Bang 3.3 Luồng sự kiện đăng nhập - 2-2 5£+Ez+EE‡EEeEEEEEEEEEEErErrrkrrkrrkee 27

Bảng 3.4 Lung sự kiện đăng nhập với apple - 2-2-5252 £+zxsrxzxszrsered 28 Bảng 3.5 LuOng sự kiện đăng xuẤt ¿2-52 2St22x 2222322 2ExE2EEEEEcrkerrree 28 Bảng 3.6 Luồng sự kiện xuất đafaset -©22- 552222 22x22 xeEEerkrerkrrrree 29 Bang 3.7 Lung sự kiện thêm RSS crawÌer 2-2 2 2+E£Ee£xeEzEzEzxerxees 30 Bang 3.8 Ludng sự kiện thêm custom €raWÌ€r 2: 2 2 +xecxeE++E+EzEezxeei 31

Bảng 3.9 Luéng sự kiện thêm crawler chỉ tiết bài báo -2- 5 s2 s52: 32

Bang 3.10 Ludng sự kiện tìm kiếm feeds theo từ khóa - 5 s5: 33 Bảng 3.11 Ludng sự kiện tìm kiếm feeds theo topic : -¿©+csz+cscss+¿ 34

Bảng 3.12 Luồng sự kiện lọc kết quả tìm kiếm feeds theo ngôn ngữ 35

Bảng 3.13 Ludng sự kiện theo đối feed -: 2¿©2+55+2cx2zxvzxesrxesrxerreee 35 Bảng 3.14 Luồng sự kiện xem đanh sách xem sau -: 5 52 c5¿2cxz55s+¿ 36 Bảng 3.15 Luéng sự kiện xem lịch sử đọc báo - - << <5 +2 ccsssexs 36 Bang 3.16 Luông sự kiện thêm bài báo vào danh sách “xem sau” : 37

Bang 3.17 Luông sự kiện xóa bai báo khỏi danh sách “xem sau” . 38

Bảng 3.18 Luồng sự kiện khám phá các bài báo đang hot trong ngày 38

Bảng 3.19 Luéng sự kiện xem tat cả bài báo của các feed đã follow 39

Bang 3.20 Luong sự kiện xem báo theo feed - 2-52 z+s+xereEzEzErrervees 39 Bảng 3.21 Ludng sự kiện sắp xếp bài báo ©2¿-55¿2cxc2zxerxesrxesrxerreee 40 Bảng 3.22 Luồng sự kiện lọc các bài trùng - 2-2 s©x2E2+EE+EEerxerresrxrred 41 Bang 3.23 Luong sự kiện tìm kiếm các bai báo theo feeds đã theo dõi 41

Trang 11

Bảng 3.24 Lung sự kiện tìm kiếm bài báo theo feed -: -¿-5s+¿ 42

Bảng 3.26 Luong sự kiện đến trang nguôồn báo - 2 2 5 x+cs+£szc+zxezszei 43Bảng 3.27 Luéng sự kiện tải toàn bộ nội dung báo - 5 s5 + +++sxs++sxss+ 44

Bang 3.28 Luông sự kiện AI tổng hợp bài báo + ¿5c s+cs+c++zzzzzeccee 45

Bảng 3.29 Luong sự kiện theo dõi lỗi hệ thống - ¿5+ s+c2+£++c+z£zzszei 45Bảng 3.30 Luồng sự kiện tìm kiếm crawWÏer -:- + s+s+E+EEE+E+ESEE+E+EeEErEsrsrsreee 46

Bang 3.31 Lung sự kiện xóa craWÏ€r- :- 5c ©52++z+EEeEE2EEEEEEEerErrkrrkerxee 46

Bảng 3.32 Ludng sự kiện chỉnh sửa crawÌer :2-©5+22+2z++zx+zzxezrxerseee 47Bảng 3.33 Ludng sự kiện lên lịch craw1 . ¿- ¿+ ©5+2cx++z++zxesrxesrxesreee 48Bảng 3.34 Luong sự kiện sửa thông tin feed -s- 2 2 2+se+kerxeEeEzrsrrerreee 48Bảng 3.35 Ludng sự kiện xóa feeds ©22- 522 22x2EE2EESEEEEEerkerkrerkerrree 49

Bảng 3.36 Luồng sự kiện xóa bài báo - 2 5c S22 EvEEEEEEEEEEEEEerkrrrrrrkrred 50

Bảng 3.37 Ludng sự kiện thêm thể loại : 2¿©+©5+2c+++++zx+zzxezzxzreee 50Bảng 3.38 Ludng sự kiện tìm kiếm thê loại 2 5¿©+++++£x++zxezzxezseee 51Bang 3.39 Luong sự kiện sửa thong tin thé loại c ceeecececcesseseeseeseesesesesseseeseaees 51Bảng 3.40 Ludng sự kiện xóa CateQOry c.scccsesssesssesssesssssseessecssesssessecssecssecstessecsses 52Bang 3.41 Lung sự kiện thêm chủ d6 cc.cecccecccseesessessesssessessesseessessessessesesseess 53Bảng 3.42 Luong sự kiện tìm kiếm chủ dé - 2-2 2 2+s£Ee£xe£+EzEzxrsees 53Bang 3.43 Luong sự kiện sửa thông tin chủ đề - 2-22 2 s+cx+£xzzzzxssrxee 54Bảng 3.44 Luồng sự kiện xóa chủ đề 2-2-5 £+S22EE9EEEEEEEE2EEEEEerErrkrrkrred 54Bảng 3.45 Luồng sự kiện xem danh sách người đùng -¿-s¿5+¿ 55Bảng 3.46 Lung sự kiện tìm kiếm người dùng ceccecccecccsssessesstessecssecstecseesseesees 55Bảng 3.47 Luong sự kiện sửa thông tin người dùng 2-52 scscs+cze: 56

Trang 12

Bảng 3.48 Ludng sự kiện xem danh sách roles 2- 2 5¿©5+2s+2cx++zxzcsseẻ 56Bảng 3.49 Luồng sự kiện thêm role 2-22 5¿+2++2E++£E+2Ex+2E+vzx+zrxesrxerseee 57Bảng 3.50 Luông sự kiện chỉnh sửa permission của role - 2-2-5: 57

Bảng 4.0: Phân công công VIỆC - - 2c 1 1121113111911 1181111 11 8 11H vn ng re 88

Trang 13

DANH MỤC TU VIET TAT VÀ THUẬT NGỮ

1 RSS (Rich Site Summary hoặc Really Simple Syndication): một công cụ g1úp

bạn theo dõi các cập nhật mới nhất từ các trang web bạn quan tâm mà không cần

phải truy cập từng trang web đó Day là một tiện ích hữu ích nêu bạn muốn cập nhậtthông tin nhanh chóng từ nhiều nguồn khác nhau

2 Feed: một nguồn cung cấp thông tin định ky từ một trang web hoặc nguồn dữ

liệu khác Có thê hiểu feed như là một loại "luồng" thông tin liên tục được cập nhậttừng khi có sự thay đôi mới trong nội dung Một feed có thê sử dụng nhiều định dạngkhác nhau, trong đó RSS là một trong những định dạng phô biến nhất

3 Crawler: còn được gọi là web crawler hoặc spider, là một chương trình may

tính được thiết kế đề tự động duyệt qua các trang web trên Internet, thu thập thôngtin và cập nhật cơ sở dữ liệu Crawler thường được sử dụng bởi các công cụ tìm kiếm

đê tạo ra các chỉ mục trang web và cung câp kêt quả tìm kiêm.

4 CSDL: Co sở dữ liệu là một tập hợp có tô chức của đữ liệu, thường được lưutrữ và quản lý trong máy tính dé có thé dé dàng truy xuất và cập nhật Mục tiêu của

cơ sở đữ liệu là lưu trữ thông tin một cách hiệu quả, giúp người dùng truy cập và thao tác dữ liệu một cách thuận tiện và an toàn.

5 JWT: viết tắt của JSON Web Token Đây là một tiêu chuẩn mở (RFC 7519)định nghĩa cách truyền thông tin an toàn giữa các bên đưới dang JSON trong một cú

pháp dễ đọc cho con người và dễ xử lý cho máy.

6 Client: hiện tại trong hệ thong va báo cao nay client được hiểu là giao hiện của

hệ thống do thiết kế theo hệ thống clean architecture và client & server

Trang 14

TOM TAT KHÓA LUẬN

Trong thế giới ngày nay, khi internet và các phương tiện truyền thông phát triển mạnh

mẽ, người dùng phải đối mặt với một lượng thông tin lớn đáng kể Điều này đặt ramột thách thức lớn về việc lọc và tìm kiếm thông tin có ý nghĩa từ hàng tỷ dòng tintức, bài báo và nguồn thông tin trên mạng Đồng thời, sự gia tăng về độ phức tạp củanội dung thông tin yêu cầu kha năng phân tích sâu sắc dé dam bảo hiểu rõ bối cảnh

và ý nghĩa thực sự của thông tin đó Do đó, đề tài “Xây dựng một hệ thống tự độngtong hop tin tức và phân tích nội dung” với mong muốn phát triển một hệ thống giúpgiải quyết các vấn đề trên

Mặt khác, dựa trên tính toán về thời gian và thực lực đầu tư vào khóa luận tốt nghiệp,nhóm chúng em tập trung hướng đến là một hệ thống đa nền tảng chạy trên cả Web

và thiết bị di động Hệ thong bao gồm các tiện ích:

+ Cung cấp thông tin đa dạng: Hệ thống giúp người sử dụng tiếp cận thông tin từ

nhiều lĩnh vực khác nhau như chính trị, kinh doanh, khoa học, công nghệ, giải trí,

thé thao, va sức khỏe Điều này giúp họ duyệt qua nhiều nguồn tin khác nhau ma

không cần phải kiểm tra từng trang web riêng lẻ

+ Cập nhật thông tin hàng ngày: Người sử dung có thé đặt lịch trình đọc tin tức

hàng ngày và nhận cập nhật về các sự kiện quan trọng, xu hướng mới, và thông

tin nóng hôi từ các lĩnh vực quan tâm của họ.

<= Phân loại tin tức: Ứng dụng có thé phân loại tin tức theo các danh mục cu thể như

chính trị, kinh doanh, khoa học, để người sử dụng có thể dễ dang tìm kiếm và đọctin từ lĩnh vực mong muốn

+ Giao diện thân thiện và dé sử dụng: Ứng dụng có giao diện người dùng thân thiện

và dễ sử dụng giúp người đọc duyệt tin tức một cách thuận lợi và hiệu quả.

+ Theo dõi sự kiện thé thao: Dành riêng một phan cho những người yêu thích thé

thao, cung cấp cập nhật hàng ngày và nhận định về các sự kiện thé thao quan

trọng.

Trang 15

Sau quá trình miệt mài tìm hiểu, thực hiện cài đặt và thiết kế hệ thống, nội dung được

trình bày trong bài báo cáo là những thành quả mà nhóm đã đạt được trong thời gian

qua Báo cáo khóa luận gồm 4 chương và phan phụ lục:

- Chương 1: Gidi thiệu

- Chương 2: Cơ sở lý thuyết

- Chương 3: Phát triển hệ thống

- Chương 4: Kết quả và định hướng phát triển

- Phụ lục

Trang 16

Chương 1 GIỚI THIỆU

1.1 Mục tiêu

Mục tiêu chính của dé tài là xây dựng một hệ thống tự động tổng hợp tin tức từ

nhiều nguồn khác nhau và phân tích nội dung một cách thông minh Hệ thống sẽ hỗtrợ người sử dụng trong việc thu thập thông tin đa dạng, đồng thời cung cấp khả năngphân tích và tóm tắt thông tin một cách tự động, giúp chúng ta tiết kiệm thời giantrong quá trình đọc tin và tìm kiếm thông tin cần thiết

1.2 Phạm vi

Phạm vi của đề tài sẽ bao gồm các công đoạn chính như sau:

Thu thập dữ liệu: Kết nối với các nguồn tin tức khác nhau đề thu thập dữ liệu đa

dạng và phong phú.

+ Xử lý dữ liệu: Áp dụng kỹ thuật xử lý ngôn ngữ tự nhiên hỗ trợ phân tích và tóm

tắt nội dung tin tức một cách tự động

+ Tổng hợp tin tức: Sử dụng công cụ AI dé tạo ra các ban tóm tắt có ý nghĩa

Với những mục tiêu và phạm vi này, đề tài hy vọng sẽ đóng góp vào việc cải thiệnquá trình quản lý và sử dụng thông tin trong môi trường số ngày nay

1.3 Đối tượng sử dụng

~ Người đọc tin tức hàng ngày:

Y Dự án là một nguồn thông tin cho những người muốn cập nhật những sự kiện

quan trong từ nhiều lĩnh vực khác nhau trong một nền tang duy nhất

Y Đối với những người đọc không có thời gian theo dõi nhiều nguồn tin, dự án

cung cấp một giải pháp thuận tiện dé truy cập thông tin hàng ngày

~ Người theo dõi tin tức khoa học và công nghệ:

Y Đối với cộng đồng yêu thích khoa học và công nghệ, dự án cung cấp thông

tin mới nhât vê các phát triên nôi bật trong các lĩnh vực này.

Trang 17

VY Bằng cách này, người đọc có thé duyệt qua những bài viết chuyên sâu và tiếp

cận thông tin chỉ tiết về các đột phá khoa học và công nghệ

Y Có thé tận dụng hệ thống như một công cụ thu thập dtr liệu dataset cho các

nghiên cứu.

+ Doanh nhân và nhà dau tư:

Y Doanh nhân và nhà đầu tư có thé tận dụng dự án dé theo dõi thông tin kinh

doanh và tìm kiêm cơ hội đâu tư tiêm năng.

VY Tin tức về thị trường, xu hướng kinh tế và đánh giá từ chuyên gia từ các

nguồn tin sẽ giúp ho đưa ra các quyết định thông minh

+ Người quan tâm đến sự kiện thé thao: Với phủ sóng đa dạng về thé thao, dự án

là một nguồn tin đáng tin cậy cho người hâm mộ thê thao, cung cấp cập nhật hàng

ngày về các sự kiện thê thao.

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

Việc thực hiện dự án có thê được chia thành một loạt các bước quan trọng dé

đảm bảo rằng đáp ứng được yêu cầu Dưới day là các bước phương pháp thực hiện

dự án:

+ Xác định Yêu Cầu:

Y Tìm hiểu rõ về yêu cầu của đối tượng sử dụng và đặt ra những mục tiêu cụ

thể cho dự án

v Xác định các chức năng chính cần có, các danh mục tin tức, và tính năng đặc

biệt như hệ thống phân tích bài viết

<> Xác định cấu trúc HTML và điểm chung cho crawler:

v Tìm hiểu cau trúc HTML của trang web mục tiêu bang cách sử dụng trình

duyệt va công cụ như "Inspect".

v Xác định các thẻ HTML và lớp CSS chứa thông tin quan trọng như tiêu dé,

nội dung, thời gian đăng, và tác giả.

Trang 18

Vv Xác định điểm chung giữa các trang web tin tức dé tạo ra một mô hình chung

cho crawler Điều này có thể bao gồm việc xác định các quy tắc CSS hoặc

xây dựng các biểu thức chính quy (regular expressions) dé xác định URL của

các bài viết tin tức

Thiết kế cơ sở dữ liệu:

Vv Xây dung cơ sở dữ liệu dé lưu trữ thông tin tin tức một cách hiệu quả

v_ Thiết kế cơ sở dit liệu phải hỗ trợ việc phân loại tin tức theo các danh mục,

nguồn, thời gian và các tiêu chí khác

Phát triển giao điện người dùng:

+ Xây dựng giao diện người dùng thân thiện va dé sử dụng.

* Cung cấp các tính năng tìm kiếm, lọc, và đề xuất thông tin để cải thiện trải

nghiệm người dùng.

Thử nghiệm và tối ưu hóa:

v Thử nghiệm crawler trên một sỐ trang web khác nhau dé dam bảo nó hoạt

động chính xác và hiệu quả.

¥ Tôi ưu hóa mã nguôn của crawler dé đảm bảo tôc độ thu thập dữ liệu và giảm

nguy cơ bị chặn từ các trang web.

Triển khai và kiểm thử:

Triển khai hệ thống và thực hiện các bước kiểm thử chất lượng để đảm bảotính ôn định va an toàn

Y Kiểm thử tích hợp và kiểm thử hệ thống dé dam bảo tất cả các thành phan

hoạt động hiệu quả với nhau.

Theo dõi và tối ưu hóa:

vx Thiết lập các công cụ theo dõi hiệu suất dé đánh giá sự sử dụng của người

dùng và hiệu suất hệ thống

Trang 19

*⁄ Dựa vào phản hồi từ người dùng và dữ liệu theo déi dé tối ưu hóa trải nghiệm

người dùng và cải thiện tính ôn định

Chương 2 CƠ SỞ LÝ THUYET

2.1 Quy trình phát triển phan mềm

Mô hình Waterfall là một mô hình phát triển phần mềm tuần tự và tuyến tính,

được sử dụng để quản lý các dự án phần mềm Mô hình này được phát triển vào cuối

những năm 1970 bởi Winston Royce và trở thành một trong những mô hình phát

triển phần mềm cổ điền và phổ biến nhất [1]

Mô hình Waterfall chia dự án thành các giai đoạn liên tiếp, và mỗi giai đoạn chỉ

bắt đầu sau khi giai đoạn trước đó hoàn thành Các giai đoạn chính trong mô hìnhWaterfall bao gồm:

- _ Yêu cầu: Giai đoạn này tập trung vào việc thu thập và hiểu rõ các yêu cầu của

dự án từ khách hàng Các yêu cầu này được mô tả trong tài liệu yêu cầu

(requirements document).

- Phan tích: Giai đoạn này liên quan đến việc phân tích các yêu cầu đã thu thập

được trong giai đoạn trước Các yêu cầu sẽ được phân tích chỉ tiết để xác định

cách thức thực hiện và cung cấp giải pháp

- _ Thiết kế: Giai đoạn này tập trung vào việc thiết kế hệ thống phần mềm Các

thiết kế chi tiết được tao ra cho các thành phần phần mềm, cấu trúc cơ sở dữ

liệu, giao diện người dùng và các khía cạnh kỹ thuật khác.

- Lap trình: Giai đoạn này thực hiện việc lập trình va triển khai các thành phần

phần mềm dựa trên thiết kế đã hoàn thành

- _ Kiểm thử: Giai đoạn nay tập trung vào việc kiểm tra tính hoạt động, tính năng

và chất lượng của phần mềm Kiểm thử được thực hiện để đảm bảo rằng phầnmềm hoạt động theo các yêu cầu đã đề ra và đáp ứng mong đợi của khách

hàng.

- Triển khai: Giai đoạn này liên quan đến việc triển khai phần mềm vào môi

trường sản xuất hoặc chuyền giao cho khách hàng

Trang 20

- Bảo trì: Giai đoạn này xảy ra sau khi phần mềm đã được triển khai và bao

gồm các hoạt động bảo trì, sửa lỗi và nâng cấp

Mô hình Waterfall có những ưu điểm như rõ ràng, dé hiểu và dé quản lý quytrình phát triển Tuy nhiên, nó cũng có nhược điểm là cần phải đợi đến cuối giai đoạn

dé có thé thấy kết quả và không linh hoạt khi cần thay đổi yêu cầu hay sửa lỗi Do

đó, trong những năm gần đây, các mô hình phát triển phần mềm linh hoạt như Agile

va Scrum đã trở nên phô biến hơn va thay thé cho mô hình Waterfall trong nhiều dự

án phần mềm

2.2 Giới thiệu về RSS

RSS (Rich Site Summary hoặc Really Simple Syndication) là một công cụ giúp

bạn theo dõi các cập nhật mới nhất từ các trang web bạn quan tâm mà không cầnphải truy cập từng trang web đó Đây là một tiện ích hữu ích nếu bạn muốn cập nhậtthông tin nhanh chóng từ nhiều nguồn khác nhau

RSS có nguyên tắc là tối giản và rút gọn nội dung trên các trang web tin tức vàblog Các thông tin không cần thiết như định dạng trang trí, hình ảnh hay các thôngtin khác có thé bị loại bỏ

Những thông tin còn lại được hiển thị theo một định dạng chuẩn, giúp người

đọc dé dàng theo dõi và năm bắt nội dung bài viết một cách nhanh chóng Nhữngthông tin quan trọng được giữ lại thường bao gồm:

- Đường dẫn tới bài viết đầy đủ

- Nội dung tóm tắt

- Ngày tháng

- Tác giả

- Tiêu đềHiện nay, hầu hết các trang web tin tức và blog đều hỗ trợ RSS, bao gồm cáctrang web được xây dựng trên nền tảng WordPress, Joomla và Drupal Nên bạn có

Trang 21

thé dé dàng đăng ký và đọc các tin tức mới nhất từ các trang web yêu thích bang phanmềm đọc RSS như Feedly, NewsBlur hay Inoreader.

2.3 Kiến trúc Clean Architecture

2.3.1 Giới thiệu

Clean Architecture là một kiến trúc phần mềm được đề xuất bởi tác giả Robert

C Martin trong cuốn sách "Clean Architecture: A Craftsman's Guide to Software

Structure and Design" Kiến trúc này được thiết kế dé tách biệt giữa các lớp va giảmthiểu sự phụ thuộc giữa chúng

Theo clean architecture, phan mềm nên được chia thành các lớp phụ thuộc lẫnnhau theo cap độ trừu tượng và độ ôn định Kiến trúc này đề xuất sử dung DependencyInversion Principle (nguyên tắc dao ngược phụ thuộc) dé giam thiéu su phu thudc

giữa các lớp Điều này cho phép các lớp có thé dé dàng thay đổi mà không gây anhhưởng đến các lớp khác

Clean architecture cũng đề xuất sử dụng các công nghệ tương thích với mục

tiêu của kiến trúc này, chăng hạn như các hệ thống quản lý phụ thuộc (dependency

management systems) và các framework với khả năng tách biệt lớp (layer separation).

Trang 22

2.3.2 Mô tả

The Clean Architecture

|_| Enterprise Business Rules

_ | Interface Adapters

[_ | Frameworks & Drivers

Hình 2.0 Mô tả kiến trúc clean architecture

2.3.3 Tang Entities

Tang entities là một trong những tang quan trọng của kiến trúc Clean

Architecture Tầng này chứa các đối tượng (objects) và các cấu trúc dit liệu (data

structures) của hệ thống

Entities biéu diễn các khái niệm cốt lõi của hệ thống và chứa các thuộc tính vàphương thức liên quan đến chúng Chúng có thể bao gồm các đối tượng như kháchhàng, sản phẩm, đơn hàng, v.v Cac entities có thể được sử dụng dé thực hiện các

hành động (actions) hoặc thực hiện các thao tac trên cơ sở dữ liệu.

Entities là thành phần trung tâm của kiến trúc Clean Architecture, và được địnhnghĩa và triển khai độc lập với các lớp khác của hệ thống Điều này giúp tách biệt cácphần khác nhau của hệ thống và cho phép chúng ta thay đổi hoặc cập nhật các phần

mà không ảnh hưởng đên các phân khác.

Trang 23

Các entities cũng có thê chứa các phương thức và thuộc tính liên quan đến việckiểm tra tính hợp lệ (validity) của các đối tượng, đảm bảo tính nhất quán và độ tincậy của hệ thống 11 - Tang entities là một phan quan trọng trong Clean Architecture

và giúp tách biệt và đơn giản hóa các thành phần của hệ thống, cải thiện tính mở rộng

và bảo trì của hệ thống trong thời gian dai

2.3.4 Tầng Repository

Tang repository là một trong những tầng quan trọng của kiến trúc CleaArchitecture Tang này chứa các logic dé truy cập và lưu trữ dit liệu trong hệ thống

Tầng repository có trách nhiệm thực hiện các hoạt động đọc và ghi dữ liệu vào

cơ sở dữ liệu hoặc bất kỳ hệ thông lưu trữ nào khác Tầng này cung cấp một giao diện

dé tang use case (hay còn gọi là tang services) có thé giao tiếp với dữ liệu, bao gồm

các phương thức đê thêm, sửa, xóa và truy vân dữ liệu.

Tầng repository cũng giúp tách biệt tầng use case khỏi các chỉ tiết về cơ sở dữliệu và cách lưu trữ Điều này cho phép chúng ta dễ dàng thay đổi cơ sở dữ liệu hoặc

hệ thống lưu trữ mà không ảnh hưởng đến các tang khác trong hệ thong - Một điểmđáng lưu ý khi triển khai tang repository là cần xác định rõ kiểu dữ liệu mà tang nàytruy cập và thao tác, cũng như cách mà tầng này phải sử dụng dé lưu trữ và truy xuất

dữ liệu.

Thông thường, tầng repository sử dụng các công nghệ lưu trữ như cơ sở đữ liệu

quan hệ (relational database), cơ sở dữ liệu NoSQL hoặc các hệ thống lưu trữ khác

Tầng repository là một phần quan trọng trong Clean Architecture và giúp táchbiệt tầng use case khỏi các chỉ tiết về cơ sở dữ liệu và cách lưu trữ, cải thiện tính mởrộng và bảo trì của hệ thống trong thời gian dài

2.3.5 Tầng Services (Use cases)

Tang use case (hay còn gọi là tang services) là một trong những tang quan trongcủa kiến trúc Clean Architecture Tang này chứa các logic xử ly nghiệp vu chính của

hệ thống.

10

Trang 24

Tầng use case có trách nhiệm xử lý các yêu cầu từ phía người dùng và thực hiệncác hành động liên quan đến nghiệp vụ Nó định nghĩa các use case (chức năng) của

hệ thong va bao gom các phương thức để thực hiện các thao tác trên đữ liệu (doc, ghi,

sửa, xóa).

Tầng use case tương tac với tang entity dé truy cập dữ liệu va thực hiện các thaotác liên quan đến nghiệp vụ Nó cũng có thể gọi các phương thức từ tầng repository

dé lay đữ liệu từ cơ sở dữ liệu hoặc hệ thống lưu trữ khác

Tầng use case cũng giúp tách biệt tầng giao diện người dùng (user interface)khỏi các logic nghiệp vụ, cho phép chúng ta thay đôi hoặc cập nhật giao diện ngườidùng mà không ảnh hưởng đến các logic xử lý nghiệp vụ

Một điểm quan trọng khi triển khai tầng use case là xác định rõ các yêu cầu vànghiệp vụ của hệ thong, đồng thời đảm bảo rang các logic xử lý nghiệp vụ được triểnkhai đúng và đầy đủ

Tầng use case là một phần quan trọng trong Clean Architecture và giúp tách biệttầng giao diện người dùng khỏi các logic nghiệp vu, cải thiện tính mở rộng và bảo trìcủa hệ thống trong thời gian dài

đó trả về kết quả cho tầng giao diện người dùng

Tang handler có thé sử dụng các framework và thư viện dé xử lý các yêu cầu từngười dùng, như HTTP request, WebSocket connections, hoặc các yêu cầu từ CLI

(command-line interface).

11

Trang 25

Một điểm quan trọng của tầng handler là xác định rõ các yêu cầu và thực hiện

chúng bằng cách sử dụng các phương thức từ tầng use case Điều này đảm bảo rằng

các logic nghiệp vụ được triển khai đúng và đầy đủ

Tang handler cũng giúp tách biệt tang use case khỏi tang giao điện người dùng,giúp cải thiện tính mở rộng và bảo trì của hệ thống trong thời gian dài

2.4 Giới thiệu Docker

Docker là một nền tang ảo hóa cấp container (containerization) cho việc phattriển, triển khai và chạy ứng dụng Nó cho phép đóng gói tất cả các thành phần củamột ứng dụng vào một container độc lập với hệ thông máy tinh chủ

Hinh 2.1 Logo docker

Với Docker, một container có thê được xem như một môi trường ảo hóa độc

lập, bao gồm cả ứng dụng và tat cả các thư viện và phụ thuộc cần thiết dé chạy ứng

dụng Điều này giúp đơn giản hóa quá trình triển khai ứng dụng, đồng thời đảm bảo

tính đồng nhất của môi trường chạy ứng dụng giữa các môi trường khác nhau, từ

máy tính cá nhân cho đên máy chủ đám mây.

Một trong những ưu điểm của Docker là tính di động Nhờ đóng gói ứng dụng

và các phụ thuộc vào một container độc lập, việc di chuyển và triển khai ứng dụng

giữa các môi trường khác nhau trở nên đễ dàng hơn Docker cũng giúp giảm thiêu

sự phụ thuộc vào các phần mềm khác nhau trong quá trình triển khai ứng dụng

Docker cung cấp một kho lưu trữ ảnh (image repository) cho phép chia sẻ và

quản lý các ảnh Docker được tạo bởi người dùng trên toàn thế giới Các ảnh này có

thé 13 được sử dung dé triển khai các ứng dụng phổ biến như MySQL, MongoDB,

Redis, NodeJS, Python và rất nhiều thứ khác

12

Trang 26

Đề sử dụng Docker, người dùng cần cài đặt Docker Engine trên máy tính củamình Sau đó, họ có thể sử dụng các lệnh Docker CLI để tạo, chạy và quản lý các

container Docker.

2.5 Môi trường tích hợp sử dung

Môi trường tích hợp phát triển (IDE): Visual Studio Code

VISU

Coy `

Hình 2.2 Logo Visual Studio Code

Visual Studio Code (VS Code) là một trình biên tập mã nguồn mở, đa nền tang

và được phát triển bởi Microsoft, có sẵn trên Windows, macOS và Linux Nó đượcthiết kế dé hỗ trợ việc phát triển ứng dụng và các dự án phần mềm, với kha năng mở

rộng và tùy chỉnh linh hoạt.

VS Code cung cấp hỗ trợ mạnh mẽ cho nhiều ngôn ngữ lập trình và công nghệ

khác nhau Điều này bao gồm các ngôn ngữ phổ biến như JavaScript, Python, Java,C++, C#, HTML/CSS và nhiều hơn nữa VS Code cũng hỗ trợ các công cu mở rộng

và tiện ích dé mở rộng khả năng ho trợ cho các ngôn ngữ khác.

VS Code cho phép người dùng cai đặt va sử dụng các tiện ích mở rộng từ cộng

đồng, giúp tăng cường khả năng và tính năng của trình biên tập Các tiện ích mở rộng

13

Trang 27

có thể cung cấp các chức năng b6 sung như gỡ lỗi, kiểm tra lỗi cú pháp, hỗ trợ cho

các framework và thư viện cụ thê, và nhiêu hơn nữa.

Khác với Visual Studio, VS Code có giao diện người dùng tối giản và dé sửdụng, với khả năng tùy chỉnh cao Người dùng có thể điều chỉnh bố cục, giao diện

và chủ dé mau sac dé tạo ra trải nghiệm phù hợp với sở thích cá nhân.

thành phần trong trang web hoặc ứng dụng, phân chia

các đoạn van, heading, links, blockquotes,

HTML không phải là ngôn ngữ lập trình, đồngnghĩa với việc nó không thê tạo ra các chức năng

“động” được Khi làm việc với HTML, chúng ta sẽsử Hình 2.3 Logo HTML5

dụng cấu trúc code đơn giản (tags va attributes) dé đánh dấu lên trang web

CSS

CSS là ngôn ngữ tạo phong cach cho trang web —

Cascading Style Sheet language Nó dùng để tạo phong cách và E ¬ ¬

định kiêu cho những yếu tố được viết dưới dạng ngôn ngữ đánh

dau, như là HTML và XHTML Nó có thé điều khiển định dang

của nhiều trang web cùng lúc dé tiết kiệm công sức cho người

viết web Nó phân biệt cách hiển thị của trang web với nội dung

chính của trang bằng cách điều khiển bố cục, màu sắc, và font >> c—m

chữ Các đặc điểm kỹ thuật của CSS được duy trì bởi World inh 2.4 Logo CSS3

Wide Web Consortium (W3C).

Tac dung cua CSS:

14

Trang 28

- Hạn chế tối thiêu việc làm rối mã HTML của trang Web bằng các thẻquy định kiểu dáng (chữ đậm, chữ in nghiêng, chữ có gạch chân, chữ màu),khiến mã nguồn của trang Web được gọn gàng hơn, tách nội dung của trang

Web và định dang hién thị, dé dang cho việc cập nhật nội dung

- Tạo ra các kiểu dang có thé áp dụng cho nhiều trang Web, giúp tránhphải lặp lại việc định dang cho các trang Web giống nhau

Typescript

TypeScript là một ngôn ngữ lập trình được phát triển

và duy trì bởi Microsoft Nó là một siêu tập hợp cú pháp

nghiêm ngặt của JavaScript và thêm tính năng kiểu tĩnh

tùy chọn vào ngôn ngữ TypeScript được thiết kế để phát

triển các ứng dụng lớn và biên dịch sang JavaScript

Hình 2.5 Logo Typescript

NEXT.

Hình 2.6 Logo NextJS

NextJS

NextJS là framework mã nguồn mở được xây dựng trên nền tang của React, cho

phép chúng ta xây dựng các trang web tĩnh có tốc độ siêu nhanh và thân thiện với

người dùng, cũng như xây dựng các ứng dụng web React.

NextJS được ra đời vào năm 2016, thuộc sở hữu của Vercel NextJS bắt đầu trởnên phổ biến vào năm 2018 và tiếp tục tăng trưởng mạnh mẽ trong cộng đồng phát

triển web vào những năm sau đó Sự kết hợp của các tính năng như Server-side

Rendering (SSR) với Static Site Generation (SSG) đã giúp NextJS trở thành sự lựa

chọn hấp dẫn cho nhiều dự án phát triển ứng dụng web

15

Trang 29

2.6.2 Backend

Golang

Go hay còn gọi là Golang là ngôn ngữ lập trình

mã nguồn mở, được thiết kế tại Google bởi Robert

Gniesemer, Rob Pike, and Ken Thompson Go có cú Hinh 2.7 Logo Golang

pháp giông với C va tat nhiên nó là ngôn ngữ lập

trình biên dịch (compiled programming language) Cú pháp của ngôn ngữ lập trình

Golang (syntax) khá tinh gọn, mặc dù thật sự có những cú pháp ma người mới nhìn

vào thật sự hơi khó chịu.

PostgreSOL |

PostgreSQL

PostgreSQL là một hệ thống quản tri co sở dữ

liệu quan hệ và đối tượng (object-relational

database management system) miễn phí và nguồn8 ⁄ 7 ; ) b 8 Hình 2.8 Logo PostgreSQL

mở (RDBMS) tiên tiên nhât hiện nay kha năng

mở rộng cao và tuân thủ các tiêu chuẩn kỹ thuật Nó được thiết kế để xử lý một loạtcá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 đồng thời

Gin

Gin là một web framework được xây dựng bằngngôn ngữ lập trình Go, được thiết kế với sự nhẹ nhàng

và hiệu suất cao Với cú pháp đơn giản và linh hoạt, Gin

giúp nhà phát triển xây dựng ứng dụng web và API l

một cách nhanh chóng Nó hỗ trợ routing linh hoạt, Hình 2.9 Logo Gin Framework

middleware manh mé, va co kha nang tich hop dé dàng với cấu trúc CleanArchitecture Được ưa chuộng trong cộng đồng Go, Gin là một lựa chọn phổ biến

cho những dự án đòi hỏi hiệu suat va sự đơn giản.

16

Trang 30

2.6.3 Cac công nghệ hỗ trợ

Sentry.IO

Sentry là một công cụ giám sát và theo dõi

AX SENTRY

hiệu suất (performance monitoring) cũng như gỡ

x fog Hình 2.10 Logo Sent

lôi (error tracking) phô biên được sử dụng trong ” 0g senry

phat trién phan mềm Sentry giúp nhóm phat triển phát hiện, theo doi và khắc phục

lỗi trong ứng dụng của họ một cách hiệu quả.

Các tính năng chính của Sentry bao gồm:

- Theo dõi lỗi: Sentry tự động ghi lại thông tin về lỗi xảy ra trong ứng dụng,

bao gôm cả các chi tiét như loại lối, vi tri, thời gian xảy ra và ngữ cảnh xung quanh.

- Hién thị gỡ lỗi: Sentry cung cấp các thông tin chi tiết về lỗi, giúp nhóm pháttriển nhanh chóng xác định và sửa chữa van dé mà không cần phải dành nhiêu thời

gian vào việc gỡ lỗi.

- Giám sát hiệu suất: Sentry cũng cung cấp thông tin về hiệu suất của ứng dụng,giúp nhóm phát triển theo doi và tối ưu hóa hiệu suất của hệ thống

Sử dụng Sentry giúp nhóm phát triên duyệt lọc và xử lý các vấn đề kỹ thuật mộtcách nhanh chóng, cung cấp trải nghiệm ứng dụng mượt mà và đáng tin cậy hơn

Service worker API

Service worker là một tệp chương trình viết bằng

javascript được browser chạy ngầm và tách biệt

7 ¬ „ „ _ _, Hinh 2.11 Logo Service Worker khỏi trang web, nó mở ra cánh cua cho các tính

năng không yêu cầu giao diện hoặc tương tác với người dùng ví dụ: đồng bộ ngầm

và thông báo thời gian thực Tương lai, service worker có thể hỗ trợ định vị địa lýhoặc đồng bộ định ky Service worker có khả năng bắt và xử lý các yêu cầu trên hệthống và có thé quản lý việc cache các phản hồi hệ thống trả về Do đó nó hỗ trợ chạywebsite cả khi không có mạng, thông báo thời gian thực, và tốc độ xử lý nhanh

17

Trang 31

Nói tóm lại service worker có các diém sau:

Nó là một file javascript không can thiệp trực tiếp vào DOM của website, thayvào đó nó giao tiếp với các trang thông qua một giao diện đặc biệt và tương tác với

DOM thông qua các trang đó đó.

SW là proxy mạng có thé lập trình được, nó cho phép ta điều khiển cách mà các

yêu cầu được xử lý Nó tắt khi không được dùng đến và khởi động lại khi cần đến

Model BART

Mô hình BART (Bidirectional and Auto-Regressive Transformers) là một mô

hình AI thuộc họ Transformer, được thiết kế dé thực hiện các nhiệm vụ như tóm tatvăn bản, dịch ngôn ngữ, và hiểu văn bản tự nhiên Mô hình này được phát triển bởiFacebook AI Research (FAIR) và là một bước tiễn quan trọng trong lĩnh vực pre-

training và fine-tuning cho xử lý ngôn ngữ tự nhiên.

Một số thuật toán hỗ trợ

Jaccard Index:

Jaccard Index được sử dụng đề đo lường độ tương đồng giữa hai tập hợp dữ

liệu Nó được định nghĩa là kích thước của giao của hai tập hợp chia cho kích thước

của liên kết giữa chúng Công thức Jaccard Index được biéu diễn như sau:

|AUB| |A4l+|B|—lAnbB

Jaccard Index thường được sử dụng trong các tình huống như tìm kiếm thông tin,

phân loại văn bản, và nhận diện các mô hình tương đồng giữa tập hợp dữ liệu

Minhash

MinHash là một kỹ thuật giảm kích thước của tập hợp dữ liệu và tạo ra một

vector hash nhỏ nhất có thể đại diện cho tính chất tương đồng của tập hợp đó Quy

18

Trang 32

trình này bao gồm việc chia tập hop dữ liệu thành các tập con, sử dung ham hash dé

tạo các số hash cho mỗi tập con, và chọn giá trị MinHash là giá trị nhỏ nhất của các

số hash đó Trong trường hợp so sánh bài bao, MinHash có thể được áp dụng dé biểu

diễn các đặc điểm quan trọng của nội dung bài báo bằng một vector hash

TopicRank

TopicRank là một thuật toán trích xuất chủ dé từ văn bản, và có thé được ứng

dụng hiệu quả trong việc gan thẻ cho bai báo Chức năng chính của TopicRank là tự

động xác định các chủ đề quan trọng và tạo ra các từ khóa mô tả nội dung của baibáo, giúp cải thiện quá trình tìm kiếm và tô chức thông tin Dưới đây là một hướngdẫn chi tiết về việc áp dụng TopicRank và xây dựng đồ thị HAC (HierarchicalAgglomerative Clustering) với Average Linkage trong quá trình gắn thẻ bài báo:

- Tach văn bản thành câu văn ngắn

- Rút trích các từ có ý nghĩa

- Gom nhóm các từ va tạo TopIc

- Xây dựng đồ thị HAC với Average Linkage

- Ap dụng ngưỡng cho việc gan thẻ

- Gan trọng số cho các topic bang random walkChỉ tiết có thé xem ở tài liệu tham khảo TopicRankChương 3 PHAT TRIEN HE THONG

3.1 Khao sat hién trang, yéu cau

3.1.1 Khao sát các hệ thống tương tự hiện hiện có

Inoreader: là một ứng dụng đọc tin tức và quản lý RSS Feed, giúp người dùng

theo dõi nhiều nguồn thông tin từ các trang web khác nhau một cách thuận tiện và

tổ chức

Các tính năng của Inoreader:

19

Trang 33

- RSS Feed: Cho phép người dùng đăng ky và theo dõi các trang web, blog hoặc

nguồn thông tin khác thông qua các RSS Feed

- Tổ chức: Cung cấp khả năng tổ chức nội dung theo danh mục, thẻ, hoặc bằng

cách sử dụng các tính năng quản lý khác nhau.

- Tìm kiếm: Hỗ trợ tính năng tìm kiếm dé dé dàng định vị và đọc tin tức theo

chủ đê quan tâm.

Feedly: là một dịch vụ đọc tin tức và quản lý RSS Feed phô biến, Feedly mangđến trải nghiệm đọc thông tin trực tuyến dễ sử dụng và linh hoạt

Cac tính năng của Feedly:

- Quản lý RSS Feed: hỗ trợ đăng ký và quản lý các RSS Feed từ các trang web

blog, hoặc nguồn tin khác, giúp người dùng tập hợp tat cả thông tin yêu thích tai một

nơi.

- Danh mục và thẻ: cho phép tổ chức tin tức thành các danh mục va thẻ giúp dé

dàng định hình nội dung theo sở thích và chủ đề.

- Đánh dấu và lưu trữ: Có thể đánh dấu bài viết quan trọng hoặc lưu trữ chúng

để đọc sau, giúp duyệt lại thông tin quan trong một cách thuận tiện

Nhận xét: Các ứng dụng web về RSS không phải là một ý tưởng mới Thực tế

đã có nhiều ứng dụng web khai thác đề tài này và phát triển thành ý tưởng thương

mại Các tính năng cơ bản của các ứng dụng liên quan đến RSS thường là: quản lýcác RSS feed, tổ chức các bai viết theo danh mục, thẻ nội dung, tìm kiếm bài viết

Tính năng nhóm muốn phát triển thêm trên hệ thống:

- Hé trợ đa nền tang

- Tích hợp đăng nhập và đăng ký với các tài khoản mạng xã hội cá nhân

- Cung cấp các tính năng có thể tận dụng được đữ liệu sau khi thu được

20

Trang 34

3.1.2 Cac chức năng theo yêu cầu

- Quán ly bài báo, tin tức, thông tin thu thập được: giúp quản lý các nội dung

thu thập được một cách thuận tiện dé dang bằng cách lưu trữ thành nội dung yêu thíchhoặc tạo thư viện chủ đề

- Quản lý người dùng, phân quyên: hệ thống giúp quản lý thông tin người dùngdựa trên tài khoản đăng ký trên hệ thống và giúp hạn chế hoặc giới hạn nội dung vàtính năng dựa trên hệ thống phân quyền

- Quản lý thông tin lưu trữ: hệ thống giúp người quản trị quản lý các nội dung

trên toàn hệ thống bao gồm phân loại, nội dung tìm kiếm

- Quan ly crawler: lên lịch, theo dõi kết quả tìm kiếm từ nhiều nguồn khác nhau

dua trên khái niệm RSS

- Phân tích nội dung thu thập được: xây dựng hệ thong xử lý ngôn ngữ tự nhiên

giúp tông hợp kết quả thu được và đánh dấu (tag) các bài viết tự động

- Tóm tắt thông tin bài viết, bài báo bằng công cụ AI

- Hỗ trợ đa nền tảng: hỗ trợ truy cập ứng dụng web trên đa nên tảng giúp ngườidùng tiền dụng và đễ dạng truy cập ứng dụng trên nhiều nền tảng và thiết bị khác

nhau

21

Trang 35

3.2 Phân tích thiết kế hệ thống

3.2.1 Thiết kế hệ thống

REST API Request

REST API Request

“——

REST API Response

Frontend API service Fire events

gRPC Read / write Error tracking services

- Frontend: Giao điện người dùng, khi người ding tương tác sẽ gửi request đến API

service dé nhận dit liệu dạng JSON và hiền thị lên giao diện

- API service: Chiu trách nhiệm nhận request từ Frontend, tương tac với các service

khác, xử ly dit liệu tir request Frontend va gửi tra response về Frontend

- AI server: Server host riêng model AI đã train sẵn, API service sẽ gửi request bao

gôm đoạn văn bản cân tóm tat, trả văn ban đã tom tat vê cho API service.

- Error tracking service: Khi hệ thông có lỗi xảy ra, sẽ trả lỗi vê error tracking service,

người duy trì website có thé dé dang theo dõi và sửa chữa lỗi kịp thời

- Crawler service: Chiu trách nhiệm chạy các cronjob thu thập dữ liệu bài báo từ các nguôn internet

- Database: lưu trữ dữ liệu

22

Trang 37

3.2.2 Sơ đồ trường hợp sử dụng của các đối tượng (Usecase Diagram)

Tác nhân Ý nghĩa

| ; Là người tac động đến hệ thông, có quyên thực hiện toàn

1 Quan trị viên (Admin) ,

bộ các chức năng của hệ thông

24

Trang 38

Người dung (User)

Là người tác động tới hệ thống, thực hiện các chức năng:quản lý thông tin tìm kiếm, thao tác trên đữ liệu thu thập

7 Thêm crawler tùy chỉnh _

8 Thêm crawler chỉ tiết bai báo [9 _ Tim kiếm feeds theo từ khóa

10 Tim kiém feeds theo topic

11 Lọc kết quả tìm kiếm theo ngôn ngữ

I2 SE Theo dõi feed

13 - Xem danh sách xem sau

14 Xem lịch sử đọc báo

15 Thêm bài báo vào danh sách xem sau

16 Xóa bài báo khỏi danh sách xem sau

17 Khám phá bài báo đang hot trong ngày

Xem tất cả bài báo của các feeds đã

8 theo dõi

19 Xem báo theo feed

20 Sắp xếp bài báo

25

Trang 39

21 Lọc bài báo trùng

22 Tìm kiếm theo các feeds theo dõi

23 Tìm kiếm bài báo theo feed

24 Đọc báo

25 Truy xuất trang nguồn báo

26 Tải toàn bộ nội dung báo

27 Sử dụng AI tóm tắt bài báo

28 Theo dõi lỗi hệ thống

29 Tìm kiếm crawler

30 Xóa các crawler

31 Sửa thông tin crawler

32- Lên lich crawl

33 Sửa thông tin feed

46 Sửa thông tin người dùng

47 Xem danh sách phân quyền

48 Thêm phân quyền

26

Trang 40

49 Chỉnh sửa phân quyền của các thực thé

Bảng 3.2 Danh sách các usecase của hệ thông

Mô tả chỉ tiệt các usecase của hệ thông:

e Đăng nhập

- Tác nhân: Người dùng

- Mô tả: Người dùng nhập tên đăng nhập và mật khẩu Hệ thống sẽkiểm tra tính hợp lệ của thông tin đăng nhập

- Điều kiện trước: Không có

- Điều kiện sau: Nếu đăng nhập thành công, hệ thống lưu thông tin

đăng nhập, người dùng sẽ thực hiện được các tính năng của website.

Ngược lại, nếu đăng nhập sai sẽ báo đăng nhập không thành công

- Luong su kién:

Truy cập trang web và ấn vào nút Hiến thi form đăng nhập gồm: tên đăng

“Đăng nhập” | nhập, mật khẩu và nút “Đăng nhập”

Hệ thông tiến hành kiểm tra thông tin người

dùng nhập trong CSDL:

Người dùng nhập tên đăng nhập + Nếu người dùng nhập đúng thì hệ thống

và mật khẩu sau đó nhấn nút xác nhận thành công, người dùng thực hiện

“Đăng nhập” được các tính năng của website.

+ Nếu người dùng nhập sai thì hệ thống

thông báo sai và chờ người dùng nhập lại.

Bảng 3.3 Luong sự kiện đăng nhập

e Đăng nhập với google / apple:

- Tac nhân: Người dùng.

- M6 tả: Đăng nhập hoặc đăng ký tai khoản với google và apple.

- _ Điều kiện trước: Người dùng có tài khoản google hoặc appleid

27

Ngày đăng: 02/10/2024, 02:22

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

TÀI LIỆU LIÊN QUAN

w