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

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động

125 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 website tin tức tổng hợp tự động
Tác giả Nguyễn Trường Phúc, Cao Ngọc Quý
Người hướng dẫn ThS. Trương Thị Ngọc Phượng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 125
Dung lượng 10,62 MB

Cấu trúc

  • Phần 1 MỞ ĐẦU (6)
    • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (19)
    • 2. MỤC ĐÍCH CỦA ĐỀ TÀI (6)
    • 3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU (0)
      • 3.1. ĐỐI TƯỢNG NGHIÊN CỨU (6)
        • 3.1.1. NextJS (20)
        • 3.1.2. Tailwinds (21)
        • 3.1.3. MySQL (22)
        • 3.1.4. Java Spring Boot (22)
        • 3.1.5. Mô hình COCO-SSD (23)
        • 3.1.6. Stanford Core NLP (24)
      • 3.2. PHẠM VI NGHIÊN CỨU (6)
    • 4. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC (24)
      • 4.1. VỀ CHỨC NĂNG (25)
      • 4.2. VỀ GIAO DIỆN (26)
  • Phần 2 NỘI DUNG (27)
    • 1.1. TRANG “GOOGLE NEWS”: https://news.google.com (6)
      • 1.1.1. Giới thiệu (27)
      • 1.1.2. Đặc điểm nổi bật (27)
      • 1.1.3. Điểm hạn chế (28)
      • 1.1.4. Ưu điểm (28)
    • 2.1. MÔ HÌNH HỌC SÂU COCO-SSD (7)
      • 2.1.1. Tổng quan mô hình COCO-SSD (31)
      • 2.1.2. Kiến trúc của mô hình (31)
    • 3.1. DANH SÁCH CHỨC NĂNG (7)
    • 3.2. LƯỢC ĐỒ USECASE (7)
      • 3.2.1. Phía người dùng (36)
      • 3.2.2. Phía hệ thống (36)
    • 3.3. ĐẶC TẢ USECASE (7)
      • 3.3.1. Đăng nhập (36)
      • 3.3.2. Đăng ký (38)
      • 3.3.3. Đổi mật khẩu (40)
      • 3.3.4. Cập nhật ảnh đại diện (42)
      • 3.3.5. Cập nhật thông tin cá nhân (43)
      • 3.3.6. Xem bài viết theo chuyên mục (44)
      • 3.3.7. Tự động cập nhật bài viết mỗi năm phút (45)
      • 3.3.8. Xem bài viết chi tiết (47)
      • 3.3.9. Tìm kiếm bài viết theo từ khóa (48)
      • 3.3.10. Tìm kiếm bài viết theo hình ảnh (49)
      • 3.3.11. Bình luận bài viết (50)
      • 3.3.12. Cập nhật bình luận (51)
      • 3.3.13. Xóa bình luận (53)
      • 3.3.14. Đánh giá sao cho bài viết (54)
      • 3.3.15. Thả cảm xúc cho bài viết (55)
      • 3.3.16. Theo dõi chuyên mục (56)
      • 3.3.17. Xem bài viết chuyên mục theo dõi (57)
      • 3.3.18. Thêm bài viết vào danh sách lưu (58)
      • 3.3.19. Xem danh sách bài viết đã lưu (59)
      • 3.3.20. Xóa bài viết khỏi danh sách lưu (60)
      • 3.3.21. Quản lý chuyên mục (61)
      • 3.3.22. Quản lý người dùng (63)
      • 3.3.23. Quản lý tag (65)
      • 3.3.24. Kiểm duyệt bài viết (67)
    • 3.4. THIẾT KẾ CƠ SỞ DỮ LIỆU (68)
      • 3.4.1. Lược đồ quan hệ (68)
      • 3.4.2. Mô tả cơ sở dữ liệu (69)
      • 3.4.3. Mô tả thuộc tính (70)
    • 4.1. CÀI ĐẶT CÁC CHỨC NĂNG CHÍNH (76)
      • 4.1.1. Thu thập tin tức (76)
      • 4.1.2. Xử lý ngôn ngữ (77)
      • 4.1.3. Tính toán tương đồng (79)
      • 4.1.4. Lập lịch (80)
      • 4.1.5. Phát hiện đối tượng trong ảnh (80)
    • 4.2. CÀI ĐẶT GIAO DIỆN (7)
      • 4.2.1. Giao diện độc giả vãng lai (82)
      • 4.2.2. Giao diện người dùng với quyền “người dùng” (89)
      • 4.2.3. Giao diện người dùng với quyền “quản trị viên” (93)
    • 5.1. TỔNG QUAN KỊCH BẢN KIỂM THỬ (7)
    • 5.2. CHI TIẾT KỊCH BẢN KIỂM THỬ (97)
      • 5.2.1. Kiểm thử đăng nhập (97)
      • 5.2.2. Kiểm thử đăng ký (97)
      • 5.2.3. Kiểm thử đổi mật khẩu (98)
      • 5.2.4. Kiểm thử cập nhật ảnh đại diện (99)
      • 5.2.5. Kiểm thử cập nhật thông tin cá nhân (100)
      • 5.2.6. Kiểm thử xem bài viết theo chuyên mục (101)
      • 5.2.7. Kiểm thử xem bài viết chi tiết (101)
      • 5.2.8. Kiểm thử tìm kiếm bài viết theo từ khóa (102)
      • 5.2.9. Kiểm thử tìm kiếm bài viết theo hình ảnh (102)
      • 5.2.10. Kiểm thử bình luận bài viết (103)
      • 5.2.11. Kiểm thử cập nhật bình luận (104)
      • 5.2.12. Kiểm thử xóa bình luận (105)
      • 5.2.13. Kiểm thử đánh giá sao cho bài viết (106)
      • 5.2.14. Kiểm thử thả cảm xúc cho bài viết (106)
      • 5.2.15. Kiểm thử theo dõi chuyên mục (107)
      • 5.2.16. Kiểm thử xem bài viết bảng tin (108)
      • 5.2.17. Kiểm thử thêm bài viết vào danh sách lưu (109)
      • 5.2.18. Kiểm thử xem danh sách bài viết đã lưu (109)
      • 5.2.19. Kiểm thử xóa bài viết khỏi danh sách lưu (110)
      • 5.2.20. Kiểm thử thêm chuyên mục (111)
      • 5.2.21. Kiểm thử cập nhật chuyên mục (112)
      • 5.2.22. Kiểm thử xóa chuyên mục (113)
      • 5.2.23. Kiểm thử cập nhật người dùng (114)
      • 5.2.24. Kiểm thử xóa người dùng (115)
      • 5.2.25. Kiểm thử thêm tag (116)
      • 5.2.26. Kiểm thử cập nhật tag (117)
      • 5.2.27. Kiểm thử xóa tag (118)
      • 5.2.28. Kiểm thử kiểm duyệt bài viết – chấp nhận (119)
      • 5.2.29. Kiểm thử kiểm duyệt bài viết – từ chối (120)
  • Phần 3 KẾT LUẬN (7)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (122)
      • 1.1. VỀ MẶT KIẾN THỨC (122)
      • 1.2. VỀ MẶT KỸ NĂNG (7)
      • 1.3. VỀ MẶT SẢN PHẨM (7)
    • 2. ƯU VÀ NHƯỢC ĐIỂM CỦA ỨNG DỤNG (7)
      • 2.1. ƯU ĐIỂM (7)
      • 2.2. NHƯỢC ĐIỂM (7)
    • 3. HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI (7)

Nội dung

VỀ CHỨC NĂNG ● Hệ thống tự động cập nhật bài viết mới trên các nguồn tin uy tín - Tự động cập nhật các bài viết mới theo nguồn VnExpress và Dân Trí.. ● Hệ thống cho phép người dùng đăng

NỘI DUNG

TRANG “GOOGLE NEWS”: https://news.google.com

MÔ HÌNH HỌC SÂU COCO-SSD

ĐẶC TẢ USECASE

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

4.1 Cài đặt các hàm, API

5.1 Tổng quan kịch bản kiểm thử

5.2 Chi tiết kịch bản kiểm thử

2 Ưu và nhược điểm của ứng dụng

3 Hướng phát triển trong tương lai

Ngày… tháng ….năm 2024 Ý kiến của giáo viên hướng dẫn Người viết đề cương

Trương Thị Ngọc Phượng Nguyễn Trường Phúc vi

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN i

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ii

LỜI CẢM ƠN iii ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP iv

DANH MỤC TỪ VIẾT TẮT x

DANH MỤC HÌNH ẢNH xi

DANH MỤC BẢNG BIỂU xiv

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 2

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 6

1.Chương 1 KHẢO SÁT HIỆN TRẠNG 9

1.1 TRANG “GOOGLE NEWS”: https://news.google.com 9

2.1 MÔ HÌNH HỌC SÂU COCO-SSD 13

2.1.1 Tổng quan mô hình COCO-SSD 13

2.1.2 Kiến trúc của mô hình 13

3.3.4 Cập nhật ảnh đại diện 24

3.3.5 Cập nhật thông tin cá nhân 25

3.3.6 Xem bài viết theo chuyên mục 26

3.3.7 Tự động cập nhật bài viết mỗi năm phút 27

3.3.8 Xem bài viết chi tiết 29

3.3.9 Tìm kiếm bài viết theo từ khóa 30

3.3.10 Tìm kiếm bài viết theo hình ảnh 31

3.3.14 Đánh giá sao cho bài viết 36

3.3.15 Thả cảm xúc cho bài viết 37

3.3.17 Xem bài viết chuyên mục theo dõi 39

3.3.18 Thêm bài viết vào danh sách lưu 40

3.3.19 Xem danh sách bài viết đã lưu 41

3.3.20 Xóa bài viết khỏi danh sách lưu 42

3.4 THIẾT KẾ CƠ SỞ DỮ LIỆU 50

3.4.2 Mô tả cơ sở dữ liệu 51

4.1 CÀI ĐẶT CÁC CHỨC NĂNG CHÍNH 58

4.1.5 Phát hiện đối tượng trong ảnh 62

4.2.1 Giao diện độc giả vãng lai 64

4.2.2 Giao diện người dùng với quyền “người dùng” 71

4.2.3 Giao diện người dùng với quyền “quản trị viên” 75

5.1 TỔNG QUAN KỊCH BẢN KIỂM THỬ 77

5.2 CHI TIẾT KỊCH BẢN KIỂM THỬ 79

5.2.3 Kiểm thử đổi mật khẩu 80

5.2.4 Kiểm thử cập nhật ảnh đại diện 81

5.2.5 Kiểm thử cập nhật thông tin cá nhân 82

5.2.6 Kiểm thử xem bài viết theo chuyên mục 83

5.2.7 Kiểm thử xem bài viết chi tiết 83

5.2.8 Kiểm thử tìm kiếm bài viết theo từ khóa 84

5.2.9 Kiểm thử tìm kiếm bài viết theo hình ảnh 84

5.2.10 Kiểm thử bình luận bài viết 85

