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

Xây dựng ứng dụng hỗ trợ học tập nhóm cho học sinh, sinh viên

124 24 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 124
Dung lượng 3,61 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI CẢM ƠN Khóa luận tốt nghiệp với đề tài “Xây dựng ứng dụng hỗ trợ học tập nhóm cho học sinh, sinh viên” là kết quả, tâm huyết và sự tích lũy kiến thức của nhóm chúng em trong suốt 4 n

Trang 1

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

NGUYỄN HỒNG KHOA – NGUYỄN TIẾN DŨNG

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC TẬP NHÓM

CHO HỌC SINH, SINH VIÊN Build an application to support group learning for students

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP HỒ CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 3

TP HỒ CHÍ MINH, 2021 THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa 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 ……… – Ủy viên

4 ……… – Ủy viên

Trang 4

ĐHQG TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập – Tự Do – Hạnh Phúc

TP HCM, ngày……tháng……năm 2020

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN)

Tên khóa luận:

XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC TẬP NHÓM

CHO HỌC SINH, SINHVIÊN Nhóm SV thực hiện:

Nguyễn Hồng Khoa – 17520087

Nguyễn Tiến Dũng – 17520376

Cán bộ hướng dẫn:

ThS Nguyễn Thị Thanh Trúc

Đánh giá Khóa luận:

1 Về cuốn báo cáo:

Số trang ………

Số bảng số liệu ………

Số tài liệu tham khảo ………

Số chương ………

Số hình vẽ ………

Sản phẩm ………

Trang 5

Một số nhận xét về hình thức cuốn báo cáo:

………

………

………

………

2 Về nội dung nghiên cứu: ………

………

………

………

3 Về chương trình ứng dụng: ………

………

………

………

4 Về thái độ làm việc của sinh viên: ………

………

………

………

Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ

sư/cử nhân, xếp loại Giỏi/Khá/Trung bình

Trang 6

Điểm từng sinh viên:

Nguyễn Hồng Khoa:……… /10

Nguyễn Tiến Dũng:……… /10

Người nhận xét (Ký tên và ghi rõ họ tên)

NGUYỄN THỊ THANH TRÚC

Trang 7

ĐHQG TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập – Tự Do – Hạnh Phúc

TP HCM, ngày……tháng……năm 2020

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ PHẢN BIỆN)

Tên khóa luận:

XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC TẬP NHÓM

CHO HỌC SINH, SINH VIÊN Nhóm SV thực hiện:

Nguyễn Hồng Khoa – 17520087

Nguyễn Tiến Dũng – 17520376

Cán bộ hướng dẫn:

ThS Nguyễn Thị Thanh Trúc

Đánh giá Khóa luận:

5 Về cuốn báo cáo:

Số trang ………

Số bảng số liệu ………

Số tài liệu tham khảo ………

Số chương ………

Số hình vẽ ………

Sản phẩm ………

Trang 8

Một số nhận xét về hình thức cuốn báo cáo:

………

………

………

………

6 Về nội dung nghiên cứu: ………

………

………

………

7 Về chương trình ứng dụng: ………

………

………

………

8 Về thái độ làm việc của sinh viên: ………

………

………

………

Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ

sư/cử nhân, xếp loại Giỏi/Khá/Trung bình

Trang 9

Điểm từng sinh viên:

Nguyễn Hồng Khoa:……… /10

Nguyễn Tiến Dũng:……… /10

Người nhận xét (Ký tên và ghi rõ họ tên)

Trang 10

LỜI CẢM ƠN

Khóa luận tốt nghiệp với đề tài “Xây dựng ứng dụng hỗ trợ học tập nhóm cho học sinh, sinh viên” là kết quả, tâm huyết và sự tích lũy kiến thức của nhóm chúng em trong suốt 4 năm học tại trường đại học Công nghệ Thông tin ĐHQG TPHCM Với đề tài này, chúng em mong muốn giá trị mà nó mang lại cho xã hội sẽ thay cho lời cảm ơn đến với tất cả những người đã hỗ trợ, giúp đỡ và ủng hộ chúng em hoàn thành khóa luận

Nhóm chúng em xin cảm ơn tập thể quý thầy cô Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, đặc biệt là quý thầy cô khoa Công Nghệ Phần Mềm đã trao cho chúng em những kiến thức giá trị làm nền tảng để thực hiện khóa luận này

Đặc biệt, nhóm chúng em xin gửi lời cảm ơn chân thành và trân trọng nhất tới

cô Nguyễn Thị Thanh Trúc, giáo viên hướng dẫn đã trực tiếp theo dõi, góp ý, hỗ trợ và đưa ra những lời khuyên quý giá cho chúng em trong suốt quá trình thực hiện khóa luận

Cảm ơn giảng viên phản biện và các thầy cô trong hội đồng chấm luận vă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 chúng em được trở nên hoàn thiện hơn

Lời cuối, chúng em xin gửi tất cả sự biết ơn và trân trọng của mình đến với những người thân, bạn bè đã ủng hộ và động viên chúng em trong những giai đoạn đầy khó khăn và thử thách khi thực hiện khóa luận này

TP HCM, tháng 05 năm 2021

Sinh viên Nguyễn Tiến Dũng Nguyễn Hồng Khoa

Trang 11

