Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
2,69 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM VÕ MINH ĐÔN - 18520608 TRẦN CÔNG NAM - 18521131 ĐỒ ÁN ỨNG DỤNG TỔNG HỢP TIN TỨC News aggregator application KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN TS HUỲNH NGỌC TÍN TP HỒ CHÍ MINH, 2021 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM VÕ MINH ĐÔN - 18520608 TRẦN CÔNG NAM - 18521131 ĐỒ ÁN ỨNG DỤNG TỔNG HỢP TIN TỨC News aggregator application KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN TS HUỲNH NGỌC TÍN TP HỒ CHÍ MINH, 2021 MỤC LỤC ĐỀ CƯƠNG CHI TIẾT CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài 1.1.1 Tìm hiểu tin tức 1.1.2 Tìm hiểu tổng hợp tin tức 1.1.3 Lý chọn đề tài 1.2 Khảo sát trạng 1.3 Đối tượng nghiên cứu 1.4 Phạm vi nghiên cứu 1.5 Phương pháp nghiên cứu 1.6 Nhiệm vụ đề tài CHƯƠNG CƠ SỞ LÝ THUYẾT 10 2.1 Tổng quan Flutter 10 2.1.1 Khái niệm 10 2.1.2 Kiến trúc Flutter 10 2.1.3 Widget 13 2.1.4 Ưu điểm 14 2.1.5 Nhược điểm 14 2.1.6 Tại lại chọn Flutter ? 15 2.2 Tổng quan Dart 15 2.2.1 Khái niệm 16 2.2.2 Đặc điểm 16 2.2.3 Ưu điểm 16 2.2.4 Nhược điểm 17 2.3 Tổng quan Firebase 18 2.3.1 Khái niệm 18 2.3.2 Kiến trúc 18 2.3.3 Các chức 19 2.3.4 Ưu điểm 20 2.3.5 Nhược điểm 20 2.3.6 Tại chọn Firebase? 20 2.4 Giới thiệu chuỗi JSON 21 2.4.1 Khái niệm chuỗi JSON 21 2.4.2 Cấu trúc chuỗi JSON 21 2.4.3 Các trường nên dùng JSON 21 2.5 Giới thiệu HTML 22 2.5.1 Tổng quan 22 2.5.2 Các thẻ HTML 22 2.6 Giới thiệu MongoDB 27 2.6.1 Tổng quan MongoDB 27 2.6.2 Các chức MongoDB 27 2.6.3 Ưu điểm MongoDB 28 2.6.4 Nhược điểm MongoDB 28 2.6.5 Tại nên chọn MongoDB 28 2.7 Giới thiệu NodeJs 29 2.7.1 Khái niệm 29 2.7.2 Ưu điểm 29 2.7.3 Nhược điểm 29 2.8 Tổng quan Python 29 2.8.1 Khái niệm 29 2.8.2 Ưu điểm Python 30 2.8.3 Nhược điểm Python 30 2.8.5 Giới thiệu Beautifulsoup4 30 CHƯƠNG THU THẬP TIN TỨC 31 3.1 Quá trình thực 31 3.1.1 Thu thập đường dẫn 31 3.1.2 Trích xuất nội dung 33 3.1.3 Chuẩn hóa liệu 35 3.1.4 Đưa liệu lên sở liệu 36 3.1.5 Tổ chức sở liệu 37 3.2 Đánh giá 38 CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 39 4.1 Đặc tả yêu cầu 39 4.1.1 Xác định yêu cầu hệ thống 39 4.1.2 Phân tích yêu cầu hệ thống 39 4.1.3 Phạm vi hệ thống 40 4.1.4 Kiến trúc hệ thống 41 4.2 Thiết kế liệu 41 4.2.1 Bảng News 42 4.2.2 Bảng User 42 4.2.3 Bảng Recents 44 4.2.4 Bảng Favorites 44 4.3 Sơ đồ Use-case 45 4.3.1 Danh sách Actor 45 4.3.2 Sơ đồ Use-case tổng quát 46 4.3.3 Đặc tả số Use-case 46 4.4 Thiết kế giao diện 53 4.4.1 Sơ đồ hình liên kết 53 4.4.2 Danh sách hình 54 4.5 Mơ tả chi tiết hình 55 4.5.1 Màn hình “Giới thiệu” 55 4.5.2 Màn hình “Đăng nhập” 56 4.5.3 Màn hình “Đăng ký” 57 4.5.4 Màn hình “Người dùng” 58 4.5.5 Màn hình “Chính” 60 4.5.6 Màn hình “Xu hướng” 61 4.5.7 Màn hình “Thơng báo” 62 4.5.8 Màn hình “Chi tiết báo” 63 4.5.9 Màn hình “Gần đây” 64 4.5.10 Màn hình “Ưa thích” 65 4.5.11 Màn hình “Thời tiết” 66 4.5.12 Màn hình “Lịch việt” 67 4.5.13 Màn hình “Kết xổ số” 68 4.6 Sơ đồ 69 4.6.1 Đăng nhập 69 4.6.2 Đăng ký 70 CHƯƠNG KẾT LUẬN 71 5.1 Đánh giá 71 5.2 Kết đạt 71 5.2.1 Ưu điểm 71 5.2.2 Nhược điểm 72 5.2.3 Hướng phát triển 72 CHƯƠNG TÀI LIỆU THAM KHẢO 73 DANH MỤC HÌNH ẢNH Hình 1: Kiến trúc Flutter 11 Hình 2: Kiến trúc Firebase 18 Hình 1: Thơng tin đường dẫn HTML 31 Hình 2: Code để lấy đường dẫn 32 Hình 3: Kết chạy code lấy đường dẫn 32 Hình 4: Code trích xuất nội dung 34 Hình 5: Kết chạy code trích xuất 35 Hình 6: File csv trước chuẩn hóa 36 Hình 7: File csv sau chuẩn hóa 36 Hình 8: Import file MongoDB 37 Hình 9: Kết xếp MongoDB 37 Hình 1: Mơ hình kiến trúc hệ thống 41 Hình 2: Sơ đồ Use-case tổng quát 46 Hình 3: Sơ đồ hình người dùng 53 Hình 4: Màn hình giới thiệu 55 Hình 5: Màn hình đăng nhập 56 Hình 6: Màn hình đăng ký 57 Hình 7: Màn hình người dùng 58 Hình 8: Màn hình “Chính” 60 Hình 9: Màn hình “Xu hướng” 61 Hình 10: Màn hình thơng báo 62 Hình 11: Màn hình “Chi tiết báo” 63 Hình 12: Màn hình “gần đây” 64 Hình 13: Màn hình “Ưa thích” 65 Hình 14: Màn hình “Thời tiết” 66 Hình 15: Màn hình “Lịch việt” 67 Hình 16: Màn hình kết xổ số 68 Hình 17: Bảng mơ tả chi tiết sơ đồ đăng nhập 69 Hình 18: Bảng mơ tả chi tiết sơ đồ đăng ký 70 LỜI CẢM ƠN Nhóm xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy Huỳnh Ngọc Tín, người trực tiếp tận tình hướng dẫn nhóm em suốt trình thực đồ án Không gợi ý tận tâm hướng dẫn chúng em trình tìm hiểu, đọc tài liệu, thầy cịn tận tình bảo em kĩ phân tích, khai thác tài liệu để có tư liệu phù hợp với nội dung khóa luận Hơn nữa, thầy cịn nhiệt tình việc đốc thúc trình viết báo cáo, đọc đưa nhận xét, góp ý để em hồn thành đồ án cách tốt Nếu khơng có lời hướng dẫn, dạy bảo thầy thu hoạch khó hồn thiện Một lần nữa, em xin chân thành cảm ơn thầy Đề tài nhóm thực khoảng thời gian tháng nên bước đầu vào thực tế, tìm hiểu lĩnh vực nghiên cứu khoa học, kiến thức kinh nghiệm thực tiễn em hạn chế cịn nhiều bỡ ngỡ Do vậy, khơng tránh khỏi thiếu sót điều chắn, nhóm mong nhận bảo, ý kiến đóng góp q báu q Thầy Cơ bạn học lớp để em có điều kiện bổ sung, nâng cao kiến thức lĩnh vực này, giúp hồn thiện tích lũy thêm cho thân nhiều kinh nghiệm, phục vụ tốt cho công việc thực tế sau Cuối cùng, chúng em xin gửi đến ba mẹ, gia đình bạn bè lời cảm ơn, tri ân chân thành lịng biết ơn sâu sắc động viên, ủng hộ, giúp đỡ cổ vũ tinh thần cho chúng em suốt trình vừa qua Chúng em xin chân thành cảm ơn! 4.5.5 Màn hình “Chính” Hình 8: Màn hình “Chính” STT Tên đối tượng Chức Appbar Hiển thị thông tin tên hình MenuItem Hiển thị thơng tin hình khác TabbarView Hiển thị thể loại báo Article Hiển thị thông tin báo Image Hiển thị ảnh minh hoạ báo Text Hiển thị tên tờ báo Text Hiển thị thời gian đăng báo 60 Text Hiển thị mô tả báo Bảng 21: Bảng mô tả chi tiết thành phần hình “Chính” 4.5.6 Màn hình “Xu hướng” Hình 9: Màn hình “Xu hướng” STT Tên đối tượng Chức Appbar Hiển thị thơng tin hình Text Hiển thị thông tin danh mục Article Hiển thị thông tin báo Bảng 22: Bảng mô tả chi tiết thành phần hình “Xu hướng” 61 4.5.7 Màn hình “Thơng báo” Hình 10: Màn hình thơng báo STT Tên đối tượng Chức Appbar Hiển thị thơng tin hình NotificationPiece Hiển thị thông tin thông báo Image Hiển thị ảnh minh hoạ thông báo Text Hiển thị thời gian thông báo so với Text Hiển thị mô tả thông báo Bảng 23: Bảng mô tả chi tiết thành phần hình “Thơng báo” 62 4.5.8 Màn hình “Chi tiết báo” Hình 11: Màn hình “Chi tiết báo” STT Tên đối tượng Chức Appbar Hiển thị thông tin tờ báo Button Trở hình trước Button Thêm vào tin ưa thích Webview Hiển thị thơng tin chi tiết báo Button Trở viết trước Button Đi đến viết Button Tải lại báo 63 Bảng 24: Bảng mô tả chi tiết thành phần hình “Chi tiết báo” 4.5.9 Màn hình “Gần đây” Hình 12: Màn hình “gần đây” STT Tên đối tượng Chức Appbar Hiển thị thông tin hình Button Trở hình trước Article Hiển thị thông tin báo Bảng 25: Bảng mô tả chi tiết thành phần hình “Gần đây” 64 4.5.10 Màn hình “Ưa thích” Hình 13: Màn hình “Ưa thích” STT Tên đối tượng Chức Appbar Hiển thị thông tin hình Button Trở hình trước Article Hiển thị thông tin báo Bảng 26: Bảng mô tả chi tiết thành phần hình “Ưa thích” 65 4.5.11 Màn hình “Thời tiết” Hình 14: Màn hình “Thời tiết” STT Tên đối tượng Appbar Chức Hiển thị thông tin hình Button Trở hình trước Webview Hiển thị thông tin thời tiết Bảng 27: Bảng mô tả chi tiết thành phần hình “Thời tiết” 66 4.5.12 Màn hình “Lịch việt” Hình 15: Màn hình “Lịch việt” STT Tên đối tượng Appbar Chức Hiển thị thông tin hình Button Trở hình trước Webview Hiển thị thông tin lịch việt Bảng 28: Bảng mô tả chi tiết thành phần hình “Lịch việt” 67 4.5.13 Màn hình “Kết xổ số” Hình 16: Màn hình kết xổ số STT Tên đối tượng Appbar Chức Hiển thị thơng tin hình Button Trở hình trước Webview Hiển thị thơng tin kết xổ số Bảng 29: Bảng mô tả chi tiết thành phần hình “Kết sổ xố” 68 4.6 Sơ đồ 4.6.1 Đăng nhập Hình 17: Bảng mơ tả chi tiết sơ đồ đăng nhập 69 4.6.2 Đăng ký Hình 18: Bảng mô tả chi tiết sơ đồ đăng ký 70 CHƯƠNG KẾT LUẬN 5.1 Đánh giá Thuận lợi: - Giảng viên hướng dẫn tận tình hỗ trợ định hướng nhóm nghiên cứu thực đề tài - Các tài liệu ngôn ngữ, công cụ thực chia sẻ nhiều mạng - Vận dụng kiến thức, quy trình phát triển học - Cộng đồng lập trình Flutter Việt Nam phát triển với viết hướng dẫn có tính ứng dụng cao - Tài liệu dồi dào, nguồn tham khảo đa dạng Khó khăn: - Vấn đề tìm hiểu thực cơng nghệ Flutter, MongoDB tốn thời gian - Tìm hiểu Web Crawler Web Scraping cơng, có nhiều thư viện, công cụ, khiến việc lựa chọn trở nên khó khăn Kết đạt 5.2 5.2.1 Ưu điểm - Hoàn thành yêu cầu đặt ban đầu - Cơ sở liệu tối ưu, việc truy vấn diễn nhanh - Giao diện đơn giản, bố cục hợp lý, người dùng dễ dàng theo tác ứng dụng - Tốc độ phản hồi thao tác nhanh, tối ưu hóa suất người dùng - Sinh viên thực nắm cách thức làm ứng dụng di động - Sinh viên nắm công nghệ phổ biến như: Flutter, MongoDB, Firebase, Nodejs, Python… - Ứng dụng triển khai nghiệm thu thành công máy thật 71 5.2.2 Nhược điểm - Cịn hạn chế số tính - Tối ưu code chưa tốt nên tốc độ tương tác ứng dụng chậm 5.2.3 Hướng phát triển - Sử dụng ranking nhằm xếp thứ tự tin tức sẽ hiển thị cho người dùng - Tối ưu hóa code để tăng tốc độ tương tác - Tối ưu hóa CSDL hợp lý - Xây dựng chức gợi ý tin tức - Xây dựng chức tìm kiếm tin tức - Thêm đa ngơn ngữ cho ứng dụng 72 CHƯƠNG TÀI LIỆU THAM KHẢO [ [1] Vu Viet Anh, "VIBLO," 21 2019 [Online] Available: https://viblo.asia/p/tim-hieu-ve-ngon-ngu-dart-phan-i-bJzKmykwK9N [Accessed 10 2020] [ [2] "stackoverflow.com," 12 2021 [Online] Available: https://stackoverflow.com/ [Accessed 12 2021] [ [3] Audrey, "viblo.asia," 24 May 2017 [Online] Available: https://viblo.asia/p/tim-hieu-ve-mongodb-4P856ajGlY3 [Accessed 10 2021] [ [4] A Bajo, "Scrapingbee," Scrapingbee, 11 December 2020 [Online] Available: https://www.scrapingbee.com/blog/crawling-python/ [Accessed 11 2021] [ [5] D Garage, "youtube," Digital Garage, 14 January 2019 [Online] Available: https://www.youtube.com/watch?v=3CgJRdJetiw&t=3s [Accessed 12 2021] [ [6] P S Humagain, "dev.to," dev.to, 16 Dec 2019 [Online] Available: https://dev.to/paurakhsharma/flask-rest-api-part-1-using-mongodb-with-flask3g7d [Accessed 10 11 2021] 73 [ [7] Y Ida, "brightdata.com," 30 November 2020 [Online] Available: https://brightdata.com/blog/guest-post/difference-between-web-crawling-andwebscraping#:~:text=Crawling%20is%20essentially%20what%20search%20 engines%20do.&text=The%20web%20crawling%20process%20usually,targe t%20data%20from%20web%20pages [Accessed 10 2021] [ [8] F Marketing, "ironhackvietnam.edu.vn," July 2021 [Online] Available: https://ironhackvietnam.edu.vn/python-la-gi/ [Accessed 10 2021] [ [9] N V Minh, "viblo.asia," 17 January 2019 [Online] Available: https://viblo.asia/p/trien-khai-web-tren-heroku-djeZ1RWglWz [Accessed 12 2021] [ [10] A Pettegree, "Introduction: All the News that's Fit to Tell," in The Invention of News: How the World Came to Know About Itself, London, Yale University Press, 2014, pp 7-20 [ [11] C Schafer, "youtube," Corey Schafer, November 2017 [Online] Available: https://www.youtube.com/watch?v=ng2o98k983k [Accessed 11 2021] [ [12] TopDev, "TopDev.vn," 1 2018 [Online] Available: https://topdev.vn/blog/mongodb-la-gi/ [Accessed 10 2021] 74 ... tài) Mục tiêu: Ứng dụng tổng hợp tin tức chạy thiết bị di động thực dựa hai mục tiêu sau: - Thứ nắm giai đoạn trình tổng hợp tin - Thứ hai xây dựng ứng dụng tổng hợp tin tức thống, uy tín đến... Hiện nay, thị trường có nhiều ứng dụng tổng hợp tin tức đa số ứng dụng có chứa tin tức từ nguồn tin khơng kiểm duyệt, tin giật title câu view không rõ ràng Một số ứng dụng tiếng là: Thanh niên,... thoại di động Tìm hiểu tin tức, tổng hợp tin tức Xây dựng thành công ứng dụng tổng hợp tin tức CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Tổng quan Flutter Trong đề tài này, nhóm sinh viên sử dụng framework Flutter