ỦY BAN NHÂN DÂN TP.HCM TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨCKHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2020 -2021Tên đề tài: Xây dựng ứng dụng tham gia lớp học online tự động theo
Trang 1ỦY BAN NHÂN DÂN TP.HCM TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC
KHOA CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU KHOA HỌC NĂM HỌC 2020 -2021Tên đề tài: Xây dựng ứng dụng tham gia lớp học online tự
động theo thời khóa biểu của sinh viên
GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên)
Bùi Thị Phương Thảo
TÁC GIẢ/ CHỦ NHIỆM ĐỀ TÀI
(Ký, Ghi rõ họ tên)
Nguyễn Thái Sơn
TRƯỞNG KHOA
(Ký, Ghi rõ họ tên)
Lê Diên Tâm
TP Hồ Chí Minh, ngày 09 tháng 07 năm 2022
Trang 2LỜI CẢM ƠN
Lời đầu tiên xin chân thành cám ơn Trường Cao Đẳng Công Nghệ Thủ Đức,Khoa Công nghệ thông tin, cô Bùi Thị Phương Thảo đã tạo mọi điều kiện, tậntâm hướng dẫn, truyền đạt kiến thức cũng như là cho em thêm ý kiến, nhận xét
để giúp em hoàn thành Đề tài Nghiên Cứu Khoa Học(NCKH) với tên đề tài là
“Xây dựng ứng dụng tham gia lớp học online tự động theo thời khóa biểu củasinh viên ”
Em đã phát triển ứng dụng này từ tháng 11 năm 2021 sau khi có ý tưởng vềứng dụng cũng như là đăng ký thực hiện đề tài NCKH với Khoa Công nghệthông tin Sau khi đăng ký đề tài và trình bày ý tưởng ra, em đã được thầy côủng hộ và tin tưởng về đề tài này Và em cũng bắt đầu phát triển, cài đặt vàtesting toàn bộ hệ thống cho đến tháng 5/2022
Cuối cùng, một lần nữa xin gửi lời cảm ơn chân thành nhất tới Trường CaoĐẳng Công Nghệ Thủ Đức, Khoa Công Nghệ Thông Tin và Cô Bùi ThịPhương Thảo
Kính chúc Thầy Cô có sức khỏe và thành công trong sự nghiệp!
Em xin chân thành cảm ơn!
Sinh viên Nguyễn Thái Sơn
Trang 41 Hướng dẫn chỉnh tự động mở máy trong BIOS 31
2 Hướng dẫn thêm, xóa, sửa lịch học 34
Trang 5Hình 14: Hướng dẫn xóa, sửa lịch học 34Hình 15: Hệ thống tự động vào trang google meet của lớp học 35Hình 16: Hệ thống tự động bấm vào nút "Tham gia ngay" 35Hình 17: Hệ thống tự động tắt mic và tắt camera 36Hình 18: Hệ thống tự động lưu video đã quay vào ổ đĩa đã cài đặt 36
Trang 6DANH MỤC SƠ ĐỒ
Sơ đồ 4: Quy trình ghi màn hình buổi học 21
Sơ đồ 5: Sơ đồ usecase của hệ thống 23
Trang 7I PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
- Vào thời điểm dịch covid diễn biến phức tạp tại Việt Nam nói chung, và thành phố
Hồ Chí Minh nói riêng, việc đóng cửa trường học và cho sinh viên học online tạinhà là vô cùng cần thiết Việc này giúp sinh viên tránh tập trung đông người vàtránh tiếp xúc trực tiếp với nhau nơi công cộng nhằm ngăn chặn dịch bệnh lây lan
- Tuy trường học đóng cửa nhưng việc học và dạy học của sinh viên và giáo viênvẫn được tiếp tục bằng phương pháp dạy học trực tuyến thông qua Google Meet.Việc học của sinh viên vẫn diễn ra bình thường nhờ các tính năng tuyệt vời củaGoogle Meet Giáo viên có thể quan sát sinh viên ngồi trước màn hình, trình chiếubài giảng, theo dõi ý kiến của sinh viên và còn tận dụng nhiều tính năng củaGoogle để việc giảng dạy được dễ dàng hơn
- Tuy nhiên việc để nhớ đường dẫn đến các lớp học, thời khóa biểu, giờ học củasinh viên đôi lúc gặp khó khăn hơn so với việc đi học ở trường Và đi học đúnggiờ cũng là một vấn đề đối với sinh viên
- Và với đề tài này, ta sẽ giải quyết được:
● Tự động truy cập đúng đường link theo thời khóa biểu của sinh viên
● Tự động yêu cầu vào lớp và chờ đồng ý vào lớp của thầy cô
- Đó chính là những lý do, em thực hiện đề tài “Xây dựng ứng dụng tham gia lớphọc online tự động theo thời khóa biểu của sinh viên”
2 Mục đích đề tài
- Giúp sinh viên vào đúng lớp học theo thời khóa biểu
- Vào lớp học đúng giờ mà không phải tốn thời gian tìm đường dẫn
- Tự động vào lớp học mà không cần phải mở Google Meet
Trang 8- Ngoài ra còn giúp sinh viên ghi lại màn hình của buổi học và tùy chỉnh độ phângiải và các thông số phù hợp với nhu cầu cá nhân để có thể xem lại bài khi cần và
có ích cho việc rèn luyện kiến thức
4 Định hướng phát triển của đề tài
- Ứng dụng được định hướng phát triển theo giai đoạn như sau:
● Giai đoạn A, phát triển hệ thống cơ bản trên giao diện và dữ liệu cứng đượcđặt sẵn
● Giai đoạn B, bắt đầu phát triển các chức năng bên phía quản trị viên, thêmxóa sửa các dữ liệu và lưu vào database
● Giai đoạn C, chuyển qua xây dựng cho phía người dùng, truy xuất các dữliệu của quản trị viên đã tạo và phát triển thêm các chức năng
● Giai đoạn D, vận hành và bảo trì hệ thống
5 Các phần mềm đã có trước đây
- Hiện tại chưa có phần mềm nào giống với phần mềm mà nhóm chúng em đangnghiên cứu và phát triển
6 Nội dung nghiên cứu
- Remote browser bằng Selenium
Trang 9- Thiết kế sử dụng controls của Handy Control
- Dùng để quay video trên browser sử dụng Media Stream API
Trang 10II CÁC CÔNG NGHỆ, KỸ THUẬT SỬ DỤNG TRONG ĐỀ
TÀI
1 Các công nghệ và kỹ thuật áp dụng
- Remote browser bằng Selenium
- Quay video bằng ScreenRecorderLib
- Thiết kế sử dụng controls của Handy Control
- Dùng để quay video trên browser sử dụng Media Stream API
2 Những ưu điểm và các lý do áp dụng công nghệ
2.1 Selenium
2.1.1 Giới thiệu
Selenium là một khung kiểm tra tự động mã nguồn mở, được sử dụng để xác thực cácứng dụng dựa trên web Nó cho phép chúng tôi thực hiện các bài kiểm tra trên cáctrình duyệt và nền tảng khác nhau Một số tiện ích của nó là:
Selenium hỗ trợ nhiều ngôn ngữ lập trình như Java, Python, C #, JavaScript, Ruby,PHP và Perl
Selenium cũng độc lập với nền tảng, có nghĩa là nếu bạn viết một bài kiểm traSelenium trong hệ điều hành Windows, bạn có thể dễ dàng thực thi tương tự trênLinux hoặc macOS
Các bài kiểm tra Selenium có thể được thực hiện trên nhiều trình duyệt, như Firefox,Chrome, Internet Explorer, Safari và Opera
Nó có một cộng đồng rộng rãi sẵn sàng hỗ trợ
Thực hiện kiểm tra song song là một trong những tính năng chính của Selenium.Các thành phần của Selenium là gì?
Trang 11Như đã nói, Selenium là một khuôn khổ, tức là nó không phải là một phần mềm đơn
lẻ mà là một bộ, bao gồm các thành phần khác nhau Tham khảo sơ đồ bên dưới đểxem sự phát triển của các thành phần Selen
Hướng dẫn sử dụng Selenium WebDriver thực tế nhất với các ví dụ
Hình 1: Giới thiệu về thư viện Selenium
Trong ứng dụng này sử dụng chủ yếu là Selenium WebDriver
Trang 12Kiến trúc Selenium WebDriver
Hình dưới đây giới thiệu tổng quan về kiến trúc của Selenium WebDriver
Hình 2: Giới thiệu về Selenium WebDriver
Selenium WebDriver bao gồm bốn thành phần chính:
● Thư viện khách hàng Selenium / Ràng buộc ngôn ngữ
● Giao thức dây JSON
● Trình điều khiển trình duyệt
● Trình duyệt thực
Thư viện khách hàng Selenium / Liên kết ngôn ngữ Selenium
Để hỗ trợ nhiều ngôn ngữ, các nhà phát triển Selenium đã xây dựng các ràng buộc ngônngữ Nếu bạn đang viết các bài kiểm tra của mình trong java, bạn có thể sử dụng các liênkết Java Các thư viện khách này có thể được tải xuống từ trang web chính thức củaSelenium
Giao thức dây JSON
Trang 13JSON là một dạng viết tắt của JavaScript Object Notation Nó chuyển dữ liệu giữa máykhách và máy chủ Nó cung cấp hỗ trợ cho các cấu trúc dữ liệu như các đối tượng vàmảng, do đó làm cho việc đọc và ghi dữ liệu dễ dàng hơn Nó hoạt động như một APIREST (Truyền trạng thái đại diện) để truyền thông tin giữa các máy chủ HTTP.
Trình điều khiển trình duyệt
Để phát triển kết nối an toàn với trình duyệt, Selenium sử dụng Trình điều khiển Mỗitrình duyệt có trình điều khiển riêng để ẩn logic bên trong chức năng của trình duyệt.Ngoài ra, mỗi ngôn ngữ tự động hóa có một trình điều khiển trình duyệt tương ứng Khithực thi các tập lệnh, một loạt các thao tác sau sẽ xảy ra:
● Mỗi lệnh Selenium tạo ra một yêu cầu HTTP tương ứng, được gửi đến
trình điều khiển trình duyệt
● Yêu cầu này được định tuyến thông qua Máy chủ HTTP
● Máy chủ HTTP hiện điều khiển việc thực thi lệnh trên trình duyệt
● Trình duyệt sẽ gửi lại trạng thái tới Máy chủ HTTP, máy chủ này sẽ
chuyển tiếp trạng thái đó tới tập lệnh tự động hóa
Một số trình điều khiển trình duyệt là ChromeDriver, GeckoDriver, IE Driver, v.v Bạn cóthể tải xuống các trình điều khiển này từ kho GitHub của các trình duyệt tương ứng
Các trình duyệt
Trình duyệt là điểm cuối của quá trình thực thi thử nghiệm của chúng tôi Selenium hỗtrợ tất cả các trình duyệt chính như Firefox, Chrome, Internet Explorer, Safari, v.v
2.1.2 Ưu điểm và lý do sử dụng công nghệ
Sử dụng Selenium do mã nguồn mở, tương thích nhiều trình duyệt, hỗ trợ đa ngôn ngữlập trình, thân thiện, dễ sử dụng và tốc độ thực thi nhanh tuy nhiên chỉ hỗ trợ ứng dụngweb, đòi hỏi kinh nghiệm lập trình và không có hỗ trợ kỹ thuật
Trang 142.2 ScreenRecorderLib
2.2.1 Giới thiệu
Thư viện NET để quay màn hình trong Windows, sử dụng Microsoft Media Foundationgốc để mã hóa thời gian thực thành video h264 hoặc hình ảnh PNG Thư viện này yêucầu Windows 8 trở lên để hoạt động, cũng như Visual C ++ Redistributable x64 hoặcVisual C ++ Redistributable x86 được cài đặt, tùy thuộc vào nền tảng được biên dịch.Thư viện này cũng yêu cầu Media Foundation để hoạt động, phải được cài đặt từ ServerManager nếu chạy trên Windows Server hoặc từ "Media Feature Pack" tương ứng nếuchạy trên phiên bản Windows N hoặc KN
Có sẵn trên NuGet
2.2.2 Ưu điểm và lý do sử dụng công nghệ
Sử dụng ScreenRecorderLib nhờ thư viện NET để ghi màn hình trong Windows, sử dụngMicrosoft Media Foundation gốc để mã hóa thời gian thực cho hình ảnh video H264 hoặcPNG Thư viện này cũng yêu cầu Quỹ truyền thông làm việc
2.3 HandyControl
2.3.1 Giới thiệu
HandyControl là một thư viện điều khiển WPF viết lại gần như tất cả các kiểu gốc và baogồm hơn 80 điều khiển tùy chỉnh (ngày càng tăng)
2.3.2 Ưu điểm và lý do sử dụng công nghệ
Sử dụng HandyControl là một thư viện điều khiển WPF viết lại hầu hết tất cả các kiểugốc và bao gồm hơn 80 điều khiển tùy chỉnh (ngày càng)
Trang 15III ĐẶC TẢ YÊU CẦU PHẦN MỀM
1 Mô tả yêu cầu
- Yêu cầu xây dựng một ứng dụng giúp sinh viên tự động tham gia vào
các lớp học mà không phải tìm link và thời khóa biểu vào mỗi buổi học
- Giúp sinh viên vào học đúng giờ đúng môn, đúng lớp học
- Giao diện thân thiện, dễ dùng, xử lý nhanh
- Tích hợp các tiện ích như ghi màn hình, tùy chỉnh độ phân giải
2 Mục tiêu hệ thống
- Đáp ứng các nhu cầu của sinh viên trong việc tham gia vào các lớp học
đúng giờ Ghi lại bài giảng của giảng viên Tiết kiệm thời gian tìm link
và hạn chế việc đi học sai lớp
3 Phạm vi hệ thống
- Ứng dụng phù hợp với sinh viên trong thời gian giãn cách xã hội phải
học online, phù hợp với các tình huống khó khăn sinh viên không thể
đến lớp học trực tiếp
4 Các chức năng của người dùng
- Thêm, xóa, sửa lịch học
- Ghi màn hình
- Tự động tham gia lớp học mà không cần phải bật trình duyệt và tìm
link lớp học
Trang 165 Lấy yêu cầu phần mềm
5.1 Quy trình thêm lịch học
5.1.1 Mô hình
Trang 18Sơ đồ 1: Quy trình thêm lịch học
5.1.2 Mô tả quy trình
● Để vào lớp học tự động, người dùng cần phải thêm lịch học vào danh
sách lịch học để có thể vào lớp Đầu tiên, người dùng phải vào màn
hình quản lý lịch học
● Tiếp theo, người dùng cần phải điền đầy đủ các thông tin bao gồm: tên
lớp học, ngày bắt đầu, ngày kết thúc, giờ bắt đầu, giờ kết thúc, link,
trình duyệt, hồ sơ và tên
● Tiếp theo người dùng nhấn lưu Nếu nhập đủ thông tin thì sẽ thêm được
lịch thành công Nếu thêm thông tin không đủ thì thông báo lỗi sẽ hiển
thị và người dùng sẽ phải nhập lại thông tin
5.2 Quy trình xóa lịch học
5.2.1 Mô hình
Trang 19Sơ đồ 2: Quy trình xóa lịch học
5.2.2 Mô tả quy trình
● Đầu tiên người dùng vào màn hình quản lý lịch học
● Tiếp theo người dùng nhấn chọn lịch học cần xóa
● Tiếp theo người dùng nhấn nút xóa
● Lịch học được xóa thành công
5.3 Quy trình chỉnh sửa lịch học
5.3.1 Mô hình
Trang 20Sơ đồ 3: Quy trình sửa lịch học
5.3.2 Mô tả quy trình
● Đầu tiên người dùng vào màn hình quản lý lịch học
● Tiếp theo người dùng nhận chọn lịch học cần chỉnh sửa trong bảng
● Tiếp theo người dùng nhập các thông tin cần chỉnh sửa của lịch học
theo đúng nhu cầu
5.4 Quy trình ghi màn hình buổi học
5.4.1 Mô hình
Trang 215.4.2 Mô tả quy trình
● Máy tự động khởi động và mở ứng dụng
● Tiếp theo sẽ mở trinhg duyệt và vào trang google meet
● Ứng dụng sẽ tự động tắt mic, tắt camera và gửi yêu cầu tham gia cho
giáo viên
● Nếu yêu cầu được chấp thuận thì sẽ mở ghi màn hình khi được vào lớp
và đóng ghi màn hình khi kết thúc buổi học
● Tiếp theo ứng dụng sẽ tải video về
● Nếu yêu cầu không được chấp thuận thì ứng dụng sẽ tự động làm mới
trang và quay về bước tắt mic, tắt camera
6 Yêu cầu khác
6.1 Hệ điều hành và dòng máy phù hợp
- Chỉ một số dòng máy và hệ điều hành phù hợp mới có thể sử dụng
được tính năng tự động khởi động máy tính
- PC phù hợp với tính năng tự khởi động máy
6.2 Bộ nhớ máy đủ lớn
- Chức năng tự động quay màn hình yêu cầu bộ nhớ phải đủ lớn để chứa
video sau mỗi buổi học Mỗi video quay trong vòng nhiều giờ nên dung
lượng có thể lớn
Trang 227 Chức năng của hệ thống
7.1 Sơ đồ Usecase
Sơ đồ 5: Sơ đồ usecase của hệ thống
7.2 Mô tả Usecase
1 UC-AD-01 Thêm lịch học Cho phép Actor có thể thêm lịch
học vào danh sách lịch học
2 UC-AD-02 Xóa lịch học Cho phép Actor có thể xóa lịch học
khỏi danh sách lịch học
3 UC-AD-03 Sửa lịch học Cho phép Actor có thể sửa lịch học
4 UC-AD-04 Ghi màn hình buổi học Cho phép Actor có thể ghi màn
hình buổi học
7.3 Yêu cầu chức năng
UC-AD-01: Thêm lịch học
Trang 23Tên Thêm lịch học Mã UC-AD-01
Mô tả Cho phép Actor có thể thêm lịch học vào danh sách lịch học
màn hình quản lý lịch học
Pre-condition User phải có sẵn lịch học đúng theo TKB của nhà trường
Post condition Lịch học sẽ được thêm vào danh sách lịch học
Basic Flow 1 Vào màn hình Quản lý lịch học
4 Hiện thông báo lỗi
5 Nhập lại thông tin lịch học
6 Nhấn lưu
7 Lịch học được thêm mới
Trang 24Hình 3: Chức năng thêm lịch học
UC-AD-02: Xóa lịch học
Tên Xóa lịch học Mã UC-AD-02
Mô tả Cho phép Actor có thể xóa lịch học khỏi danh sách lịch học
lịch học
Pre-condition Actor phải có lịch học cần xóa
Post condition Lịch học sẽ bị xóa khỏi danh sách lịch học
Basic Flow 1 Vào màn hình Quản lý lịch học
2 Nhấn chọn lịch học cần xóa trong bảng
3 Nhấn xóa
Trang 254 Lịch học bị xóa
Exception
Flow
Hình 4: Chức năng xóa lịch học
Trang 26UC-AD-03: Sửa lịch học
Tên Sửa lịch học Mã UC-AD-03
Mô tả Cho phép Actor có thể sửa lịch học
lịch học
Pre-condition Actor phải có lịch học cần sửa và thông tin cần sửa
Post condition Lịch học được cập nhật
Basic Flow 1 Vào màn hình Quản lý lịch học
2 Nhập thông tin mới của lịch học
4 Hiện thông báo lỗi do thông tin chưa đúng yêu cầu
5 Nhập lại thông tin
6 Nhấn lưu
7 Thông tin được cập nhật
Trang 27Hình 5: Chức năng sửa lịch học
Trang 28UC-AD-04: Ghi màn hình
Tên Ghi màn hình Mã UC-AD-04
Mô tả Cho phép Actor có ghi màn hình buổi học
bật máy tính trong BIOS
Pre-condition Actor phải có máy tính hoặc hệ điều hành tương thích
Post condition Video được ghi lại
Basic Flow 1 Máy tự động khởi động và mở ứng dụng
2 Tiếp theo sẽ mở trinhg duyệt và vào trang googlemeet
3 Ứng dụng sẽ tự động tắt mic, tắt camera và gửiyêu cầu tham gia cho giáo viên
4 Nếu yêu cầu được chấp thuận thì sẽ mở ghi mànhình khi được vào lớp và đóng ghi màn hình khikết thúc buổi học
5 Tiếp theo ứng dụng sẽ tải video về
4 Nếu yêu cầu không được chấp thuận thì ứng dụng
sẽ tự động làm mới trang và quay về bước tắt mic,tắt camera
5 Gửi yêu cầu tham gia
6 Yêu cầu được chấp thuận
7 Mở ghi màn hình
8 Đóng màn ghi hình khi kết thúc buổi học
Trang 299 Video được tải về máy
Hình 6: Chức năng ghi màn hình buổi học
Trang 30IV HƯỚNG DẪN SỬ DỤNG
1 Hướng dẫn chỉnh tự động mở máy trong BIOS
Bước 1: Vào BIOS bằng Setting hoặc bằng CMD
Hình 7: Hướng dẫn vào BIOS bằng setting hoặc CMD
Bước 2: Chọn Advanced sau đó chọn APM Confirmation