ĐHQG TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

NAM Độc Lập - Tự Do - Hạnh Phúc

ĐỀ CƯƠNG CHI TIẾT

Tên đề tài:

Xây dựng ứng dụng hỗ trợ học tập nhóm cho học sinh, sinh viên

Cán bộ hướng dẫn: ThS Nguyễn Thị Thanh Trúc

Thời gian thực hiện: Từ ngày 08/03/2021 đến ngày 08/06/2021

Sinh viên thực hiện:

- Giúp cải thiện chất lượng làm việc nhóm, thay đổi thói quen của các bạn

Trang 12

học sinh, sinh viên còn đang dùng những nền tảng, công cụ chưa phù hợp để quản lý nhóm của mình

- Tìm hiểu và ứng dụng các công nghệ mới, nâng cao kỹ năng và kiến thức phát triển phần mềm

- Tạo công việc: Leader tạo các công việc nhóm với các thông tin: nội dung, deadline, độ ưu tiên, độ khó,… và giao công việc cho thành viên nhóm

- Thực hiện công việc: thành viên cập nhật các thông tin: tiến độ, trạng thái, bình luận,… với các công việc của mình

- Báo cáo tiến độ: mọi người xem được tiến độ (dạng biểu đồ, thống kê) của các công việc nhóm hoặc những công việc của bản thân

- Nhắn tin: mọi người liên lạc, trao đổi với nhau thông qua tin nhắn cá nhân hoặc tin nhắn nhóm

- Nhắc nhở công việc: cảnh báo, nhắc nhở về những công việc bị sắp tới deadline hoặc trễ tiến độ hằng ngày

- Chia sẻ tệp: upload các tệp lên nhóm để phục vụ cho nhu cầu chia sẻ tài liệu

- Một số chức năng khác như: chấm điểm thành viên (cho Leader), tìm kiếm công việc, hiển thị công việc với kanban hoặc tạo gantt chart,…

Trang 13

Đối tượng sử dụng:

Ứng dụng hướng đến những người dùng trên nền tảng web, cụ thể như:

- Các học sinh, sinh viên muốn tạo và quản lý các nhóm trong các môn học hoặc các nhóm đồ án ở trường

- Những người dùng muốn có một môi trường làm việc hiệu quả, có thể quản

lý công việc và theo dõi được năng suất làm việc của bản thân

Phương pháp thực hiện:

- Khảo sát đề tài: nhu cầu và những công cụ làm việc nhóm phổ biến

- Đánh giá ưu, nhược điểm, rút ra kinh nghiệm và chức năng cho ứng dụng

- Lập kế hoạch, bước vào thực hiện đề tài theo mô hình Agile

Kết quả mong đợi:

- Hoàn thành được đề tài với tất cả các chức năng đã đặt ra

- Sản phẩm có tính thực tế cao và có thể áp dụng ngay vào thực tiễn

- Hiểu rõ các công nghệ đã áp dụng như: ReactJS, NET Core, mySQL, Push Notification,……

Trang 14

nghiệm từ các ứng dụng web, phần mềm quản lý nhóm đang phổ biến Tìm hiểu các công nghệ áp dụng: ReactJS, NET Core, mySQL

+ Sprint 2: Phân tích, thiết kế chức năng ứng dụng và cơ sở dữ liệu

+ Sprint 3: Xây dựng các API, xây dựng giao diện ứng dụng để thực hiện các chức năng đã được xác định ở sprint 2

+ Sprint 4: Xây dựng các chức năng với API đã có ở sprint 3

Sprint NGUYỄN HỒNG KHOA NGUYỄN TIẾN DŨNG

- Tìm hiểu các nên tảng phổ biển nhưng thiếu hiệu quả: Facebook Group, Zalo, Messenger

- Tìm hiểu NET Core, mySQL

- Tìm hiểu tài liệu các phương pháp quản lý nhóm

- Khảo sát ứng dụng liên quan: Trello, MS Team, Open Project

2

(21/03/2021 –

23/03/2021)

- Thiết kế chức năng ứng dụng, cơ sở dữ liệu

- Thiết kế chức năng ứng dụng, cơ sở dữ liệu

- Xây dựng API

- Xây dựng giao diện, chức năng: Tạo và cập nhật công việc, gửi thông báo, nhắn

Trang 15

Gantt)

- Hoàn thành các chức năng: Tạo công việc, cập nhật công việc, bình luận, tìm kiếm công việc theo tên hoặc ngày, lưu lịch sử chỉnh sửa công việc, upload tệp tin

- Giai đoạn 2: Tinh chỉnh ứng dụng , kiểm thử, viết báo cáo đề tài

+ Sprint 5: Hiệu chỉnh giao diện, tối ưu thao tác và hiệu suất các chức năng

Có thể thêm những chức năng nâng cao nếu cần thiết

+ Sprint 6: Tiến hành kiểm thử, viết báo cáo

Sprint NGUYỄN HỒNG KHOA NGUYỄN TIẾN DŨNG

Trang 16

NGUYỄN HỒNG NGUYỄN TIẾN

KHOA DŨNG

Trang 17

MỤC LỤC

TÓM TẮT KHÓA LUẬN 1

Chương 1 TỔNG QUAN ĐỀ TÀI 3