5.2.11 Kiểm thử cập nhật bình luận 86

5.2.12 Kiểm thử xóa bình luận 87

5.2.13 Kiểm thử đánh giá sao cho bài viết 88 ix

5.2.14 Kiểm thử thả cảm xúc cho bài viết 88

5.2.15 Kiểm thử theo dõi chuyên mục 89

5.2.16 Kiểm thử xem bài viết bảng tin 90

5.2.17 Kiểm thử thêm bài viết vào danh sách lưu 91

5.2.18 Kiểm thử xem danh sách bài viết đã lưu 91

5.2.19 Kiểm thử xóa bài viết khỏi danh sách lưu 92

5.2.20 Kiểm thử thêm chuyên mục 93

5.2.21 Kiểm thử cập nhật chuyên mục 94

5.2.22 Kiểm thử xóa chuyên mục 95

5.2.23 Kiểm thử cập nhật người dùng 96

5.2.24 Kiểm thử xóa người dùng 97

5.2.26 Kiểm thử cập nhật tag 99

5.2.28 Kiểm thử kiểm duyệt bài viết – chấp nhận 101

5.2.29 Kiểm thử kiểm duyệt bài viết – từ chối 102

2 ƯU VÀ NHƯỢC ĐIỂM CỦA ỨNG DỤNG 104

3 HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI 105

DANH MỤC TÀI LIỆU THAM KHẢO 106 x

DANH MỤC TỪ VIẾT TẮT

COCO: Common Objects in Context

API: Application Programming Interface xi

Hình 1: Tổng quan trang Google News 9

Hình 2: Chọn bài viết trên Google News 10

Hình 3: Chuyển đổi ngôn ngữ 10

Hình 4: Tin tức sau khi chuyển khu vực sang Việt Nam 11

Hình 5: Chức năng tìm kiếm trang Google News 11

Hình 6: Đề xuất tin tức phù hợp với cá nhân 12

Hình 7: Đề xuất tin theo địa phương sinh sống 12

Hình 8: So sánh tốc độ xử lý và độ chính xác các mô hình phát hiện vật thể 13

Hình 9: Sơ đồ kiến trúc mạng SSD 13

Hình 10: Vị trí hộp giới hạn tiêu chuẩn trên ảnh gốc khi áp dụng trên bản đồ đặc trưng

Hình 11: Lược đồ usecase phía người dùng 18

Hình 12: Lược đồ usecase phía hệ thống 18

Hình 13: Sơ đồ tuần tự usecase đăng nhập 20

Hình 14: Sơ đồ tuần tự usecase đăng ký 22

Hình 15: Sơ đồ tuần tự đổi mật khẩu 24

Hình 16: Sơ đồ tuần tự usecase cập nhật ảnh đại diện 25

Hình 17: Sơ đồ tuần tự usecase cập nhật thông tin cá nhân 26

Hình 18: Sơ đồ tuần tự usecase xem bài viết theo chuyên mục 27

Hình 19: Sơ đồ tuần tự usecase tự động cập nhật bài viết mỗi năm phút 28

Hình 20: Sơ đồ tuần tự usecase xem bài viết chi tiết 29

Hình 21: Sơ đồ tuần tự usecase usecase tìm kiếm bài viết theo từ khóa 31

Hình 22: Sơ đồ tuần tự usecase tìm kiếm bài viết theo hình ảnh 32

Hình 23: Sơ đồ tuần tự usecase bình luận bài viết 33

Hình 24: Sơ đồ tuần tự usecase cập nhật bình luận 35

Hình 25: Sơ đồ tuần tự usecase xóa bình luận 36

Hình 26: Sơ đồ tuần tự usecase đánh giá sao cho bài viết 37

Hình 27: Sơ đồ tuần tự usecase thả cảm xúc cho bài viết 38

Hình 28: Sơ đồ tuần tự usecase theo dõi chuyên mục 39

Hình 29: Sơ đồ tuần tự usecase xem bài viết chuyên mục theo dõi 40

Hình 30: Sơ đồ tuần tự usecase thêm bài viết vào danh sách lưu 41 xii

Hình 31: Sơ đồ tuần tự usecase xem danh sách bài viết đã lưu 42

Hình 32: Sơ đồ tuần tự usecase xóa bài viết khỏi danh sách lưu 43

Hình 33: Sơ đồ tuần tự usecase quản lý chuyên mục 45

Hình 34: Sơ đồ tuần tự usecase quản lý người dùng 47

Hình 35: Sơ đồ tuần tự usecase quản lý tag 49

Hình 36: Sơ đồ tuần tự usecase kiểm duyệt bài viết 50

Hình 37 Lược đồ quan hệ cơ sở dữ liệu 51

Hình 38: Thu thập tin mới từ nguồn VnExpress 58

Hình 39: Thu thập thông tin chi tiết (1) 58

Hình 40: Thu thập thông tin chi tiết (2) 59

Hình 41: Thu thập thông tin chi tiết (3) 59

Hình 42: Chuyển đổi từ sang tiếng anh 60

Hình 43: Kết hợp phân đoạn câu và chuyển đổi ngôn ngữ 60

Hình 44: Trích xuất từ khóa quan trọng 61

Hình 45: Kiểm thử chức năng hàm nerKeyword() 61

Hình 46: Tính toán tương đồng giữa 2 chuỗi 62

Hình 47: Lập lịch để hệ thống tự động gọi hàm thu thập 62

Hình 48: Phát hiện đối tượng trong ảnh 63

Hình 49: Giao diện đăng nhập 64

Hình 50: Giao diện đăng ký tài khoản 64

Hình 51: Giao diện header, thanh chuyên mục và tìm kiếm 64

Hình 52: Bài viết mới nhất mọi chuyên mục 65

Hình 53: Bài viết có đánh giá sao cao nhất 65

Hình 54: Bài viết được thả cảm xúc nhiều nhất 65

Hình 55: Bài viết mới nhất theo nguồn Dân Trí 66

Hình 56: Bài viết mới nhất theo nguồn Dân Trí 67

Hình 57: Các bài mới nhất của từng chuyên mục cha 68

Hình 58: Danh sách bài viết theo chuyên mục(đầu trang) 69

Hình 59: Danh sách bài viết theo chuyên mục(cuối trang) 69

Hình 60: Kết quả sau khi tìm kiếm 70

Hình 61: Giao diện chi tiết bài viết (1) 70

Hình 62: Giao diện chi tiết bài viết (2) 71 xiii

Hình 63: Giao diện chi tiết bài viết (3) 71

Hình 64: Giao diện header sau khi đăng nhập 72

Hình 65: Giao diện thông tin cá nhân 72

Hình 66: Giao diện cập nhật mật khẩu 72

Hình 67: Giao diện đánh giá sao cho bài viết 72

Hình 68: Nơi người dùng thả cảm xúc và lưu bài viết 73

Hình 69: Người dùng bình luận bài viết 73

Hình 70: Người dùng cập nhật bình luận (1) 73

Hình 71: Người dùng cập nhật bình luận (2) 74

Hình 72: Người dùng cập nhật bình luận (3) 74

Hình 73: Giao diện bảng tin 74

Hình 74: Theo dõi chuyên mục 74

Hình 75: Giao diện in đã lưu 75

Hình 76: Header sau khi quản trị viên đăng nhập 75

Hình 77: Quản lý chuyên mục 76

Hình 79: Quản lý người dùng 76

Hình 80: Kiểm duyệt bài viết 76 xiv

Bảng 1: Danh sách chức năng của hệ thống 16

Bảng 2: Đặc tả usecase đăng nhập 18

Bảng 3: Thông tin dữ liệu đầu vào cho usecase đăng nhập 19

Bảng 4: Đặc tả usecase đăng ký 20

Bảng 5: Thông tin dữ liệu đầu vào cho usecase đăng ký 21

Bảng 6: Đặc tả usecase đổi mật khẩu 22

Bảng 7: Thông tin dữ liệu đầu vào cho usecase đổi mật khẩu 23

Bảng 8: Đặc tả usecase cập nhật ảnh đại diện 24

Bảng 9: Thông tin dữ liệu đầu vào cho usecase cập nhật ảnh đại diện 25

Bảng 10: Đặc tả usecase cập nhật thông tin cá nhân 25

Bảng 11: Thông tin dữ liệu đầu vào cho usecase cập nhật thông tin cá nhân 26

Bảng 12: Đặc tả usecase xem bài viết theo chuyên mục 26

Bảng 13: Đặc tả usecase tự động cập nhật bài viết mỗi năm phút 27

Bảng 14: Đặc tả usecase xem bài viết chi tiết 29

Bảng 15: Đặc tả usecase tìm kiếm bài viết theo từ khóa 30

Bảng 16: Thông tin dữ liệu đầu vào cho usecase tìm kiếm bài viết theo từ khóa 30

Bảng 17: Đặc tả usecase tìm kiếm bài viết theo hình ảnh 31

Bảng 18: Thông tin dữ liệu đầu vào cho usecase tìm kiếm bài viết theo hình ảnh 32

Bảng 19: Đặc tả usecase bình luận bài viết 32

Bảng 20: Thông tin dữ liệu đầu vào cho usecase bình luận bài viết 33

Bảng 21: Đặc tả usecase cập nhật bình luận 33

Bảng 22: Thông tin dữ liệu đầu vào cho usecase cập nhật bình luận 34

Bảng 23: Đặc tả usecase xóa bình luận 35

Bảng 24: Đặc tả usecase đánh giá sao cho bài viết 36

Bảng 25: Đặc tả usecase thả cảm xúc cho bài viết 37

Bảng 26: Đặc tả usecase theo dõi chuyên mục 38

Bảng 27: Đặc tả usecase xem bài viết chuyên mục theo dõi 39

Bảng 28: Đặc tả usecase thêm bài viết vào danh sách lưu 40

Bảng 29: Đặc tả usecase xem danh sách bài viết đã lưu 41

Bảng 30: Đặc tả usecase xóa bài viết khỏi danh sách lưu 42

Bảng 31: Đặc tả usecase quản lý chuyên mục 43 xv

Bảng 32: Thông tin dữ liệu đầu vào cho usecase quản lý chuyên mục 44

Bảng 33: Đặc tả usecase quản lý người dùng 45

Bảng 34: Thông tin dữ liệu đầu vào cho usecase quản lý người dùng 46

Bảng 35: Đặc tả usecase quản lý tag 47

Bảng 36: Thông tin dữ liệu đầu vào cho usecase quản lý tag 48

Bảng 37: Đặc tả usecase kiểm duyệt bài viết 49

Bảng 38: Mô tả bảng trong cơ sở dữ liệu 51

Bảng 39: Mô tả thuộc tính bảng article 52

Bảng 40: Mô tả thuộc tính bảng category 53

Bảng 41: Mô tả thuộc tính bảng tag 53

Bảng 42: Mô tả thuộc tính bảng tag_article 53

Bảng 43: Mô tả thuộc tính bảng user 54

Bảng 44: Mô tả thuộc tính bảng comment 54

