Tải bản đầy đủ (.docx) (77 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (641.99 KB, 77 trang )

ĐẠ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

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

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 ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. ................................................. – Chủ tịch.
2. ................................................. – Thư ký.
3. ................................................. – Uỷ viên.
4. ................................................. – Uỷ viên.
LỜI CẢM ƠN
Trong suốt 4 năm học tập tại trường đại học Công nghệ Thơng tin, từ sự giảng dạy nhiệt
tình và hướng dẫn chu đáo từ phía thầy cơ, đặc biệt là quý thầy cô khoa Công nghệ
Phần mềm, chúng em đã được tiếp thu rất nhiều kiến thức bổ ích và vơ cùng cần thiết
để có thể có được một chun mơn vững chắc trong tương lai. Thơng qua khố luận
này, chúng em đã thể hiện những gì đã được học và phối hợp lại để cố gắng tạo nên
một sản phẩm có khả năng đưa vào hoạt động thực tế, bước đầu là quy mô vừa và nhỏ,
dần dần hướng đến một sản phẩm hồ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, và q thầy cơ khoa Cơng nghệ Phần mềm nói riêng, đặc biệt là
cô Huỳnh Hồ Thị Mộng Trinh đã chu đáo và tận tình hướng dẫn chúng em, giúp chúng
em có điều kiện tốt nhất để hồn thành khố luận với chất lượng cao nhất.
Cảm ơn giảng viên phản biện và các thầy cơ trong hội đồng chấm khố luận với những

lời khuyên, góp ý quý báu và bổ ích. Từ đó bài luận văn của em đã trở nên hồn thiện
hơn.
Bên cạnh đó, nhóm cũng xin gửi lời cảm ơn đến các anh chị, bạn bè đã cùng góp ý đến
khố luận của nhóm.
Trong suốt q trình thực hiện khố luận, do quy mơ của sản phẩm khá lớn so với các
đồ án thông thường khác, với thời gian và vốn kiến thức vẫn còn nhiều hạn chế, chắc
chắn khó tránh khỏi những sai sót khơng mong muốn. Chúng em rất mong nhận được
sử góp ý chân thành từ phía thầy cơ và các 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..........................................................................................1
CHƯƠNG 1.TỔNG QUAN.......................................................................................2
1.1. Giới thiệu/Lí do chọn đề tài .............................................................................2
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 hiện...................................................................................12
1.6. Mô tả tính năng ..............................................................................................13
CHƯƠNG 2.CƠ SỞ LÝ THUYẾT..........................................................................15
2.1. Thống kê chỉ số TF-IDF (Term frequency – inverse document frequency) và
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à vấn đề các tài nguyên đang được nhiều sự chú
ý ........................25

CHƯƠNG

3.TỔNG

QUAN

CÔNG

NGHỆ ............................................................28 3.1. Tổng quan về 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 4.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.
cầu

Xác

định



phân

.......................................................................40

tích
4.2.

Đặc

yêu
tả

Use-


case ..............................................................................................44 4.3. Thiết kế
cơ sở dữ liệu.....................................................................................78 4.4. Thiết kế
kiến trúc hệ thống...........................................................................116 4.5. Thiết kế


giao diện và xử lý...........................................................................122 4.6. Triển
khai hệ thống ......................................................................................130
CHƯƠNG 5.KẾT LUẬN.......................................................................................133
5.1. Kết quả đạt được ..........................................................................................133
5.2. Thuận lợi và 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 được đơ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 cùng số lượt vote nhưng mới hơn sẽ được xếp hạng cao
hơn .................................................................................................................................2
6 Hình 2-8 So sánh giữa có sử dụng logarithm (bên trái) và khơng sử dụng logarithm
(bên
phải) .......................................................................................................................26
Hình 2-9 So sánh giữa điểm hot của tài nguyên ít downvote (trái) và tài nguyên nhiều
downvote (phải) ............................................................................................................27
Hình 3-1 Sơ đồ hoạt động của Spring Boot .................................................................29
Hình 3-2 Sơ đồ hoạt động của Spring Security và Filter Chain ..................................31
Hình 3-3 Cơ chế authorization dựa trên voting của Spring Security ...........................32
Hình 3-4 Sequence Flow cho từng method call được bảo vệ bởi Access Control của

Spring Security .............................................................................................................32
Hình 3-5 Sơ đồ kiến trúc Hibernate ORM .................................................................33
Hình 3-6 Logo của keycloak ......................................................................................33
Hình 3-7 Sơ đồ cơ chế hoạt động của Keycloak............................................................35
Hình 3-8 Logo của 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 các state nếu sử dụng và 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 bài 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
bài 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 của
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ơ
đồ màn hình liên kết – người dùng khách. ............................................122 Hình 4-12
Sơ đồ màn hình liên kết – người dùng hệ thống.........................................125 Hình 4-13
Sơ đồ màn hình liên kết – quản trị hệ thống...............................................127 Hình 4-14
Deployment Diagram của hệ thống ............................................................130 Hình 5-1
Hình ảnh plugin Mathematical Formulas (Tesla) được chia sẻ trên CKEditor.
......................................................................................................................................13
4

Hình

5-2

Giao

(Tesla)........................................135

diện

Plugin
Hình

5-3

Mathematical
Màn


hình

Formulas
trang

chủ.......................................................................................136 Hình 5-4 Màn hình danh
sách bài 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 của một mơn học. ...........................................139 Hình 5-7 Giao
diện tính năng quick search..................................................................139 Hình 5-8 Màn
hình Tìm kiếm bài 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 bài viết.................................................................................142 Hình 5-11
Giao diện tính năng nhập cơng thức tốn học. ...........................................143 Hình 5-


12 Màn hình Tìm kiếm bài viêt bằng Tag. ......................................................144 Hình
5-13 Màn hình chi tiết bài 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 năng bình luận.....................................................................147
Hình 5-16 Giao diện màn hình quản lý bài viết...........................................................148
Hình

5-17

Màn

hình


duyệt

bài

viết. .............................................................................149 Hình 5-18 Màn hình quản lý
tố cáo bài 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 bài 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 năng
bình luận cho một bài tập. .........................................................154 Hình 5-23 Tính
năng thêm câu hỏi vào bài tập............................................................155

DANH MỤC BẢNG
Bảng 1-1 Tiêu chí đánh giá của các kênh thơng tin tự học phổ biến của sinh viên.........2
Bảng 1-2 Tiêu chí đánh giá của các kênh mạng xã hội, blog được dùng phổ biến .........5
Bảng 1-3 Tiêu chí đánh giá của các kênh thông tin chia sẻ tài liệu phổ biến..................7
Bảng 1-4 Tiêu chí đánh giá của các kênh làm bài tập phổ biến.......................................9
Bảng
thống

4-1

Danh

sách

các

..............................................................40


Actor
Bảng

4-2

Usecase...................................................................................40

trong
Danh
Bảng

hệ

sách

4-3

Đặc

cá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 47 Đặ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 về kho cá nhân................................................................54
Bảng 4-10 Đặc tả usecase Gợi ý bài viết. .....................................................................55
Bảng 4-11 Đặc tả usecase Xem bài viết.........................................................................55

Bảng

4-12

Đặc

tả

usecase

Quản



bài

viết




nhân. .....................................................56 Bảng 4-13 Đặc tả usecase Duyệt/từ chối bài
viết. .........................................................57 Bảng 4-14 Đặc tả usecase Sửa/xoá bài 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 về 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
Bảng 4-23 Đặc tả usecase Xem bài tập..........................................................................65
Bảng

4-24

Đặc

tả

usecase

Làm

bài

tập. .........................................................................66 Bảng 4-25 Đặc tả usecase Tạo ghi
chú trên bài tâp. ......................................................66 Bảng 4-26 Đặc tả usecase Tính
thời gian.......................................................................67 Bảng 4-27 Đặc tả usecase Đặt
cờ...................................................................................68 Bảng 4-28 Đặc tả usecase
Xem những kết quả lần trước. ............................................69 Bảng 4-29 Đặc tả usecase
Gửi báo cáo sai sót...............................................................69 Bảng 4-30 Đặc tả usecase
Nộp bài tập...........................................................................70 Bảng 4-31 Đặc tả usecase
Xem đáp án, lời giải chi tiết.................................................71 Bảng 4-32 Đặc tả usecase
Lưu kết quả người dùng.......................................................72 Bảng 4-33 Đặc tả usecase
Quản lý báo cáo sai sót. .......................................................72 Bảng 4-34 Đặc tả
usecase Thêm/sửa/xố bình luận. .....................................................73 Bảng 4-35 Đặc tả
usecase Thích bình luận....................................................................74 Bảng 4-36 Đặc tả
usecase Xem bài viết được đăng bởi người dùng. ............................75 Bảng 4-37 Đặc

tả usecase Đánh giá điểm uy tín............................................................75 Bảng 4-38
Đặc tả usecase Thống kê số bài viết/tài liệu đã đăng...................................76 Bảng 4-39
Bảng Activity ...............................................................................................79 Bảng 440 Bảng Announcement....................................................................................79 Bảng
4-41

Bảng

SubjectGroup

......................................................................................80


Bảng 4-42 Bảng SubjectFaculty.....................................................................................81
Bảng

4-43

Subject.................................................................................................81

Bảng
Bảng

4-44

Bảng Notification .........................................................................................82 Bảng 445 Bảng Tag ......................................................................................................83 Bảng
4-46 Bảng ReportReason......................................................................................83 Bảng
4-47

Bảng


Post......................................................................................................83

Bảng 4-48 Bảng UserPostLike.......................................................................................85
Bảng

4-49

Bảng

UserPostSave ......................................................................................85
Bảng 4-50 Bảng PostCategory.......................................................................................86
Bảng 4-51 Bảng PostReport...........................................................................................86
Bảng 4-52 Bảng PostReportReason...............................................................................87
Bảng

4-53

Bảng

UserPostReport ...................................................................................88 Bảng 4-54
Bảng PostView.............................................................................................88 Bảng 4-55
Bảng PostComment......................................................................................89 Bảng 4-56
Bảng UserPostCommentLike.......................................................................90 Bảng 4-57
Bảng PostCommentReport...........................................................................90 Bảng 4-58
Bảng PostCommentReportReason. ..............................................................91 Bảng 459 Bảng UserPostCommentReport ...................................................................91 Bảng
4-60 Bảng PostPostTag.........................................................................................92 Bảng
4-61

Bảng


HighlightPost.

.....................................................................................92

Bảng 4-62 Bảng Doc......................................................................................................93
Bảng

4-63

Bảng

DocCategory .......................................................................................94 Bảng 4-64
Bảng DocDocTag.........................................................................................95 Bảng 4-65
Bảng UserDocReaction ................................................................................95 Bảng 466 Bảng UserDocSave.......................................................................................96 Bảng
4-67
Bảng

Bảng

DocView

.............................................................................................96
4-68

Bảng


DocDownload .....................................................................................97 Bảng 4-69
Bảng DocFileUpload....................................................................................98 Bảng 4-70
Bảng DocReport...........................................................................................98 Bảng 4-71

Bảng DocReportReason ...............................................................................99 Bảng 472 Bảng UserDocReport .................................................................................100 Bảng
4-73 Bảng DocComment....................................................................................100 Bảng
4-74 Bảng UserDocCommentLike .....................................................................101
Bảng

4-75

Bảng

DocCommentReport .........................................................................102 Bảng 4-76
Bảng DocCommentReportReason .............................................................103
Bảng

4-77

UserDocCommentReport..................................................................103

Bảng
Bảng

4-78

Bảng ExerciseCategory ..............................................................................104 Bảng 479 Bảng ExerciseTopic ...................................................................................104 Bảng
4-80 Bảng Exercise.............................................................................................105 Bảng
4-81 Bảng ExerciseNote.....................................................................................106 Bảng
4-82 Bảng ExerciseReport..................................................................................106 Bảng
4-83 Bảng ExerciseReportReason ......................................................................107
Bảng

4-84


UserExerciseReport

..........................................................................108

Bảng
Bảng

4-85

Bảng ExerciseQuestion ..............................................................................108 Bảng 486 Bảng ExerciseAttempt................................................................................109 Bảng
4-87

Bảng

ExerciseAnswer

................................................................................110

Bảng 4-88 Bảng ExerciseComment.............................................................................110
Bảng

4-89

UserExerciseCommentLike

..............................................................111

Bảng
Bảng


4-90

Bảng ExerciseCommentReport..................................................................112 Bảng 4-91
Bảng ExerciseCommentReportReason. .....................................................113 Bảng 492 Bảng UserExerciseCommentReport ..........................................................113 Bảng
4-93

ExerciseExerciseTag

..................................................................................114

Bảng 4-94 Bảng UserWebsite......................................................................................114


Bảng

4-95

Bảng

danh

sách

các

Component

của


Front-

end .........................................118 Bảng 4-96 Bảng danh sách các Component của
Back-end..........................................120 Bảng 4-97 Bảng danh sách các màn hình với
quyền của người dùng khách...............123 Bảng 4-98 Bảng danh sách các màn hình với
quyền của người dùng hệ thống. .........125 Bảng 4-99 Sơ đồ màn hình liên kết – quản
trị hệ thống. .............................................128 Bảng 4-100 Mô tả Deployment Digram
của hệ thống.................................................130

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

Từ viết
tắt

Từ đầy đủ

Ý nghĩa

1

CNTT

Công nghệ
Thông tin

Công nghệ Thông tin.

2


SSO

Single Sign-on

Là cơ chế xác thực cho phép người
dùng chỉ sử dụng một ID và mật
khẩu mà có thể được xác thực ở
nhiều trang khác. VD
Google, Facebook,…

3

SV

Sinh viên

Sinh viên trong trường ĐHCNTT.

TĨM TẮT KHỐ LUẬN
Tự học là một trong những vấn đề quan trọng. Chương trình giảng dạy của trường Đại
học Công nghệ Thông tin là một trong những chương trình tốt, có hệ thống rõ ràng theo
từng mơn học. Tuy nhiên, để có thể tiến hành tự học trên khung chương trình, sinh viên
cần có nguồn tài ngun tự học. Và theo tình hình thực tế, nguồn tài nguyên tự học của
đa số sinh viên thường sử dụng bao gồm ba nguồn chính: Mạng xã hội (Facebook,…),
trang chia sẻ tài liệu (tailieu.vn, 123doc,…) và thông qua các bài tập, bài giảng được
thầy cô cung cấp hoặc các bạn tự chia sẻ với nhau. Các kênh chia sẻ tài liệu, kiến thức
học tập nêu trên đều là từng hệ thống rời rạc, tự phát, không được tổng hợp, phân nhóm,
gây khó khăn cho việc tự học của các bạn.
Nhằm cung cấp hệ thống hỗ trợ học tập tốt hơn 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ế và thử nghiệm,
bao gồm ba tính năng chính: chia sẻ bài viết, chia sẻ tài liệu và tính năng làm bài tập và
kiểm tra kết quả online. Trong đó:
− Tính năng chia sẻ bài viết sẽ giúp các bạn có thể tự do chia sẻ những kiến thức,
kinh nghiệm của mình đến các bạn khác.
− Tính năng chia sẻ tài liệu cho phép các bạn upload, download, chia sẻ những tài
liệu mình hiện đang có, đồng thời tổ chức theo mơn học, danh mục. − Tính năng
làm bài tập cho phép các bạn thực hiện bài tập và nhận lời giải chi tiết, được sắp
xếp theo môn học và từng chủ đề trong môn học đó.
− Ngồi ra có các tính năng khác như tính năng tính điểm uy tín của người dùng,
tính năng comment, tính năng tương tác, tính năng tìm kiếm, tính năng quản trị.
Kết quả cuối cùng của khố luận: Nhóm đã xây dựng một website hỗ trợ học tập với ba
tính năng chính nêu trên.

1

CHƯƠNG 1. TỔNG QUAN
1.1. Giới thiệu/Lí do chọn đề tài
Ở bậc đào tạo Đại học, với rất nhiều trường với nhiều chuyên ngành khác nhau, việc
tổng hợp tại liệu gặp khơng ít khó khăn. Thực trạng hiện nay, các nguồn tài liệu học tập
được đăng tải trên nhiều kênh rời rạc, trong đó phổ biến nhất là Mạng xã hội
(Facebook,…), các trang chia sẻ tài liệu (tailieu.vn, 123doc,…) và giáo trình được
giảng viên cung cấp. Sinh viên gặp rất nhiều khó khăn khi tìm kiếm tài nguyên học tập.
Với từng kênh thông tin, sau đây là bảng phân tích những tiêu chí đánh giá nhằm so
sánh và đánh giá về mức độ tiện dụng của từng kênh:
Bảng 1-1 Tiêu chí đánh giá của các kênh thơng tin tự học phổ biến của sinh viên


Tiêu chí đánh giá


Giáo trình
tài liệu,
website
mơn học

Mạng xã
hội, blog

Trang
chia sẻ
tài liệu

Hệ thống
đề xuất

Dễ dàng, thuận tiện trong
việc chia sẻ tài ngun học
tập

Khơng







Tài ngun học tập được
phân loại, gom nhóm


Khơng

Hạn chế





Dễ dàng, thuận tiện trong
việc tìm kiếm tài ngun
học tập

Khơng

Khơng





Được quản lý, lọc và duyệt
về tính chính xác trước khi
đăng tải

Tự đánh
giá và
nhận xét




Khơng



2
Hỗ trợ đánh giá độ tin cậy
của tài nguyên học tập
thông qua tương tác vote
của cộng đồng, điểm uy tín

Tự đánh
giá và
nhận xét

Hạn chế
(người
dùng tự
xem bình
luận để
đánh giá).

Khơng



Lĩnh vực chia sẻ tập
trung vào kiến thức
CNTT


Người
dùng tự
thu thập
thông tin

Hạn
chế
(tuỳ
vào
cài đặt của
người
dùng).

Khơng



Thời gian từ lúc cần tài
ngun học tập cho đến khi
tìm được tài ngun phù
hợp

Dài

Dài

Trung
bình

Ngắn


Có thể tham gia với vai trò
chủ động, giải bài tập và
nhận về phản hồi tự động

Khơng



Khơng




Chi phí sử dụng

Trả phí (tài
liệu mua)
hoặc miễn phí

Trả phí
hoặc miễn
phí

Trả phí
hoặc
miễn
phí

Miễn phí


Về phương pháp thủ cơng, chúng ta khơng có nhiều lựa chọn là phải đi đến nhiều địa
điểm khác nhau để tự tìm lọc và lựa chọn nguồn tài liệu. Như bảng so sánh bên trên,
chúng ta sẽ mất nhiều thời gian, cơng sức để tìm kiếm tài liệu, không được hỗ trợ đánh
giá độ tin cậy của tài liệu.
Về phương pháp sử dụng mạng xã hội để thực hiện chia sẻ tài liệu, bài học, bài sẽ dễ bị
trôi (bài không hiện trên trang duyệt của người dùng) và được thay bởi những tài liệu
mới, việc tìm kiếm lại tài liệu rất khó khăn vì mạng xã hội không được thiết kế để chia
sẻ kiến thức, tài liệu. Chúng ta lại không thể đánh giá được độ tin cậy của một tài liệu
nhất định, vì chúng ta khơng biết tác giả đã có những đóng góp gì, được cộng đồng
chấp nhận như thế nào,… .

3
Về phương pháp sử dụng hệ thống chia sẻ tài liệu của bên thứ ba như tailieu.vn,
123doc.vn, … (sau đây xin gọi tắt là trang CSTL). Cũng với nhược điểm như trên,
những trang CSTL này không thể đánh giá được mức độ uy tín của người chia sẻ, cũng
như hỗ trợ người dùng đánh giá độ tin cậy của tài liệu học tập. Lĩnh vực tài liệu được
chia sẻ trên các trang CSTL này lại quá rộng, quản trị viên khó có thể quản lý chính
xác độ tin cậy của các tài liệu, vì vậy nhiều tài liệu đã cũ và khơng được cập nhật, thậm
chí khơng chính xác nhưng vẫn cịn tồn tại trên hệ thống. Ngoài ra, để tải được tài liệu,
những trang chia sẻ tài liệu này đa phần đều thu về cho mình nhiều khoản phí khác
nhau, sẽ tạo rào cản tiếp cận cho một số lượng các bạn sinh viên.
Ngoài ra, sinh viên chủ yếu sử dụng các kênh tự học một cách thụ động. Trong trong
một số nghiên cứu chỉ ra nếu người học được tương tác với hệ thống hoặc người học
khác ở vai trò chủ động sẽ giúp cho việc học trở nên hiệu quả hơn 1, ví dụ thơng qua
việc giải bài tập và nhận về kết quả cũng như hướng dẫn giải ngay lập tức. Đây là tính


năng mà những kênh tự học trên chưa thể đáp ứng.
Sau khi thực hiện khảo sát thực tế những sản phẩm hiện có trên thị trường, đối với từng

hệ thống nhóm đã tiến hành liệt kê những tính năng quan trọng nhất đối với việc tự học
của sinh viên và tiến hành so sánh với các sản phẩm.
Với hệ thống bài viết: Chúng ta có các hệ thống được sử dụng phổ biến nhất trên thị
trường là Mạng xã hội (Facebook) và những trang mạng xã hội khác thuộc dạng blog
(Medium, Spiderum, Kipalog, Viblo) 2 3.

1

Regina Vollmeyer & Falko Rheinberg “A surprising effect of feedback on learning”, Elsevier, [online
document], 2005. Available:
[Accessed:
Feb 27, 2021].
2
Dựa trên kết quả xếp hạng (ranking) tại Việt Nam được cung cấp bởi Alexa.com và khảo sát. 3 Trong
phạm vi nghiên cứu của khoá luận, chỉ xét những trang có chia sẻ bài viết thuộc ngành CNTT.

4
Bảng 1-2 Tiêu chí đánh giá của các kênh mạng xã hội, blog được dùng phổ biến
Tiêu chí đánh giá Facebook

Medium Spiderum
Kipalog Viblo

Hệ
thống
đề xuất

Giao diện thân
thiện, dễ sử dụng














Hỗ trợ tìm kiếm
bài viết, sắp xếp
kết quả
theo
nhiều tiêu chí
(đang hot, nhiều
like, mới nhất)














Bài viết được sắp
xếp theo danh
mục, các nhóm
rõ ràng














Tự động liên kết,
gợi ý các tài liệu
và bài tập liên
quan

Khơng

Khơng

Khơng


Khơng

Khơng



Hỗ trợ đánh giá
chất lượng bài
đăng thơng qua
điểm uy tín của
người dùng

Khơng

Khơng

Khơng

Khơng

Khơng



Tương tác với
bài đăng (like,
lưu về kho cá
nhân).














Hỗ trợ bình
luận, tương tác
với bình luận
(like, trả
lời,..).














Hỗ trợ chèn
cơng thức tốn
học,
highlight code

Khơng

Khơng

Khơng

Khơng

Khơng



5
trong phần bình
luận
Hỗ trợ tố cáo
bài viết, bình
luận vi phạm














Đăng tải bài viết
dễ dàng













Giao diện soạn
bài có cơng cụ
GUI hỗ trợ định
dạng

Hạn chế












Hỗ trợ thêm
biểu thức tốn

Khơng

Khơng

Khơng

Khơng

Khơng




học
Hỗ trợ highlight
code các ngơn
ngữ lập trình
phổ biến


Khơng

Hạn
chế
(phải
dùng
bên thứ
ba).

Khơng



Có thể hẹn lịch
đăng bài viết





Khơng

Khơng

Hỗ trợ tagging
cho bài viết










Chi phí sử dụng

Miễn phí

Miễn
phí
(một
phần
nội
dung
sẽ
tốn phí)

Miễn phí

Miễn
phí



Khơng

Miễn
phí






Miễn
phí

Nhìn chung, các trang chia sẻ kiến thức trên hầu hết đều đã đáp ứng tốt nhu cầu về mặt
tổ chức tài ngun, và có nhiều cơng cụ hỗ trợ trong việc soạn thảo bài viết. Tương tác
người dùng cũng được hoàn thiện. Tuy nhiên, phần lớn các trang đều chưa hỗ trợ tốt
cho việc chia sẻ kiến thức các môn học đặc thù như các môn về tốn, các mơn lập
trình.

6
Với hệ thống tài liệu: Hiện tại quen thuộc nhất với các bạn sinh viên bao gồm ba nhóm
chính: Trang chia sẻ tài liệu trong nước, trang chia sẻ tài liệu nước ngoài, và trang chia
sẻ tài liệu chuyên ngành CNTT. Sau đây là một số trang nổi tiếng và được sử dụng
nhiều nhất bởi các bạn sinh viên Đại học Công nghệ Thông tin 4 5.
Trang chia sẻ tài liệu trong nước là 123doc, tailieu.vn. Đối với trang chia sẻ nước ngoài
là coursehero. Về các trang chia sẻ tài liệu dành riêng cho lĩnh vực CNTT:


cuuduongthancong.com, hoctap.suctremmt.com.
Bảng so sánh các tính năng của các hệ thống chia sẻ tài liệu đang trên thị trường và hệ
thống đề xuất:
Bảng 1-3 Tiêu chí đánh giá của các kênh thơng tin chia sẻ tài liệu phổ biến
Tiêu chí đánh giá

Trang chia
sẻ tài liệu

trong nước

Trang
chia sẻ
tài liệu
nước ngoài

Trang
chia sẻ
tài liệu
CNTT

Hệ
thống
đề
xuất

Giao diện thân thiện, dễ
sử dụng









Hỗ trợ tìm kiếm tài liệu,
sắp xếp theo nhiều tiêu

chí









Hỗ trợ tương tác
(like/dislike), cho phép
lưu về kho tài liệu cá
nhân





Khơng



Hỗ trợ đánh giá chất
lượng tài liệu thơng qua
điểm uy tín của người
đăng

Khơng




Khơng



4

Dựa trên kết quả xếp hạng (ranking) tại Việt Nam được cung cấp bởi Alexa.com và khảo sát. 5 Trong phạm vi
nghiên cứu của khoá luận, chỉ xét những trang chia sẻ tài liệu chứa tài liệu của Đại học và thuộc ngành CNTT.

7
Tự động liên kết tài liệu
và các bài viết, bài tập
liên quan

Khơng



Khơng



Hỗ trợ bình luận, tương
tác với bình luận (like,
trả lời)

Khơng (rất ít
trang

cho
phép
bình
luận

tương tác với
bình luận)



Khơng




Hỗ trợ tố cáo tài liệu,
bình luận vi phạm





Khơng



Đăng tải và chia sẻ tài
liệu dễ dàng






Khơng



Có thể hẹn lịch đăng
tải tài liệu

Khơng

Khơng

Khơng







Khơng



Trả phí/Miễn
phí

Trả phí


Miễn phí

Hỗ trợ tagging cho tài liệu
Chi phí sử dụng

Miễn phí

Đối với những trang chia sẻ tài liệu trong nước, hầu hết đều có quá nhiều lĩnh vực và
chưa hỗ trợ dự đoán độ tin cậy tài liệu thơng qua điểm uy tín của người dùng.
Đối với các trang chia sẻ tài liệu nước ngồi, các tính năng tương đối đầy đủ, tuy nhiên
vấn đề chi phí khi sử dụng đã tạo rào cản đến một số bạn sinh viên.
Với những trang chuyên chia sẻ tài liệu CNTT hiện có, chức năng vẫn cịn rất hạn chế,
chủ yếu là trang chỉ xem, người dùng chưa thể tương tác nhiều với hệ thống, chưa thể
đóng góp tài liệu đến hệ thống.

8
Với hệ thống bài tập: Phổ biến nhất với các bạn sinh viên chúng ta có GeeksForGeeks,
Sanfoundry và gần đây nhất là trang Tracnghiem.net 6 7.
Sau đây là bảng so sánh các tính năng của các hệ thống nêu trên và hệ thống đề
xuất: Bảng 1-4 Tiêu chí đánh giá của các kênh làm bài tập phổ biến


Tiêu chí đánh giá

GeeksForGeeks Sanfoundry

Tracnghie
m. net


Hệ
thống
đề
xuất

Giao diện thân thiện,
dễ sử dụng









Sắp xếp mơn học
theo từng mơn, từng
chủ đề phù hợp
chương trình đào
tạo tại UIT

Hạn chế

Hạn chế

Khơng




Phân loại bài tập theo
từng chủ đề phù hợp
với chủ đề của từng
mơn học

Khơng

Khơng

Khơng



Lưu kết quả thực
hiện bài tập của
người dùng

Khơng

Khơng

Khơng



Tự động gợi ý các
bài viết, tài liệu liên
quan đến bài tập

Khơng


Khơng

Khơng



Hỗ trợ đánh giá độ
tin cậy của tài liệu
thơng qua điểm uy
tín của người đóng
góp

Khơng

Khơng

Khơng



6

Dựa trên kết quả xếp hạng (ranking) tại Việt Nam được cung cấp bởi Alexa.com, kết quả tìm kiếm tại Google
và khảo sát.
7
Trong phạm vi nghiên cứu của khoá luận, chỉ xét những trang cho phép thực hiện bài tập chứa tài nguyên thuộc
ngành CNTT.

9

Cho phép thực hiện
ghi chú trực tiếp trên
từng bài tập

Khơng

Khơng

Khơng




Tính năng quản lý
phản hồi khi người
dùng
muốn đề xuất cải
thiện bài tập

Khơng

Khơng

Khơng



Đề xuất thời gian
làm bài gợi ý cho
từng bài tập


Khơng

Khơng





Cơng cụ tính giờ
làm bài tập

Khơng

Khơng





Cho phép người dùng
tự chọn thời gian làm
bài phù hợp với mình

Khơng

Khơng

Khơng




Kiểm tra kết quả,
tính điểm và trả về
đáp án



Khơng





Giải thích chi tiết
cho từng câu hỏi









Hỗ trợ format cơng
thức tốn học,
highlight code










Cho phép bình
luận, thảo luận
trên bài tập



Khơng

Khơng



Hỗ trợ cơng thức
tốn học, highlight
code
trong phần bình luận

Khơng

Khơng

Khơng




Chi phí sử dụng

Miễn phí

Miễn phí

Miễn phí

Miễn
phí

Những hệ thống trên hiện tại đều được hiện thực ở mức độ tương đối cơ bản, chưa hỗ
trợ sự tương tác của người dùng như lưu kết quả thực hiện, bình luận, báo cáo những
câu


10
hỏi khơng chính xác. Ngồi ra, nếu người dùng muốn thực hiện tính giờ, hoặc lưu lại
note cho việc ơn tập đối với từng bài tập, thì những hệ thống trên chưa thể đáp ứng.
Người dùng không thể tương tác nhiều với hệ thống mà chỉ có thể thực hiện làm bài tập.
Nhận thấy nhu cầu có nguồn tài liệu học tập tổng hợp, đáp ứng tốt hơn cầu tự học của
sinh viên, thơng qua khố luận tốt nghiệp này nhóm đề xuất xây dựng một hệ thống hỗ
trợ cho việc tự học của sinh viên Đại học Công nghệ Thông tin, với tên đề tài là “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 sẽ đóng vai
trị là điểm tập trung tài nguyên nhằm bổ trợ cho chương trình khung của trường, giúp
sinh viên có một nơi tập trung để tìm được những nguồn tài nguyên học tập phù hợp
cho mình.
1.2. Mục tiêu

Từ những phân tích trên, nhóm thực hiện đề xuất xây dựng một website hỗ trợ học tập
cho sinh viên, bao gồm ba tính năng chính: Tính năng chia sẻ bài viết, tính năng chia sẻ
tài liệu và tính năng làm bài tập. Với mục tiêu thực hiện của đề tài:
− Kế thừa những tính năng và trải nghiệm người dùng đang thực hiện tốt trên các
trang mạng xã hội, blog phổ biến, đồng thời hỗ trợ thêm cơng cụ nhập cơng thức
tốn học, cơng cụ highlight code, và tự động gợi ý, liên kết các tài liệu và bài tập
liên quan đến bài viết.
− Kế thừa những điểm mạnh của các hệ thống chia sẻ tài liệu trên thị trường như sự
tiện dụng, và đồng thời tăng sự tương tác giữa người dùng và hệ thống, thông
qua các tính năng đánh giá tài nguyên học tập, điểm bình luận, điểm uy tín.
− Phát triển hệ thống làm bài tập, cho phép người dùng thực hiện bài tập, trả về kết
quả ngay lập tức và hướng dẫn giải chi tiết cho từng câu, hỗ trợ lưu lại kết quả,
cho phép báo cáo những bài tập với lời giải chưa chính xác.

11
1.3. Phạm vi


− Đối tượng: Sinh viên trường Đại học Công nghệ Thơng tin và sinh viên các
trường khác có quan tâm đến việc tự học kiến thức CNTT.
− Môi trường sử dụng: Bất kì thiết bị nào hỗ trợ trình duyệt Web hỗ trợ Javascript
ES6, HTML5 và có thể truy cập Internet.
1.4. Nội dung nghiên cứu
− Nghiên cứu, tìm hiểu về cơng nghệ Spring, Hibernate và ReactJS. Tìm hiểu
những best practices tương ứng với những công nghệ này và áp dụng thực tế. −
Nghiên cứu và áp dụng kĩ thuật nâng cao hiệu suất của hệ thống khi số lượng người
dùng tăng (CDN).
− Nghiên cứu các quy tắc thiết kế nhằm bảo mật dữ liệu và bảo vệ hệ thống khỏi
sự tấn cơng từ các tác nhân bên ngồi (user input validation).
− Nâng cao và củng cố kĩ năng xây dựng một hệ thống chạy thực tế với quy mô

vừa và nhỏ.
− Những công nghệ được sử dụng: Authorization server (Keycloak), Back-end
(Spring MVC, Hibernate, PostgreSQL), Front-end (ReactJS).
1.5. Phương pháp thực hiện
Thực hiện đề tài theo các bước:
− Phân tích đề tài: Tìm hiểu những khó khăn hạn chế việc tự học của sinh viên,
đồng thời đề xuất giải pháp dưới dạng hệ thống tự động nhằm giúp việc tự học
diễn ra hiệu quả hơn.
− Liệt kê các khó khăn trong quá trình tự học và giải pháp.
− Tham khảo một số hệ thống tương tự ở nhiều trang Web khác, tìm hiểu điểm
mạnh và hạn chế.
− Phân tích các yêu cầu đã thu thập được.
− Thiết kế cơ bản các yêu cầu.

12
− Nghiên cứu công nghệ để áp dụng.
− Phát triển sản phẩm qua các giai đoạn, đồng thời nhận ý kiến phản hồi.


− Kiểm thử và hồn thiện.
− Cài đặt mơi trường để triển khai và chạy thử nghiệm, sau đó là chạy thực tế hệ
thống.
− Triển khai và thiết kế hệ thống một cách chun nghiệp, tối đa hố tính tái sử
dụng, tính bảo trì của hệ thống.
1.6. Mơ tả tính năng
Hệ thống sẽ bao gồm ba tính năng chính: Tính năng chia sẻ bài viết, tính năng chia sẻ
tài liệu và tính năng giải bài tập. Ngồi ra, hệ thống cịn có các tính năng khác: Đánh
giá điểm uy tín của người dùng, tính năng comment, tính năng tương tác, tính năng tìm
kiếm, tính năng quản trị.
Đối với vai trị là người dùng (khách) truy cập đến hệ thống:

− Tính năng bài viết, người dùng có thể thực hiện tìm kiếm bài viết (sắp xếp, lọc
theo nhiều tiêu chí), xem bài viết theo từng danh mục, xem các tài liệu và bài tập
được tự động gợi ý dựa trên bài viết, tương tác với bài viết (like, tố cáo bài viết,
lưu về kho cá nhân), bình luận, tương tác với bình luận (like, tố cáo bình luận, trả
lời), đăng tải bài viết, nhập cơng thức tốn học, highlight code, hẹn lịch đăng bài
viết, tagging và phân loại bài viết.
− Tính năng tài liệu, cho phép người dùng tìm tài liệu theo môn học và/hoặc theo
chủ đề, sắp xếp tài liệu theo nhiều tiêu chí (đang trending, đang hot, tài liệu được
đánh giá tốt nhất), tương tác với tài liệu (like/dislike, lưu về kho), tố cáo tài liệu,
đăng tải tài liệu, tải về tài liệu, đăng tải bình luận, hẹn lịch đăng tải tài liệu, dán
nhãn (tagging) cho tài liệu.
− Tính năng thực hiện bài tập, cho phép người dùng làm bài tập và nhận đáp án và
lời giải chi tiết thông qua hệ thống trắc nghiệm. Bài tập được sắp xếp theo từng

13
môn học, chủ đề của môn học phù hợp với chương trình đào tạo tại UIT. Đối với
người dùng đã đăng nhập, hệ thống hỗ trợ lưu lượt thực hiện của người dùng và
điểm số của lượt thực hiện đó. Người dùng có thể thực hiện thảo luận với tính


năng bình luận, hoặc thực hiện tố cáo bài tập chưa chính xác thơng qua chức
năng report. Các tính năng khác bao gồm: Gợi ý thời gian giải bài tập, cơng cụ
tính giờ
(stopwatch/countdown), ghi chú riêng cho từng bài tập, gợi ý tài liệu, bài viết
liên quan, giải đáp chi tiết.
− Các tính năng khác: Tính năng điểm uy tín, tính năng quản lý thơng tin cá nhân.
Đối với vai trò là quản trị viên (admin) hệ thống:
− Quản lý bài viết: Sau khi người dùng đăng tải bài viết, admin có thể duyệt hoặc
từ chối bài viết, gửi lý do từ chối bài viết đến người dùng, thực hiện quản lý
những tố cáo của bài viết và bình luận trong bài viết. Admin cũng có thể thực

hiện chỉnh sửa bài viết của người dùng.
− Quản lý tài liệu: Sau khi người dùng đăng tải tài liệu, admin có thể duyệt hoặc
từ chối tài liệu, gửi lý do từ chối tài liệu đến người dùng, thực hiện quản lý
những tố cáo của tài liệu và bình luận trong tài liệu. Admin cũng có thể thực
hiện chỉnh sửa tài liệu của người dùng.
− Quản lý bài tập: Admin có thể thực hiện quản lý những tố cáo của người dùng
về nội dung của bài tập. Đồng thời, có thể thực hiện quản lý những tố cáo của
người dùng đối với bình luận trong bài tập.
− Quản lý người dùng: Ứng dụng được xây dựng dựa trên cơ chế quản lý truy cập
theo quyền (permission-based). Admin có thể thực hiện phân quyền
(permission), có thể tạo mới một roles và gán cán permission vào role (dùng hệ
thống Keycloak).

14

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Trong những ứng dụng thực tế, có hai vấn đề quan trọng nhất đối với một hệ thống mà
chúng ta cần nghiên cứu và tối ưu: Tìm kiếm và sắp xếp thơng tin. Về vấn đề tìm kiếm,


×