1.1 Giới thiệu đề tài 3

1.1.1 Hiện trạng và nhu cầu học tập nhóm ở Việt Nam 3

1.1.2 Lý do chọn đề tài 4

1.2 Khảo sát hiện trạng các ứng dụng tương tự 5

1.2.1 Trello 5

1.2.2 MS Teams 6

1.3 Mục tiêu và ý nghĩa đề tài 7

1.3.1 Mục tiêu 7

1.3.2 Đối tượng người dùng 7

1.3.3 Ý nghĩa thực tiễn 7

1.3.4 Kết quả dự kiến 8

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 9

2.1 Phương pháp và thuật toán sử dụng 9

2.1.1 Kanban board 9

2.1.2 Thuật toán Lexorank (Lexicalgraphical ranking) 10

2.1.3 Gantt chart 14

2.2 Công nghệ sử dụng 15

2.2.1 ReactJS 15

Trang 18

2.2.2 Redux 17

2.2.3 ASP.NET Core 19

2.2.4 SignalR 20

2.2.5 Amazon Web Service 22

2.2.6 Firebase 23

2.2.7 Github Actions 24

Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 26

3.1 Phân tích yêu cầu hệ thống 26

3.1.1 Yêu cầu chức năng 26

3.1.1.1 Yêu cầu về lưu trữ 26

3.1.1.2 Yêu cầu về tính năng 27

3.1.2 Yêu cầu phi chức năng 27

3.2 Sơ đồ Use case 28

3.2.1 Sơ đồ Use case: 28

3.2.1.1 Use case module Quản lý và cài đặt tài khoản 28

3.2.1.2 Use case module Quản lý và tương tác nhóm 29

3.2.1.3 Use case module Các chức năng chung 30

3.2.2 Danh sách Actors 31

3.2.3 Danh sách Use cases 31

3.2.4 Đặc tả một số Use cases chính 33

3.2.4.1 Chức năng Đăng nhập 33

Trang 19

3.2.4.2 Chức năng Đăng ký tài khoản 36

3.2.4.3 Chức năng Lấy lại mật khẩu 38

3.2.4.4 Chức năng Cập nhật thông tin tài khoản 41

3.2.4.5 Chức năng Tạo nhóm 43

3.2.4.6 Chức năng Tham gia nhóm 45

3.2.4.7 Chức năng Tạo bài viết 47

3.2.4.8 Chức năng Tạo công việc 49

3.2.4.9 Chức năng Cập nhật công việc 51

3.2.4.10 Chức năng Nhắn tin 53

3.2.4.11 Chức năng Xem thông báo 55

3.2.4.12 Chức năng Lập báo cáo nhóm 57

3.2.4.13 Chức năng Tải tệp 59

3.3 Thiết kế giao diện 62

3.3.1 Một số wireframe chính cho giao diện 62

3.3.2 Giao diện ứng dụng 65

3.3.2.1 Màn hình Tổng quan 65

3.3.2.2 Màn hình Bản tin 65

3.3.2.3 Màn hình Danh sách nhóm 66

3.3.2.4 Màn hình Thông tin nhóm 66

3.3.2.5 Màn hình Quản lý công việc 67

3.3.2.6 Màn hình Quản lý tệp tin 69

Trang 20

3.3.2.7 Màn hình Thống kê tiến độ công việc 70

3.3.2.8 Màn hình Thống kê đóng góp của thành viên nhóm 70

3.3.2.9 Màn hình Nhắn tin 71

3.3.2.10 Màn hình Cài đặt 72

3.3.2.11 Màn hình Phản hồi và đóng góp 72

Chương 4 CÀI ĐẶT VÀ PHÁT TRIỂN HỆ THỐNG 74

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

4.1.1 Lược đồ cơ sở dữ liệu 74

4.1.2 Mô tả các bảng dữ liệu 75

4.1.2.1 Bảng User 75

4.1.2.2 Bảng Team 76

4.1.2.3 Bảng Kanban_board 77

4.1.2.4 Bảng Kanban_list 77

4.1.2.5 Bảng Task 78

4.1.2.6 Bảng Post 80

4.1.2.7 Bảng Post_react 80

4.1.2.8 Bảng Comment 81

4.1.2.9 Bảng Group_chat 82

4.1.2.10 Bảng Message 82

4.1.2.11 Bảng User_connection 83

4.1.2.12 Bảng Notification 84

Trang 21

4.1.2.13 Bảng Handle_task 85

4.1.2.14 Bảng Task_version 86

4.1.2.15 Bảng File 87

4.2 Thiết kế kiến trúc hệ thống 88

4.3 Triển khai hệ thống 89

4.3.1 Triển khai Web API 89

4.3.2 Triển khai Web App 90

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 92

5.1 Kết quả đạt được 92

5.2 Thuận lợi và khó khăn 93

5.2.1 Thuận lợi 93

5.2.2 Khó khăn 93

5.3 Hạn chế 94

5.4 Hướng phát triển 94

TÀI LIỆU THAM KHẢO 96

Trang 22

DANH MỤC HÌNH