Bảng 45: Mô tả thuộc tính bảng vote_star 55

Bảng 46: Mô tả thuộc tính bảng average_star 55

Bảng 47: Mô tả thuộc tính bảng react_emotion 55

Bảng 48: Mô tả thuộc tính bảng saved_article 56

Bảng 49: Mô tả thuộc tính bảng follow category 56

Bảng 50: Mô tả thuộc tính bảng ner_keyword 56

Bảng 51: Mô tả thuộc tính bảng pending_information 57

Bảng 52: Mô tả giao diện độc giả vãng lai 64

Bảng 53: Mô tả giao diện với quyền người dùng 71

Bảng 54: Mô tả giao diện quản trị viên 75

Bảng 55: Tồng quan kịch bản kiểm thử 77

Bảng 56: Trường hợp kiểm thử đăng nhập 79

Bảng 57: Trường hợp kiểm thử đăng ký 79

Bảng 58: Trường hợp kiểm thử đổi mật khẩu 80

Bảng 59: Trường hợp kiểm thử cập nhật ảnh đại diện 81

Bảng 60: Trường hợp kiểm thử cập nhật thông tin cá nhân 82

Bảng 61: Trường hợp kiểm thử xem bài viết theo chuyên mục 83

Bảng 62: Trường hợp kiểm thử xem bài viết chi tiết 83

Bảng 63: Trường hợp kiểm thử tìm kiếm bài viết theo từ khóa 84 xvi

Bảng 64: Trường hợp kiểm thử tìm kiếm bài viết theo hình ảnh 84

Bảng 65: Trường hợp kiểm thử bình luận bài viết 85

Bảng 66: Trường hợp kiểm thử cập nhật bình luận 86

Bảng 67: Trường hợp kiểm thử xóa bình luận 87

Bảng 68: Trường hợp kiểm thử đánh giá sao cho bài viết 88

Bảng 69: Trường hợp kiểm thử thả cảm xúc cho bài viết 88

Bảng 70: Trường hợp kiểm thử theo dõi chuyên mục 89

Bảng 71: Trường hợp kiểm thử xem bài viết bảng tin 90

Bảng 72: Trường hợp kiểm thử thêm bài viết vào danh sách lưu 91

Bảng 73: Trường hợp kiểm thử xem danh sách bài viết đã lưu 91

Bảng 74: Trường hợp kiểm thử xóa bài viết khỏi danh sách lưu 92

Bảng 75: Trường hợp kiểm thử thêm chuyên mục 93

Bảng 76: Trường hợp kiểm thử cập nhật chuyên mục 94

Bảng 77: Trường hợp kiểm thử xóa chuyên mục 95

Bảng 78: Trường hợp kiểm thử cập nhật người dùng 96

Bảng 79: Trường hợp kiểm thử xóa người dùng 97

Bảng 80: Trường hợp kiểm thử thêm tag 98

Bảng 81: Trường hợp kiểm thử cập nhật tag 99

Bảng 82: Trường hợp kiểm thử xóa tag 100

Bảng 83: Kiểm thử chấp nhận bài viết 101

Bảng 84: Kiểm thử từ chối bài viết 102

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh Cách mạng Công nghiệp 4.0, Internet đã và đang biến đổi toàn diện cả xã hội, tri thức và công nghệ trở thành yếu tố chủ chốt quyết định sự tiến bộ của mỗi quốc gia Xã hội loài người càng phát triển, lượng thông tin tiếp nhận ngày càng nhiều Bên cạnh những thông tin chính thống, luôn tồn tại những thông tin sai lệch, gây hoang mang dư luận, cộng đồng Việc xây dựng một trang tin tức tổng hợp từ các nguồn uy tín là cần thiết để mang đến sự yên tâm cho người dùng khi tiếp cận với tin tức

Hiện nay, số lượng người dùng dành thời gian trên các thiết bị di động hay mạng Internet ngày càng gia tăng Chính vì thế, người dùng đã và đang phải đối phải đối mặt với một làn sóng tin giả, tin chưa xác thực, kiểm duyệt tràn lan trên mạng, thậm chí là xuất hiện ở một số mặt báo “lá cải”, không uy tín Điều này đặt ra một thách thức lớn cho người dùng khi tiếp cận với thông tin cũng như các trang web uy tín khác trong việc truyền đạt những thông tin chính thống tới người dùng Đây chính là hạn chế của báo điện tử so với báo truyền thống trong thời đại công nghệ số hiện nay

Vì vậy, việc nghiên cứu và phát triển một ứng dụng mà thông tin mới sẽ được tự động cập nhật theo các nguồn uy tín là cần thiết Báo điện tử cung cấp nhiều tiện ích và khả năng tương tác mà báo giấy truyền thống không thể có Người dùng có thể tìm kiếm, lưu trữ và chia sẻ bài viết, đánh giá, bình luận và tương tác với nội dung báo Điều này tạo ra một trải nghiệm đọc báo đa dạng và tương tác hơn

Với tính chất động của tin tức, việc cập nhật thông tin nhanh chóng là rất quan trọng Trang tin tức tổng hợp tự động sẽ đáp ứng được điều đó với khả năng cập nhật liên tục ngay sau khi có sự kiện xảy ra Điều này giúp người dùng được tiếp cận với những thông tin mới nhất và chính xác nhất

Bên cạnh đó, việc sử dụng trang tin tức tổng hợp cũng giảm sự phụ thuộc vào báo truyền thống, từ đó giảm lượng giấy in ấn và tiêu thụ năng lượng Có ý nghĩa quan trọng trong việc bảo vệ môi trường và tiết kiệm tài nguyên tự nhiên

2 MỤC ĐÍCH CỦA ĐỀ TÀI Đề tài “Xây dựng website tin tức tổng hợp tự động” có những mục tiêu cần đạt được là:

● Xây dựng giao diện trực quan với những tính năng hỗ trợ, nâng cao trải nghiệm người dùng

● Xây dựng ứng dụng gần gũi thực tiễn, đáp ứng nhu cầu tiếp cận thông tin mới nhất, chính thống nhất của người dùng

● Áp dụng kiến thức về công nghệ phát triển website trong đồ án

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 ĐỐI TƯỢNG NGHIÊN CỨU Đối tượng nghiên cứu được đề cập trong báo cáo là một ứng dụng web được xây dựng trên nền tảng Java, sử dụng các công nghệ: NextJS, MySQL, Java Spring Boot

Next.js là một framework React mã nguồn mở được thiết kế để tạo ra các ứng dụng web hiệu quả cao với trải nghiệm người dùng mượt mà và tối ưu hóa SEO Cung cấp nhiều tính năng và công cụ giúp xây dựng các ứng dụng web phức tạp dễ dàng và hiệu quả

Next.js sử dụng Server-Side Rendering (SSR) và Static Site Generation (SSG) để tăng tốc độ tải trang và cải thiện hiệu suất Các công cụ tìm kiếm có thể dễ dàng thu thập dữ liệu và tạo chỉ mục cho nội dung với SSR và SSG, từ đó cải thiện khả năng hiển thị trên trang kết quả tìm kiếm

Các tính năng như routing, pre-fetching và tối ưu hóa hình ảnh đảm bảo trải nghiệm người dùng liền mạch và nhanh chóng của Next.js Bộ khung phát triển hoàn chỉnh của Next.js bao gồm các công cụ và thư viện hỗ trợ để xây dựng ứng dụng nhanh chóng và dễ dàng

Có thể dễ dàng tích hợp Next.js với các công nghệ như Redux, GraphQL và API của bên thứ ba

Next.js là một framework React mạnh mẽ và linh hoạt được thiết kế để tạo ra các ứng dụng web có hiệu suất cao, trải nghiệm người dùng mượt mà và thân thiện với SEO Với các tính năng và công cụ được tích hợp sẵn trong Next.js, có thể phát triển ứng dụng nhanh chóng và hiệu quả

Tailwind CSS, một thư viện CSS giúp tạo layout và style cho giao diện người dùng, đã được sử dụng một cách hiệu quả trong dự án phát triển ứng dụng web của chúng tôi Tailwind không chỉ cung cấp cách tiếp cận linh hoạt và tối ưu hóa quy trình phát triển, mà còn mang lại khả năng tùy chỉnh mạnh mẽ

Sử dụng mô hình "utility-first" giúp tạo ra các class CSS ngay trong HTML, tăng cường tính tương tác và tái sử dụng Cung cấp một loạt các class như flex, p-4, bg-gray-

500 để thiết lập thuộc tính CSS một cách nhanh chóng

Có khả năng tùy chỉnh mọi khía cạnh của stylesheet thông qua file cấu hình Cho phép thay đổi kích thước, màu sắc, font chữ và nhiều yếu tố khác một cách dễ dàng

Có thể tích hợp Tailwind vào dự án một cách dễ dàng thông qua npm hoặc yarn, cung cấp khả năng làm việc chung với các framework JavaScript như React hoặc Vue

Tailwind CSS đã chứng minh là một công nghệ hữu ích trong quá trình phát triển ứng dụng web của chúng tôi Với mô hình "utility-first," khả năng tùy chỉnh linh hoạt và tích hợp dễ dàng, Tailwind không chỉ giúp tối ưu hóa quy trình phát triển mà còn đảm bảo sự tương tác và hiệu suất tốt cho giao diện người dùng của ứng dụng

THIẾT KẾ CƠ SỞ DỮ LIỆU

Hình 37 Lược đồ quan hệ cơ sở dữ liệu

3.4.2 Mô tả cơ sở dữ liệu

Bảng 38: Mô tả bảng trong cơ sở dữ liệu

STT Tên bảng Mô tả

1 article Nơi lưu trữ thông tin của các bài viết, tin tức

2 category Nơi lưu trữ thông tin chuyên mục

3 tag Nơi lưu trữ thông tin các thẻ tag

4 tag_article Nơi lưu trữ thông tin các thẻ tag của từng bài viết

5 user Nơi lưu trữ thông tin về tài khoản người dùng

6 comment Nơi lưu trữ thông tin về bình luận của người dùng ở các bài viết

7 vote_star Nơi lưu trữ thông tin về những đánh giá sao của người dùng với các bài viết

8 average_star Nơi lưu trữ thông tin về đánh giá sao trung bình của bài viết

9 react_emotion Nơi lưu trữ thông tin về những cảm xúc của người dùng với các bài viết

10 saved_article Nơi lưu trữ thông tin về các bài viết mà người dùng đã lưu

11 follow_category Nơi lưu trữ thông tin về những thông tin chuyên mục mà người dùng theo dõi

12 ner_keword Nơi lưu trữ chuỗi từ khóa liên quan đến con người và địa điểm được trích xuất từ nội dung bài viết

13 pending_information Nơi lưu trữ thông tin bài viết được đánh giá là trùng

Bảng 39: Mô tả thuộc tính bảng article

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của bài viết

2 title text Tiêu đề của bài viết

3 abstracts text Tóm tắt nội dung của bài viết

4 content text Nội dung chi tiết bài viết

