Xây dựng phần mềm tự động tạo nhóm lớp trong MS Teams theo thời khóa biểu trên trang đào tạo

Tại Học viện Nông nghiệp Việt Nam, phần mềm MS Teams được sử dụng để hỗ trợ công tác đào tạo. Tất cả giảng viên và sinh viên của Học viện đều được cấp một tài khoản Office 365 để sử dụng nhiều phần mềm của Microsoft như MS Teams, Office 365 Online, email Outlook, OneDrive… Với MS Teams, trong mỗi học kỳ giảng viên có thể tạo các nhóm lớp môn học để gửi thông báo, tài liệu môn học tới sinh viên; cho sinh viên làm bài tập, bài kiểm tra; cho sinh viên trao đổi và giải đáp thắc mắc của sinh viên về môn học. Tuy nhiên, việc tạo nhóm lớp môn học và lịch dạy trong từng học kỳ hiện nay phải làm thủ công, mất nhiều thời gian và công sức của giảng viên. Vì vậy, việc xây dựng phần mềm tự động tạo nhóm lớp môn học, thêm tài khoản sinh viên vào nhóm lớp và tạo lịch dạy trong MS Teams để hỗ trợ giảng viên tại Học viện Nông nghiệp Việt Nam là vô cùng cần thiết.

Trong khuôn khổ đề tài sinh viên NCKH năm 2023 “Xây dựng phần mềm tự động tạo nhóm lớp trong MS Teams theo thời khóa biểu trên trang đào tạo” của nhóm sinh viên Vũ Thị Uyên, Nguyễn Hoàng Nam, Đỗ Tiến Toàn lớp K63CNPM do ThS. Ngô Công Thắng hướng dẫn, sau thời gian nghiên cứu, nhóm đã nắm được kiến thức về những công nghệ sử dụng trong đề tài: ReactJS, NodeJS, Microsoft Graph API, thư viện Selenium… nhóm đã ứng dụng các công nghệ trên vào xây dựng phần mềm tự động tạo nhóm lớp và lịch học với các chức năng chính: Tự động tạo nhóm lớp; Tự động tạo lịch học.

Kết quả nghiên cứu

1. Tìm hiểu công nghệ

Các công nghệ được sử dụng trong nghiên cứu :

1.1 Thư viện Selenium: Selenium là một bộ kiểm thử tự động mã nguồn mở miễn phí cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau, nó tập trung vào việc tự động hóa các ứng dụng dựa trên web. Kiểm thử được thực hiện bằng công cụ Selenium thường được gọi là Selenium Testing. Selenium không chỉ là một công cụ duy nhất mà là một bộ phần mềm, mỗi bộ phận phục vụ cho các nhu cầu kiểm thử khác nhau của một tổ chức

1.2. Fluent UI: Fluent UI là một thư viện hỗ trợ giao diện theo thiết kế của Fluent Design. Đây là một dạng thiết kế mới chuyển từ một thiết kế phẳng nhàm chán truyền thống sang một ngôn ngữ thiết kế hiện đại mang lại trải nghiệm sâu sắc và hấp dẫn hơn bằng cách sử dụng các kỹ thuật thiết kế đa chiều mới. Các thành phần mới sẽ trông tuyệt vời với kiểu Teams và sẽ tự động điều chỉnh theo chủ đề mặc định của Teams.

1.3. ReactJS: ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook nhằm tạo ra các ứng dụng web nhanh và hiệu quả với mã nguồn. Mục đích chính của ReactJS là khiến cho website hoạt động mượt mà, khả năng mở rộng cao và đơn giản.

1.4. Microsoft Graph REST API: Microsoft Graph API là một dịch vụ RESTful được phát triển bởi Microsoft, cung cấp khả năng truy cập dữ liệu và tương tác với nhiều dịch vụ và ứng dụng trong hệ thống Microsoft 365 và Azure AD, bao gồm Outlook, OneDrive, SharePoint, Microsoft Teams, và nhiều dịch vụ khác.

1.5. ExpressJS: Express.js là một framework phía máy chủ (server-side) phát triển trên nền tảng Node.js, được tạo ra để xây dựng ứng dụng web và API dễ dàng và nhanh chóng. Nó đã trở thành một trong những framework phía máy chủ phổ biến nhất cho Node.js.