Hình 1-1 Logo ứng dụng Trello 5 Hình 1-2 Logo ứng dụng Microsfot Teams 6 Hình 2-1 Minh họa thuật toán sắp xếp thẻ Kanban thông thường 11 Hình 2-2 Minh họa thuật toán Lexorank 12 Hình 2-3 Minh họa thuật toán Lexorank trường hợp cần thêm chuỗi phụ 13 Hình 2-4 Minh họa đoạn code tìm chuỗi thứ tự chèn giữa hai chuỗi của Lexorank 13 Hình 2-5 Logo thư viện ReactJS 15 Hình 2-6 Logo thư viện Redux 17 Hình 2-7 Minh họa cách vận hành của Redux 18 Hình 2-8 Logo framwork ASP.NET Core 19 Hình 2-9 Logo thư viện SignalR 20 Hình 2-10 Minh họa xử lý của SignalR 21 Hình 2-11 Logo nền tảng đám mây Amazon Web Services 22 Hình 2-12 Logo dịch vụ Firebase 23 Hình 2-13 Logo dịch vụ Github Actions 24 Hình 3-1 Lược đồ Use case module Quản lý và cài đặt tài khoản 28 Hình 3-2 Lược đồ Use case module Quản lý và tương tác nhóm 29 Hình 3-3 Lược đồ Use case module Các chức năng chung 30 Hình 3-4 Lược đồ tuần tự cho thao tác Đăng nhập 36 Hình 3-5 Lược đồ tuần tự cho thao tác Đăng ký tài khoản 38

Trang 23

Hình 3-6 Lượt đồ tuần tự cho thao tác Khôi phục mật khẩu 41 Hình 3-7 Lược đồ tuần tự cho thao tác Cập nhật thông tin tài khoản 43 Hình 3-8 Lược đồ tuần tự cho thao tác Tạo nhóm 45 Hình 3-9 Lược đồ tuần tự cho thao tác Tham gia nhóm 47 Hình 3-10 Lược đồ tuần tự cho thao tác Tạo bài viết 49 Hình 3-11 Lược đồ tuần tự cho thao tác Tạo công việc 51 Hình 3-12 Lược đồ tuần tự cho thao tác Cập nhật công việc 53 Hình 3-13 Lược đồ tuần tự cho thao tác Nhắn tin 55 Hình 3-14 Lược đồ tuần tự cho thao tác Xem thông báo 57 Hình 3-15 Lược đồ tuần tự cho thao tác Lập báo cáo 59 Hình 3-16 Lược đồ tuần tự cho thao tác Tải tệp 61 Hình 3-17 Wireframe màn hình Tổng quan 62 Hình 3-18 Wireframe màn hình Bản tin 62 Hình 3-19 Wireframe màn hình Danh sách nhóm 63 Hình 3-20 Màn hình Tin nhắn nhóm 63 Hình 3-21 Màn hình Danh sách tệp tin 64 Hình 3-22 Màn hình Quản lý công việc 64 Hình 3-23 Màn hình Tổng quan 65 Hình 3-24 Màn hình Bản tin 65 Hình 3-25 Màn hình Danh sách nhóm 66 Hình 3-26 Màn hình Thông tin nhóm 66

Trang 24

Hình 3-27 Màn hình Quản lý công việc (Chế độ xem Kanban board) 67 Hình 3-28 Màn hình Quản lý công việc (Chế độ xem Danh sách) 67 Hình 3-29 Màn hình Quản lý công việc (chế độ xem Gantt Chart) 68 Hình 3-30 Popup để hiển thị thông tin và cập nhật chi tiết công việc 68 Hình 3-31 Màn hình Quản lý tệp tin nhóm 69 Hình 3-32 Màn hình Thống kê tiến độ công việc nhóm 70 Hình 3-33 Màn hình Thống kê đóng góp của thành viên nhóm 70 Hình 3-34 Màn hình Nhắn tin 71 Hình 3-35 Màn hình Cài đặt 72 Hình 3-36 Màn hình Phản hồi và đóng góp 72 Hình 4-1 Lược đồ cơ sở dữ liệu của ứng dụng 75 Hình 4-2 Minh họa kiến trúc hệ thống của ứng dụng 88 Hình 4-3 Service file giúp duy trì ứng dụng NET Core luôn chạy trên Ubuntu 89 Hình 4-4 Kiểm tra trạng thái service 90 Hình 4-5 Cấu hình NGINX cho Web API 90 Hình 4-6 Ứng dụng đang chạy được quản lý bởi PM2 91 Hình 4-7 Cấu hình NGINX cho Web App 91

Trang 25

DANH MỤC BẢNG