5 art_source enum Nguồn của bài viết, bao gồm các giá trị:

6 avatar varchar Đường dẫn ảnh của bài viết

7 create_date datetime Ngày tạo bài viết

8 reading_time float Thời gian ước lượng để đọc bài viết

9 status enum Trạng thái của bài viết, bao gồm các trạng thái: PENDING, REFUSE,

10 category_id varchar Khóa ngoại, tham chiếu đến id của chuyên mục

Bảng 40: Mô tả thuộc tính bảng category

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của chuyên mục

2 name varchar Tên của chuyên mục

3 second_name varchar Tên gọi khác của chuyên mục

4 parent_id varchar Khóa ngoại, tham chiếu đến id của chuyên mục, hỗ trợ cho mối quan hệ giữa chuyên mục con và chuyên mục cha

5 create_date datetime Ngày tạo chuyên mục

Bảng 41: Mô tả thuộc tính bảng tag

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của tag

2 value varchar Tên của tag

Bảng 42: Mô tả thuộc tính bảng tag_article

STT Tên trường Kiểu dữ liệu Mô tả

2 article_id varchar Khóa ngoại, tham chiếu đến id của bài viết

3 tag_id varchar Khóa ngoại, tham chiếu đến id của tag

Bảng 43: Mô tả thuộc tính bảng user

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của người dùng

2 firstname varchar Tên người dùng

3 lastname varchar Họ tên lót của người dùng

4 email varchar Email của người dùng, email duy nhất, dùng cho đăng nhập

5 avatar varchar Đường dẫn ảnh đại diện của người dùng

6 dob datetime Ngày tháng năm sinh của người dùng

7 password varchar Mật khẩu tài khoản người dùng

8 role enum Vai trò của tài khoản, bao gồm các giá trị: USER, ADMIN

Bảng 44: Mô tả thuộc tính bảng comment

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của bình luận bài viết

2 comment varchar Nội dung bình luận

3 create_date datetime Ngày đăng bình luận

4 article_id varchar Khóa ngoại, tham chiếu đến id của bài viết

5 parent_id varchar Khóa ngoại, tham chiếu đến id của bình luận

6 user_id varchar Khóa ngoại, tham chiếu đến id của người dùng

Bảng 45: Mô tả thuộc tính bảng vote_star

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của bầu chọn sao

2 star float Số sao bầu chọn, các giá trị cho phép là từ 1 đến 5

3 article_id varchar Khóa ngoại, tham chiếu đến id của bài viết

4 user_id varchar Khóa ngoại, tham chiếu đến id của người dùng

Bảng 46: Mô tả thuộc tính bảng average_star

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của sao trung bình

2 average_star float Số sao đánh giá trung bình của bài viết

3 article_id varchar Khóa ngoại, tham chiếu đến id của bài viết

Bảng 47: Mô tả thuộc tính bảng react_emotion

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của thể hiện cảm xúc

2 type_react enum Các giá trị cảm xúc, bao gồm: LIKE,

3 article_id varchar Khóa ngoại, tham chiếu đến id của bài

4 user_id varchar Khóa ngoại, tham chiếu đến id của người dùng

Bảng 48: Mô tả thuộc tính bảng saved_article

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của danh mục lưu bài viết

2 article_id varchar Khóa ngoại, tham chiếu đến id của bài viết

3 user_id varchar Khóa ngoại, tham chiếu đến id của người dùng

Bảng 49: Mô tả thuộc tính bảng follow category

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của danh mục theo dõi chuyên mục

2 user_id varchar Khóa ngoại, tham chiếu đến id của người dùng

3 category_id varchar Khóa ngoại, tham chiếu đến id của chuyên mục

Bảng 50: Mô tả thuộc tính bảng ner_keyword

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của bảng lưu trữ từ khóa

2 ner_keyword text Chuỗi từ khóa liên quan đến con người

57 và địa điểm trích xuất từ nội dung

3 article_id varchar Khóa ngoại, tham chiếu đến id của bài viết

Bảng 51: Mô tả thuộc tính bảng pending_information

STT Tên trường Kiểu dữ liệu Mô tả

1 id varchar Khóa chính, id của bảng lưu trữ thông tin bài viết trùng

2 pending_id varchar Khóa ngoại, tham chiếu đến id của bài viết đang ở trạng thái chờ, được đánh giá là trùng

3 duplicated_id varchar Khóa ngoại, tham chiếu đến id của bài viết đã công khai

4 similarity float Độ tương đồng giữa hai bài viết

5 is_hidden bit Giá trị để ẩn, hiện dữ liệu khi thao tác kiểm duyệt

CÀI ĐẶT GIAO DIỆN

TỔNG QUAN KỊCH BẢN KIỂM THỬ

5.2 Chi tiết kịch bản kiểm thử

2 Ưu và nhược điểm của ứng dụng

3 Hướng phát triển trong tương lai

Ngày… tháng ….năm 2024 Ý kiến của giáo viên hướng dẫn Người viết đề cương

Trương Thị Ngọc Phượng Nguyễn Trường Phúc vi

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN i

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ii

LỜI CẢM ƠN iii ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP iv

DANH MỤC TỪ VIẾT TẮT x

DANH MỤC HÌNH ẢNH xi

DANH MỤC BẢNG BIỂU xiv

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 2

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 6

1.Chương 1 KHẢO SÁT HIỆN TRẠNG 9

1.1 TRANG “GOOGLE NEWS”: https://news.google.com 9

2.1 MÔ HÌNH HỌC SÂU COCO-SSD 13

2.1.1 Tổng quan mô hình COCO-SSD 13

2.1.2 Kiến trúc của mô hình 13

3.3.4 Cập nhật ảnh đại diện 24

3.3.5 Cập nhật thông tin cá nhân 25

3.3.6 Xem bài viết theo chuyên mục 26

3.3.7 Tự động cập nhật bài viết mỗi năm phút 27

3.3.8 Xem bài viết chi tiết 29

3.3.9 Tìm kiếm bài viết theo từ khóa 30

3.3.10 Tìm kiếm bài viết theo hình ảnh 31

3.3.14 Đánh giá sao cho bài viết 36

3.3.15 Thả cảm xúc cho bài viết 37

3.3.17 Xem bài viết chuyên mục theo dõi 39

3.3.18 Thêm bài viết vào danh sách lưu 40

3.3.19 Xem danh sách bài viết đã lưu 41

3.3.20 Xóa bài viết khỏi danh sách lưu 42

3.4 THIẾT KẾ CƠ SỞ DỮ LIỆU 50

3.4.2 Mô tả cơ sở dữ liệu 51

4.1 CÀI ĐẶT CÁC CHỨC NĂNG CHÍNH 58

4.1.5 Phát hiện đối tượng trong ảnh 62

4.2.1 Giao diện độc giả vãng lai 64

4.2.2 Giao diện người dùng với quyền “người dùng” 71

4.2.3 Giao diện người dùng với quyền “quản trị viên” 75

5.1 TỔNG QUAN KỊCH BẢN KIỂM THỬ 77

5.2 CHI TIẾT KỊCH BẢN KIỂM THỬ 79

5.2.3 Kiểm thử đổi mật khẩu 80

5.2.4 Kiểm thử cập nhật ảnh đại diện 81

5.2.5 Kiểm thử cập nhật thông tin cá nhân 82

5.2.6 Kiểm thử xem bài viết theo chuyên mục 83

5.2.7 Kiểm thử xem bài viết chi tiết 83

5.2.8 Kiểm thử tìm kiếm bài viết theo từ khóa 84

5.2.9 Kiểm thử tìm kiếm bài viết theo hình ảnh 84

5.2.10 Kiểm thử bình luận bài viết 85

5.2.11 Kiểm thử cập nhật bình luận 86

5.2.12 Kiểm thử xóa bình luận 87

5.2.13 Kiểm thử đánh giá sao cho bài viết 88 ix

5.2.14 Kiểm thử thả cảm xúc cho bài viết 88

5.2.15 Kiểm thử theo dõi chuyên mục 89

5.2.16 Kiểm thử xem bài viết bảng tin 90

5.2.17 Kiểm thử thêm bài viết vào danh sách lưu 91

5.2.18 Kiểm thử xem danh sách bài viết đã lưu 91

5.2.19 Kiểm thử xóa bài viết khỏi danh sách lưu 92

5.2.20 Kiểm thử thêm chuyên mục 93

5.2.21 Kiểm thử cập nhật chuyên mục 94

5.2.22 Kiểm thử xóa chuyên mục 95

5.2.23 Kiểm thử cập nhật người dùng 96

5.2.24 Kiểm thử xóa người dùng 97

5.2.26 Kiểm thử cập nhật tag 99

5.2.28 Kiểm thử kiểm duyệt bài viết – chấp nhận 101

5.2.29 Kiểm thử kiểm duyệt bài viết – từ chối 102

2 ƯU VÀ NHƯỢC ĐIỂM CỦA ỨNG DỤNG 104

3 HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI 105

DANH MỤC TÀI LIỆU THAM KHẢO 106 x

DANH MỤC TỪ VIẾT TẮT

COCO: Common Objects in Context

API: Application Programming Interface xi

Hình 1: Tổng quan trang Google News 9

Hình 2: Chọn bài viết trên Google News 10

Hình 3: Chuyển đổi ngôn ngữ 10

Hình 4: Tin tức sau khi chuyển khu vực sang Việt Nam 11

Hình 5: Chức năng tìm kiếm trang Google News 11

Hình 6: Đề xuất tin tức phù hợp với cá nhân 12

Hình 7: Đề xuất tin theo địa phương sinh sống 12

Hình 8: So sánh tốc độ xử lý và độ chính xác các mô hình phát hiện vật thể 13

Hình 9: Sơ đồ kiến trúc mạng SSD 13

Hình 10: Vị trí hộp giới hạn tiêu chuẩn trên ảnh gốc khi áp dụng trên bản đồ đặc trưng

Hình 11: Lược đồ usecase phía người dùng 18

Hình 12: Lược đồ usecase phía hệ thống 18

Hình 13: Sơ đồ tuần tự usecase đăng nhập 20

Hình 14: Sơ đồ tuần tự usecase đăng ký 22

Hình 15: Sơ đồ tuần tự đổi mật khẩu 24

Hình 16: Sơ đồ tuần tự usecase cập nhật ảnh đại diện 25

Hình 17: Sơ đồ tuần tự usecase cập nhật thông tin cá nhân 26

Hình 18: Sơ đồ tuần tự usecase xem bài viết theo chuyên mục 27

Hình 19: Sơ đồ tuần tự usecase tự động cập nhật bài viết mỗi năm phút 28

Hình 20: Sơ đồ tuần tự usecase xem bài viết chi tiết 29

Hình 21: Sơ đồ tuần tự usecase usecase tìm kiếm bài viết theo từ khóa 31

Hình 22: Sơ đồ tuần tự usecase tìm kiếm bài viết theo hình ảnh 32

Hình 23: Sơ đồ tuần tự usecase bình luận bài viết 33

