HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ SINH VIÊN NĂM 2021 Tên đề tài tiếng Việt: XÂY DỰNG ỨNG DỤNG HỖ TRỢ KẾT NỐI VÀ HỖ TRỢ TRONG HỌC TẬ
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ SINH VIÊN NĂM 2021
Tên đề tài tiếng Việt:
XÂY DỰNG ỨNG DỤNG HỖ TRỢ KẾT NỐI VÀ HỖ TRỢ TRONG HỌC TẬP
Tên đề tài tiếng Anh:
BUILDING AN APPLICATION FOR CONNECTING AND SUPPORTING IN
LEARNING
Khoa/ Bộ môn: Công nghệ phần mềm
Thời gian thực hiện: 6 tháng
Cán bộ hướng dẫn: ThS Lê Thanh Trọng
Tham gia thực hiện
TT Họ và tên Chịu trách nhiệm Điện thoại Email
Trang 2ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Ngày nhận hồ sơ
Mã số đề tài
(Do CQ quản lý ghi)
BÁO CÁO TỔNG KẾT
Tên đề tài tiếng Việt:
XÂY DỰNG ỨNG DỤNG HỖ TRỢ KẾT NỐI VÀ HỖ TRỢ TRONG HỌC TẬP
Tên đề tài tiếng Anh:
BUILDING AN APPLICATION FOR CONNECTING AND SUPPORTING IN
Trang 3THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung:
- Tên đề tài: Xây dựng ứng dụng hỗ trợ kết nối và hỗ trợ trong học tập
- Mã số:
- Chủ nhiệm: Lê Quốc Thắng - 17520156
- Thành viên tham gia: Đặng Thành Quyên - 17520963
- Cơ quan chủ trì: Trường Đại học Công nghệ Thông tin
- Thời gian thực hiện: 6 tháng
4 Tóm tắt kết quả nghiên cứu:
- Xây dựng được ứng dụng đáp ứng các nhu cầu của người dùng trong quá trình học tập, chia sẻ, hỗ trợ lẫn nhau
5 Tên sản phẩm: Ứng dụng kết nối, hỗ trợ học tập CoStudy
6 Hiệu quả, phương thức chuyển giao kết quả nghiên cứu và khả năng áp dụng:
- Hiệu quả: Ứng dụng đã hoàn thiện đầy đủ các chức năng, đáp ứng mục tiêu đề ra
- Phương thức chuyển giao kết quả nghiên cứu: Bàn giao kết quả khảo sát, mã nguồn cho cơ quan chủ trì
- Khả năng áp dụng: Ứng dụng có thể đóng vai trò là một kênh giao tiếp, kết nối, hỗ trợ trong học tập của sinh viên ĐHQG TP.HCM
Trang 47 Hình ảnh, sơ đồ minh họa chính
Cơ quan Chủ trì
(ký, họ và tên, đóng dấu)
Chủ nhiệm đề tài
(ký, họ và tên)
Trang 5
MỤC LỤC Chương 1 TỔNG QUAN ĐỀ TÀI 3
1.1 Giới thiệu đề tài 3
1.2 Lý do chọn đề tài 4
1.3 Hiện trạng bài toán 4
1.3.1 Các ứng dụng liên quan 7
1.3.1.1 Diễn đàn của sinh viên trường 7
1.3.1.2 Trang “Hoidap247” 8
1.3.1.3 Các hội nhóm trên mạng xã hội 9
1.3.1.4 Trang “Quora.com” 10
1.3.1.5 Trang “StackOverFlow.com” 10
1.3.2 Đánh giá hiện trạng và hướng giải quyết 11
1.3.2.1 Đánh giá hiện trạng 11
1.3.2.2 Hướng giải quyết 12
1.4 Mục tiêu 13
1.5 Phạm vi đề tài 13
1.6 Phương pháp thực hiện 14
1.7 Ý nghĩa thực tiễn 15
1.8 Kết quả dự kiến 15
Chương 2 PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG 16
2.1 Phân tích yêu cầu hệ thống 16
2.1.1 Phân tích yêu cầu chức năng 16
Trang 62.1.1.1 Yêu cầu lưu trữ 16
2.1.1.2 Yêu cầu tính năng 16
2.1.2 Yêu cầu phi chức năng 17
2.1.3 Phân tích yêu cầu người dùng 17
2.1.3.1 Mô hình use case toàn hệ thống 19
2.1.3.2 Danh sách các Actors và use case tương ứng 20
2.1.3.3 Đặc tả một số use case 22
2.2 Phân tích thiết kế hệ thống 38
2.2.1 Thiết kế xử lý 38
2.2.1.1 Lược đồ xử lí thao tác đăng kí 39
2.2.1.2 Lược đồ xử lí thao tác đăng bài 40
2.2.1.3 Lược đồ xử lí thao tác trả lời (bình luận) 42
2.2.1.4 Lược đồ xử lí thao tác đánh giá bài đăng 43
2.2.1.5 Lược đồ xử lí thao tác báo cáo vi phạm 44
2.2.1.6 Lược đồ xử lí thao tác nhắn tin 45
2.2.2 Thiết kế cơ sở dữ liệu 46
2.2.2.1 Lược đồ cơ sở dữ liệu 46
2.2.2.2 Mô tả các bảng dữ liệu 49
2.2.3 Thiết kế kiến trúc hệ thống 63
2.2.3.1 Kiến trúc tổng thể hệ thống 63
2.2.3.2 Kiến trúc ứng dụng di động 64
2.2.4 Thiết kế giao diện 64
2.2.4.1 Danh sách màn hình 64
2.2.4.2 Màn hình một số giao diện 68
Trang 72.3 Kiến thức nền tảng và công nghệ sử dụng 79
2.3.1 Kiến thức nền tảng 79
2.3.1.1 Json Web Token 79
2.3.2 Công nghệ sử dụng 80
2.3.2.1 .NET Core 80
2.3.2.2 Application Programming Interface (API) 81
2.3.2.3 React Native 82
2.3.2.4 MongoDB 87
2.3.2.5 Firebase Cloud Messaging 89
2.3.2.6 Azure App Service 90
2.3.2.7 SMTP 91
2.3.2.8 ConnectyCube Calling API 91
2.4 Triển khai hệ thống 92
2.4.1 Máy chủ 92
2.4.2 Trang dành cho quản trị viên 96
2.4.3 Ứng dụng di động 96
Chương 3 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 97
3.1 Kết quả đạt được 97
3.2 Thuận lợi và khó khăn 98
3.2.1 Thuận lợi 98
3.2.2 Khó khăn 98
3.3 Hướng phát triển 98
TÀI LIỆU THAM KHẢO 100
Trang 8DANH MỤC HÌNH ẢNH
Ảnh 1.1: Nhóm học tập trên mạng xã hội 3
Ảnh 1.2: Một buổi chia sẻ kiến thức trong trường đại học 3
Ảnh 1.3: Ban học tập Công nghệ Phần Mềm 5
Ảnh 1.4: Diễn đàn chia sẻ của sinh viên tại Đại học Công nghệ Thông tin 5
Ảnh 1.5: Giải pháp được chọn của các bạn sinh viên khi giải đáp thắc mắc 6
Ảnh 1.6: Phương tiện mà các bạn chọn sử dụng 6
Ảnh 1.7: Diễn đàn của sinh viên 7
Ảnh 1.8: Logo Hoidap247 8
Ảnh 1.9: Ban học tập Công nghệ phần mềm 9
Ảnh 1.10: Logo Quora 10
Ảnh 1.11: Logo Stackoverflow 10
Ảnh 1.12: Kết quả khảo sát chức năng 12
Ảnh 1.13: 100% Các bạn sinh viên đồng ý sự cần thiết của ứng dụng này 12
Ảnh 2.1: Sơ đồ phân rã chức năng 18
Ảnh 2.2: Sơ đồ use case tổng quát 19
Ảnh 2.3: Sơ đồ use case tổng quát (Admin) 20
Ảnh 2.4: Use case đăng kí 22
Ảnh 2.5: Use case quản lý hướng dẫn 31
Ảnh 2.6: Use case quản lý liên lạc 33
Ảnh 2.7: Use case quản lý newsfeed 34
Ảnh 2.8: Use case quản lý xếp hạng 35
Ảnh 2.9: Lược đồ tuần tự cho thao tác đăng kí 39
Ảnh 2.10: Lược đồ tuần tự cho thao tác đăng bài 40
Trang 9Ảnh 2.11: Lược đồ tuần tự cho thao tác trả lời 42
Ảnh 2.12: Lược đồ tuần tự cho thao tác đánh giá bài đăng 43
Ảnh 2.13: Lược đồ tuần tự cho thao tác báo cáo vi phạm 44
Ảnh 2.14: Lược đồ tuần tự cho thao tác nhắn tin 45
Ảnh 2.15: Lược đồ Cơ sở dữ liệu 47
Ảnh 2.16: Sơ đồ hệ thống 63
Ảnh 2.17: Kiến trúc ứng dụng di động 64
Ảnh 2.18: Màn hình “Đăng kí” – 1 69
Ảnh 2.19: Màn hình “Đăng kí “- 2 69
Ảnh 2.20: Màn hình “Đăng nhập” 69
Ảnh 2.21: Màn hình “Bảng tin” 69
Ảnh 2.22: Màn hình “Bài viết đã lưu” 70
Ảnh 2.23: Màn hình chi tiết bài viết 70
Ảnh 2.24: Màn hình “Bình luận” 70
Ảnh 2.25: Màn hình “Báo cáo bài viết” 70
Ảnh 2.26: Màn hình “Tạo bài đăng” 71
Ảnh 2.27: Màn hình “Thông tin cá nhân” 71
Ảnh 2.28: Màn hình “Chỉnh sửa thông tin” 71
Ảnh 2.29:Màn hình “Danh sách lĩnh vực cá nhân” 71
Ảnh 2.30: Màn hình “Đang theo dõi” 72
Ảnh 2.31: Màn hình “Người theo dõi” 72
Ảnh 2.32: Màn hình “Nhắn tin” 72
Ảnh 2.33: Màn hình “Gọi video” 72
Ảnh 2.34: Màn hình “Thông báo” 73
Ảnh 2.35: Màn hình “Tìm kiếm bài viết” – 1 73
Ảnh 2.36: Màn hình “Tìm kiếm bài viết” - 2 73
Ảnh 2.37: Màn hình “Tìm kiếm người dùng” 73
Ảnh 2.38: Màn hình “Xếp hạng” 74
Ảnh 2.39: Màn hình "Tìm quanh đây" 74
Trang 10Ảnh 2.40: Màn hình "Admin - Chi tiết nhóm lĩnh vực" 75
Ảnh 2.41: Màn hình "Admin - Chi tiết tài khoản" 75
Ảnh 2.42: Màn hình "Admin - Danh mục cấp độ" 76
Ảnh 2.43: Màn hình "Admin - Danh mục lĩnh vực" 76
Ảnh 2.44: Màn hình "Admin - Danh sách bài viết" 77
Ảnh 2.45: Màn hình "Danh sách báo cáo" 77
Ảnh 2.46: Màn hình "Admin - Danh sách người dùng" 78
Ảnh 2.47: Màn hình "Admin - Danh sách nhóm lĩnh vực" 78
Ảnh 2.48: Kết cấu của Json Web Token 79
Ảnh 2.49: Logo NET Core 80
Ảnh 2.50: Cấu trúc của ứng dụng React Native 82
Ảnh 2.51: React Redux 84
Ảnh 2.52: Nguyên lý hoạt động của Redux 85
Ảnh 2.53: React Native tương thích cả Android và IOS 86
Ảnh 2.54: React Native được chọn nhiều bởi các tập đoàn công nghệ 86
Ảnh 2.55: Logo Mongo DB 87
Ảnh 2.56: Kiến trúc FCM 90
Ảnh 2.57: Logo Azure App Service 90
Ảnh 2.58: Hoạt động của giao thức SMTP 91
Ảnh 2.59: Thư viện ConnectyCube 92
Ảnh 2.60: Kết quả build mã nguồn máy chủ 93
Ảnh 2.61: Giao diện tạo website của IIS Manager 94
Ảnh 2.62: URL cung cấp bởi IIS Manager 95
Ảnh 2.63: Việc thực hiện truy vết có thể ảnh hưởng khả năng tìm ra và khắc phục lỗi 95
Trang 11DANH MỤC BẢNG
Bảng 2.1: Danh sách các actors và use case tương ứng 22
Bảng 2.2: Đặc tả use case đăng kí 23
Bảng 2.3: Đặc tả use case đăng nhập 24
Bảng 2.4: Đặc tả use case cập nhật thông tin tài khoản người dùng 25
Bảng 2.5: Đặc tả use case quản lý thông báo 25
Bảng 2.6: Đặc tả use case quản lý theo dõi 26
Bảng 2.7: Đặc tả use case đăng bài 27
Bảng 2.8: Đặc tả use case sửa bài đăng 28
Bảng 2.9: Đặc tả use case tìm kiếm, lọc bài đăng 29
Bảng 2.10: Đặc tả use case đánh giá bài đăng 29
Bảng 2.11: Đặc tả use case quản lý danh sách bài đăng 30
Bảng 2.12: Đặc tả use case báo cáo bài đăng 30
Bảng 2.13: Đặc tả use case trả lời (bình luận) 32
Bảng 2.14: Đặc tả use case sửa trả lời 32
Bảng 2.15: Đặc tả use case báo cáo trả lời vi phạm 33
Bảng 2.16: Đặc tả use case quản lý liên lạc 34
Bảng 2.17: Đặc tả use case quản lý bài đăng 35
Bảng 2.18: Đặc tả use case quản lý xếp hạng 36
Bảng 2.19: Đặc tả use case quản lý người dùng 37
Bảng 2.20: Đặc tả use case quản lý bài đăng 37
Bảng 2.21: Đặc tả use case quản lý lĩnh vực 38
Bảng 2.22: Danh sách thuộc tính bảng account 50
Bảng 2.23: Danh sách thuộc tính bảng client_group 50
Bảng 2.24: Danh sách thuộc tính bảng comment 51
Bảng 2.25: Danh sách thuộc tính bảng conversation 51
Bảng 2.26: Danh sách thuộc tính bảng “downvote” 52
Bảng 2.27: Danh sách thuộc tính bảng external_login 52
Trang 12Bảng 2.28: Danh sách thuộc tính bảng fcm_info 53
Bảng 2.29: Danh sách thuộc tính bảng field 53
Bảng 2.30: Danh sách thuộc tính bảng follow 54
Bảng 2.31: Danh sách thuộc tính bảng level 54
Bảng 2.32: Danh sách thuộc tính bảng message_image 55
Bảng 2.33: Danh sách thuộc tính bảng message_text 56
Bảng 2.34: Danh sách thuôc tính bảng notification_detail 57
Bảng 2.35: Danh sách thuộc tính bảng notification_object 58
Bảng 2.36: Danh sách thuộc tính bảng object_level 58
Bảng 2.37: Danh sách thuộc tính bảng post 59
Bảng 2.38: Danh sách thuộc tính bảng reply_comment 60
Bảng 2.39: Danh sách thuộc tính bảng report 61
Bảng 2.40: Danh sách thuộc tính bảng upvote 62
Bảng 2.41: Danh sách thuộc tính bảng user 63
Bảng 2.42 : Danh sách màn hình 66
Bảng 2.43 : Danh sách màn hình Admin 68
Trang 13Giao diện lập trình ứng dụng Sử dụng để truy cập các phương thức trong hệ thống
7 UI User Interface Giao diện người dùng Là những gì
9 WWW Word Wide Web Mạng lưới thông tin toàn cầu
10 FCM Firebase Cloud
Messaging
Công nghệ gửi tin nhắn quan nền tảng đám mây cung cấp bởi Firebase
Trang 141
TÓM TẮT KHÓA LUẬN
Đề tài “Xây dựng ứng dụng hỗ trợ kết nối và hỗ trợ trong học tập” tập trung vào khảo sát, nghiên cứu và phân tích thực trạng hiện có của những sản phẩm có trước, cùng với sự áp dụng những công nghệ mới để xây dựng thành một ứng dụng
di động hoàn chỉnh Ứng dụng này có thể đáp ứng nhu cầu học hỏi, chia sẻ và hỗ trợ trong học tập của các bạn sinh viên
Đề tài mở đầu bằng việc khảo sát thực trạng, tìm hiểu những vấn đề còn tồn đọng của những sản phẩm có trước cần cải thiện Thêm vào đó là việc khảo sát sơ
bộ nhu cầu của người dùng Từ đó, mục tiêu của đề tài cũng như các chức năng được xác định rõ Bên cạnh việc phân tích nghiệp vụ của hệ thống, nhiều công nghệ mới cũng được khóa luận lựa chọn và áp dụng theo cách mà tác giả thấy phù hợp nhất
Vì các yêu cầu đã được phân tích rõ ràng và các tính năng ít thay đổi, chúng
em đã sử dụng mô hình thác nước trong việc xây dựng ứng dụng Các bản vẽ thiết
kế hệ thống, cơ sở dữ liệu, bản vẽ giao diện, danh sách các yêu cầu người dùng, sơ
đồ tuần tự là kết quả của quá trình trên Trong giai đoạn hiện thực các mô-đun của chương trình, client và server được phát triển song song với nhau, client được xây dựng bằng thư viện React Native trong khi server sử dụng thư viện NET Core Hai phần này được kết nối với nhau thông qua HTTP Request Khi vận hành, server và
cơ sở dữ liệu được triển khai trên VPS có hệ điều hành Windows Server, từ đó có thể được gọi bởi bất cứ thiết bị nào là client của ứng dụng với điều kiện có xác thực hợp lệ
Cuối cùng là phần trình bày những kết quả nghiên cứu cũng như quá trình thực hiện vào báo cáo, đưa ra kết luận cũng như tầm nhìn cho hệ thống trong tương lai
Trang 152
Nội dung khóa luận được trình bày trong 3 chương:
- Chương 01: Tổng quan đề tài
Giới thiệu sơ bộ về đề tài cũng như lý do thực hiện
Xác định mục tiêu, phạm vi đề tài Nếu lên hướng giải quyết của hiện trạng sẵn có
- Chương 02: Phân tích thiết kế và xây dựng ứng dụng
Phân tích yêu cầu, thiết kế, hiện thực và triển khai ứng dụng
- Chương 03: Kết luận và hướng phát triển
Những thuận lợi, khăn gặp phải trong quá trình nghiên cứu và phát triển đề tài Phát biểu tầm nhìn và hướng phát triển của ứng dụng trong tương lai
Trang 163
Chương 1 TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu đề tài
Kiến thức là gì? Kiến thức là những dữ kiện, thông tin hay kĩ năng có được nhờ trải nghiệm hoặc thông qua giáo dục Việc lĩnh hội kiến thức có nhiều cách khác nhau nhưng đều có chung mục đích là để hiểu biết rộng và phát triển hơn Chính vì thế, vai trò của kiến thức trong đời sống là hết sức quan trọng Có kiến thức con người
ta có thể vận dụng nó vào học tập cũng như công việc, nâng cao đời sống một cách hiệu quả
Tuy nhiên, những kiến thức ta biết cũng chỉ là hạt cát giữa sa mạc bao la Kiến thức vốn rất rộng, bản thân chúng ta không thể tự mình nắm bắt hết, vì vậy việc học hỏi kiến thức từ người khác để tự làm giàu cho mình là rất cần thiết và tất yếu, để có thể cùng nhau nắm bắt nhiều thông tin hơn, làm chủ kiến thức một cách triệt để hơn Chính vì lý do này, cộng với thời đại Internet phát triển, xu hướng chia sẻ kiến thức cũng diễn ra rất sôi nổi, cứ mỗi ngày trôi qua, lượng kiến thức được chia sẻ và tiếp nhận trên nền tảng giáo dục online, các mạng xã hội, thông qua các ứng dụng, các diễn đàn ngày càng nhiều Nhờ các nền tảng này, việc tự học song song với việc học
ở trường cũng trở nên dễ dàng hơn Vĩ mô là vậy, nhưng là sinh viên, chúng ta cần làm gì để bắt kịp xu hướng này để không bị bỏ lại phía sau trong cuộc đua làm chủ kiến thức? Chúng ta cần bắt đầu việc học hỏi và chia sẻ này càng sớm càng tốt, ngay từ khi còn ngồi trên ghế giảng đường
Ảnh 1.2: Nhóm học tập trên
mạng xã hội Ảnh 1.1: Một buổi chia sẻ kiến thức
trong trường đại học
Trang 174
Nắm bắt được nhu cầu này, đề tài khóa luận "Xây dựng ứng dụng hỗ trợ kết nối và
hỗ trợ trong học tập" được lên ý tưởng và thực hiện nhằm vào mục tiêu cung cấp một công cụ để sinh viên chúng ta có thể học hỏi, chia sẻ trong quá trình tự mình tiếp thu, học hỏi kiến thức
1.2 Lý do chọn đề tài
Thấu hiểu được nhu cầu kết nối và chia sẻ của sinh viên, có rất nhiều hội nhóm, diễn đàn được lập ra với mục tiêu trở thành công cụ giúp các bạn sinh viên chia sẻ, giải đáp thắc mắc Tuy nhiên, mỗi ứng dụng, mỗi công cụ đều có những ưu điểm rất đáng để sử dụng và nhược điểm cần khắc phục của riêng nó
Thêm vào đó, đối với một người mong muốn học hỏi và chia sẻ, sự mong muốn tìm thấy những vấn đề mình quan tâm hay nhận được thông báo về những bài viết mình chú ý đến cũng là một tính năng cần thiết nếu họ mong muốn phát triển bản thân ở lĩnh vực nhất định Ngoài ra, việc sàng lọc những bài viết gây nhiễu, không có thông tin hoặc cung cấp những kiến thức sai lệch cũng cần được xử lý triệt để bằng chức năng báo cáo hoặc xử lý vi phạm
Cảm thấy được sự cần thiết của việc đáp ứng nhu cầu này, khóa luận đã có ý tưởng xây dựng một ứng dụng thừa hưởng những chức năng trên Trong quá trình khảo sát
và lên ý tưởng cho đề tài này, khóa luận cũng đã tìm thấy nhiều sản phẩm có chức năng tương tự Với những chức năng tốt và cần thiết, tác giả sẻ tiếp thu và phát huy, với những mặt tiêu cực, khóa luận sẽ lấy làm kinh nghiệm và cải thiện trong quá trình thực hiện
1.3 Hiện trạng bài toán
Qua tìm hiểu về hiện trạng của đề tài này, khóa luận thấy sự cần thiết của một môi trường chia sẻ và hỗ trợ trong học tập là rất cần thiết, điển hình ngay tại trường Đại học Công nghệ Thông tin, một trường thành viên của Đại học Quốc gia TP.HCM, nhiều hội nhóm của sinh viên để giúp đỡ nhau trong học tập như Ban học tập Công
Trang 185
nghệ phần mềm1, Ban học tập Công nghệ thông tin, … cũng đã được lập ra, mặc dù trường đã có những diễn đàn đặc thù để chia sẻ kiến thức (nhưng giao diện không bắt mắt và không tiện dụng), tạo nên môi trường gần gũi nhằm giao tiếp, hỗ trợ sinh viên trong quá trình tự học tuy nhiên vẫn còn khá nhiều bất cập chưa được tối ưu cho nhu cầu chia sẻ
Ảnh 1.3: Ban học tập Công nghệ Phần Mềm
Ảnh 1.4: Diễn đàn chia sẻ của sinh viên tại Đại học Công nghệ Thông tin Theo một khảo sát do nhóm tự thực hiện, mẫu khảo sát gồm 188 sinh viên ngẫu nhiên ở khi đô thị Đại học Quốc gia Thành phố Hồ Chí Minh, có đến 88,3% số
1 Nguồn: Ban Học Tập Công Nghệ Phần Mềm - Ngôi Nhà Sẻ Chia | Facebook
Trang 196
lượng các bạn tham gia khảo sát chọn giải pháp đăng lên mạng xã hội hoặc hỏi bạn chung phòng, chung lớp, và phần lớn các bạn sẽ chú trọng sử dụng mạng xã hội như Facebook, Messenger… để thể hiện các thắc mắc của mình và tìm sự giúp đỡ
Ảnh 1.5: Giải pháp được chọn của các bạn sinh viên khi giải đáp thắc mắc
Ảnh 1.6: Phương tiện mà các bạn chọn sử dụng Như vậy, việc xây dựng một môi trường chú trọng vào việc chia sẻ những vấn đề chuyên môn trong cộng đồng các bạn sinh viên nói chung, những bạn trẻ nói riêng theo một cách hiện đại (sử dụng công nghệ, tăng tính khả chuyển, tính tiện lợi) là một nhiệm vụ cần thiết trong bối cảnh xã hội ngày càng chú trọng việc tự bồi dưỡng năng lực cá nhân, tự mình phát triển dẫn đến xã hội, đất nước phát triển
Trang 207
1.3.1 Các ứng dụng liên quan
Trong quá trình khảo sát đề tài, tác giả đã tìm thấy nhiều sản phẩm có những chức năng tương tự để đáp ứng mục tiêu chia sẻ, giải đáp thắc mắc Tuy nhiên các ứng dụng để có ưu điểm, nhược điểm khác nhau
1.3.1.1 Diễn đàn của sinh viên trường
Ảnh 1.7: Diễn đàn của sinh viên Diễn đàn của sinh viên là nơi trao đổi, giải đáp thắc mắc của sinh viên được vận hành bởi trường đại học đó
Trang 211 đến lớp 12 và các lĩnh vực khác ngoài chương trình THPT hoàn toàn miễn phí.” 3
Ưu điểm:
- Giao diện thân thiện, trực quan
- Nhiều người có thể hỗ trợ ngày lập tức
- Có hệ thống xếp hạng thành viên
Nhược điểm:
- Chưa có hệ thống báo cáo bài viết nội dung tiêu cực
- Kiến thức chủ yếu ở chương trình giáo dục phổ thông
2 Nguồn: Hoidap247.com
3 Nguồn: Hoidap247 trên Google Play
Trang 229
1.3.1.3 Các hội nhóm trên mạng xã hội
Ảnh 1.9: Ban học tập Công nghệ phần mềm 4Hiện nay có rất nhiều hội nhóm sinh ra để phục vụ nhu cầu giải đáp thắc mắc trong học tập Tuy nhiên điều này cũng có nhiều ưu và khuyết điểm
Ưu điểm:
- Gần gũi, thân thiện vì là mạng xã hội
- Đăng bài viết nhanh chóng, thuận tiện
- Nhiều phương thức liên lạc để kết nối với nhau
Nhược điểm:
- Dễ gây mất tập trung vì mạng xã hội không tập trung vào việc học
- Nhiều bài viết rác gây loãng cộng đồng
- Không có hệ thống lĩnh vực cụ thể và đánh giá điểm số
4 Nguồn: Ban Học Tập Công Nghệ Phần Mềm - Ngôi Nhà Sẻ Chia | Facebook
Trang 2310
1.3.1.4 Trang “Quora.com”
Ảnh 1.10: Logo Quora5Quora là nền tảng mà chúng ta có thể sử dụng để bài tỏ quan điểm của mình và cũng có thể biết quan điểm của người khác về các chủ đề, câu hỏi Đây cũng là nơi chúng ta có thể hỏi bất kì câu hỏi nào và nhận câu trả lời từ mọi người trên thế giới
Ưu điểm:
- Hỏi mọi nội dung, mọi chủ đề Các câu hỏi được phân lĩnh vực khá cụ thể
- Lượng người dùng lớn, dễ nhận được câu trả lời
- Có hệ thống đánh giá, xếp hạng, báo cáo
- Đa nền tảng: Website hoặc ứng dụng di động
Nhược điểm:
- Chưa hỗ trợ tiếng Việt
- Những câu hỏi, câu trả lời cần chất lượng khá cao, không phổ thông
1.3.1.5 Trang “StackOverFlow.com”
Ảnh 1.11: Logo Stackoverflow6Stackoverflow là trang web rất nổi tiếng để giải đáp các thắc mắc tức thời cho lập trình viên với một lượng người dùng khổng lồ
5 Nguồn: Quora – Wikipedia tiếng Việt
6 Nguồn: Stack Overflow - Where Developers Learn, Share, & Build Careers
Trang 24- Chủ đề đa số hướng về công nghệ thông tin
- Cần biết đọc tài liệu sử dụng ngoại ngữ
- Ứng dụng di động hoạt động chưa ổn định, khá bất tiện
1.3.2 Đánh giá hiện trạng và hướng giải quyết
1.3.2.1 Đánh giá hiện trạng
Nhìn qua hiện trạng được khảo sát bên trên, chúng ta càng thấy sự cần thiết của việc
có một ứng dụng để chia sẻ, kết nối các bạn sinh viên với nhau Tuy nhiên, với mỗi ứng dụng sẽ được có mục đích sử dụng khác nhau, và cũng có những ưu, nhược điểm khác nhau
Như vậy, để đáp ứng nhu cầu chia sẻ của các bạn sinh viên theo hiện trạng hiện tại, việc xây dựng một công cụ có thể đáp ứng các ưu điểm trên cũng như khắc phục các nhược điểm là cực kì cần thiết Theo một khảo sát cùng tên nhóm đã thực hiện, các chức năng cần có trong ứng dụng như thế này bao gồm các chức năng như:
- Đăng bài viết (tỉ lệ 100%)
- Quản lý được chủ đề của bài viết (tỉ lệ 96,3%)
- Người cùng cũng cần có chủ đề sở trường riêng (tỉ lệ 97,3%)
- Các chức năng bình luận, bày tỏ cảm xúc (tỉ lệ 96,3%)
- Tìm kiếm bài viết theo chủ đề (tỉ lệ 95,7%)
Bên cạnh đó còn có các chức năng khác như báo cáo nội dung, các phương thức liên lạc cũng có nhiều bạn chọn Các chức năng này được tác giả nêu ra trên cơ sở tham khảo và bổ sung chức năng của các ứng dụng liên quan được khảo sát
Trang 2512
Nói tóm lại, theo kết quả khảo sát thì có rất nhiều bạn quan tâm tới việc có một ứng dụng riêng để có thể sử dụng như một công cụ hỏi đáp, hỗ trợ kết nối trong học tập (với 100% các bạn sinh viên đồng ý)
Ảnh 1.12: Kết quả khảo sát chức năng
Ảnh 1.13: 100% Các bạn sinh viên đồng ý sự cần thiết của ứng dụng này
1.3.2.2 Hướng giải quyết
Với hiện trạng và kết quả khảo sát như trên, chúng ta càng thấy rõ để giải quyết vấn
đề này, sự có mặt của một ứng dụng kế thừa và phát huy những ưu điểm của các
Trang 261.5 Phạm vi đề tài
Vì thời gian và nhân lực nghiên cứu có hạn, đề tài tập trung vào xây dựng ứng dụng
di động trên nền tảng Android cho sinh viên trong các trường ĐHQG với các chức năng chính nhằm vào sự chia sẻ, kết nối giữa mọi người với nhau:
- Hỗ trợ người học có thể kết nối với nhau thông qua các tính năng theo dõi, nhắn tin (văn bản, hình ảnh, video), gọi video
- Ứng dụng có chức năng tìm kiếm, gợi ý người học theo lĩnh vực, trình độ, địa điểm, … phù hợp
7 Nguồn: Những đánh giá về mức độ sử dụng smartphone của người Việt (bnews.vn)
Trang 2714
- Ứng dụng giúp người học có không gian để hỏi đáp, học tập với nhau bằng các tính năng đăng bài (đăng theo chủ đề, ảnh, văn bản, video), trả lời bài đăng, đánh giá (downvote / upvote)
- Hệ thống báo cáo và xử lý vi phạm với nội dung tiêu cực
- Ứng dụng có hệ thống điểm đánh giá theo lĩnh vực cho người dùng cũng như bảng xếp hạng dựa theo mức độ hoạt động của người dùng đó Các hoạt động được cộng điểm là chia sẻ, bình luận, trả lời, nhận được upvote Hoạt động bị trừ điểm là downvote, báo cáo tiêu cực
- Ứng dụng có khả năng thông báo khi có các tương tác với bài đăng quan tâm, gợi ý bài đăng phù hợp, báo cáo sai phạm…
- Quản lý thông tin tài khoản linh hoạt với thông tin cá nhân, thông tin bảo mật, thông tin lĩnh vực yêu thích
Bên cạnh đó, đề tài cũng bao gồm ứng dụng để quản lý nội dung tĩnh cho ứng dụng
di động Các chức năng bao gồm:
- Quản lý các nội dung tĩnh: Lĩnh vực, nhóm lĩnh vực, cấp độ, điểm cộng
- Quản lý các nội dung do người dùng tạo ra như: Bài viết, bình luận, phản hồi Để sử dụng vào mục đích kiểm duyệt
- Quản lý báo cáo và kiểm duyệt báo cáo
1.6 Phương pháp thực hiện
Đề tài được thực hiện bằng cách khảo sát nhu cầu kết nối giúp đỡ nhau trong học tập của các bạn sinh viên lân cận và tìm hiểu, đánh giá ưu, khuyết điểm của các ứng dụng đã có Sau đó, tiếp thu ưu điểm, cải thiện các khuyết điểm cũng như bổ sung các chức năng mới cho ứng dụng này
Mô hình được sử dụng để thực hiện để phân tích, xây dựng ứng dụng là mô hình thác nước, được chia theo giai đoạn rõ ràng
Nhiều công nghệ mới được phân tích, so sánh và cân nhắc áp dụng trong quá trình phát triển ứng dụng
Trang 2815
1.7 Ý nghĩa thực tiễn
Ứng dụng tạo một môi trường như một mạng xã hội thu nhỏ, giảm thiểu đến mức thấp nhất các tiêu cực có thể có, nơi mọi người có thể trình bày những thắc mắc của mình theo đúng những chuyên môn nhất định, từ đó có thể tìm được những câu trả lời từ những người có chuyên môn phù hợp nhất Từ những sự giúp đỡ nhỏ này, dần dần sẽ tạo sự kết nối giữa các bạn sinh viên thành một cộng đồng chia sẻ kiến thức
1.8 Kết quả dự kiến
- Hoàn thành được ứng dụng chạy trên nền tảng Android với đầy đủ các tính năng được nêu ra theo kế hoạch và giải quyết được vấn đề hỗ trợ kết nối, chia sẻ trong học tập cho sinh viên
- Hiểu và nắm rõ các công nghệ sử dụng trong việc xây dựng ứng dụng (.NET Core, React Native, MongoDB Atlas, FCMs, …)
Trang 2916
Chương 2 PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG
2.1 Phân tích yêu cầu hệ thống
2.1.1 Phân tích yêu cầu chức năng
2.1.1.1 Yêu cầu lưu trữ
Một hệ thống được gọi là khả dụng khi chức năng lưu trữ được đảm bảo chính xác Theo khảo sát thì hệ thống cần lưu trữ các thông tin như sau:
- Thông tin người dùng: thông tin cá nhân, thông tin học vấn, nghề nghiệp, các thông tin chuyên môn, lĩnh vực yêu thích, thông tin về những hoạt động trong ứng dụng
- Thông tin bài viết: Thông tin chi tiết, nội dung, danh sách bình luận, phản hồi của bài viết Thông tin về đánh giá bài viết, lĩnh vực bài viết
- Thông tin về các nội dung không hợp lệ
- Thông tin cho cuộc trò chuyện
2.1.1.2 Yêu cầu tính năng
Ứng dụng sản phẩm là ứng dụng di động chạy trên nền tảng hệ điều hành Android, yêu cầu Internet khi truy cập
Trang 3017
- Xác thực: Hệ thống phải xác định rõ đâu là những hoạt động người dùng được phép làm
2.1.2 Yêu cầu phi chức năng
- Ứng dụng có khả năng bảo mật và dễ dàng khôi phục với người dùng chính chủ
- Tài nguyên sử dụng để triển khai có giá thành phù hợp
- Ứng dụng giao diện Tiếng Việt, thiết kế thân thiện người dùng, tăng tính tiện dụng bằng cách gợi ý trên giao diện Yêu cầu hệ thống từ Android 9.0, RAM lớn hơn 4GB
2.1.3 Phân tích yêu cầu người dùng
Dựa trên nghiên cứu, phân tích các hiện trạng và khảo sát, kết quả các yêu cầu người dùng được phân rã thành sơ đồ dưới đây:
Trang 3118 Ảnh 2.1: Sơ đồ phân rã chức năng
Trang 3219
2.1.3.1 Mô hình use case toàn hệ thống
Ảnh 2.2: Sơ đồ use case tổng quát
Trang 3320
Ảnh 2.3: Sơ đồ use case tổng quát (Admin)
2.1.3.2 Danh sách các Actors và use case tương ứng
1 Guest 1 Đăng kí tài khoản
2 User 1 Quản lý tài khoản
● Đăng nhập
● Đăng xuất
● Quên mật khẩu
● Xem thông tin tài khoản
● Cập nhật thông tin tài khoản/lĩnh vực
● Thông báo
Trang 3421
● Quản lý theo dõi
2 Quản lý học
● Đăng bài, câu hỏi
● Đánh giá bài đăng
● Xem, xóa, sửa bài đăng
● Tìm kiếm, lọc bài đăng
● Quản lý danh sách bài đăng
3 Admin 1 Quản lý người dùng
2 Quản lý bài đăng
3 Quản lý trả lời
4 Thống kê
5 Quản lý lĩnh vực
6 Quản lý cấp độ
Trang 3522
Bảng 2.1: Danh sách các actors và use case tương ứng
2.1.3.3 Đặc tả một số use case
2.1.3.3.1 Use case đăng kí
Ảnh 2.4: Use case đăng kí
Tên Use-case Đăng kí
Mô tả Use-case được tạo ra để người truy cập ứng dụng có
thể đăng kí tài khoản truy cập ứng dụng
Tiền điều kiện Thiết bị có kết nối internet
Hậu điều kiện Người dùng đăng kí thành công, có thể truy cập vào
ứng dụng, có thể sử dụng các chức năng của ứng dụng
Luồng sự kiện chính 1 Hệ thống hiển thị form đăng ký
2 Người dùng nhập đầy đủ thông tin đăng kí mà hệ thống yêu cầu và nhấn “Đăng kí”
3 Hệ thống kiểm tra và xác thực thông tin đăng kí
4 Hệ thống hiển thị giao diện xác thực (mã xác thực được gửi đến email đăng kí)
Trang 3623
Bảng 2.2: Đặc tả use case đăng kí
2.1.3.3.2 Use case quản lý tài khoản
Ảnh 2.5: Use case quản lý tài khoản
- Use case đăng nhập:
Tên Use-case Đăng nhập
Mô tả Use-case được tạo ra để người dùng có thể truy cập tài
khoản cá nhân Chỉ khi có tài khoản người dùng mới
có truy cập vào ứng dụng
Tiền điều kiện Ứng dụng có kết nối internet
Hậu điều kiện Người dùng đăng nhập thành công vào ứng dụng, có
thể sử dụng các quyền mà hệ thống cho phép
Luồng sự kiện chính 1 Ứng dụng hiển thị form đăng nhập
2 Người dùng nhập tên và tài khoản (cả 2 trường này
Trang 37Luồng sự kiện phụ Hệ thống hiển thị thông báo tài khoản đăng nhập
không hợp lệ nếu thông tin đăng nhập sai
Bảng 2.3: Đặc tả use case đăng nhập
- Use case cập nhật thông tin tài khoản người dùng:
Tên Use-case Cập nhật thông tin tài khoản người dùng
Mô tả Use-case được tạo ra để người dùng cập nhật lại thông
tin tài khoản như họ tên, lĩnh vực, liên lạc…
Tiền điều kiện Ứng dụng có kết nối internet
Hậu điều kiện Hệ thống sẵn sàng cho lần cập nhật tiếp theo
Luồng sự kiện chính 1 Người dùng chọn chức năng xem tài khoản và
Trang 3825
Bảng 2.4: Đặc tả use case cập nhật thông tin tài khoản người dùng
- Use case quản lý thông báo:
Tên Use-case Quản lý thông báo
Mô tả Use-case được tạo ra để hệ thống thông báo cho người
dùng các hoạt động trong ứng dụng
Tiền điều kiện Ứng dụng có kết nối internet
Hậu điều kiện Hệ thống sẵn sàng cho các chức năng tiếp theo
Luồng sự kiện chính 1 Người dùng chọn phần thông báo
2 Ứng dụng hiển thị thông báo theo thứ tự mới đến cũ
3 Người dùng có thể chạm vào thông báo để đánh dấu đã xem
Luồng sự kiện phụ Ứng dụng tự động thông báo trong các trường hợp:
- Tương tác bài đăng
- Tương tác trả lời
- Tin nhắn mới
- Thông báo hệ thống … Bảng 2.5: Đặc tả use case quản lý thông báo
- Use case quản lý theo dõi:
Tên Use-case Quản lý theo dõi
Mô tả Usecase được tạo ra để người dùng có thể theo dõi
những người mà họ quan tâm hoặc xem những ai đang theo dõi mình
Trang 3926
Tiền điều kiện Ứng dụng có kết nối internet
Hậu điều kiện Hệ thống sẵn sàng cho lần truy cập tiếp theo
Luồng sự kiện chính 1 Người dùng chọn chức năng quản lý theo dõi
2 Danh sách người theo dõi hiện ra
3 Người dùng có thể nhấn chọn tài khoản để xem trang cá nhân và hủy theo dõi/theo dõi
4 Ngoài ra người dùng có thể tìm kiếm người khác để theo dõi
Luồng sự kiện phụ Không có
Bảng 2.6: Đặc tả use case quản lý theo dõi 2.1.3.3.3 Use case quản lý học
Ảnh 2.6: Use case quản lý học
Trang 4027
- Use case đăng bài, câu hỏi:
Tên Use-case Đăng bài, câu hỏi
Mô tả Usecase được tạo ra để người dùng có thể đăng các
câu hỏi, hướng dẫn, … lên ứng dụng để được giải đáp, học hỏi, …
Tiền điều kiện Ứng dụng có kết nối internet
Hậu điều kiện Hệ thống sẵn sàng cho bài đăng tiếp theo
Luồng sự kiện chính 1 Người dùng chọn chức năng đăng bài
2 Màn hình đăng bài xuất hiện
3 Người dùng thực hiện đăng bài với các hình thức:
5 Ứng dụng thông báo bài đăng thành công
Luồng sự kiện phụ Đăng bài không thành công
Bảng 2.7: Đặc tả use case đăng bài
- Use case sửa bài đăng:
Tên Use-case Sửa bài đăng
Mô tả Usecase được tạo ra để người dùng có thể chỉnh sửa
bài đăng sau khi đã đăng