Bảng 3-1 Danh sách các Actors trong Lược đồ Use case 31 Bảng 3-2 Danh sách các Use case của ứng dụng 33 Bảng 3-3 Bảng đặc tả Use case chức năng Đăng nhập 35 Bảng 3-4 Bảng đặc tả Use case chức năng Đăng ký tài khoản 38 Bảng 3-5 Bảng đặc tả Use case chức năng Khôi phục mật khẩu 40 Bảng 3-6 Bảng đặc tả Use case chức năng Cập nhật thông tin tài khoản 43 Bảng 3-7 Bảng đặc tả Use case chức năng Tạo nhóm 45 Bảng 3-8 Bảng đặc tả Use case chức năng Tham gia nhóm 46 Bảng 3-9 Bảng đặc tả Use case chức năng Tạo bài viết 48 Bảng 3-10 Bảng đặc tả Use case chức năng Tạo công việc 51 Bảng 3-11 Bảng đặc tả Use case chức năng Cập nhật công việc 53 Bảng 3-12 Bảng đặc tả Use case chức năng Nhắn tin 54 Bảng 3-13 Bảng đặc tả Use case chức năng Xem thông báo 56 Bảng 3-14 Bảng đặc tả Use case chức năng Lập báo cáo nhóm 58 Bảng 3-15 Bảng đặc tả Use case chức năng Tải tệp 60 Bảng 4-1 Danh sách thuộc tính của bảng User 76 Bảng 4-2 Danh sách thuộc tính của bảng Team 77 Bảng 4-3 Danh sách thuộc tính của bảng KanbanBoard 77 Bảng 4-4 Danh sách thuộc tính của bảng KanbanList 78 Bảng 4-5 Danh sách thuộc tính của bảng Task 80

Trang 26

Bảng 4-6 Danh sách thuộc tính của bảng Post 80 Bảng 4-7 Danh sách thuộc tính của bảng PostReact 81 Bảng 4-8 Danh sách thuộc tính của bảng Comment 82 Bảng 4-9 Danh sách thuộc tính của bảng GroupChat 82 Bảng 4-10 Danh sách thuộc tính của bảng Message 83 Bảng 4-11 Danh sách thuộc tính của bảng UserConnection 84 Bảng 4-12 Danh sách thuộc tính của bảng Notification 85 Bảng 4-13 Danh sách thuộc tính của bảng Handle_task 85 Bảng 4-14 Danh sách thuộc tính của bảng Task_version 87 Bảng 4-15 Danh sách thuộc tính của bảng File 88

Trang 27

2 UI User Interface Là những gì chúng ta nhìn thấy và giao

4 VPS Virtual Private Server

Máy chủ ảo Chạy một bản sao hệ điều hành của riêng nó để khách hàng có thể truy cập và cài đặt những phần mềm lên internet thông qua hệ diều hành đó

Trang 28

TÓM TẮT KHÓA LUẬN

Khóa luận với đề tài “Xây dựng ứng dụng hỗ trợ học tập nhóm cho học sinh, sinh viên” tập trung vào nghiên cứu, phân tích thực trạng và áp dụng các công nghệ phù hợp để xây dựng nên một ứng dụng web application đáp ứng đầy đủ các tính năng cần thiết cho học tập và làm việc nhóm

Đề tài được bắt đầu từ việc tìm hiểu thực trạng, đưa ra các vấn đề còn tồn đọng của các nền tảng quản lý nhóm tương tự hiện nay, mục đích để tối ưu hóa và đưa ra giải pháp phù hợp nhất cho người dùng là học sinh, sinh viên tại Việt Nam Chúng em cũng nghiên cứu và áp dụng các công nghệ mới, hiện đại và phù hợp để giúp tối ưu ứng dụng và nhằm nâng cao trải nghiệm người dùng

Mô hình phát triển theo Agile được áp dụng cho khóa luận, để linh hoạt hơn trong việc phát triển các tính năng mới cũng như sửa chữa các tính năng cũ dễ thay đổi Kết quả thu được trong giai đoạn thiết kế được thể hiện trên sơ đồ Use case, sơ đồ tuần tự toàn

hệ thống và bản thiết kế wireframe cho giao diện trên công cụ wireframepro.mockflow.com Trong giai đoạn thực hiện, server side và client side được phát triển song song trên các nền tảng chính là NET Core và thư viện ReactJS Ở giai đoạn hoàn thành, ứng dụng được deploy lên VPS với hệ thống sẵn sàng để sử dụng trong thực tế

Phần cuối của khóa luận là trình bày kết quả đã đạt được vào cuốn báo cáo, đưa ra kết luận và hướng phát triển cho ứng dụng trong tương lai

Trang 29

Nội dung khóa luận được trình bày trong 5 chương:

- Chương 01: Tổng quan đề tài

Trình bày sơ bộ về đề tài, lý do thực hiện và ý nghĩa thực tiễn

- Chương 02: Cơ sở lý thuyết và công nghệ

Trình bày các phương pháp, thuật toán và công nghệ được ứng dụng để phát triển khóa luận

- Chương 03: Phân tích và thiết kế hệ thống

Phân tích các yêu cầu và thiết kế cơ sở dữ liệu, kiến trúc cho hệ thống

- Chương 04: Cài đặt và phát triển hệ thống

Trình bày đặc tả các chức năng ứng dụng, giao diện của hệ thống

- Chương 05: Kết luận và hướng phát triển

Những thuận lợi, khó khăn trong quá trình phát triển đề tài và nêu ra hướng phát triển trong tương lai

Trang 30

Chương 1 TỔNG QUAN ĐỀ TÀI

1.1 Giới thiệu đề tài

1.1.1 Hiện trạng và nhu cầu học tập nhóm ở Việt Nam

Từ lâu, làm việc nhóm đã trở thành một phương pháp phổ biến và vô cùng hiệu quả được áp dụng để giải quyết các công việc trong cuộc sống Hoạt động theo nhóm giúp con người đoàn kết, tự tin cũng như dễ dàng trao đổi, chia sẻ kinh nghiệm, tri thức và công việc cho nhau, từ đó tạo nên những kết quả tốt hơn nhờ sự làm việc hiệu quả Mỗi cá nhân trong tập thể cũng trở nên hoàn thiện hơn từ đó