Hình 24: Sơ đồ tuần tự usecase cập nhật bình luận 35

Hình 25: Sơ đồ tuần tự usecase xóa bình luận 36

Hình 26: Sơ đồ tuần tự usecase đánh giá sao cho bài viết 37

Hình 27: Sơ đồ tuần tự usecase thả cảm xúc cho bài viết 38

Hình 28: Sơ đồ tuần tự usecase theo dõi chuyên mục 39

Hình 29: Sơ đồ tuần tự usecase xem bài viết chuyên mục theo dõi 40

Hình 30: Sơ đồ tuần tự usecase thêm bài viết vào danh sách lưu 41 xii

Hình 31: Sơ đồ tuần tự usecase xem danh sách bài viết đã lưu 42

Hình 32: Sơ đồ tuần tự usecase xóa bài viết khỏi danh sách lưu 43

Hình 33: Sơ đồ tuần tự usecase quản lý chuyên mục 45

Hình 34: Sơ đồ tuần tự usecase quản lý người dùng 47

Hình 35: Sơ đồ tuần tự usecase quản lý tag 49

Hình 36: Sơ đồ tuần tự usecase kiểm duyệt bài viết 50

Hình 37 Lược đồ quan hệ cơ sở dữ liệu 51

Hình 38: Thu thập tin mới từ nguồn VnExpress 58

Hình 39: Thu thập thông tin chi tiết (1) 58

Hình 40: Thu thập thông tin chi tiết (2) 59

Hình 41: Thu thập thông tin chi tiết (3) 59

Hình 42: Chuyển đổi từ sang tiếng anh 60

Hình 43: Kết hợp phân đoạn câu và chuyển đổi ngôn ngữ 60

Hình 44: Trích xuất từ khóa quan trọng 61

Hình 45: Kiểm thử chức năng hàm nerKeyword() 61

Hình 46: Tính toán tương đồng giữa 2 chuỗi 62

Hình 47: Lập lịch để hệ thống tự động gọi hàm thu thập 62

Hình 48: Phát hiện đối tượng trong ảnh 63

Hình 49: Giao diện đăng nhập 64

Hình 50: Giao diện đăng ký tài khoản 64

Hình 51: Giao diện header, thanh chuyên mục và tìm kiếm 64

Hình 52: Bài viết mới nhất mọi chuyên mục 65

Hình 53: Bài viết có đánh giá sao cao nhất 65

Hình 54: Bài viết được thả cảm xúc nhiều nhất 65

Hình 55: Bài viết mới nhất theo nguồn Dân Trí 66

Hình 56: Bài viết mới nhất theo nguồn Dân Trí 67

Hình 57: Các bài mới nhất của từng chuyên mục cha 68

Hình 58: Danh sách bài viết theo chuyên mục(đầu trang) 69

Hình 59: Danh sách bài viết theo chuyên mục(cuối trang) 69

Hình 60: Kết quả sau khi tìm kiếm 70

Hình 61: Giao diện chi tiết bài viết (1) 70

Hình 62: Giao diện chi tiết bài viết (2) 71 xiii

Hình 63: Giao diện chi tiết bài viết (3) 71

Hình 64: Giao diện header sau khi đăng nhập 72

Hình 65: Giao diện thông tin cá nhân 72

Hình 66: Giao diện cập nhật mật khẩu 72

Hình 67: Giao diện đánh giá sao cho bài viết 72

Hình 68: Nơi người dùng thả cảm xúc và lưu bài viết 73

Hình 69: Người dùng bình luận bài viết 73

Hình 70: Người dùng cập nhật bình luận (1) 73

Hình 71: Người dùng cập nhật bình luận (2) 74

Hình 72: Người dùng cập nhật bình luận (3) 74

Hình 73: Giao diện bảng tin 74

Hình 74: Theo dõi chuyên mục 74

Hình 75: Giao diện in đã lưu 75

Hình 76: Header sau khi quản trị viên đăng nhập 75

Hình 77: Quản lý chuyên mục 76

Hình 79: Quản lý người dùng 76

Hình 80: Kiểm duyệt bài viết 76 xiv

Bảng 1: Danh sách chức năng của hệ thống 16

Bảng 2: Đặc tả usecase đăng nhập 18

Bảng 3: Thông tin dữ liệu đầu vào cho usecase đăng nhập 19

Bảng 4: Đặc tả usecase đăng ký 20

Bảng 5: Thông tin dữ liệu đầu vào cho usecase đăng ký 21

Bảng 6: Đặc tả usecase đổi mật khẩu 22

Bảng 7: Thông tin dữ liệu đầu vào cho usecase đổi mật khẩu 23

Bảng 8: Đặc tả usecase cập nhật ảnh đại diện 24

Bảng 9: Thông tin dữ liệu đầu vào cho usecase cập nhật ảnh đại diện 25

Bảng 10: Đặc tả usecase cập nhật thông tin cá nhân 25

Bảng 11: Thông tin dữ liệu đầu vào cho usecase cập nhật thông tin cá nhân 26

Bảng 12: Đặc tả usecase xem bài viết theo chuyên mục 26

Bảng 13: Đặc tả usecase tự động cập nhật bài viết mỗi năm phút 27

Bảng 14: Đặc tả usecase xem bài viết chi tiết 29

Bảng 15: Đặc tả usecase tìm kiếm bài viết theo từ khóa 30

Bảng 16: Thông tin dữ liệu đầu vào cho usecase tìm kiếm bài viết theo từ khóa 30

Bảng 17: Đặc tả usecase tìm kiếm bài viết theo hình ảnh 31

Bảng 18: Thông tin dữ liệu đầu vào cho usecase tìm kiếm bài viết theo hình ảnh 32

Bảng 19: Đặc tả usecase bình luận bài viết 32

Bảng 20: Thông tin dữ liệu đầu vào cho usecase bình luận bài viết 33

Bảng 21: Đặc tả usecase cập nhật bình luận 33

Bảng 22: Thông tin dữ liệu đầu vào cho usecase cập nhật bình luận 34

Bảng 23: Đặc tả usecase xóa bình luận 35

Bảng 24: Đặc tả usecase đánh giá sao cho bài viết 36

Bảng 25: Đặc tả usecase thả cảm xúc cho bài viết 37

Bảng 26: Đặc tả usecase theo dõi chuyên mục 38

Bảng 27: Đặc tả usecase xem bài viết chuyên mục theo dõi 39

Bảng 28: Đặc tả usecase thêm bài viết vào danh sách lưu 40

Bảng 29: Đặc tả usecase xem danh sách bài viết đã lưu 41

Bảng 30: Đặc tả usecase xóa bài viết khỏi danh sách lưu 42

Bảng 31: Đặc tả usecase quản lý chuyên mục 43 xv

Bảng 32: Thông tin dữ liệu đầu vào cho usecase quản lý chuyên mục 44

Bảng 33: Đặc tả usecase quản lý người dùng 45

Bảng 34: Thông tin dữ liệu đầu vào cho usecase quản lý người dùng 46

Bảng 35: Đặc tả usecase quản lý tag 47

Bảng 36: Thông tin dữ liệu đầu vào cho usecase quản lý tag 48

Bảng 37: Đặc tả usecase kiểm duyệt bài viết 49

Bảng 38: Mô tả bảng trong cơ sở dữ liệu 51

Bảng 39: Mô tả thuộc tính bảng article 52

Bảng 40: Mô tả thuộc tính bảng category 53

Bảng 41: Mô tả thuộc tính bảng tag 53

Bảng 42: Mô tả thuộc tính bảng tag_article 53

Bảng 43: Mô tả thuộc tính bảng user 54

Bảng 44: Mô tả thuộc tính bảng comment 54

Bảng 45: Mô tả thuộc tính bảng vote_star 55

Bảng 46: Mô tả thuộc tính bảng average_star 55

Bảng 47: Mô tả thuộc tính bảng react_emotion 55

Bảng 48: Mô tả thuộc tính bảng saved_article 56

Bảng 49: Mô tả thuộc tính bảng follow category 56

Bảng 50: Mô tả thuộc tính bảng ner_keyword 56

Bảng 51: Mô tả thuộc tính bảng pending_information 57

Bảng 52: Mô tả giao diện độc giả vãng lai 64

Bảng 53: Mô tả giao diện với quyền người dùng 71

Bảng 54: Mô tả giao diện quản trị viên 75

Bảng 55: Tồng quan kịch bản kiểm thử 77

Bảng 56: Trường hợp kiểm thử đăng nhập 79

Bảng 57: Trường hợp kiểm thử đăng ký 79

Bảng 58: Trường hợp kiểm thử đổi mật khẩu 80

Bảng 59: Trường hợp kiểm thử cập nhật ảnh đại diện 81

Bảng 60: Trường hợp kiểm thử cập nhật thông tin cá nhân 82

Bảng 61: Trường hợp kiểm thử xem bài viết theo chuyên mục 83

Bảng 62: Trường hợp kiểm thử xem bài viết chi tiết 83

Bảng 63: Trường hợp kiểm thử tìm kiếm bài viết theo từ khóa 84 xvi

Bảng 64: Trường hợp kiểm thử tìm kiếm bài viết theo hình ảnh 84

Bảng 65: Trường hợp kiểm thử bình luận bài viết 85

Bảng 66: Trường hợp kiểm thử cập nhật bình luận 86

Bảng 67: Trường hợp kiểm thử xóa bình luận 87

Bảng 68: Trường hợp kiểm thử đánh giá sao cho bài viết 88

Bảng 69: Trường hợp kiểm thử thả cảm xúc cho bài viết 88

Bảng 70: Trường hợp kiểm thử theo dõi chuyên mục 89

Bảng 71: Trường hợp kiểm thử xem bài viết bảng tin 90

Bảng 72: Trường hợp kiểm thử thêm bài viết vào danh sách lưu 91

Bảng 73: Trường hợp kiểm thử xem danh sách bài viết đã lưu 91

Bảng 74: Trường hợp kiểm thử xóa bài viết khỏi danh sách lưu 92

Bảng 75: Trường hợp kiểm thử thêm chuyên mục 93

Bảng 76: Trường hợp kiểm thử cập nhật chuyên mục 94

Bảng 77: Trường hợp kiểm thử xóa chuyên mục 95

Bảng 78: Trường hợp kiểm thử cập nhật người dùng 96

Bảng 79: Trường hợp kiểm thử xóa người dùng 97

Bảng 80: Trường hợp kiểm thử thêm tag 98

Bảng 81: Trường hợp kiểm thử cập nhật tag 99

Bảng 82: Trường hợp kiểm thử xóa tag 100

Bảng 83: Kiểm thử chấp nhận bài viết 101

