HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM HỒ TRẦN THIỆN ĐẠT – 17520330 ĐÀO HỮU DUY QUÂN - 17520136 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG HỖ TRỢ TƯƠNG TÁ
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
HỒ TRẦN THIỆN ĐẠT – 17520330 ĐÀO HỮU DUY QUÂN – 17520136
KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG HỖ TRỢ
TƯƠNG TÁC LỚP HỌC
Building an application supporting classroom interaction
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
Trang 2ĐẠ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
HỒ TRẦN THIỆN ĐẠT – 17520330 ĐÀO HỮU DUY QUÂN - 17520136
KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG HỖ TRỢ
TƯƠNG TÁC LỚP HỌC
Building an application supporting classroom interaction
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
TS NGUYỄN LƯU THÙY NGÂN ThS LÊ THANH TRỌNG
Trang 3THÔ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 2021
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 HỆ THỐNG HỖ TRỢ TƯƠNG TÁC LỚP HỌC
Hồ Trần Thiện Đạt
Đào Hữu Duy Quân
Đánh giá Khóa luận
Trang 5Mộ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 Điểm từng sinh viên: Hồ Trần Thiện Đạt /10
Đào Hữu Duy Quân /10
Người nhận xét
Trang 6Đ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 2021
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 HỆ THỐNG HỖ TRỢ TƯƠNG TÁC LỚP HỌC
Hồ Trần Thiện Đạt 17520330 ThS Nguyễn Thị Thanh Trúc
Đào Hữu Duy Quân 17520136
Đánh giá Khóa luận
5 Về cuốn báo cáo:
Trang 7Mộ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 8Điểm từng sinh viên:
Trang 9LỜI CẢM ƠN
Khoá luận tốt nghiệp với đề tài “XÂY DỰNG HỆ THỐNG HỖ TRỢ TƯƠNG TÁC LỚP HỌC” là minh chứng cho quá trình cố gắng không ngừng trong việc tìm tòi, học hỏi trong suốt hơn 4 năm học tập tại trường Đại học Công nghệ Thông tin Thể hiện khả năng của bản thân trong việc áp dụng kiến thức chuyên môn vào giải quyết bài toán thực tế
Trong quá trình thực hiện khoá luận, em đã nhận được sự hướng dẫn tận tình từ quý thầy cô, sự giúp đỡ và hỗ trợ từ gia đình cũng như bạn bè Một cách đặc biệt, em xin được gửi lời cảm ơn chân thành đến:
• Các thầy cô trường Đại học Công nghệ Thông Tin nói chung và các thầy cô trong Khoa Công nghệ Phần mềm nói riêng đã tận tình truyền đạt kiến thức tới
em trong những năm học tập tại trường Đó là tài sản quý báu đã giúp em hoàn thành khoá luận và cũng là hành trang cho con đường sự nghiệp của bản thân sau này
• Em xin được gửi lời cảm ơn sâu sắc tới ThS Lê Thanh Trọng, người đã trực tiếp hướng dẫn, chỉ bảo, giúp đỡ em những lúc khó khăn, đưa ra những lời khuyên bổ ích để khoá luận được hoàn thành đúng tiến độ và đáp ứng các yêu cầu đề ra ban đầu
• 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 em được trở nên hoàn thiện hơn
• Lời cuối cùng, em xin dành lời cảm ơn gửi tới gia đình, anh chị, bạn bè đã luôn bên cạnh để động viên và đóng góp ý kiến trong quá trình hoàn thành khoá luận này
Thành phố Hồ Chí Minh, tháng 07 năm 2021 Sinh viên 1 Sinh viên 2
Trang 10Đ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 HỆ THỐNG HỖ TRỢ TƯƠNG TÁC LỚP HỌC
Cán bộ hướng dẫn: TS Nguyễn Lưu Thùy Ngân
ThS Lê Thanh Trọng Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 26/06/2021
Sinh viên thực hiện:
Hồ Trần Thiện Đạt – 17520330
Đào Hữu Duy Quân – 17520136
Nội dung đề tài:
- Hỗ trợ điểm danh, thực hiện kiểm tra, đánh giá một cách nhanh chóng, tiện lợi
- Quản lý được đầy đủ thông tin cần thiết cho buổi học
Đối tượng sử dụng:
- Giảng viên đang giảng dạy tại trường Đại học Công nghệ Thông tin
- Sinh viên từ năm nhất đến năm cuối tại trường Đại học Công nghệ thông tin
Trang 11Phương pháp thực hiện:
- Tìm hiểu và phân tích quy trình hiện tại tại Trường Đại học Công nghệ Thông tin
- Phân tích các giải pháp của các sản phẩm tương tự trên thị trường
- Thực hiện khảo sát nhu cầu, tình trạng thực tế của sinh viên và giảng viên
- Xây dựng chức năng ở mức MVP (Minimum Viable Product) để đo lường tính hiệu quả
Kết quả mong đợi:
- Hiểu rõ các công nghệ mới:
o Front – end: ReactJS
o Back – end: MySQL/NestJs, Google Firebase
- Hoàn thành sản phẩm với các chức năng đã được phân tích
- Giao diện thân thiện và tạo ra được những giá trị của mục tiêu hướng tới
Trang 12Kế hoạch thực hiện:
Khoá luận được thực hiện trong 15 tuần, thời gian và mô tả nội dung công việc được thể hiện ở bảng bên dưới:
Thời gian thực hiện Công việc
Giai đoạn 1: Tìm hiểu, nghiên cứu
Iteration 1 (01-14/03/2021)
Nghiên cứu, đánh giá, phân
tích
Thiện Đạt:
• Nghiên cứu hiện trạng thị trường
• Nghiên cứu, đánh giá các công nghệ phát triển web – BE
Trang 13Mỗi iteration sẽ là 1 vòng lặp gồm các hành động:
• Planning (đầu tuần 1): Xác định Sprint Goal, lựa chọn các hạng mục từ Sprint Backlog để phát triển trong phần Implementation và kế hoạch để hoàn thành các hạng mục đã chọn
• Implementation (2 tuần): thực hiện các công việc theo kế hoạch Ít nhất 1 tuần phải có 2 buổi trao đổi thông tin giữa 2 thành viên (tối thiểu 30p)
• Review/ retrospect (cuối tuần 2): Chạy thử kết quả và xem tình hình sản phẩm, cập nhật Sprint Backlog Thảo luận về những cách làm việc sẽ được duy trì, cải tiến và hạn chế ở iteration tiếp theo
• Tìm kiếm giao diện phù hợp
• Cầu hình và tạo bộ cấu trúc code cho FE Iteration 5 (26-09/05/2021)
Chức năng quản lý người
Chức năng quản lý đối tượng
tương tác (Bài giảng)
Hoàn thành các chức năng cơ bản CRUD dành cho: Lớp học, Bài giảng
Giảng viên có thể tạo một Buổi học với chức năng
“Trình chiếu tài liệu” và sinh viên có thể tham gia buổi học đó
Cả giảng viên và sinh viên có thể thảo luận bằng văn bản tại “Vùng thảo luận”
Trang 14Iteration 7 (10-23/05/2021)
Chức năng quản lý đối tượng
tương tác (Bài kiểm tra)
Hoàn thành chức năng cơ bản CRUD dành cho: Bài kiểm tra
Trong Buổi học: giảng viên có thể bắt đầu và sinh viên có thể thực hiện Bài kiểm tra
• Thiện Đạt đảm nhiệm BE
• Duy Quân đảm nhiệm FE
Giai đoạn 3: Hoàn thiện, trình bày
Trang 15Xác nhận của CBHD 1 TP HCM, ngày XX tháng 07 năm 2021
(Ký tên và ghi rõ họ tên) Sinh viên 1
TS Nguyễn Lưu Thùy Ngân
(Ký tên và ghi rõ họ tên)
(Ký tên và ghi rõ họ tên)
Đào Hữu Duy Quân
Trang 16DANH MỤC
LỜI CẢM ƠN 9
ĐỀ CƯƠNG CHI TIẾT 10
DANH MỤC 1
TÓM TẮT KHÓA LUẬN 3
Chương 1 MỞ ĐẦU 5
1.1 Giới thiệu đề tài 5
1.2 Lý do chọn đề tài 7
Chương 2 TỔNG QUAN ĐỀ TÀI 9
2.1 Mục tiêu 9
2.2 Phạm vi 9
2.3 Phương pháp thực hiện 9
2.4 Ý nghĩa thực tiễn 9
2.5 Kết quả dự kiến 10
2.6 Hiện trạng bài toán 10
2.7 Đánh giá hiện trạng và hướng giải quyết 10
2.7.1 Đánh giá hiện trạng 10
2.7.2 Hướng giải quyết 13
2.8 Công nghệ sử dụng 13
2.8.1 NestJS 13
2.8.2 ReactJS 14
2.8.3 Firebase 15
2.8.4 PostgreSQL 15
Chương 3 XÂY DỰNG HỆ THỐNG HỖ TRỢ TƯƠNG TÁC LỚP HỌC 18
Trang 173.1.1 Phân tích yêu cầu chức năng 18
3.1.2 Yêu cầu về tính năng 18
3.1.3 Phân tích yêu cầu phi chức năng 18
3.1.4 Phân tích yêu cầu người dùng 19
3.1.5 Mô hình use case toàn hệ thống 19
3.1.6 Một số use case của hệ thống 22
3.1.6.1 Usecase Điểm danh 22
3.1.6.2 Usecase Tải lên dữ liệu 23
3.1.6.3 Usecase Đánh giá giảng viên 25
3.2 Phân tích thiết kế hệ thống 26
3.2.1 Thiết kế luồng sản phẩm 26
3.2.2 Thiết kế xử lý 26
3.2.4 Thiết kế cơ sở dữ liệu 31
3.2.5 Thiết kế kiến trúc hệ thống 37
3.2.6 Thiết kế giao diện 39
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51
4.1 Kết quả đạt được 51
4.2 Thuận lợi và khó khăn 52
4.2.1 Thuận lợi 52
4.2.2 Khó khăn 52
4.3 Hướng phát triển 53
CHƯƠNG 5: TÀI LIỆU THAM KHẢO 54
Trang 18TÓM TẮT KHÓA LUẬN
Khoá luận với đề tài “Hệ thống hỗ trợ tương tác lớp học” tập trung vào khảo sát thực
tế, phân tích chức năng và ứng dụng công nghệ để xây dựng một sản phẩm hoàn chỉnh chạy trên nền tảng website Quyết tâm tạo ra được giá trị từ việc cải thiện hiệu quả việc tương tác trực tiếp giữa giảng viên và sinh viên, trên từng buổi học tại trường trường
Đề tài bắt nguồn từ việc bản thân chúng em chính là sinh viên tại trường và cảm nhận được những điểm bất cập trong việc tương tác với giảng viên, mà công nghệ hoàn toàn đủ khả năng để cải thiện điều đó Chúng em bắt đầu khảo sát, lấy ý kiến từ bạn
bè, thầy cô và các bạn sinh viên trong trường để nắm được thực trạng mà phần lớn mọi người đều gặp phải Bên cạnh đó, chúng em cũng nghiên cứu các giải pháp mà giảng viên đã từng áp dụng Với những giải pháp là sản phẩm công nghệ, chúng em tiếp nhận các ý tưởng hiệu quả, cải tiến lại và tích hợp vào hệ thống
Phụ thuộc vào tình hình quỹ thời gian và các tính năng cần thực hiện, giai đoạn đầu chúng em áp dụng mô hình scrum trong quy trình phát triển sản phẩm Bởi tính linh hoạt, sẵn sàng với những thay đổi, scrum giúp chúng em tự tin thực hiện nghiên cứu song song với phát triển phần mềm mà không quá lo về việc sẽ có khả năng thay đổi
ý tưởng Giai đoạn sau, những chức năng cuối cùng với quỹ thời gian hạn chế đòi hỏi chúng em phải thay đổi sang mô hình thác nước vì các yêu cầu đã rõ ràng và việc thực hiện chức năng cần được đẩy nhanh, hoàn thiện kịp thời
Kết quả thu được trong giai đoạn thiết kế như kiến trúc hệ thống, cơ sở dữ liệu, sơ đồ người dùng, sơ đồ tuần tự và bản thiết kế sử dụng công cụ Figma Trong giai đoạn thực hiện, việc bàn giao kết quả giữa người phát triển front-end với React và back-end với NestJS trở nên tiện lợi thông qua API
Phần cuối cùng của khoá luận là trình bày những nội dung chúng em đã nghiên cứu, kết quả đã thực hiện, đưa ra kết luận và hướng phát triển cho hệ thống trong tương lai
Trang 19Nội dung khoá luận được trình bày trong 5 chương:
- Chương 01: Mở đầu
Trình bày sơ bộ về đề tài và lý do thực hiện
- Chương 02: Tổng quan đề tài
Xác định mục tiêu, phạm vi đề tài Nêu lên hiện trạng và hướng giải quyết
- Chương 03: Xây dựng hệ thống hỗ trợ tương tác lớp học
Phân tích yêu cầu, thiết kế, hiện thực và triển khai website
- Chương 04: Kết luận và hướng phát triển
Kết quả đạt được và những thuận lợi, khó khăn
- Chương 05: Tài liệu tham khảo
Những nguồn tài liệu đã tham khảo trong báo cáo
Trang 20Chương 1 MỞ ĐẦU
1.1 Giới thiệu đề tài
Hiện nay, tình trạng thụ động, ít hoặc ngại tương tác của sinh viên hiện đang ở mức báo động do mức độ ảnh hương tiêu cực của nó:
“Anh Quách Hải Đạt, Giám đốc Trung tâm hỗ trợ sinh viên (SV) TP.HCM dẫn nghiên
cứu của Viện Giáo dục VN cho biết: hiện có tới 83% SV tốt nghiệp được đánh giá là thiếu kỹ năng mềm, 37% không tìm được việc làm phù hợp vì nhiều nguyên nhân - trong đó do thiếu yếu tố kỹ năng là chủ yếu Còn theo thống kê từ Viện Khoa học lao động (Bộ LĐ-TB-XH), cứ 2.000 hồ sơ xin việc được nộp vào các doanh nghiệp thì chỉ
có 40 hồ sơ đạt yêu cầu Theo đánh giá mới đây do Bộ GD-ĐT phối hợp với Viện Khảo thí giáo dục Hoa Kỳ, trong 59 trường ĐH được khảo sát, chỉ có gần 50% SV đáp
ứng yêu cầu về tiếng Anh, 20% không đáp ứng và số còn lại cần được đào tạo thêm ”
– theo báo Thanh niên
Vậy cụ thể tại trường Đại học Công nghệ Thông tin (UIT) thì như thế nào? Theo một khảo
sát khoảng 30 sinh viên và 3 giảng viên tại trường, thì có:
- 76.7% sinh viên gặp vấn đề khi theo dõi bài giảng trên lớp Một số lý do được
chia sẻ là:
▪ “Ngồi xa bảng khó nghe giảng và coi slide”
▪ “Màn hình mờ hoặc đôi khi giọng thầy cô nghe không rõ do loa rè/giọng
nhỏ/giọng địa phương khó theo dõi”
▪ “Thầy cô giảng quá nhanh, không theo kịp mà bản thân lại ngại hỏi lại.”
▪ “Ngại giao tiếp với thầy cô về nội dung bài”
▪ “Các câu hỏi ngắn thì dễ hỏi hơn những câu hỏi dài, sâu xa, kiểu thách
thức GV :3 Vd: Khó để hỏi GV "tại sao người ta lại phát minh ra ngôn ngữ A mà không xài ngôn ngữ B luôn đi Vì cảm giác nó sẽ tốn thời gian
Hình 1-0-1 Thống kê khảo sát
Trang 21của cả lớp :3 Những câu hỏi ngoài lề như yêu cầu thông tin thêm cũng khó hỏi Vd: Khó để hỏi mấy câu kiểu "Google xài thuật toán gì để tìm kiếm, nó có ưu điểm/nhược điểm gì so với thuật toán đang học" - Hết ròi
▪ “Đánh giá quá dài gây mất nhiều thời gian thực hiện”
- 100% giảng viên nhận thấy là mức độ tập trung của sinh viên trên lớp là không
cao
Hình 1-0-2 Thống kê khảo sát
Hình 1-0-3 Thống kê khảo sát
Trang 22- Tất cả các giảng viên đều phải dùng nhiều hình thức khác nhau để có thể điểm
danh hiệu quả
- Từ đó, các con số đáng báo động nói lên việc học tập, tương tác của sinh viên với
giảng viên trong từng buổi học trên giảng đường hàng ngày, nó đang có dấu hiệu
khó khăn và kém hiệu quả Quan trọng hơn hết là sự thiếu can đảm trong việc
nêu lên ý kiến, thắc mắc trong giờ học đã vô hình chung khiến sinh viên bị kìm hãm
lượng kiến thức thu về Và về lâu dài, việc này kéo theo sự thiếu hụt trầm trọng
các kỹ năng mềm, khiến sinh viên khó cạnh tranh trong thị trường việc làm khi
ra trường vào thời buổi hội nhập hiện nay
- Hệ thống hỗ trợ tương tác lớp học là một hệ thống nhằm giúp giảng viên và sinh
viên hoặc giữa các sinh viên trong lớp, trong cùng một nhóm có thể tương tác trực tiếp với nhau trên lớp học Hệ thống gồm nhiều lớp học khác nhau (tính theo học kỳ) Trong mỗi lớp học gồm có giảng viên, sinh viên tương tác với nhau thông qua các đối tượng học tập như bài giảng, bài kiểm tra, bảng thảo luận,…
1.2 Lý do chọn đề tài
- Nhóm em muốn thực hiện 1 đề tài để lại trường và phải tạo ra được giá trị cho cả giảng viên và sinh viên tại UIT Chúng em được truyền cảm hứng từ công ty GEEK Up là luôn
Hình 1-0-4 Thống kê khảo sát
Hình 1-0-5 Thống kê khảo sát
Trang 23cố gắng tạo ra những sản phẩm mang lại giá trị thự, nhờ 2 tháng thực tập ở đó
- Sau 4 năm học tại UIT, thì nhóm em cũng đã quan sát và hiểu được các khó khăn của giảng viên trên mỗi buổi học Đã có những giảng viên chấp nhận sự khó khăn đó mà xem
nó như một điều bình thường Và cũng có những giảng viên rất nỗ lực trong việc cố gắng
áp dụng nhiều phương pháp mới để giúp sinh viên tích cực, chủ động và tăng cường hiệu quả việc học Từ đó, dưới góc nhìn của sinh viên muốn cải thiện chất lượng học tập tại UIT mà chúng em muốn góp sức cùng giảng viên tìm giải pháp bằng việc áp dụng công nghệ - chính là thế mạnh chuyên môn của chúng em tại trường
- Đề tài này cũng là một sự tâm huyết của giảng viên hỗ trợ ThS Lê Thanh Trọng Thầy cũng mong muốn cải thiện chất lượng học tập trên từng buổi học nên từ năm 2 trước đã truyền cảm hứng cho các anh/chị sinh viên khóa trước thực hiện đề tài tương tự Nhưng vì một số lý do nên đề tài đã không thể đạt như kết quả mong muốn Và hiện tại, nhóm em sẽ
là lứa sinh viên tiếp theo tiếp tục sứ mệnh này
Trang 24Chương 2 TỔNG QUAN ĐỀ TÀI
- Điểm danh hàng loạt trên hệ thống thông qua thiết bị laptop, hay điện thoại cá
nhân thay vì đọc miệng truyền thống
- Tìm hiểu và ứng dụng các công nghệ mới, nâng cao kỹ năng phát triển phần mềm
2.2 Phạm vi
- Đề tài tập trung vào xây dựng hệ thống trên nền tảng website hướng tới đối
tượng sử dụng là hơn 6000 giảng viện và sinh viên tại UIT
- Áp dụng tại các giảng đường, lớp học trực tiếp tại trường trong các buổi học
hàng ngày
- Giảng viên và sinh viên chỉ cần sử dụng smartphone hoặc laptop là có thể
truy cập
2.3 Phương pháp thực hiện
- Tìm hiểu và phân tích quy trình hiện tại tại Trường Đại học Công nghệ Thông tin
- Phân tích các giải pháp của các sản phẩm tương tự trên thị trường
- Thực hiện khảo sát nhu cầu, tình trạng thực tế của sinh viên và giảng viên
- Xây dựng chức năng ở mức MVP (Minimum Viable Product) để đo lường tính hiệu quả
2.4 Ý nghĩa thực tiễn
- Việc tương tác trên lớp học giữa giảng viên và sinh viên sẽ diễn ra nhanh chóng hơn
- Sinh viên có một nơi phù hợp để tự tin trao đổi với giảng viên, nếu có thể trao đổi kín - không ai biết, thì càng tiện lợi
- Giảng viên thực hiện kiểm tra kiến thức nhanh chóng bằng bài trắc nghiệm online
Trang 25- Sinh viên có thể theo dõi bài giảng trực tiếp trên thiết bị laptop, hay điện thoại cá nhân
- Điểm danh hàng loạt trên hệ thống thông qua thiết bị laptop, hay điện thoại cá nhân thay vì đọc miệng truyền thống
- Sinh viên có thể trực tiếp đánh giá và góp ý chất lượng buổi học
2.5 Kết quả dự kiến
- Hiểu rõ các công nghệ mới:
o Front – end: ReactJS
o Back – end: MySQL/NestJs, Google Firebase
- Hoàn thành sản phẩm với các chức năng đã được trình bày
- Giao diện thân thiện và tạo ra được những giá trị của mục tiêu hướng tới
2.6 Hiện trạng bài toán
Dựa vào cuộc khảo sát mà chúng em đã trình bày ở mục 1.1, những số liệu rất báo động như:
- 76.7% sinh viên gặp vấn đề khi theo dõi bài giảng trên lớp
- Hơn 50% các bạn sinh viên đều gặp các vấn đề khi thực hiện đánh giá môn
Trang 26- 76.7% sinh viên gặp vấn đề khi theo dõi bài giảng trên lớp Một số lý do được
chia sẻ là:
▪ “Ngồi xa bảng khó nghe giảng và coi slide”
▪ “Màn hình mờ hoặc đôi khi giọng thầy cô nghe không rõ do loa rè/giọng nhỏ/giọng địa phương khó theo dõi”
▪ “Thầy cô giảng quá nhanh, không theo kịp mà bản thân lại ngại hỏi lại.”
▪ “Ngại giao tiếp với thầy cô về nội dung bài”
▪ “Các câu hỏi ngắn thì dễ hỏi hơn những câu hỏi dài, sâu xa, kiểu thách thức GV :3 Vd: Khó để hỏi GV "tại sao người ta lại phát minh ra ngôn ngữ A mà không xài ngôn ngữ B luôn đi Vì cảm giác nó sẽ tốn thời gian của cả lớp :3 Những câu hỏi ngoài lề như yêu cầu thông tin thêm cũng khó hỏi Vd: Khó để hỏi mấy câu kiểu "Google xài thuật toán gì để tìm kiếm, nó có ưu điểm/nhược điểm gì so với thuật toán đang học" - Hết ròi
Trang 27- Hơn 50% các bạn sinh viên đều gặp các vấn đề khi thực hiện đánh giá môn học
cuối kì như:
▪ “Quá nhiều đánh giá cùng 1 lúc”
▪ “Không nhớ hết quá trình học”
▪ “Đánh giá quá dài gây mất nhiều thời gian thực hiện”
- 100% giảng viên nhận thấy là mức độ tập trung của sinh viên trên lớp là không
cao
Hình 1-7 Thống kê khảo sát
Hình 1-8 Thống kê khảo sát
Hình 1-9 Thống kê khảo sát
Trang 282.7.2 Hướng giải quyết
Chúng em từng bước thực hiện các bước sau để giải quyết hiện trạng:
1 Khảo sát thực tế tại trường Đại học Công nghệ Thông tin
2 Phân tích số liệu, nội dung đóng góp thành các chức năng cụ thể
3 Thu thập thông tin các sản phẩm tương tự để tham khảo ý tưởng và công nghệ
Hình 1-10 Thống kê khảo sát
Hình 2-0-1 Logo NestJS
Trang 29JavaScript như một ngôn ngữ lập trình phát triển web, rất nhiều Javascript/Nodejs framework đã ra đời Và Nest không phải là một ngoại lệ Với rất nhiều tính năng tối ưu, NestJS có thể giúp các nhà phát triển tạo ra các ứng dụng phía backend, API RESTful một cách dễ dàng và hiệu quả
2.8.2 ReactJS
React là một thư viện JavaScript để xây dựng giao diện người dùng Nó được duy
trì bởi Facebook và một cộng đồng gồm các nhà phát triển và công ty cá nhân
React có thể được sử dụng làm cơ sở trong việc phát triển các ứng dụng một trang
hoặc di động
ReactJS cho phép Developer viết ứng dụng trực tiếp trên JavaScript Không chỉ
vậy, reactJS còn sử dụng JSX – một trong những tính năng không chỉ làm cho
ReactJS dễ dàng mà còn thú vị hơn Developer giờ đây có thể tạo nên một tính
năng mới và có thể xem nó xuất hiện ngay trong thời gian thực, giúp Developer có
thể được đưa trực tiếp các đoạn HTML vào JavaScript
Cho phép Developer phá vỡ những cấu tạo UI phức tạp thành những component
độc lập Developer sẽ không phải lo lắng về tổng thể ứng dụng web bởi giờ đây,
họ đã có thể dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component
đơn giản hơn
Thông qua Props, các component có thể kết nối với nhau bằng cách sử dụng data
tùy biến Điều này giúp chuyển các dữ liệu đã được tùy biến đến một UI component
cụ thể
Tính năng State trong ReactJS giúp điều chỉnh trạng thái cho các component
(child) nhận data từ một component nguồn (parent) Developer có thể thay đổi
trạng thái cho nhiều component (child) trên ứng dụng nhưng không ảnh hưởng tới
component gốc (parent) đang ở trạng thái Stateful
React cung cấp nhiều công cụ out-of-the-box: Khi bạn bắt đầu những chuyến phiêu
lưu với React, đừng quên cài đặt extension chính thức của React Chrome, nó giúp
Trang 302.8.3 Firebase
Firebase là một dịch vụ cơ sở dữ liệu thời gian thực được cung cấp bởi Google và hoạt
động trên nền tảng đám mây Nó giúp các lập trình phát triển nhanh các ứng dụng di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Firebase cung cấp cho chúng ta 2 nhóm sản phẩm chính tập trung vào 2 đối tượng là:
• Develop & test your app: phát triển và kiểm thử các ứng dụng được thiết kế
• Grow & engage your audience: Phân tích dữ liệu và tối ưu hóa trải nghiệm đối với người dùng
Firebase là một trong những BaaS (Backend as a service) Serverless architecture được chú ý như một giải pháp đáp ứng yêu cầu release một dịch vụ trong thời gian ngắn, trong bối cảnh đó, BaaS ra mắt người dùng.BaaS hướng đến thiết bị chủ yếu là mobile nên còn được gọi với một tên gọi khác là MBaaS
2.8.4 PostgreSQL
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ-đối tượng mã nguồn mở tiên
tiến nhất hiện nay được phát triển bởi Khoa Điện Toán, Đại học California – Hoa
Kỳ
PostgreSQL là cơ sở dữ liệu quan hệ, do đó nó lưu trữ quan hệ giữa các bộ đại diện
cho các thực thể và mỗi quan hệ giữa chúng Mối quan hệ và các thuộc tính của các
thực thể là cố định Các thuộc tính của thể là nguyên tử (số nguyên, số thực, logic)
hoặc kiểu dữ liệu có cấu trúc (mảng)
Hình 2-0-2 Logo PostgreSQL
Trang 31PostgreSQL hỗ trợ giao dịch (transaction) với các thuộc tính ACID, cụ thể là:
- Tính nguyên tử (Atomicity): Các transaction được coi như là các đơn vị hoàn chỉnh Nó có thể được thực hiện thành công hoặc thất bại, nếu thất bại trạng thái cơ sở dữ liệu vẫn sẽ được giữ nguyên
- Tính nhất quán (Consistency): Trong cùng 1 cơ sở dữ liệu, giữa các transaction chỉ tồn tại 1 trạng thái hợp lệ duy nhất Tất cả dữ liệu được ghi đều phải tuân thủ các ràng buộc hiện có
- Tính cô lập (Isolation): Chức năng giúp kiểm soát xử lý đồng thời, bảo đảm
dữ liệu không bị hỏng bởi các transactions đồng thời hoặc không hợp pháp
- Tính lâu bền (Durability): Khi transaction đã thực hiện xong (đã commit), những cập nhật trở nên cố định và không thay đổi Khi hệ thống gặp sự cố bất ngờ, quá trình khôi phục bảo đảm những transaction đã được commit sẽ được khôi phục nguyên vẹn
Là cơ sở dữ liệu quan hệ hướng đối tượng, PostgreSQL trở nên lợi thế hơn các cơ
sở dữ liệu SQL khác như MySQL, MariaDB, FireBird Nó hỗ trợ các kiều dữ liệu người dùng tự định nghĩa và các hành vi của chúng bao gồm các kiều dữ liệu, các hàm, các thao tác, tên miền và chỉ mục Các kiểu dữ liệu được cung cấp sẵn cũng
Hình 2-0-3 Mô tả Postgre
Trang 32trong bảng dưới đây:
Bảng 3.1 Bảng giới hạn kích thước của dữ liệu trong PostgreSQL
Trang 33Chương 3 XÂY DỰNG HỆ THỐNG HỖ TRỢ TƯƠNG TÁC LỚP HỌC
3.1 Phân tích yêu cầu hệ thống
3.1.1 Phân tích yêu cầu chức năng
Cơ sở dữ liệu thời gian thực (Real-time Database):
Việc làm sao để truyền dữ liệu một cách tức thời, là rất quan trọng trong hệ thống hỗ trợ tương tác trực tiếp giữa giảng viên và sinh viên ngay trên lớp học Phần lớn các chức năng quan trọng đều cần sử dụng real-time database :
- Trình chiếu tài liệu: trình chiếu được các tài liệu dưới dạng slide trong buổi học mà sinh viên có thể theo dõi ngay trên điện thoại hoặc máy tính cá nhân
- Vùng thảo luận: để sinh viên đặt câu hỏi (có thể ẩn danh) và trao đổi trực tuyến với nhau và với giảng viên
- Vùng điểm danh: giúp giảng viên thực hiện điểm danh bất cứ lúc nào lớp học diễn ra và sinh viên phải thực hiện ngay trong thời lượng được quy định
- Vùng đánh giá: sau khi buổi học kết thúc, sinh viên thực hiện đánh giá độ hài lòng và để lại góp ý (nếu có)
3.1.2 Yêu cầu về tính năng
Hệ thống chạy trên nền tảng website, có khả năng truy cập ở tất cả mọi vị trí, thời điểm có kết nối internet Một vài yêu cầu mà hệ thống cần đáp ứng:
- Chức năng truy vấn: Đáp ứng yêu cầu truy vấn của người dùng như tìm kiếm, xem lại tài liệu,
- Chức năng cập nhật: Chức năng cập nhật luôn được thực hiện và giảm thiểu tối đa sai sót của người dùng
- Chức năng tải lên: Hỗ trợ lưu trữ tài liệu bài giảng, bài kiểm tra và nhập thông tin hàng loạt
3.1.3 Phân tích yêu cầu phi chức năng
Trang 34sử dụng hệ thống
Tận dụng các tài nguyên đã có tại trường như dữ liệu người dùng, dữ liệu môn học Các thông tin của người dùng được bảo mật và bảo đảm chỉ có những người có thẩm quyền mới có thể truy cập vào các tài nguyên cụ thể
3.1.4 Phân tích yêu cầu người dùng
Hệ thống sử dụng kết quả khảo sát, nghiên cứu hiện trạng để tiến hành phân tích yêu cầu và chức năng của hệ thống, được biểu diễn bằng ngôn ngữ mô hình hoá (UML)
3.1.5 Mô hình use case toàn hệ thống
Hình 3.1: Lược đồ Use case người dùng tổng quan