Theo một khảo sát trên 150 sinh viên của Khoa Giáo dục – Học viện Quản lý giáo dục vào tháng 01/2020, thì có đến 76,7% sinh viên xác nhận rằng làm việc nhóm trong học tập là quan trọng và cần thiết Tuy nhiên, một số lượng lớn sinh viên lại xác nhận rằng mình không thành thạo những kỹ năng đơn giản nhất của làm việc nhóm, cụ thể là 58% sinh viên không thành thạo về kỹ năng lập kế hoạch và tới 60% chưa thành thạo kỹ năng thảo luận nhóm Khảo sát này cho chúng ta thấy rằng, dù nhu cầu được tiếp cận với phương pháp làm việc nhóm là có, tuy nhiên sinh viên Việt Nam chưa được tiếp cận và hỗ trợ từ các công nghệ, công cụ phù hợp để nâng cao kỹ năng cho họ

Cũng trong một khảo sát nhanh khác do nhóm chúng em thực hiện qua Google form, với đối tượng điền form là cả học sinh cấp 3 và sinh viên, thì có đến 69,8% người trả lời cho rằng họ thích làm việc nhóm, 83% xác nhận họ phải tham gia vào học nhóm trong các môn học, tuy nhiên lại có tới 43,4% cho rằng làm việc nhóm chỉ dừng lại ở mức “khá hiệu quả” mà không phải là “rất hiệu quả” Có thể thấy rằng ở Việt Nam đang rất cần một công cụ giúp nâng cao năng suất và hiệu quả cho quá trình học nhóm trong các môn học của của các bạn học sinh Ngoài ra, khi được khảo sát về công cụ các bạn dùng để làm việc nhóm, thì 3 công cụ phổ biến nhất được nêu tên

Trang 31

đó là: Messenger (94,3%), Facebook Group (56,6%) và Zalo (50,9%), cả 3 công nghệ này đều không phù hợp, trong khi các nền tảng khác thì được chọn với độ chênh lệch rất cao: MS Team (20,8%), Trello (11,3%), Zoom (1,9%), Google meet (1,9%),… Từ khảo sát trên, ta thấy rằng sinh viên và học sinh Việt Nam không chỉ ít được tiếp cận với các công cụ phù hợp, mà còn tiếp cận không đúng các công nghệ thiếu hiệu quả khi học tập nhóm

Trong thực trạng thế giới nói chung và Việt Nam nói riêng đang trong thời kỳ chống dịch COVID-19, vấn đề học tập, làm việc nhóm online lại càng trở nên phổ biến và cấp thiết hơn Vì vậy, để góp phần vào giải quyết nhu cầu và mang lại một môi trường học tập hiệu quả, đề tài đã được lên ý tưởng và thực hiện

1.1.2 Lý do chọn đề tài

Đề tài “Xây dựng ứng dụng hỗ trợ học tập nhóm cho học sinh, sinh viên” được lên ý tưởng và thực hiện với mục đích quan trọng nhất là tạo ra một công cụ, một sự hỗ trợ trong học tập cho các bạn học sinh và sinh viên

Do những công nghệ giao tiếp ngày nay như Facebook, Email, Messenger, Zalo, tuy rất phổ biến trong việc kết nối con người, nhưng để một nhóm có thể trao đổi, tương tác, học tập và làm việc cùng lúc thì vô cùng bất tiện, không phù hợp với chức năng và mục đích mà các nền tảng này hướng tới Trong khi những công cụ, phần mềm, website, ứng dụng, với mục tiêu hỗ trợ quản lý nhóm, quản lý công việc như: Microsoft Team, Trello, Redmine, Asana,… lại ít được sử dụng do ít phổ biến, hạn chế về ngôn ngữ (tiếng Việt) và yêu cầu khá cao về kiến thức của người dùng cuối

để sử dụng

Vì ngày nay không chỉ những sinh viên mà việc học nhóm còn rất cần thiết cho các

em học sinh trung học phổ thông của Việt Nam từ cấp 2 đến cấp 3 Nhưng nhiều học sinh Việt Nam vẫn rất ít tiếp xúc với các công nghệ, công cụ lạ, nên việc tạo ra một ứng dụng học tập đòi hỏi phải thân thiện với học sinh về mặt ngôn ngữ (tiếng Việt),

Trang 32

đồng thời giao diện và các thao tác sử dụng phải thật thân thiện và dễ dàng với các

em

Vì vậy, khi khảo sát những công nghệ ứng dụng liên quan đến đề tài, nhóm chúng

em nhận thấy ở Việt Nam vẫn chưa có ứng dụng nào phù hợp với các yêu cầu kể trên Những ứng dụng như Trello, Jira, Assana, MS Team… tuy đều hướng tới quản

lý nhóm, nhưng ngôn ngữ đa số là tiếng Anh, hoặc thao tác sử dụng thì quá phức tạp, khó hiểu và không thân thiện với học sinh trung học phổ thông, đặc biệt là với những trường hợp chỉ cần cho nhu cầu quản lý nhóm học tập đơn giản