Bảng 84: Kiểm thử từ chối bài viết 102

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh Cách mạng Công nghiệp 4.0, Internet đã và đang biến đổi toàn diện cả xã hội, tri thức và công nghệ trở thành yếu tố chủ chốt quyết định sự tiến bộ của mỗi quốc gia Xã hội loài người càng phát triển, lượng thông tin tiếp nhận ngày càng nhiều Bên cạnh những thông tin chính thống, luôn tồn tại những thông tin sai lệch, gây hoang mang dư luận, cộng đồng Việc xây dựng một trang tin tức tổng hợp từ các nguồn uy tín là cần thiết để mang đến sự yên tâm cho người dùng khi tiếp cận với tin tức

Hiện nay, số lượng người dùng dành thời gian trên các thiết bị di động hay mạng Internet ngày càng gia tăng Chính vì thế, người dùng đã và đang phải đối phải đối mặt với một làn sóng tin giả, tin chưa xác thực, kiểm duyệt tràn lan trên mạng, thậm chí là xuất hiện ở một số mặt báo “lá cải”, không uy tín Điều này đặt ra một thách thức lớn cho người dùng khi tiếp cận với thông tin cũng như các trang web uy tín khác trong việc truyền đạt những thông tin chính thống tới người dùng Đây chính là hạn chế của báo điện tử so với báo truyền thống trong thời đại công nghệ số hiện nay

Vì vậy, việc nghiên cứu và phát triển một ứng dụng mà thông tin mới sẽ được tự động cập nhật theo các nguồn uy tín là cần thiết Báo điện tử cung cấp nhiều tiện ích và khả năng tương tác mà báo giấy truyền thống không thể có Người dùng có thể tìm kiếm, lưu trữ và chia sẻ bài viết, đánh giá, bình luận và tương tác với nội dung báo Điều này tạo ra một trải nghiệm đọc báo đa dạng và tương tác hơn

Với tính chất động của tin tức, việc cập nhật thông tin nhanh chóng là rất quan trọng Trang tin tức tổng hợp tự động sẽ đáp ứng được điều đó với khả năng cập nhật liên tục ngay sau khi có sự kiện xảy ra Điều này giúp người dùng được tiếp cận với những thông tin mới nhất và chính xác nhất

Bên cạnh đó, việc sử dụng trang tin tức tổng hợp cũng giảm sự phụ thuộc vào báo truyền thống, từ đó giảm lượng giấy in ấn và tiêu thụ năng lượng Có ý nghĩa quan trọng trong việc bảo vệ môi trường và tiết kiệm tài nguyên tự nhiên

2 MỤC ĐÍCH CỦA ĐỀ TÀI Đề tài “Xây dựng website tin tức tổng hợp tự động” có những mục tiêu cần đạt được là:

● Xây dựng giao diện trực quan với những tính năng hỗ trợ, nâng cao trải nghiệm người dùng

● Xây dựng ứng dụng gần gũi thực tiễn, đáp ứng nhu cầu tiếp cận thông tin mới nhất, chính thống nhất của người dùng

● Áp dụng kiến thức về công nghệ phát triển website trong đồ án

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 ĐỐI TƯỢNG NGHIÊN CỨU Đối tượng nghiên cứu được đề cập trong báo cáo là một ứng dụng web được xây dựng trên nền tảng Java, sử dụng các công nghệ: NextJS, MySQL, Java Spring Boot

Next.js là một framework React mã nguồn mở được thiết kế để tạo ra các ứng dụng web hiệu quả cao với trải nghiệm người dùng mượt mà và tối ưu hóa SEO Cung cấp nhiều tính năng và công cụ giúp xây dựng các ứng dụng web phức tạp dễ dàng và hiệu quả

Next.js sử dụng Server-Side Rendering (SSR) và Static Site Generation (SSG) để tăng tốc độ tải trang và cải thiện hiệu suất Các công cụ tìm kiếm có thể dễ dàng thu thập dữ liệu và tạo chỉ mục cho nội dung với SSR và SSG, từ đó cải thiện khả năng hiển thị trên trang kết quả tìm kiếm

Các tính năng như routing, pre-fetching và tối ưu hóa hình ảnh đảm bảo trải nghiệm người dùng liền mạch và nhanh chóng của Next.js Bộ khung phát triển hoàn chỉnh của Next.js bao gồm các công cụ và thư viện hỗ trợ để xây dựng ứng dụng nhanh chóng và dễ dàng

Có thể dễ dàng tích hợp Next.js với các công nghệ như Redux, GraphQL và API của bên thứ ba

Next.js là một framework React mạnh mẽ và linh hoạt được thiết kế để tạo ra các ứng dụng web có hiệu suất cao, trải nghiệm người dùng mượt mà và thân thiện với SEO Với các tính năng và công cụ được tích hợp sẵn trong Next.js, có thể phát triển ứng dụng nhanh chóng và hiệu quả

Tailwind CSS, một thư viện CSS giúp tạo layout và style cho giao diện người dùng, đã được sử dụng một cách hiệu quả trong dự án phát triển ứng dụng web của chúng tôi Tailwind không chỉ cung cấp cách tiếp cận linh hoạt và tối ưu hóa quy trình phát triển, mà còn mang lại khả năng tùy chỉnh mạnh mẽ

Sử dụng mô hình "utility-first" giúp tạo ra các class CSS ngay trong HTML, tăng cường tính tương tác và tái sử dụng Cung cấp một loạt các class như flex, p-4, bg-gray-

500 để thiết lập thuộc tính CSS một cách nhanh chóng

Có khả năng tùy chỉnh mọi khía cạnh của stylesheet thông qua file cấu hình Cho phép thay đổi kích thước, màu sắc, font chữ và nhiều yếu tố khác một cách dễ dàng

Có thể tích hợp Tailwind vào dự án một cách dễ dàng thông qua npm hoặc yarn, cung cấp khả năng làm việc chung với các framework JavaScript như React hoặc Vue

Tailwind CSS đã chứng minh là một công nghệ hữu ích trong quá trình phát triển ứng dụng web của chúng tôi Với mô hình "utility-first," khả năng tùy chỉnh linh hoạt và tích hợp dễ dàng, Tailwind không chỉ giúp tối ưu hóa quy trình phát triển mà còn đảm bảo sự tương tác và hiệu suất tốt cho giao diện người dùng của ứng dụng

KẾT LUẬN

ƯU VÀ NHƯỢC ĐIỂM CỦA ỨNG DỤNG

HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI

Ngày… tháng ….năm 2024 Ý kiến của giáo viên hướng dẫn Người viết đề cương

Trương Thị Ngọc Phượng Nguyễn Trường Phúc vi

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN i

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ii

LỜI CẢM ƠN iii ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP iv

DANH MỤC TỪ VIẾT TẮT x

DANH MỤC HÌNH ẢNH xi

DANH MỤC BẢNG BIỂU xiv

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 2

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 6

1.Chương 1 KHẢO SÁT HIỆN TRẠNG 9

1.1 TRANG “GOOGLE NEWS”: https://news.google.com 9

2.1 MÔ HÌNH HỌC SÂU COCO-SSD 13

2.1.1 Tổng quan mô hình COCO-SSD 13

2.1.2 Kiến trúc của mô hình 13

3.3.4 Cập nhật ảnh đại diện 24

3.3.5 Cập nhật thông tin cá nhân 25

3.3.6 Xem bài viết theo chuyên mục 26

3.3.7 Tự động cập nhật bài viết mỗi năm phút 27

3.3.8 Xem bài viết chi tiết 29

3.3.9 Tìm kiếm bài viết theo từ khóa 30

3.3.10 Tìm kiếm bài viết theo hình ảnh 31

3.3.14 Đánh giá sao cho bài viết 36

3.3.15 Thả cảm xúc cho bài viết 37

3.3.17 Xem bài viết chuyên mục theo dõi 39

3.3.18 Thêm bài viết vào danh sách lưu 40

3.3.19 Xem danh sách bài viết đã lưu 41

3.3.20 Xóa bài viết khỏi danh sách lưu 42

3.4 THIẾT KẾ CƠ SỞ DỮ LIỆU 50

3.4.2 Mô tả cơ sở dữ liệu 51

4.1 CÀI ĐẶT CÁC CHỨC NĂNG CHÍNH 58

4.1.5 Phát hiện đối tượng trong ảnh 62

4.2.1 Giao diện độc giả vãng lai 64

4.2.2 Giao diện người dùng với quyền “người dùng” 71

4.2.3 Giao diện người dùng với quyền “quản trị viên” 75

5.1 TỔNG QUAN KỊCH BẢN KIỂM THỬ 77

5.2 CHI TIẾT KỊCH BẢN KIỂM THỬ 79

5.2.3 Kiểm thử đổi mật khẩu 80

5.2.4 Kiểm thử cập nhật ảnh đại diện 81

5.2.5 Kiểm thử cập nhật thông tin cá nhân 82

5.2.6 Kiểm thử xem bài viết theo chuyên mục 83

5.2.7 Kiểm thử xem bài viết chi tiết 83

5.2.8 Kiểm thử tìm kiếm bài viết theo từ khóa 84

5.2.9 Kiểm thử tìm kiếm bài viết theo hình ảnh 84

5.2.10 Kiểm thử bình luận bài viết 85

5.2.11 Kiểm thử cập nhật bình luận 86

5.2.12 Kiểm thử xóa bình luận 87

5.2.13 Kiểm thử đánh giá sao cho bài viết 88 ix

5.2.14 Kiểm thử thả cảm xúc cho bài viết 88

5.2.15 Kiểm thử theo dõi chuyên mục 89

5.2.16 Kiểm thử xem bài viết bảng tin 90

5.2.17 Kiểm thử thêm bài viết vào danh sách lưu 91

5.2.18 Kiểm thử xem danh sách bài viết đã lưu 91

5.2.19 Kiểm thử xóa bài viết khỏi danh sách lưu 92

5.2.20 Kiểm thử thêm chuyên mục 93

5.2.21 Kiểm thử cập nhật chuyên mục 94

5.2.22 Kiểm thử xóa chuyên mục 95

5.2.23 Kiểm thử cập nhật người dùng 96

5.2.24 Kiểm thử xóa người dùng 97

5.2.26 Kiểm thử cập nhật tag 99

5.2.28 Kiểm thử kiểm duyệt bài viết – chấp nhận 101

5.2.29 Kiểm thử kiểm duyệt bài viết – từ chối 102

2 ƯU VÀ NHƯỢC ĐIỂM CỦA ỨNG DỤNG 104

3 HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI 105

DANH MỤC TÀI LIỆU THAM KHẢO 106 x

DANH MỤC TỪ VIẾT TẮT

COCO: Common Objects in Context

API: Application Programming Interface xi

Hình 1: Tổng quan trang Google News 9

Hình 2: Chọn bài viết trên Google News 10

Hình 3: Chuyển đổi ngôn ngữ 10

Hình 4: Tin tức sau khi chuyển khu vực sang Việt Nam 11

Hình 5: Chức năng tìm kiếm trang Google News 11

Hình 6: Đề xuất tin tức phù hợp với cá nhân 12

Hình 7: Đề xuất tin theo địa phương sinh sống 12

Hình 8: So sánh tốc độ xử lý và độ chính xác các mô hình phát hiện vật thể 13

