1. Trang chủ
  2. » Cao đẳng - Đại học

XÂY DỰNG ỨNG DỤNG CHIA sẻ tài LIỆU, hỗ TRỢ học tập CHO SINH VIÊN UIT

172 14 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 172
Dung lượng 5,31 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 LƯU BIÊU NGHỊ NGUYỄN VĂN ĐƠNG KHỐ LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ TÀI LIỆU, HỖ TRỢ HỌC TẬP CHO SINH VIÊN UIT Building an application to share documents and support learning for UIT students KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM 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 LƯU BIÊU NGHỊ - 17520794 NGUYỄN VĂN ĐÔNG - 17520350 KHOÁ LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ TÀI LIỆU, HỖ TRỢ HỌC TẬP CHO SINH VIÊN UIT Building an application to share documents and support learning for UIT students KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN ThS HUỲNH HỒ THỊ MỘNG TRINH TP HỒ CHÍ MINH, 2021 THƠNG TIN HỘI ĐỒNG CHẤM KHỐ LUẬN TỐT NGHIỆP Hội đồng chấm khoá luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin – Chủ tịch – Thư ký – Uỷ viên – Uỷ viên LỜI CẢM ƠN Trong suốt năm học tập trường đại học Công nghệ Thông tin, từ giảng dạy nhiệt tình hướng dẫn chu đáo từ phía thầy cơ, đặc biệt q thầy cô khoa Công nghệ Phần mềm, chúng em tiếp thu nhiều kiến thức bổ ích vơ cần thiết để có chun mơn vững tương lai Thơng qua khố luận này, chúng em thể học phối hợp lại để cố gắng tạo nên sản phẩm có khả đưa vào hoạt động thực tế, bước đầu quy mô vừa nhỏ, hướng đến sản phẩm hoàn chỉnh với quy mô lớn Chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đại học Cơng nghệ Thơng tin nói chung, q thầy khoa Cơng nghệ Phần mềm nói riêng, đặc biệt cô Huỳnh Hồ Thị Mộng Trinh chu đáo tận tình hướng dẫn chúng em, giúp chúng em có điều kiện tốt để hồn thành khố luận với chất lượng cao Cảm ơn giảng viên phản biện thầy hội đồng chấm khố luận với lời khuyên, góp ý quý báu bổ ích Từ luận văn em trở nên hồn thiện Bên cạnh đó, nhóm xin gửi lời cảm ơn đến anh chị, bạn bè góp ý đến khố luận nhóm Trong suốt q trình thực khố luận, quy mơ sản phẩm lớn so với đồ án thông thường khác, với thời gian vốn kiến thức cịn nhiều hạn chế, chắn khó tránh khỏi sai sót khơng mong muốn Chúng em mong nhận sử góp ý chân thành từ phía thầy bạn Thành phố Hồ Chí Minh, tháng 06 năm 2021 Lưu Biêu Nghị Nguyễn Văn Đông MỤC LỤC TĨM TẮT KHỐ LUẬN CHƯƠNG TỔNG QUAN 1.1 Giới thiệu/Lí chọn đề tài 1.2 Mục tiêu 11 1.3 Phạm vi 12 1.4 Nội dung nghiên cứu 12 1.5 Phương pháp thực 12 1.6 Mơ tả tính 13 CHƯƠNG CƠ SỞ LÝ THUYẾT 15 2.1 Thống kê số TF-IDF (Term frequency – inverse document frequency) cải tiến Okapi BM25 15 2.2 Vector Space Model (mô hình khơng gian vector) 19 2.3 Wilson Confidence Interval score 22 2.4 Hotness vấn đề tài nguyên nhiều ý 25 CHƯƠNG TỔNG QUAN CÔNG NGHỆ 28 3.1 Tổng quan hệ sinh thái Spring Framework 28 3.2 Keycloak 33 3.3 Apache Lucene 36 3.4 PostgreSQL 36 3.4 Thư viện ReactJS Redux 37 CHƯƠNG XÂY DỰNG ỨNG DỤNG CHIA SẺ TÀI LIỆU, HỖ TRỢ HỌC TẬP CHO SINH VIÊN UIT 40 4.1 Xác định phân tích yêu cầu 40 4.2 Đặc tả Use-case 44 4.3 Thiết kế sở liệu 78 4.4 Thiết kế kiến trúc hệ thống 116 4.5 Thiết kế giao diện xử lý 122 4.6 Triển khai hệ thống 130 CHƯƠNG KẾT LUẬN 133 5.1 Kết đạt 133 5.2 Thuận lợi khó khăn 155 5.3 Hướng phát triển 156 TÀI LIỆU THAM KHẢO 157 DANH MỤC HÌNH Hình 2-1 Cơng thức tính điểm VSM 20 Hình 2-2 Cơng thức tính điểm đơn giản hố 20 Hình 2-3 Cơng thức tính điểm thực tế 21 Hình 2-4 Urban Dictionary hiển thị sorting chưa phù hợp 23 Hình 2-5 Amazon.com hiển thị sorting chưa phù hợp 23 Hình 2-6 Cơng thức tính khoảng ước lượng Wilson 24 Hình 2-7 Những tài nguyên số lượt vote xếp hạng cao 26 Hình 2-8 So sánh có sử dụng logarithm (bên trái) không sử dụng logarithm (bên phải) 26 Hình 2-9 So sánh điểm hot tài nguyên downvote (trái) tài nguyên nhiều downvote (phải) 27 Hình 3-1 Sơ đồ hoạt động Spring Boot 29 Hình 3-2 Sơ đồ hoạt động Spring Security Filter Chain 31 Hình 3-3 Cơ chế authorization dựa voting Spring Security 32 Hình 3-4 Sequence Flow cho method call bảo vệ Access Control Spring Security 32 Hình 3-5 Sơ đồ kiến trúc Hibernate ORM 33 Hình 3-6 Logo keycloak 33 Hình 3-7 Sơ đồ chế hoạt động Keycloak 35 Hình 3-8 Logo Apache Lucene 36 Hình 3-9 Logo PostgreSQL 36 Hình 3-10 Logo ReactJS 37 Hình 3-11 Hình ảnh minh hoạ cho state sử dụng không sử dụng Redux 39 Hình 4-1 Use case tổng quát 44 Hình 4-2 Use case Hệ thống viết 45 Hình 4-3 Use case Hệ thống tài liệu 46 Hình 4-4 Use case Hệ thống tập 47 Hình 4-5 Use case Hệ thống quản lý người dùng 48 Hình 4-6 Use case hệ thống tính điểm người dùng 49 Hình 4-7 Sơ đồ ERD hệ thống 78 Hình 4-8 Kiến trúc tổng thể hệ thống 116 Hình 4-9 Sơ đồ kiến trúc Front-end 118 Hình 4-10 Kiến trúc Back-end 120 Hình 4-11 Sơ đồ hình liên kết – người dùng khách 122 Hình 4-12 Sơ đồ hình liên kết – người dùng hệ thống 125 Hình 4-13 Sơ đồ hình liên kết – quản trị hệ thống 127 Hình 4-14 Deployment Diagram hệ thống 130 Hình 5-1 Hình ảnh plugin Mathematical Formulas (Tesla) chia sẻ CKEditor 134 Hình 5-2 Giao diện Plugin Mathematical Formulas (Tesla) 135 Hình 5-3 Màn hình trang chủ 136 Hình 5-4 Màn hình danh sách viết 137 Hình 5-5 Màn hình danh sách mơn học – tài liệu 138 Hình 5-6 Màn hình danh sách tài liệu mơn học 139 Hình 5-7 Giao diện tính quick search 139 Hình 5-8 Màn hình Tìm kiếm viết 140 Hình 5-9 Màn hình Tìm kiếm tài liệu 141 Hình 5-10 Màn hình Tạo viết 142 Hình 5-11 Giao diện tính nhập cơng thức tốn học 143 Hình 5-12 Màn hình Tìm kiếm viêt Tag 144 Hình 5-13 Màn hình chi tiết viết 145 Hình 5-14 Màn hình chi tiết tài liệu 146 Hình 5-15 Giao diện tính bình luận 147 Hình 5-16 Giao diện hình quản lý viết 148 Hình 5-17 Màn hình duyệt viết 149 Hình 5-18 Màn hình quản lý tố cáo viết 150 Hình 5-19 Màn hình Danh sách mơn học – Bài tập 151 Hình 5-20 Màn hình Danh sách tập 152 Hình 5-21 Màn hình danh sách câu hỏi 153 Hình 5-22 Tính bình luận cho tập 154 Hình 5-23 Tính thêm câu hỏi vào tập 155 DANH MỤC BẢNG Bảng 1-1 Tiêu chí đánh giá kênh thơng tin tự học phổ biến sinh viên Bảng 1-2 Tiêu chí đánh giá kênh mạng xã hội, blog dùng phổ biến Bảng 1-3 Tiêu chí đánh giá kênh thơng tin chia sẻ tài liệu phổ biến Bảng 1-4 Tiêu chí đánh giá kênh làm tập phổ biến Bảng 4-1 Danh sách Actor hệ thống 40 Bảng 4-2 Danh sách Usecase 40 Bảng 4-3 Đặc tả usecase Tìm kiếm 49 Bảng 4-4 Đặc tả usecase Lọc theo danh mục 50 Bảng 4-5 Đặc tả usecase Lọc theo môn học 51 Bảng 4-6 Đặc tả usecase Sắp xếp 51 Bảng 4-7 Đặc tả usecase Tương tác 52 Bảng 4-8 Đặc tả usecase Tố cáo 53 Bảng 4-9 Đặc tả usecase Lưu kho cá nhân 54 Bảng 4-10 Đặc tả usecase Gợi ý viết 55 Bảng 4-11 Đặc tả usecase Xem viết 55 Bảng 4-12 Đặc tả usecase Quản lý viết cá nhân 56 Bảng 4-13 Đặc tả usecase Duyệt/từ chối viết 57 Bảng 4-14 Đặc tả usecase Sửa/xoá viết 58 Bảng 4-15 Đặc tả usecase Gửi tài liệu 59 Bảng 4-16 Đặc tả usecase Upload tài liệu 59 Bảng 4-17 Đặc tả usecase Xem tài liệu 60 Bảng 4-18 Đặc tả usecase Tải tài liệu 61 Bảng 4-19 Đặc tả usecase Thích/khơng thích tài liệu 62 Bảng 4-20 Đặc tả usecase Quản lý tài liệu cá nhân 62 Bảng 4-21 Đặc tả usecase Sửa/xoá tài liệu 63 Bảng 4-22 Đặc tả usecase Duyệt/từ chối tài liệu 64 Hình 5-12 Màn hình Tìm kiếm viêt Tag 144 Hình 5-13 Màn hình chi tiết viết 145 Hình 5-14 Màn hình chi tiết tài liệu 146 Hình 5-15 Giao diện tính bình luận 147 Hình 5-16 Giao diện hình quản lý viết 148 Hình 5-17 Màn hình duyệt viết 149 Hình 5-18 Màn hình quản lý tố cáo viết 150 Hình 5-19 Màn hình Danh sách mơn học – Bài tập 151 Hình 5-20 Màn hình Danh sách tập 152 Hình 5-21 Màn hình danh sách câu hỏi 153 Hình 5-22 Tính bình luận cho tập 154 Hình 5-23 Tính thêm câu hỏi vào tập 5.2 Thuận lợi khó khăn 5.2.1 Thuận lợi − Bản thân thành viên nhóm có giai đoạn tìm hiểu sử dụng framework (Spring, Hibernate, ReactJS, …), nắm số best practices chủ chốt − Các framework áp dụng có hệ sinh thái phong phú cộng đồng hỗ trợ mạnh mẽ, có nhiều thư viện, cơng cụ hỗ trợ kèm hiệu 155 − Các thành viên nhóm sinh viên có kinh nghiệm việc chia sẻ kiến thức tự học nên nắm vấn đề cịn khó khăn, tồn đọng vấn đề tự học sinh viên − Được giảng viên hướng dẫn tạo động lực xuyên suốt trình phát triển, đồng thời kiểm tra nắm bắt tiến độ thường xun, ln có tinh thần tốt để làm việc 5.2.2 Khó khăn − Bản thân dự án có kiến trúc phức tạp, việc thiết kế gặp nhiều khó khăn Việc tổ chức code trở nên khó khăn nhiều lần phải thay đổi kiển trúc cập nhật theo thiết kế − Rất nhiều thành phần giao diện phía Frontend React khơng tồn (hoặc không phù hợp) phải thiết kế lại từ đầu 5.3 Hướng phát triển − Hệ thống hỏi đáp giúp sinh viên hỏi trực tiếp − Triển khai chạy thực tế quy mô vừa, mức độ cho tồn sinh viên trường ĐHCNTT thử nghiệm sử dụng − Phát triển ứng dụng Mobile để việc truy cập dễ dàng thiết bị di động 156 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Hung Neo, “Tìm hiểu mơ hình không gian vector” [Trực tuyến] https://butchiso.com/2013/10/tim-hieu-ve-mo-hinh-khong-gian-vector.html [Truy cập 25/06/2021] Tài liệu tiếng Anh [1] Artur Nowosielski “Under the hood of the search engine”, FindWise, [Trực tuyến], 2016 https://findwise.com/blog/under-the-hood-of-the-search-engine [Truy cập: 25/06/2021] [2] Codeburst “Deconstructing Scoring In Elasticsearch”, [Trực tuyến], 2020 https://codeburst.io/deconstructing-scoring-in-elasticsearch-e8544676a24 [Truy cập: 25/06/2021] [3] Dat Quoc Nguyen, Dai Quoc Nguyen, Thanh Vu, Mark Dras, Mark Johnson “A Fast and Accurate Vietnamese Word Segmenter”, [Trực tuyến], 2018 http://www.lrec-conf.org/proceedings/lrec2018/summaries/55.html [Truy cập: 25/06/2021] [4] Evan Miller, “How not to sort by average rating” [Trực tuyến], 2009 https://www.evanmiller.org/how-not-to-sort-by-average-rating.html [Truy cập: 25/06/2021] [5] Facebook, “ReactJS Documentation” ReactJS Foundation [Trực tuyến] https://reactjs.org/docs/ [Truy cập 22/01/2021] [6] Hacking and Gonzo, “How Reddit ranking algorithms work”, Medium, [Trực tuyến] https://medium.com/hacking-and-gonzo/how-reddit-ranking-algorithms-workef111e33d0d9 [Truy cập 25/06/2021] 157 [7] OpenID Foundation, “OpenID Connect Core 1.0 incorporating errata set 1” [Trực tuyến] https://openid.net/specs/openid-connect-core-1_0.html [Truy cập 05/06/2021] [8] OWASP Foundation, “OWASP Top Ten” [Trực tuyến] https://owasp.org/www-project-top-ten/ [Truy cập 05/06/2021] [9] RedHat,”Hibernate Documentation” Hibernate Foundation [Trực tuyến] https://hibernate.org/orm/documentation/5.4/ [Truy cập 22/01/2021] [10] RedHat, “Keycloak Getting Started Guide” [Trực tuyến] https://www.keycloak.org/docs/latest/getting_started/index.html [Truy cập 05/06/2021] [11] Regina Vollmeyer, Falko Rheinberg “A surprising effect of feedback on learning”, Elsevier, [Trực tuyến], 2005 https://www.researchgate.net/publication/222391762_A_surprising_effect_of_feedbac k_on_learning [Truy cập: 27/02/2021] [12] Rudi Seitz “Understanding tf-idf and BM25”, [Trực tuyến], 2020 https://kmwllc.com/index.php/2020/03/20/understanding-tf-idf-and-bm-25/ [Truy cập: 25/06/2021] [13] Spring Foundation, “Building Web Services with Spring” [Trực tuyến] https://spring.io/guides/tutorials/rest/ [Truy cập 22/01/2021] [14] Spring Foundation, “Spring Security Reference” [Trực tuyến] https://docs.spring.io/spring-security/site/docs/current/reference/html5/ [Truy cập [Truy cập: 05/06/2021] [15] Wikipedia, “Binomial proportion confidence interval” [Trực tuyến] https://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval 25/06/2021] 158 ... nghiệp nhóm đề xuất xây dựng hệ thống hỗ trợ cho việc tự học sinh viên Đại học Công nghệ Thông tin, với tên đề tài ? ?Xây dựng ứng dụng chia sẻ tài liệu, hỗ trợ học tập cho sinh viên UIT? ?? Hệ thống đóng... tốt cho sinh viên, nhóm đề xuất xây dựng hệ thống ? ?Chia sẻ tài liệu, hỗ trợ học tập cho sinh viên UIT? ?? thay thử nghiệm, bao gồm ba tính chính: chia sẻ viết, chia sẻ tài liệu tính làm tập kiểm tra... PostgreSQL 36 3.4 Thư viện ReactJS Redux 37 CHƯƠNG XÂY DỰNG ỨNG DỤNG CHIA SẺ TÀI LIỆU, HỖ TRỢ HỌC TẬP CHO SINH VIÊN UIT 40 4.1 Xác định phân tích yêu cầu 40

Ngày đăng: 05/09/2021, 20:55

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

TÀI LIỆU LIÊN QUAN

w