Từ những khảo sát và đánh giá trên, ta có thể thấy sẽ thật tuyệt vời khi học sinh Việt Nam được tiếp cận với một công nghệ, công cụ học tập phù hợp và thân thiện với các em Từ đó nhóm chúng em quyết định thực hiện đề tài này, mong muốn đóng góp một phần công sức của mình vào giáo dục và thế hệ trẻ ở Việt Nam

1.2 Khảo sát hiện trạng các ứng dụng tương tự

1.2.1 Trello

Hình 1-1 Logo ứng dụng Trello1 Trello là một ứng dụng web tạo danh sách công việc, dựa trên phương pháp giao diện Kanban, thuộc công ty mẹ là Atlassian

1 Nguồn: https://iconscout.com/

Trang 33

- Muốn sử dụng nhiều tính năng phải mua gói Business Class, Enterprise

- Chưa có thống kê cho công việc, chỉ hỗ trợ dạng xem kanban đơn giản nhất

- Không hỗ trợ chat để có thể trao đổi với nhau mà phải sử dụng các công cụ khác

1.2.2 MS Teams

Hình 1-2 Logo ứng dụng Microsfot Teams2

Microsoft Teams là một hệ sinh thái, nơi các thành viên nhóm có thể nhắn tin, tạo phòng họp, chia sẻ tài nguyên,…

Ưu điểm

- Ứng dụng hỗ trợ đầy đủ các nền tảng phổ biến hiện nay iOS, Android, Web

- Dễ dàng trao đổi chia sẻ thông tin với nhau

- Tích hợp mạnh mẽ với bộ Office 365 của Microsoft

2 Nguồn: https://varvid.com/

Trang 34

Hạn chế

- Để sử dụng Teams thì bạn phải có email của một tổ chức đã đăng ký

- MS Teams chủ yếu tập trung và nhắn tin, cuộc họp nên việc quản lý công việc không tốt

- Thao tác và giao diện có thể khó sử dụng với các em học sinh nhỏ tuổi

- Việc sử dụng Office 365 có tính phí khá cao

1.3 Mục tiêu và ý nghĩa đề tài

1.3.1 Mục tiêu

Tạo ra một ứng dụng có thể giúp cho việc quản lý, học tập nhóm trở nên dễ dàng và thuận tiện hơn Với đối tượng người dùng là học sinh, sinh viên Kế thừa những ưu điểm và hoàn thiện những khuyết điểm của các công nghệ nêu trên, với giao diện trực quan, các chức năng dễ truy cập và sử dụng, có kênh chat để tương tác và thảo luận giữa các thành viên, chúng em mong muốn EZTeam không chỉ là một công cụ,

mà còn là một giải pháp tối ưu và nhanh chóng nhất khi các bạn học sinh, sinh viên

có thể nghĩ tới khi muốn tìm một ứng dụng quản lý nhóm cho mình

1.3.2 Đối tượng người dùng

Ứng dụng hướng đến đối tượng học sinh trung học phổ thông (từ cấp 2 đến cấp 3)

và sinh viên ở Việt Nam

1.3.3 Ý nghĩa thực tiễn

Ứng dụng sẽ cung cấp môi trường để làm việc nhóm Người dùng tiết kiệm chi phí, thời gian, tránh sao nhãng khi sử dụng nhiều ứng dụng khác cùng một lúc (Messenger, Facebook group, Zalo,…) Đề tài được thực hiện nhằm hỗ trợ cho các bạn học sinh, sinh viên trong việc học tập, đồng thời hướng đến thay đổi thói quen

sử dụng các nền tảng không hợp lý để làm việc nhóm như: Facebook, Zalo,

Trang 35

Telegram,… Giúp giảm thời gian lãng phí trong việc quản lý cũng như tăng tính kiểm soát cho các nghiệp vụ, nhu cầu cơ bản phát sinh khi làm việc nhóm

1.3.4 Kết quả dự kiến

Hiểu rõ cú pháp, cách hoạt động của các framework, library đã sử dụng như ReactJS, ASP.NET Core và ứng dụng một cách hợp lý vào xây dựng ứng dụng Tạo ra sản phẩm chạy tốt trên các trình duyệt, có đầy đủ tính năng đã thiết kế: Quản

lý thành viên, tương tác nhóm, tạo công việc, cập nhật công việc, báo cáo, quản lý tài khoản

Sản phẩm có độ hoàn thiện cao, độ phản hồi tốt, có khả năng mở rộng và sẵn sàng đưa vào môi trường thực tế

Trang 36

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ

2.1 Phương pháp và thuật toán sử dụng

2.1.1 Kanban board

Ra đời vào những năm 40 bởi công ty Toyota, phương pháp quản lý Kanban được

áp dụng rất nhiều trong quản lý sản xuất và kỹ thuật

Được áp dụng trong rất nhiều ứng dụng quản lý dự án, quản lý nhóm, quản lý công việc: Trello, MeisterTask, Kanban Tool, Kanban Flow, Pipefy,…

Có nhiều loại thẻ Kanban, nhưng có 2 loại chính được áp dụng trong quản lý và phân chia công việc nhóm:

- Transport Kanban (Kanban vận chuyển): thẻ công việc sẽ chuyển cho công đoạn sau (danh sách nào đó) để hoàn thành