Hình 9: Sơ đồ kiến trúc mạng SSD 13

Hình 10: Vị trí hộp giới hạn tiêu chuẩn trên ảnh gốc khi áp dụng trên bản đồ đặc trưng

Hình 11: Lược đồ usecase phía người dùng 18

Hình 12: Lược đồ usecase phía hệ thống 18

Hình 13: Sơ đồ tuần tự usecase đăng nhập 20

Hình 14: Sơ đồ tuần tự usecase đăng ký 22

Hình 15: Sơ đồ tuần tự đổi mật khẩu 24

Hình 16: Sơ đồ tuần tự usecase cập nhật ảnh đại diện 25

Hình 17: Sơ đồ tuần tự usecase cập nhật thông tin cá nhân 26

Hình 18: Sơ đồ tuần tự usecase xem bài viết theo chuyên mục 27

Hình 19: Sơ đồ tuần tự usecase tự động cập nhật bài viết mỗi năm phút 28

Hình 20: Sơ đồ tuần tự usecase xem bài viết chi tiết 29

Hình 21: Sơ đồ tuần tự usecase usecase tìm kiếm bài viết theo từ khóa 31

Hình 22: Sơ đồ tuần tự usecase tìm kiếm bài viết theo hình ảnh 32

Hình 23: Sơ đồ tuần tự usecase bình luận bài viết 33

Hình 24: Sơ đồ tuần tự usecase cập nhật bình luận 35

Hình 25: Sơ đồ tuần tự usecase xóa bình luận 36

Hình 26: Sơ đồ tuần tự usecase đánh giá sao cho bài viết 37

Hình 27: Sơ đồ tuần tự usecase thả cảm xúc cho bài viết 38

Hình 28: Sơ đồ tuần tự usecase theo dõi chuyên mục 39

Hình 29: Sơ đồ tuần tự usecase xem bài viết chuyên mục theo dõi 40

Hình 30: Sơ đồ tuần tự usecase thêm bài viết vào danh sách lưu 41 xii

Hình 31: Sơ đồ tuần tự usecase xem danh sách bài viết đã lưu 42

Hình 32: Sơ đồ tuần tự usecase xóa bài viết khỏi danh sách lưu 43

Hình 33: Sơ đồ tuần tự usecase quản lý chuyên mục 45

Hình 34: Sơ đồ tuần tự usecase quản lý người dùng 47

Hình 35: Sơ đồ tuần tự usecase quản lý tag 49

Hình 36: Sơ đồ tuần tự usecase kiểm duyệt bài viết 50

Hình 37 Lược đồ quan hệ cơ sở dữ liệu 51

Hình 38: Thu thập tin mới từ nguồn VnExpress 58

Hình 39: Thu thập thông tin chi tiết (1) 58

Hình 40: Thu thập thông tin chi tiết (2) 59

Hình 41: Thu thập thông tin chi tiết (3) 59

Hình 42: Chuyển đổi từ sang tiếng anh 60

Hình 43: Kết hợp phân đoạn câu và chuyển đổi ngôn ngữ 60

Hình 44: Trích xuất từ khóa quan trọng 61

Hình 45: Kiểm thử chức năng hàm nerKeyword() 61

Hình 46: Tính toán tương đồng giữa 2 chuỗi 62

Hình 47: Lập lịch để hệ thống tự động gọi hàm thu thập 62

Hình 48: Phát hiện đối tượng trong ảnh 63

Hình 49: Giao diện đăng nhập 64

Hình 50: Giao diện đăng ký tài khoản 64

Hình 51: Giao diện header, thanh chuyên mục và tìm kiếm 64

Hình 52: Bài viết mới nhất mọi chuyên mục 65

Hình 53: Bài viết có đánh giá sao cao nhất 65

Hình 54: Bài viết được thả cảm xúc nhiều nhất 65

Hình 55: Bài viết mới nhất theo nguồn Dân Trí 66

Hình 56: Bài viết mới nhất theo nguồn Dân Trí 67

Hình 57: Các bài mới nhất của từng chuyên mục cha 68

Hình 58: Danh sách bài viết theo chuyên mục(đầu trang) 69

Hình 59: Danh sách bài viết theo chuyên mục(cuối trang) 69

Hình 60: Kết quả sau khi tìm kiếm 70

Hình 61: Giao diện chi tiết bài viết (1) 70

Hình 62: Giao diện chi tiết bài viết (2) 71 xiii

Hình 63: Giao diện chi tiết bài viết (3) 71

Hình 64: Giao diện header sau khi đăng nhập 72

Hình 65: Giao diện thông tin cá nhân 72

Hình 66: Giao diện cập nhật mật khẩu 72

Hình 67: Giao diện đánh giá sao cho bài viết 72

Hình 68: Nơi người dùng thả cảm xúc và lưu bài viết 73

Hình 69: Người dùng bình luận bài viết 73

Hình 70: Người dùng cập nhật bình luận (1) 73

Hình 71: Người dùng cập nhật bình luận (2) 74

Hình 72: Người dùng cập nhật bình luận (3) 74

Hình 73: Giao diện bảng tin 74

Hình 74: Theo dõi chuyên mục 74

Hình 75: Giao diện in đã lưu 75

Hình 76: Header sau khi quản trị viên đăng nhập 75

Hình 77: Quản lý chuyên mục 76

Hình 79: Quản lý người dùng 76

Hình 80: Kiểm duyệt bài viết 76 xiv

Bảng 1: Danh sách chức năng của hệ thống 16

Bảng 2: Đặc tả usecase đăng nhập 18

Bảng 3: Thông tin dữ liệu đầu vào cho usecase đăng nhập 19

Bảng 4: Đặc tả usecase đăng ký 20

Bảng 5: Thông tin dữ liệu đầu vào cho usecase đăng ký 21

Bảng 6: Đặc tả usecase đổi mật khẩu 22

Bảng 7: Thông tin dữ liệu đầu vào cho usecase đổi mật khẩu 23

Bảng 8: Đặc tả usecase cập nhật ảnh đại diện 24

Bảng 9: Thông tin dữ liệu đầu vào cho usecase cập nhật ảnh đại diện 25

Bảng 10: Đặc tả usecase cập nhật thông tin cá nhân 25

Bảng 11: Thông tin dữ liệu đầu vào cho usecase cập nhật thông tin cá nhân 26

Bảng 12: Đặc tả usecase xem bài viết theo chuyên mục 26

Bảng 13: Đặc tả usecase tự động cập nhật bài viết mỗi năm phút 27

Bảng 14: Đặc tả usecase xem bài viết chi tiết 29

Bảng 15: Đặc tả usecase tìm kiếm bài viết theo từ khóa 30

Bảng 16: Thông tin dữ liệu đầu vào cho usecase tìm kiếm bài viết theo từ khóa 30

Bảng 17: Đặc tả usecase tìm kiếm bài viết theo hình ảnh 31

Bảng 18: Thông tin dữ liệu đầu vào cho usecase tìm kiếm bài viết theo hình ảnh 32

Bảng 19: Đặc tả usecase bình luận bài viết 32

Bảng 20: Thông tin dữ liệu đầu vào cho usecase bình luận bài viết 33

Bảng 21: Đặc tả usecase cập nhật bình luận 33

Bảng 22: Thông tin dữ liệu đầu vào cho usecase cập nhật bình luận 34

Bảng 23: Đặc tả usecase xóa bình luận 35

Bảng 24: Đặc tả usecase đánh giá sao cho bài viết 36

Bảng 25: Đặc tả usecase thả cảm xúc cho bài viết 37

Bảng 26: Đặc tả usecase theo dõi chuyên mục 38

Bảng 27: Đặc tả usecase xem bài viết chuyên mục theo dõi 39

Bảng 28: Đặc tả usecase thêm bài viết vào danh sách lưu 40

Bảng 29: Đặc tả usecase xem danh sách bài viết đã lưu 41

Bảng 30: Đặc tả usecase xóa bài viết khỏi danh sách lưu 42

Bảng 31: Đặc tả usecase quản lý chuyên mục 43 xv

Bảng 32: Thông tin dữ liệu đầu vào cho usecase quản lý chuyên mục 44

Bảng 33: Đặc tả usecase quản lý người dùng 45

Bảng 34: Thông tin dữ liệu đầu vào cho usecase quản lý người dùng 46

Bảng 35: Đặc tả usecase quản lý tag 47

Bảng 36: Thông tin dữ liệu đầu vào cho usecase quản lý tag 48

Bảng 37: Đặc tả usecase kiểm duyệt bài viết 49

Bảng 38: Mô tả bảng trong cơ sở dữ liệu 51

Bảng 39: Mô tả thuộc tính bảng article 52

Bảng 40: Mô tả thuộc tính bảng category 53

Bảng 41: Mô tả thuộc tính bảng tag 53

Bảng 42: Mô tả thuộc tính bảng tag_article 53

Bảng 43: Mô tả thuộc tính bảng user 54

Bảng 44: Mô tả thuộc tính bảng comment 54

Bảng 45: Mô tả thuộc tính bảng vote_star 55

Bảng 46: Mô tả thuộc tính bảng average_star 55

Bảng 47: Mô tả thuộc tính bảng react_emotion 55

Bảng 48: Mô tả thuộc tính bảng saved_article 56

Bảng 49: Mô tả thuộc tính bảng follow category 56

Bảng 50: Mô tả thuộc tính bảng ner_keyword 56

Bảng 51: Mô tả thuộc tính bảng pending_information 57

Bảng 52: Mô tả giao diện độc giả vãng lai 64

Bảng 53: Mô tả giao diện với quyền người dùng 71

Bảng 54: Mô tả giao diện quản trị viên 75

Bảng 55: Tồng quan kịch bản kiểm thử 77

Bảng 56: Trường hợp kiểm thử đăng nhập 79

Bảng 57: Trường hợp kiểm thử đăng ký 79

Bảng 58: Trường hợp kiểm thử đổi mật khẩu 80

Bảng 59: Trường hợp kiểm thử cập nhật ảnh đại diện 81

Bảng 60: Trường hợp kiểm thử cập nhật thông tin cá nhân 82

Bảng 61: Trường hợp kiểm thử xem bài viết theo chuyên mục 83

Bảng 62: Trường hợp kiểm thử xem bài viết chi tiết 83

Bảng 63: Trường hợp kiểm thử tìm kiếm bài viết theo từ khóa 84 xvi

Bảng 64: Trường hợp kiểm thử tìm kiếm bài viết theo hình ảnh 84

Bảng 65: Trường hợp kiểm thử bình luận bài viết 85

Bảng 66: Trường hợp kiểm thử cập nhật bình luận 86

Bảng 67: Trường hợp kiểm thử xóa bình luận 87

Bảng 68: Trường hợp kiểm thử đánh giá sao cho bài viết 88

Bảng 69: Trường hợp kiểm thử thả cảm xúc cho bài viết 88

Bảng 70: Trường hợp kiểm thử theo dõi chuyên mục 89