1.6.  Hệ quản trị cơ sở dữ liệu MySQL : MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hàng đầu trên thế giới và đặc biệt được ưa chuộng trong quá trình xây dựng, phát triển ứng dụng. Đây là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có khả năng thay đổi mô hình sử dụng phù hợp với điều kiện công việc khả chuyển, hoạt động trên nhiều hệ điều hành.

2. Xây dựng chương trình hệ thống

2.1. Chức năng tạo nhóm lớp và lịch học

Để tạo nhóm lớp và lịch học người dùng cần chọn học kì muốn thêm, điền mã học kỳ (nếu có), sau đó ấn nút “Lấy lịch học”. Hệ thống sẽ hiển thị nhóm lớp của giảng viên từ trang đào tạo của học viện. Mặc định hệ thống sẽ tạo tất cả nhóm lớp lấy được, nếu người dùng muốn tạo thêm lịch học cho lớp nào thì tích chọn vào lớp đó. Sau đó hệ thống sẽ tự động tạo nhóm lớp và lịch học.

Hình 1: Chức năng tạo nhóm lớp và lịch học

2.2. Chức năng sửa mã giảng viên

Nếu người dùng muốn thay đổi mã giảng viên thì có thể cập nhật lại mã giảng viên của tài khoản. Người dùng chỉ được nhập mã giảng viên chưa tồn tại trên hệ thống.

Hình 2: Chức năng sửa mã giảng viên

3. Kết luận

Phần mềm tự động tạo nhóm lớp trong MS Teams theo thời khóa biểu trên trang đào tạo đã đáp ứng được đủ các tiêu chí sau: Phần mềm được tích hợp trực tiếp vào giao diện của MSTeams ; Phần mềm đọc được chính xác danh sách học kì và thời khóa biểu của Giảng viên theo từng học kì; Phần mềm tạo được nhóm lớp theo đúng tên định dạng của học viện yêu cầu, thêm đầy đủ sinh viên vào nhóm và có thể tạo lịch học theo như lịch đọc được từ trang đào tạo của học viện chỉ bằng một thao tác duy nhất. Nếu người dùng muốn thay đổi mã giảng viên thì có thể cập nhật lại mã giảng viên của tài khoản. Người dùng chỉ được nhập mã giảng viên chưa tồn tại trên hệ thống.

Với kết quả trên, nhóm nghiên cứu hoàn toàn có thể tự động hóa các thao tác trong quá trình tạo nhóm lớp ở mỗi đầu học kì của các giảng viên, khiến cho việc đồng bộ lịch học giữa trang đào tạo và phần mềm MSTeams trở nên dễ dàng và chính xác.

Để đạt được kết quả đó, quá trình nghiên cứu của nhóm đã gặp phải rất nhiều khó khăn như:

Vì Microsoft là một tập hợp các phần mềm có tính bảo mật rất cao, phần mềm của nhóm em sử dụng trình xác thực trực tiếp do Micosoft cung cấp rất bảo mật. Tuy nhiên để có thể có được tài khoản có quyền tạo nhóm lớp tự động, nhóm và giảng viên hướng dẫn đã phải liên hệ trực tiếp với quản trị viên Micosoft Teams của học viện để xin tài khoản được cấp quyền và đợi quản trị viên xem xét phê duyệt.

Vì nội dung nghiên cứu về API của Microsoft có rất ít người nghiên cứu nên gần như chỉ có tài liệu do Microsoft cung cấp và hoàn toàn không có một tài liệu tiếng Việt nào vì nó chưa từng được nghiên cứu ở Việt Nam trước đây. Thế nên nhóm nghiên cứu đã gặp khó khăn khi xử lý lỗi trong quá trình viết phần mềm.

Mặc dù đã phần mềm đã đạt được các vấn đề đã đặt ra, tuy nhiên vẫn còn lại một số vấn đề như việc loading phần mềm khá chậm hay đôi khi gặp phải những vấn đề về xác thực. Các vấn đề này tồn đọng chủ yếu do phía API của Microsoft cung cấp xác thực khá nhiều bước và lượng dữ liệu như số lượng sinh viên trong lớp lớn, dẫn đến tình trạng bị trì trệ trong quá trình sử dụng. Hoặc trong quá trình sử dụng phần mềm mà trang đào tạo của học viện bảo trì hoặc bị sập do quá tải thì sẽ dẫn đến việc phần mềm sẽ không thể truy cập vào để lấy được lịch học.

Khoa CNTT