- Production Kanban (Kanban sản xuất): thẻ công việc cần thực hiện

- Một thẻ ở từng danh sách khác nhau có thể mang ý nghĩa khác nhau

Lợi ích khi áp dụng trong quản lý công việc nhóm hoặc cá nhân:

- “Phẳng hóa” hệ thống công việc, bảng kanban sẽ trở thành một trung tâm thông tin, nơi các thành viên trong dự án có thể cập nhật và quan sát trạng thái công việc hoặc toàn bộ dự án một cách trực quan nhất

Trang 37

- Kanban đòi hỏi cao về con người: thành viên trong dự án phải có trình độ và kiến thức, đồng thời kanban yêu cầu tính kỷ luật cao, vì một thẻ (công việc) không được hoàn thành đúng hạn hay xảy ra lỗi, thì cả hệ thống có thể ngừng hoạt động, hoặc ảnh hưởng tới nhiều thẻ khác

- Tính bảo mật: vì tính chất công khai các thẻ (công việc) trên bảng kanban, nên việc truy cập và bảo mật thông tin công việc của từng thẻ cũng gây khó khăn cho việc quản lý

Khóa luận áp dụng Kanban vào quản lý nhóm, cụ thể là quản lý danh sách công việc trên một bảng công việc:

- Mỗi danh sách sẽ chứa các loại danh sách Tasks, thông thường sẽ là: To-do, In progress, Done

- Mỗi task được biểu thị bằng một thẻ kanban trong danh sách, gồm các thông tin: tiêu đề, mô tả, điểm, tiến độ, ngày bắt đầu/kết thúc, thành viên đảm nhận… và có thể thêm bình luận, nhận xét và đánh giá cho thẻ công việc đó

Có thể dễ dàng chuyển đổi sang các dạng kiến trúc khác như Gantt

2.1.2 Thuật toán Lexorank (Lexicalgraphical ranking)

Quản lý thẻ công việc bằng Kanban đòi hỏi phải có một phương pháp sắp xếp tốt Vì Kanban là một bảng chứa nhiều danh sách được sắp xếp có thứ tự, trong mỗi danh sách lại chứa nhiều thẻ công việc cũng được sắp xếp có thứ tự, nên khi di chuyển một thẻ từ vị trí cũ đến vị trí mới trong bảng Kanban, không chỉ thứ tự của thẻ đó bị thay đổi, mà dẫn tới vị trí của nhiều thẻ khác có liên quan cũng bị thay đổi theo

• Cách xử lý thông thường là lưu trữ thứ tự thẻ với số nguyên và thay đổi tuần tự thứ tự đó khi kéo thả thẻ:

Trang 38

Hình 2-1 Minh họa thuật toán sắp xếp thẻ Kanban thông thường

Khi thẻ ở vị trí i di chuyển tới vị trí ở giữa thẻ j và j-1, thì ngoài thẻ i ra, ta cần cập nhật lại thứ tự cho tất cả các thẻ nằm trong vùng [i+1, j-1]

Trường hợp xấu nhất, khi i=1 và j=n, số lượng thẻ cần cập nhật lại thứ tự là n-1 thẻ

Với cách xử lý này, ta có độ phức tạp là O(n)

• Khóa luận này áp dụng một thuật toán tối ưu hơn có tên Lexicalgraphical ranking:

Đây là một thuật toán được phát triển theo ý tưởng của thuật toán sắp xếp thẻ Kanban của JIRA, mang tên Lexorank Với ý tưởng lưu thứ tự của thẻ bằng chuỗi ký tự và thực hiện sắp xếp dựa trên thứ tự theo bảng chữ cái (Alphabetical order) Ý tưởng của thuật toán Lexorank như sau:

Trang 39

Hình 2-2 Minh họa thuật toán Lexorank Khi di chuyển thẻ “AAA” xuống giữa vị trí thẻ “CCC” và “DDD”, ta chỉ cần tạo

ra một chuỗi mới có giá trị alphabetical order lớn hơn chuỗi “CCC” và nhỏ hơn chuỗi “DDD”, là chuỗi “CCD” Sau đó gán vào cho thẻ được di chuyển Với cách này, chỉ cần thay đổi chuỗi thứ tự của thẻ cần di chuyển, mà không cần cập nhật bất kỳ thứ tự nào của các thẻ còn lại

Trong trường hợp giữa hai chuỗi cần chèn vào không còn vị trí trống, ví dụ giữa chuỗi “CCD” và “DDD”, ta không tìm được vị trí trống do “C” và “D” đã kề nhau trong bảng chữ cái, thì một ký tự con mới sẽ được thêm vào chuỗi nhỏ hơn

và bắt đầu chuỗi mới Hình bên dưới minh họa cho trường hợp này

Trang 40

Hình 2-3 Minh họa thuật toán Lexorank trường hợp cần thêm chuỗi phụ

Từ đó, do thuật toán chỉ cập nhật duy nhất vị trí của thẻ được di chuyển, nên độ phức tạp của thuật toán Lexorank chỉ còn lại O(1)

Đoạn code tìm chuỗi mới giữa 2 chuỗi của Lexorank:

Hình 2-4 Minh họa đoạn code tìm chuỗi thứ tự chèn giữa hai chuỗi của Lexorank

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

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w