Bảng 71: Trường hợp kiểm thử xem bài viết bảng tin 90

Bảng 72: Trường hợp kiểm thử thêm bài viết vào danh sách lưu 91

Bảng 73: Trường hợp kiểm thử xem danh sách bài viết đã lưu 91

Bảng 74: Trường hợp kiểm thử xóa bài viết khỏi danh sách lưu 92

Bảng 75: Trường hợp kiểm thử thêm chuyên mục 93

Bảng 76: Trường hợp kiểm thử cập nhật chuyên mục 94

Bảng 77: Trường hợp kiểm thử xóa chuyên mục 95

Bảng 78: Trường hợp kiểm thử cập nhật người dùng 96

Bảng 79: Trường hợp kiểm thử xóa người dùng 97

Bảng 80: Trường hợp kiểm thử thêm tag 98

Bảng 81: Trường hợp kiểm thử cập nhật tag 99

Bảng 82: Trường hợp kiểm thử xóa tag 100

Bảng 83: Kiểm thử chấp nhận bài viết 101

Bảng 84: Kiểm thử từ chối bài viết 102

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh Cách mạng Công nghiệp 4.0, Internet đã và đang biến đổi toàn diện cả xã hội, tri thức và công nghệ trở thành yếu tố chủ chốt quyết định sự tiến bộ của mỗi quốc gia Xã hội loài người càng phát triển, lượng thông tin tiếp nhận ngày càng nhiều Bên cạnh những thông tin chính thống, luôn tồn tại những thông tin sai lệch, gây hoang mang dư luận, cộng đồng Việc xây dựng một trang tin tức tổng hợp từ các nguồn uy tín là cần thiết để mang đến sự yên tâm cho người dùng khi tiếp cận với tin tức

Hiện nay, số lượng người dùng dành thời gian trên các thiết bị di động hay mạng Internet ngày càng gia tăng Chính vì thế, người dùng đã và đang phải đối phải đối mặt với một làn sóng tin giả, tin chưa xác thực, kiểm duyệt tràn lan trên mạng, thậm chí là xuất hiện ở một số mặt báo “lá cải”, không uy tín Điều này đặt ra một thách thức lớn cho người dùng khi tiếp cận với thông tin cũng như các trang web uy tín khác trong việc truyền đạt những thông tin chính thống tới người dùng Đây chính là hạn chế của báo điện tử so với báo truyền thống trong thời đại công nghệ số hiện nay

Vì vậy, việc nghiên cứu và phát triển một ứng dụng mà thông tin mới sẽ được tự động cập nhật theo các nguồn uy tín là cần thiết Báo điện tử cung cấp nhiều tiện ích và khả năng tương tác mà báo giấy truyền thống không thể có Người dùng có thể tìm kiếm, lưu trữ và chia sẻ bài viết, đánh giá, bình luận và tương tác với nội dung báo Điều này tạo ra một trải nghiệm đọc báo đa dạng và tương tác hơn

Với tính chất động của tin tức, việc cập nhật thông tin nhanh chóng là rất quan trọng Trang tin tức tổng hợp tự động sẽ đáp ứng được điều đó với khả năng cập nhật liên tục ngay sau khi có sự kiện xảy ra Điều này giúp người dùng được tiếp cận với những thông tin mới nhất và chính xác nhất

Bên cạnh đó, việc sử dụng trang tin tức tổng hợp cũng giảm sự phụ thuộc vào báo truyền thống, từ đó giảm lượng giấy in ấn và tiêu thụ năng lượng Có ý nghĩa quan trọng trong việc bảo vệ môi trường và tiết kiệm tài nguyên tự nhiên

2 MỤC ĐÍCH CỦA ĐỀ TÀI Đề tài “Xây dựng website tin tức tổng hợp tự động” có những mục tiêu cần đạt được là:

● Xây dựng giao diện trực quan với những tính năng hỗ trợ, nâng cao trải nghiệm người dùng

● Xây dựng ứng dụng gần gũi thực tiễn, đáp ứng nhu cầu tiếp cận thông tin mới nhất, chính thống nhất của người dùng

● Áp dụng kiến thức về công nghệ phát triển website trong đồ án

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 ĐỐI TƯỢNG NGHIÊN CỨU Đối tượng nghiên cứu được đề cập trong báo cáo là một ứng dụng web được xây dựng trên nền tảng Java, sử dụng các công nghệ: NextJS, MySQL, Java Spring Boot

Next.js là một framework React mã nguồn mở được thiết kế để tạo ra các ứng dụng web hiệu quả cao với trải nghiệm người dùng mượt mà và tối ưu hóa SEO Cung cấp nhiều tính năng và công cụ giúp xây dựng các ứng dụng web phức tạp dễ dàng và hiệu quả

Next.js sử dụng Server-Side Rendering (SSR) và Static Site Generation (SSG) để tăng tốc độ tải trang và cải thiện hiệu suất Các công cụ tìm kiếm có thể dễ dàng thu thập dữ liệu và tạo chỉ mục cho nội dung với SSR và SSG, từ đó cải thiện khả năng hiển thị trên trang kết quả tìm kiếm

Các tính năng như routing, pre-fetching và tối ưu hóa hình ảnh đảm bảo trải nghiệm người dùng liền mạch và nhanh chóng của Next.js Bộ khung phát triển hoàn chỉnh của Next.js bao gồm các công cụ và thư viện hỗ trợ để xây dựng ứng dụng nhanh chóng và dễ dàng

Có thể dễ dàng tích hợp Next.js với các công nghệ như Redux, GraphQL và API của bên thứ ba

Next.js là một framework React mạnh mẽ và linh hoạt được thiết kế để tạo ra các ứng dụng web có hiệu suất cao, trải nghiệm người dùng mượt mà và thân thiện với SEO Với các tính năng và công cụ được tích hợp sẵn trong Next.js, có thể phát triển ứng dụng nhanh chóng và hiệu quả

Tailwind CSS, một thư viện CSS giúp tạo layout và style cho giao diện người dùng, đã được sử dụng một cách hiệu quả trong dự án phát triển ứng dụng web của chúng tôi Tailwind không chỉ cung cấp cách tiếp cận linh hoạt và tối ưu hóa quy trình phát triển, mà còn mang lại khả năng tùy chỉnh mạnh mẽ

Sử dụng mô hình "utility-first" giúp tạo ra các class CSS ngay trong HTML, tăng cường tính tương tác và tái sử dụng Cung cấp một loạt các class như flex, p-4, bg-gray-

500 để thiết lập thuộc tính CSS một cách nhanh chóng

Có khả năng tùy chỉnh mọi khía cạnh của stylesheet thông qua file cấu hình Cho phép thay đổi kích thước, màu sắc, font chữ và nhiều yếu tố khác một cách dễ dàng

Có thể tích hợp Tailwind vào dự án một cách dễ dàng thông qua npm hoặc yarn, cung cấp khả năng làm việc chung với các framework JavaScript như React hoặc Vue

Tailwind CSS đã chứng minh là một công nghệ hữu ích trong quá trình phát triển ứng dụng web của chúng tôi Với mô hình "utility-first," khả năng tùy chỉnh linh hoạt và tích hợp dễ dàng, Tailwind không chỉ giúp tối ưu hóa quy trình phát triển mà còn đảm bảo sự tương tác và hiệu suất tốt cho giao diện người dùng của ứng dụng

Ngày đăng: 18/11/2024, 16:26

HÌNH ẢNH LIÊN QUAN

Hình 1: Tổng quan trang Google News - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 1 Tổng quan trang Google News (Trang 27)
Hình 2: Chọn bài viết trên Google News - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 2 Chọn bài viết trên Google News (Trang 28)
Hình 4: Tin tức sau khi chuyển khu vực sang Việt Nam - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 4 Tin tức sau khi chuyển khu vực sang Việt Nam (Trang 29)
Hình 6: Đề xuất tin tức phù hợp với cá nhân - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 6 Đề xuất tin tức phù hợp với cá nhân (Trang 30)
Hình 9: Sơ đồ kiến trúc mạng SSD - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 9 Sơ đồ kiến trúc mạng SSD (Trang 31)
Hình 11: Lược đồ usecase phía người dùng - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 11 Lược đồ usecase phía người dùng (Trang 36)
Hình 13: Sơ đồ tuần tự usecase đăng nhập - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 13 Sơ đồ tuần tự usecase đăng nhập (Trang 38)
Hình 15: Sơ đồ tuần tự đổi mật khẩu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 15 Sơ đồ tuần tự đổi mật khẩu (Trang 42)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 46)
Hình 21: Sơ đồ tuần tự usecase usecase tìm kiếm bài viết theo từ khóa - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 21 Sơ đồ tuần tự usecase usecase tìm kiếm bài viết theo từ khóa (Trang 49)
Bảng 22: Thông tin dữ liệu đầu vào cho usecase cập nhật bình luận - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Bảng 22 Thông tin dữ liệu đầu vào cho usecase cập nhật bình luận (Trang 52)
Bảng 23: Đặc tả usecase xóa bình luận - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Bảng 23 Đặc tả usecase xóa bình luận (Trang 53)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 54)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 55)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 56)
E1.1. Bảng tin không hiển thị bài viết do người dùng chưa theo  dõi chuyên mục nào - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
1.1. Bảng tin không hiển thị bài viết do người dùng chưa theo dõi chuyên mục nào (Trang 58)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 59)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 60)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 61)
Sơ đồ tuần tự: - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Sơ đồ tu ần tự: (Trang 63)
Hình 37. Lược đồ quan hệ cơ sở dữ liệu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 37. Lược đồ quan hệ cơ sở dữ liệu (Trang 69)
Bảng 52: Mô tả giao diện độc giả vãng lai - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Bảng 52 Mô tả giao diện độc giả vãng lai (Trang 82)
Hình 52: Bài viết mới nhất mọi chuyên mục - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 52 Bài viết mới nhất mọi chuyên mục (Trang 83)
Hình 57: Các bài mới nhất của từng chuyên mục cha - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 57 Các bài mới nhất của từng chuyên mục cha (Trang 86)
Hình 58: Danh sách bài viết theo chuyên mục(đầu trang) - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 58 Danh sách bài viết theo chuyên mục(đầu trang) (Trang 87)
Hình 60: Kết quả sau khi tìm kiếm - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 60 Kết quả sau khi tìm kiếm (Trang 88)
Hình 62: Giao diện chi tiết bài viết (2) - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 62 Giao diện chi tiết bài viết (2) (Trang 89)
Hình 64: Giao diện header sau khi đăng nhập - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 64 Giao diện header sau khi đăng nhập (Trang 90)
Hình 68: Nơi người dùng thả cảm xúc và lưu bài viết - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 68 Nơi người dùng thả cảm xúc và lưu bài viết (Trang 91)
Hình 71: Người dùng cập nhật bình luận (2) - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website tin tức tổng hợp tự động
Hình 71 Người dùng cập nhật bình luận (2) (Trang 92)

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

TÀI LIỆU LIÊN QUAN