Dựa trên những phân tích trên việc ứng dụng công nghệ thông tin trong côngtác giảng dạy và quản lý đào tạo trong môi trường đại học giúp các bạn học sinh,sinh viên học tập, ôn tập, ôn lu
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
Trang 3LỜI MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 8
1.1 Đặt vấn đề 8
1.2 Lý do chọn đề tài 8
1.3 Xác định các yêu cầu của đề tài 9
1.4 Phương pháp nghiên cứu 11
1.5 Ý nghĩa khoa học và thực tiễn 11
1.6 Cấu trúc bài báo cáo 11
CHƯƠNG 2: HỆ THỐNG GIẢNG DẠY TRỰC TUYẾN (E-LEARNING) VÀ CÔNG NGHỆ HỖ TRỢ 12
2.1 Tổng quan về E-learning 12
2.2 Phân tích một số hệ thống E-Learning 14
2.3 Công nghệ hỗ trợ 16
2.3.1 Giới thiệu về Node.Js 16
2.3.1.1 Giới thiệu 16
2.3.1.2 Ứng dụng của node.js 16
2.3.1.3 Ưu nhược điểm của node.js 16
2.3.2 Công nghệ Meteor 17
2.3.2.1 Giới thiệu 17
2.3.2.2 Ưu và nhược điểm của meteor 19
2.3.2.3 Cấu trúc của một project meteor 20
2.3.2.4 Một số package meteor được sử dụng 22
2.3.3 Tìm hiểu về MongoDB 22
2.3.3.1 Cơ sở dữ liệu NoSQL là gì? 22
2.3.3.2 Giới thiệu về MongoDB : 23
Trang 42.3.5 Tìm hiểu về Webpack 30
CHƯƠNG 3: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG 31
3.1 Khảo sát các đối tượng 31
3.1.1 Đối tượng giáo viên 31
3.1.2 Đối tượng sinh viên 32
3.1.3 Đối tượng phụ huynh 32
3.2 Thiết kế cơ sở dữ liệu 33
3.2.1 Đặc tả hệ thống 33
3.2.2 Sơ đồ phân rã chức năng 34
3.2.3 Sơ đồ lớp 34
CHƯƠNG 4: CÀI ĐẶT HỆ THỐNG VÀ KẾT QUẢ ĐẠT ĐƯỢC 39
4.1 Giao diện tạo kì thi 39
4.2 Giao diện thi: 46
4.3 Giao diện thống kê câu hỏi 50
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TOÀN HỆ THỐNG 53
5.1 Kết luận 53
5.1.1 Kết quả đạt được 53
5.1.2 Kết quả chưa đạt được 53
5.2 Hướng phát triển 54
DANH MỤC TÀI LIỆU THAM KHẢO 55
PHỤ LỤC 1 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG 56
Trang 6DANH MỤC KÍ HIỆU, CHỮ VIẾT TẮT
RDBMS Relational Database Management System
NoSQL None-Relational Structured Query Language
E-learning Electronic Learning
HTTP HyperText Transfer Protocol
PHP Hypertext Preprocessor
JSON JavaScript Object Notation
HTML HyperText Markup Language
DPP Distributed Data Protocol
CSS Cascading Style Sheets
OOP Object Oriented Programming
API Application programming interface
SEO Search Engine Optimization
UI User Interface
3rd-party Third party
Trang 7DANH MỤC CÁC BẢNG VÀ HÌNH
Bảng 3-1 Bảng so sánh đối tượng trong SQL và MongoDB 25
Bảng 3-2 Bảng so sánh các câu lệnh cơ bản trong SQL và MongoDB 25
Hình 2-1 Cách MongoDB lưu trữ một bản ghi 23
Hình 3-1 Sơ đồ phân rã chức năng 33
Hình 3-2.Sơ đồ lớp tổng quát 34
Hình 3-3 Sơ đồ phân rã từ sơ đồ lớp chức năng đăng bài 34
Hình 3-4 Sơ đồ phân rã từ sơ đồ lớp chức năng tạo mới khoa học, lớp học, môn học 35
Hình 3-5 Sơ đồ lớp chức năng chat 36
Hình 3-6 Sơ đồ lớp chức năng tổ chức kì thi 37
Hình 3-7 Sơ đồ lớp chức năng phân quyền 38
Hình 4-1 Giao diện tạo kì thi với thông tin cơ bản 39
Hình 4-2 Giao diện tạo câu bộ hỏi với thông tin cơ bản 40
Hình 4-3 Giao diện thêm câu hỏi 41
Hình 4-4 Giao diện xem lại câu hỏi 41
Hình 4-5 Giao diện thêm câu hỏi từ câu hỏi cá nhân (thêm lần lượt) 42
Hình 4-6 Giao diện thêm câu hỏi từ câu hỏi cá nhân (thêm ngẫu nhiên) 43
Hình 4-9 Giao diện cấu hình kì thi 45
Hình 4-10.Giao diện đăng kí thi của thí sinh 46
Hình 4-11 Giao diện thi trên lớp của giáo viên 46
Hình 4-12 Giao diện thi trên lớp của thí sinh 47
Hình 4-13 Giao diện thi tại nhà của giáo viên 47
Hình 4-14 Ảnh chụp màn hình của thí sinh 48
Hình 4-15 Giao diện thi tại nhà của thí sinh 48
Hình 4-16 Giao diện kết quả 49
Hình 4-17 Giao diện in kết quả của thí sinh 49
Hình 4-18 Giao diện thống kê theo điểm số 50
Hình 4-19 Giao diện thống kê theo tỉ lệ trả lời đúng 50
Trang 8Hình 4-20 Giao diện thống kê theo tỉ lệ trả lời đúng hiện chi tiết 51
Hình 4-21 Giao diện thống kê theo tỉ lệ trả lời đúng trên tất cả kì thi 51
Hình 4-22 Nội dung câu hỏi 52
Danh mục hình Phụ lục 1 Hình 1 Giao diện trang chủ và nút đăng kí tài khoản 56
Hình 2 Thông tin đăng kí tài khoản - 1 57
Hình 3 Thông tin đăng kí tài khoản - 2 57
Hình 4 Giao diện đăng nhập vào hệ thống 57
Hình 5 Hướng dẫn vào trang quản lý lớp học 58
Hình 6 Giao diện quản lý lớp học 58
Hình 7 Tìm kiếm bạn bè 59
Hình 8 Thêm thành viên gia đình để theo dõi học tập 60
Hình 9 Tạo mới khóa học 60
Hình 10 Các thông tin cần thiết khi tạo lớp học 61
Hình 11 Thông tin khi tạo mới lớp học 61
Hình 12 Tạo môn học mới 62
Hình 13 Tham gia vào lớp học 62
Hình 14 Đăng bài lên Forum 63
Hình 15 Kết quả đăng bài 64
Hình 16 Đăng bài giảng 65
Hình 17 Thêm chủ đề vào bài giảng 66
Hình 18 Tạo mới bài tập 66
Hình 19 Nộp bài tập 67
Hình 20 Xem danh sách thành viên lớp học 68
Hình 21 Quản lý hoạt động của sinh viên 68
Hình 22 Danh sách user và quyền 69
Hình 23 Chỉnh sửa phân quyền 69
Hình 24 Tạo kì thi 70
Hình 25 Nhập thông tin kì thi 70
Trang 9Hình 26 Chọn câu hỏi từ cá nhân 71
Hình 27 Trộn câu hỏi khác nhau từ bộ đề cá nhân 72
Hình 28 Chọn câu hỏi ngẫu nhiên 72
Hình 29 Xem lại câu trả lời đúng 73
Hình 30 Giao diện tạo kì thi 74
Hình 31 Nhập thông tin tạo bộ câu hỏi mới 74
Hình 32 Giao diện thêm nội dung câu hỏi 75
Hình 33 Giao diện cấu hình kì thi 76
Hình 34 Giao diện thi trực tuyến 76
Hình 35 Giao diện tham gia thi 77
Hình 36 Giao diện màn hình chờ 77
Hình 0-37 Giao diện kì thi tại nhà 78
Hình 38 Giao diện kì thi tại lớp 78
Hình 39 Bắt đầu kì thi 79
Hình 40 Giao diện chờ thi của giáo viên 80
Hình 41 Giao diện trang thi của giáo viên khi tỏ chức thi tại nhà 80
Hình 42 Giao diện trang thi của giáo viên khi tổ chức thi tại lớp 81
Hình 43 Giao diện kết quả thi 81
Hình 44 Giao diện hiển thị nội dung câu hỏi sau thống kê 82
Hình 45 Giao diện thông kê dựa trên điểm số 82
Hình 46 Giao diện thống kê dựa trên tỉ lệ trả lời đúng 83
Hình 47 Xem chi tiết thống kê bộ câu hỏi 83
Hình 48 Giao diện thống kê toàn bộ kì thi 84
Trang 10Trong mấy thập niên gần đây, đổi mới giáo dục đào tạo đã trở thành xu thếtoàn cầu Khoa học và công nghệ trên thế giới phát triển như vũ bão, tạo ra nhữngbước tiến nhảy vọt, đặc biệt trong các lĩnh vực điện tử - viễn thông, tin học và côngnghệ thông tin Tại Việt Nam, ứng dụng những thành tựu mới của công nghệ thôngtin trong phát triển giáo dục thời đại trong bối cảnh kinh tế tri thức phát triển mạnh
mẽ như hiện nay đang trở thành một trong những mục tiêu quan trọng hàng đầu.Thông qua công nghệ, người dạy dễ dàng tiếp cận các bài giảng, tri thức bằng cáchtruy cập hoặc liên hệ trực tiếp với các đồng nghiệp Nhờ vào công nghệ thông tin,học sinh và bản thân các người dạy còn có thể xem xét, đánh giá năng lực và họctập của học sinh, sinh viên ở bất cứ đâu
Dựa trên những phân tích trên việc ứng dụng công nghệ thông tin trong côngtác giảng dạy và quản lý đào tạo trong môi trường đại học giúp các bạn học sinh,sinh viên học tập, ôn tập, ôn luyện các bài thi, kiểm tra; giúp giáo viên có thể tạocác bài giảng, các bài tập ôn luyện cho từng đối tượng học sinh, sinh viên, các bàikiểm tra, dạy và trao đổi trực tuyến như một mạng xã hội dành cho việc học tập;giúp phụ huynh có thể theo dõi việc học tập và kết quả thi của con em mình Đồngthời các thầy cô giảng dạy có thể quản lý, tổ chức thi trực tuyến, thống kê, đánh giácác đề thi một cách dễ dàng Hơn thế nữa, hệ thống cho phép sử dụng để tổ chứccác cuộc thi khác như cuộc thi “ Thách thức tin học” được tổ chức hằng năm tại
Trang 11khoa Công nghệ Thông tin, hay các cuộc thi tiếng anh cũng có thể áp dụng hệ thốngnày.
Với sự hướng dẫn tận tình của phía công ty TNHH S2 nơi em thực tập và giáo viên
hướng dẫn TS.Đinh Đồng Lưỡng đã giúp nhóm hoàn thành bài báo cáo đồ án tốt nghiệp này Tuy đã cố gắng để tìm hiểu, phân tích thiết kế và cài đặt hệ thống
nhưng chắc rằng không tránh khỏi những thiếu sót Chúng em rất mong nhận được
sự góp ý của quí Thầy cô Chúng em xin chân thành cảm ơn!
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI1.1 Đặt vấn đề
Trong lĩnh vực giáo dục, nhờ ứng dụng Công nghệ Thông tin nhiều phươngpháp dạy - học mới ra đời Trong số các phương pháp mới, học tập trực tuyến (E-learning) là một phương pháp nổi trội hơn cả Học tập trực tuyến - người học có thểhọc tập ở bất cứ đâu, bất cứ khi nào, học những vấn đề mà bản thân quan tâm, họcnhững gì mình thích chỉ cần có phương tiện là máy tính, điện thoại có kết nối mạngInternet Đối tượng sử dụng phương pháp E-learning không chỉ là những học sinh,sinh viên đang còn ngồi trên ghế nhà trường mà đặc biệt thuận lợi cho các học viênhọc từ xa, những công nhân, viên chức đang muốn tự học nâng cao trình độ màkhông thể sắp xếp thời gian tập trung tới lớp truyền thống Với sự hỗ trợ của côngnghệ multimedia, bài giảng của giáo viên có thể tích hợp cả văn bản, hình ảnh, âmthanh, video làm tăng tính hấp dẫn khi học tập Người học hoàn toàn có thể dễ dàngtrao đổi thông tin với nhau hoặc với người dạy thông qua các phương tiện nhưemail, forum, chat,… khi đó dễ dàng bộc lộ được quan điểm của mình tăng tínhtương tác giữa người dạy và người học, đồng thời cũng làm tăng hiệu quả của bàihọc Ngoài những hiệu quả kể trên, phương pháp dạy học trực tuyến còn giúp ngườidạy dễ dàng quản lí người học cũng như việc thống kê số lần tương tác hệ thống vớibạn bè và giáo viên nhằm đánh giá quá trình học của học viên hiệu quả hơn rấtnhiều so với các phương pháp dạy học truyền thống
sở liên kết trên cả nước Trường đã triển khai mô hình dạy học trực tuyến learning dựa trên Moodle và cũng đã đạt được những thành quả đáng kể Song sốgiảng viên đăng ký tập huấn và triển khai E-learning chưa nhiều Một số lý do có
Trang 13E-thể kể đến là: Server chậm; khi giảng viên ra bài tập, bài kiểm tra, hệ thống chưa tựđộng email cho sinh viên biết; trao đổi trên E-learning không nhanh bằng email, khảnăng quản lý và giám sát thi trực tuyến còn thiếu và chưa phù hợp.[1]
Xuất phát từ những vấn đề trên, nhóm chúng em thực hiện xây dựng bộ công
cụ hỗ trợ học tập và thi trực tuyến có các tính năng tương tự như Moodle Ngoài ra
hệ thống còn được bổ sung thêm một số tính năng cho phù hợp với môi trường thực
tế giảng dạy tại Việt nam nói chung và trường ĐH Nha Trang nói riêng như các tínhnăng tự động thông báo của hệ thống tới người học qua email cá nhân tự động emailnhắc nhở sinh viên, hỗ trợ việc giám sát việc thi trực tuyến thông qua hệ camera,giám sát đọc mail của người học, thống kê và đánh giá hệ thống các câu hỏi, phânloại các mức độ khó dễ của từng câu hỏi xếp hạng sinh viên và thông báo tự độngtới phụ huynh
Chúng em sử dụng các công nghệ mới nhất hiện tại đang được áp dụng trên thế giới
áp dụng vào việc phân tích và xây dựng bộ công cụ này như: React, mô hình Redux,Apollo, Mongodb, Node.js, Meteor và Webpack để dễ dàng chia phần mềm ra thànhrất nhiều file khác nhau Codebase có thể được chia thành các “chunks” có khả năngđược nạp theo thứ tự hay yêu cầu khác nhau Điều này giúp giảm đáng kể thời giankhi khởi chạy vì hệ thống chỉ nạp một tập tin mã khi cần thiết Một tính năng tuyệtvời khác đó là khả năng tự thêm (webpack plugin) vào trong quá trình dịch/chạy,điều này cho phép bạn thoải mái tùy chỉnh theo nhu cầu cũng như đóng góp xâydựng các plugin như mã nguồn mở (open source) Được sử dụng phía máy khách(client) để tăng tốc độ chạy, khắc phục hạn chế chạy chậm của Meteor
1.3 Xác định các yêu cầu của đề tài
Xác định yêu cầu nội dung:
Trong tổng thể toàn bộ nội dung đề tài yêu cầu cần tìm hiểu các công nghệmới: React, Redux, Apollo, hệ quản trị MongoDB, Nodejs, Meteor, thực hiện việckhảo sát hiện trạng, xác định yêu cầu đề tài, phân tích, thiết kế cơ sở dữ liệu
Hệ thống được chia ra thành 3 mô-đun chính như sau:
Trang 14- Mô-đun 1: thực hiện chức năng phân tích, cài đặt phần quản trị hệ thống và hệthống giao diện trong ứng dụng web hỗ trợ cho việc học và thi trực tuyến chitiết gồm: ( SV thực hiện: Nguyễn Thị Bích Thuận)
• Phân tích, vẽ sơ đồ giao diện tổng quan và chi tiết từng mô hình giao diện.
• Cài đặt phần phân quyền người dùng (cho phép thiết lập quyền đối với từng
người dùng cụ thể ) và quản trị hệ thống (nhận và phản hồi đánh giá ngườidùng)
• Cài đặt chức năng chat online.
- Mô-đun 2: thực hiện việc phân tích, cài đặt phần quản lý tạo đề, ra đề thi trongứng dụng web hỗ trợ học và thi trực tuyến, chi tiết gồm (SV thực hiện: HuỳnhNgọc Sáng)
• Cài đặt phần quản lý tạo đề gồm tạo đề thi trực tiếp, đề thi dạng luyện tập ôn
thi có gợi ý, đề thi dạng trắc nghiệm, quản lý việc ôn tập của sinh viên, quản lý
bộ đề
• Đánh giá thống kê kết quả thi, gửi mail kết quả thi về cho giáo viên và phụ
huynh, tổ chức thi online
- Mô-đun 3: thực hiện việc phân tích, cài đặt phần quản lý giáo viên, sinh viên vàphụ huynh trong ứng dụng Web hỗ trợ học và thi trực tuyến( thực hiện NguyễnXuân Vinh)
• Cài đặt phần quản lý giáo viên gồm tạo môn học, khóa học, lớp học, lập lịch
bài giảng, tạo diễn đàn trao đổi học tâp, quản lý sinh viên, quản lý việc làm bàitập của sinh viên, quản trị lớp học)
• Cài đặt phần quả lý sinh viên gồm xem danh sách và yêu cầu tham gia các
khóa học, lớp học, môn học; lập thời khóa biểu học tập cho bản thân, tạoforum học tập)
• Cài đặt phần hỗ trợ phụ huynh gồm xem kết quả học tập, thời khóa biểu của
sinh viên
Trang 15Đối tượng hướng đến
- Người dạy có hoặc không hiểu biết nhiều về công nghệ thông tin, muốn thửnghiệm các phương pháp giảng dạy mới
- Sinh viên đào tạo từ xa, sinh viên tại chức, sinh viên đào tạo tại các cơ sở liênkết kể cả các sinh viên đang học tại cơ sở chính
- Hỗ trợ theo dõi và quản lý của Phụ huynh sinh viên
1.4 Phương pháp nghiên cứu
- Nghiên cứu và ứng dụng lý thuyết công nghệ mới về React, Mongodb, Note.js,
Meteor phục vụ đề tài
- Thu thập nghiên cứu của tác giả trong và ngoài nước liên quan đến đề tài.
- Thực tập và thiết kế theo quy trình của công ty TNHH S2.
1.5 Ý nghĩa khoa học và thực tiễn
Việc sử dụng các công nghệ mới đang được sử dụng trên toàn thế giới chothấy hướng nghiên cứu và phát triển mới, chưa được sử dụng và ứng dụng rộng rãitại Việt Nam cũng như trong các nghiên cứu công nghệ tại trường Đại học NhaTrang
Kết quả nghiên cứu giúp giáo viên có thể quản lý lớp học từ xa, không cầnphải điểm danh từng giờ lên lớp mà qua đó giám sát việc làm bài tập cá nhân, bàitập nhóm trực tiếp ngay trên hệ thống website, hệ thống hỗ trợ giáo viên việcthống kê các kết quả học tập cũng như thống kê mức độ của bộ đề để sau đó giáoviên có thể cân nhắc đến việc ra đề thi và kiểm tra đối với từng môn học khácnhau, việc thống kê bộ đề theo tỷ lệ làm bài của sinh viên hiện nay và đa số chưa
có ở các hệ thống dạy học trực tuyến tại các trường khác Đồng thời hệ thống còn
có những giải pháp hỗ trợ việc chống gian lận trong tổ chức thi trực tuyến Đây làhạn chế chính của các hệ thống elearning hiện có
Kết quả nghiên cứu giúp sinh viên có thể chủ động học tập mọi nơi trongkhuôn viên trường, ở nhà hay bất cứ đâu có kết nối mạng, tiết kiệm được các chiphí đi lại mà việc học vẫn không giảm chất lượng Giáo viên và sinh viên có thểtrao đổi với nhau thông qua việc chat trao đổi bài học như mạng facebook Ngoài
Trang 16ra hệ thống có thể hỗ trợ việc tổ chức các chương trình game show liên quan đếnvấn đề học thuật, tìm hiểu kiến thức xã hội
1.6 Cấu trúc bài báo cáo
Cấu trúc bài báo cáo gồm 5 chương:
Chương 1: Tổng quan về đề tài.
Trong chương trình bày tổng quan về đề tài, lý do chọn đề tài, tính cấp thiết,mục tiêu, cách tiếp cận, phạm vi nghiên cứu, nội dung nghiên cứu ý nghĩakhoa học và thực tiễn của đề tài nghiên cứu và chỉ ra những vấn đề mà đề tàicần tập trung nghiên cứu, giải quyết
Chương 2 Hệ thống giảng dạy trực tuyến (E-Learning) và Công nghệ hỗ trợ
Nêu những vấn đề còn tồn tại, chỉ ra những vấn đề cần nghiên cứu và hướng giảiquyết, các vấn đề còn gặp phải tại các hệ thống E-Learning trên cả nước Giớithiệu cơ sở lý thuyết sử dụng các mô hình công nghệ mới React, mô hìnhReduct, Applo, MongoDB, Node.js, Meteor
Chương 3: Khảo sát và phân tích hệ thống.
Khảo sát nhu cầu người dùng (Giảng viên, sinh viên và phụ huynh) và phântích thiết kế cơ sở dữ liệu tổng quát
Chương 4: Cài đặt hệ thống và kết quả đạt được.
Các kết quả của việc cài đặt các mô-đun
Chương 5: Kết luận và hướng phát triển toàn hệ thống.
Tổng kết kết quả đã thực hiện được và hướng phát triển đề tài
Trang 17CHƯƠNG 2: HỆ THỐNG GIẢNG DẠY TRỰC TUYẾN
(E-LEARNING) VÀ CÔNG NGHỆ HỖ TRỢ2.1 Tổng quan về E-learning
E-learning là việc ứng dụng công nghệ thông tin, internet vào việc dạy và họcnhằm làm cho công việc giáo dục trở nên dễ dàng, rộng rãi và hiệu quả hơn
E-learning là tập hợp đa dạng các phương tiện, công nghệ kỹ thuật cho giáo dục nhưvăn bản, âm thanh, hình ảnh, mô phỏng, trò chơi, phim, thư điện tử, các diễn đànthảo luận, các diễn đàn,…
E-learning cung cấp nội dung đào tạo trên nền Web có thể được cập nhật, phát hànhtức thời và thống nhất trên toàn cầu Cung cấp nhiều công nghệ khác nhau để thiếtlập một giải pháp đào tạo tổng thể Phương pháp mô phỏng và những bài tập, bàikiểm tra sau khi kết thúc bài giảng, chương, phần và khóa học cho phép sinh viên tựkiểm tra, đánh giá kết quả học tập và kỹ năng của mình
E-Learning giúp cho cán bộ, giảng viên, sinh viên toàn trường hoàn toàn có thể họctập bất cứ thời gian nào, tại bất cứ đâu Với sinh viên, nó mở ra một môi trường họctập mới, dễ dàng, linh hoạt và chủ động hơn nhiều Với giảng viên hệ thống chophép gửi bài giảng điện tử cho sinh viên qua email hoặc website của Trường trướckhi lên lớp; tại lớp, giảng viên chỉ tập trung hướng dẫn sinh viên lĩnh hội nhữngkiến thức quan trọng hoặc thảo luận thay vì thuyết trình toàn bộ nội dung bài giảng
và đọc chép
E-Learning giúp việc học tập trở nên thú vị hơn, hấp dẫn hơn và thuyết phục hơn,đặc biệt là đối với các môn học khó và dễ nhàm chán nhờ các slide, hình ảnh, video
và audio minh họa một cách sinh động
Cán bộ, giảng viên và sinh viên cần giao tiếp, cộng tác và chia xẻ kiến thức thì learning có thể giúp chúng ta thu được những kết quả chắc chắn và lâu dài, khôngchỉ thông qua nội dung mà đồng thời bằng cả cộng đồng mạng trực tuyến, hỗ trợ
E-“học tập thông qua nhận xét và thảo luận”
Trang 18E-Learning cho phép sinh viên tự quản lí được tiến trình học tập của mình theo cáchphù hợp nhất Chúng ta có nhiều cách học khác nhau như đọc, xem, khám phá,nghiên cứu, tương tác, thực hành, giao tiếp, thảo luận, chia xẻ kiến thức Với E-Learning sinh viên có thể truy cập tới rất nhiều nguồn tài nguyên phục vụ cho họctập Như vậy, mỗi người đều có quyền chọn lựa hình thức học tập phù hợp nhất vớikhả năng và điều kiện của mình.
E-learning giúp cho việc học tập vẫn có thể được tiến hành gần như đồng thời trongquá trình làm việc Thực tế, 70% dung lượng học tập diễn ra trong quá trình làmviệc như: tìm kiếm thông tin, đọc tài liệu, trao đổi với bạn bè, đồng nghiệp
Với E-Learning chúng ta trở nên năng động hơn Cán bộ của trường có thể dùngquỹ thời gian của mình để làm việc ngoài văn phòng (tại nhà, tại cơ sở đào tạo ở xa,quán cafe hay một địa điểm nào đó có kết nối internet) E-Learning đóng một vai tròrất quan trọng trong giảm thiểu lượng thời gian dành cho đào tạo cán bộ, giảng viên,sinh viên
2.2 Phân tích một số hệ thống E-Learning
Hiện nay, E-learning đang là một xu hướng giáo dục mới của thế giới TheoCyber Universities, gần 90% trường Đại học tại Singapore sử dụng phương phápđào tạo trực tuyến và ở Mĩ con số này là hơn 80% Một số công cụ phục vụ cho việcgiảng dạy E-learning mã nguồn mở cũng như mã nguồn đóng đang có trên thịtrường như Moodle, Blackboard, Edmodo
Moodle là một trong các phần mềm học tập trực tuyến (LearningManagement System) mã nguồn mở phổ biến nhất với một cộng đồng lớn trên khắpthể giới Moodle cung cấp một bộ công cụ linh hoạt để hỗ trợ cả việc học tập và cáckhóa học trực tuyến Tuy nhiên một trong những nhược điểm chính của hệ thốngnày là nó rất khó để thiết lập và điều chỉnh Có rất nhiều công ty có thể giúp thiếtlập hệ thống và tùy chỉnh nó, nhưng các dịch vụ của họ là khá tốn kém, cộng vớimột máy chủ và phần cứng riêng biệt
Blackboard là một hệ thống quản lý học tập (Learning Management System)được sử dụng rộng rãi Blackboard là một sản phẩm cung cấp cho các doanh nghiệp
Trang 19và các nhà giáo dục khả năng tiếp cận và dạy cho nhân viên hoặc những người họccủa họ thông qua một môi trường ảo Phần mềm cung cấp một hệ thống quản lýkhóa học, kiến trúc mở tùy chỉnh, và thiết kế khả năng mở rộng giúp người dùnghợp nhất các hệ thống với hệ thống thông tin học sinh và quá trình xác thực Tuynhiên hạn chế của Blackboard chính là chi phí rất đắt để triển khai và hệ thốngBlackboard phát triển trên nền tảng tương đối lạc hậu.
Edmodo là một nền tảng kiến thức xã hội cho sinh viên, học sinh, giáo viêntrong các trường học Edmodo, giáo viên có thể tiếp tục thảo luận lớp học trựctuyến, cung cấp các cuộc thăm dò để đánh giá sự hiểu biết của sinh viên và giảithưởng phù hiệu cho học sinh dựa trên các hoạt động của học sinh Edmodo kết nốitất cả các giáo viên, phụ huynh, học sinh, và các quản trị viên trong trường hay họckhu của bạn với nhau để cải thiện mạng lưới học tập chuyên nghiệp, được hỗ trợ bởimột cộng đồng toàn cầu của các nhà giáo dục Tuy nhiên Edmodo vẫn còn khá hạnchế về chức năng nếu so với Moodle, không cho phép người dùng tùy biến vàchuyển đổi vai trò Mỗi nhóm học chỉ cho phép giáo viên dạy một môn học, gâykhó khăn cho người dùng
Qua đó cho thấy một số hạn chế còn tồn tại ở các hệ thống E-Learning hiện nay:
- Chi phí cho việc xây dựng hệ thống cao.
- Sử dụng hệ thống giao diện tùy chỉnh, thân thiện phải trả phí cao.
- Công nghệ được sử dụng khá cũ, lạc hậu.
- Việc đưa hệ thống vào sử dụng cần có sự hỗ trợ nhiều để tập huấn sử dụng cho
các đối tượng không am hiểu nhiều về E-Learning
- Chưa nổi bật được vấn đề chống gian lận trong thi cử.
Hướng nghiên cứu và phát triển:
- Hạ thấp chi phí tối đa cho việc xây dựng hệ thống.
- Xây dựng hệ thống giao diện thân thiện, người dùng không cần phải tập huấn sử
dụng cũng có thể sử dụng một cách thành thạo
- Sử dụng các công nghệ hiện đại đang là giải pháp của nhiều công ty phần mềm
trong và ngoài nước
Trang 20- Xây dựng hệ thống hướng đến người dùng là chủ yếu, tăng cường việc trao đổi
thông tin giữa các đối tượng với nhau
- Chú trọng vấn đề gian lận trong thi cử và đưa ra giải pháp thích hợp.
- Xây dựng hệ thống tracking mail tự động cho biết người nhận được mail đã
kiểm tra và nhận được mail của hệ thống hay chưa
- Phân tích mức độ của bộ đề thông qua việc làm bài của sinh viên giúp giáo viên
- Node.js sử dụng Google V8 JavaScript engine để thực thi mã, và một tỷ lệ lớn
các mô-đun cơ bản được viết bằng JavaScript Các ứng dụng node.js thì đượcviết bằng JavaScript
- Node.js chứa một thư viện built-in cho phép các ứng dụng hoạt động như một
Webserver mà không cần phần mềm như Nginx, Apache HTTP Server hoặcIIS
- Node.js cung cấp kiến trúc hướng sự kiện (event-driven) và non-blocking I/O
API, tối ưu hóa thông lượng của ứng dụng và có khả năng mở rộng cao
- Mọi hàm trong Node.js là không đồng bộ (asynchronous) Do đó, các tác vụ đều
được xử lý và thực thi ở chế độ nền (background processing)
2.3.1.2 Ứng dụng của node.js
- Xây dựng Websocket server (Chat server)
- Hệ thống Notification (Giống như facebook hay Twitter)
- Ứng dụng upload file trên client
- Các máy chủ quảng cáo
- Các ứng dụng dữ liệu thời gian thực khác.
Trang 212.3.1.3 Ưu nhược điểm của node.js
- Ưu điểm:
• Đặc điểm nổi bật của Node.js là nó nhận và xử lý nhiều kết nối chỉ với một
single-thread Điều này giúp hệ thống tốn ít RAM nhất và chạy nhanh nhấtkhi không phải tạo thread mới cho mỗi truy vấn giống PHP Ngoài ra, tậndụng ưu điểm non-blocking I/O của Javascript mà Node.js tận dụng tối đa tàinguyên của server mà không tạo ra độ trễ như PHP
• JSON APIs với cơ chế event-driven, non-blocking I/O(Input/Output) và mô
hình kết hợp với Javascript là sự lựa chọn tuyệt vời cho các dịch vụ Webslàm bằng JSON
• NodeJS rất phù hợp để làm ứng dụng trên trang đơn ( Single page
Application) như Gmail Với khả năng xử lý nhiều Request/s đồng thời thìthời gian phản hồi nhanh Các ứng dụng bạn định viết không muốn nó tải lạitrang, gồm rất nhiều request từ người dùng cần sự hoạt động nhanh để thểhiện sự chuyên nghiệp thì NodeJS sẽ là sự lựa chọn của bạn
• Shelling tools unix NodeJS sẽ tận dụng tối đa Unix để hoạt động Tức là
NodeJS có thể xử lý hàng nghìn Process và trả ra một luồng khiến cho hiệuxuất hoạt động đạt mức tối đa nhất và tuyệt vời nhất
• Luồng dữ liệu (Streamming Data) các web thông thường gửi HTTP request
và nhận phản hồi lại Giả xử sẽ cần xử lý một luồng dữ liệu cực lớn, NodeJS
sẽ xây dựng các Proxy phân vùng các luồng dữ liệu để đảm bảo tối đa hoạtđộng cho các luồng dữ liệu khác
• Với sự ra đời của các ứng dụng di động & HTML 5 nên Node.js rất hiệu quả
khi xây dựng những ứng dụng thời gian thực (real-time applications) nhưứng dụng chat, các dịch vụ mạng xã hội như Facebook, Twitter,…
- Nhược điểm:
Ứng dụng nặng tốn tài nguyên nếu bạn cần xử lý các ứng dụng tốn tàinguyên CPU như encoding video, convert file, decoding encryption… hoặccác ứng dụng tương tự như vậy thì không nên dùng NodeJS (Lý do: NodeJS
Trang 22được viết bằng C++ và Javascript, nên phải thông qua thêm một trình biêndịch của NodeJS sẽ lâu hơn 1 chút ) Trường hợp này bạn hãy viết một Add
on C++ để tích hợp với NodeJS để tăng hiệu suất tối đa!
2.3.2 Công nghệ Meteor
2.3.2.1 Giới thiệu
Meteor là một khung cộng tác JavaScript mới với mục đích tự động và đơn giản hóaviệc phát triển một ứng dụng web hoạt động thời gian thực Nó xử lý giao tiếp thờigian thực bằng một giao thức gọi là Giao thức Dữ liệu Phân tán (Distributed DataProtocol - DDP), nó được hỗ trợ trên các trình duyệt mới hơn sử dụng WebSockets
và trên các trình duyệt cũ hơn sử dụng AJAX Long-Polling Trong cả hai trườnghợp, giao tiếp giữa trình duyệt và máy chủ là trong suốt
Giao thức DDP được thiết kế để làm việc với tập hợp các tài liệu JSON (JavaScriptSerialized Object Notation - Ký pháp đối tượng JavaScript tuần tự), khiến nó dễdàng tạo, cập nhật, xóa, truy vấn, và dĩ nhiên - xem các tài liệu JSON Bởi DDP làmột giao thức nguồn mở, bạn có thể hình dung ra việc kết nối nó tới bất kỳ máykhách hoặc nguồn dữ liệu nào bạn muốn Nó có thể hoạt động ngay lập tức cùng vớiMongoDB
Trong thực tế, Meteor cung cấp hai cơ sở dữ liệu MongoDB: một cơ sở dữ liệu đệm
ở phía máy khách và một cơ sở dữ liệu MongoDB trên máy chủ Khi người dùngtạo ra một thay đổi đến một vùng dữ liệu - Ví dụ như nhấn nút Lưu (Save) - mãJavaScript chạy trên trình duyệt cập nhật các mục trong cơ sở dữ liệu MongoDB nộitại tương ứng và tạo ra một yêu cầu DDP tới máy chủ Đoạn mã ngay lập tức được
xử lý như thể là đã thành công bởi vì nó không cần chờ đợi để máy chủ trả lời.Trong khi đó, máy chủ âm thầm cập nhật dữ liệu Nếu thao tác ở phía máy chủ thấtbại hoặc trả về một kết quả không mong muốn, mã JavaScript ở phía máy kháchngay lập tức được điều chỉnh lại dựa vào dữ liệu vừa được trả về từ máy chủ Sự
điều chỉnh này được gọi là bồi hoàn trễ - latency compensation và tạo thêm cảm
nhận về tốc độ cho người dùng
Trang 23Mặc dù hệ thống khuôn mẫu của Meteor được thiết kế một cách rõ ràng
để dễ dàng tạo ra sự giao tiếp theo thời gian thực Trong hầu hết các khungcộng tác web, bạn có thể dễ dàng trộn lẫn HTML (Ngôn ngữ đánh dấu vănbản siêu liên kết - Hypertext Markup Language)—hoặc tương đương vớiHTML, ví dụ như HTML Abstraction Markup Language (Haml)—với mãnguồn Điều này cho phép bạn dễ dàng chèn các giá trị động từ cơ sở dữ liệuvào các trang mà bạn gửi cho người sử dụng Sau đó, bạn có trách nhiệm đặtmột hệ thống tại chỗ để giám sát các sự thay đổi trên dữ liệu và cập nhật cácđánh đấu của bạn Tuy vậy, hệ thống khuôn mẫu trong Meteor được thiết kế
để ghi lại dữ liệu nào được truy cập từ một khuôn mẫu và tự động thiết lậpcác lời gọi lại để thay đổi HTML khi mà dữ liệu bên dưới thay đổi, khiếncho các khuôn mẫu thời gian thực nhanh chóng và dễ dàng
2.3.2.2 Ưu và nhược điểm của meteor
- Ưu điểm
• Không cần quá nhiều kiến thức lập trình, chỉ cần HTML, CSS, javascript,
chút kiến thức về OOP và database là được Mọi thao tác tới database đềuthông qua các API của Meteor, viết bằng Javascript
• Meteor hướng tới các đối tượng không giỏi lập trình Do đó, Meteor rất dễ
học dễ làm, tài liệu về Meteor cũng rất phong phú và dễ tìm
• Nhanh chóng tạo ra sản phẩm, được các công ty start-up, các doanh nghiệp
nhỏ ưu chuộng (Ngày xưa Ruby on Rail cũng nổi tiếng nhờ lý do này)
• Có vô số module đã viết sẵn, chỉ cần gắn vào và sử dụng Ví dụ việc đăng
nhập, phân quyền khá phức tạp trong C#, Java, … trong Meteor chỉ cần gắnmodule vào, chỉnh sửa một chút là được
• Dân Developer cũng thích Meteor, vì nó tích hợp đủ thứ công nghệ: Node.js,
Express, MongoDB, WebSocket, Phonegap và realtime
• Code ít, được nhiều, Deploy rất nhanh Vừa code xong và muốn đưa lên web,
chỉ cần “meteor deploy hoangph.meteor.com” Muốn có ứng dụng di động,chỉ cần “meteor build android” là xong
Trang 24- Nhược điểm:
• Chỉ mới hỗ trợ MongoDB làm Database Engine.
• View Engine Blaze hơi khó sử dụng Hiện tại ta có thể thay thế bằng
AngularJS
• SEO cũng chưa tốt, do Meteor tập trung vào phát triển ứng dụng real time,
tương tác cao Nếu cần làm web bán hàng, blog, trang tin tức, PHP & Joomlahay WordPress vẫn là lựa chọn hàng đầu nhé
• Module nhiều nhưng document không rõ ràng (Tình trạng tương tự như npm
của Nodejs, có rất nhiều module nhưng document rất mơ hồ, khó sử dụng)
2.3.2.3 Cấu trúc của một project meteor
a Giới thiệu về import và export:
Meteor ở phiên bản 1.3 xuất hiện các trường export và import cho phép truy xuấtcác file javascript, file css và file html một cách là khá dễ dàng
- Import file thông thường:
import ' / /api/lists/methods.js'; // import from
relative path
import '/imports/startup/client'; // import module withindex.js from absolute path
import './loading.html'; // import Blaze
compiled HTML from relative path
import '/imports/ui/style.css'; // import CSS from absolute path
Trang 25export default Lists; // default export
export default new Collection('lists'); // default export
b Cấu trúc file:
imports/
startup/ #Thư mục chứa các file thiết lập khi ứng dụng khởi chạy client/ #Thư mục chứa những thiết lập phía client
index.js #File chứa các thiết lập chính cho client
routes.js #File thiết lập tất cả các routes của hệ thống
useraccounts-configuration.js #File thiết lập user account
publications.js # all list-related publications
publications.tests.js # tests for the list publications
lists.js # definition of the Lists collection
lists.tests.js # tests for the behavior of that collection
methods.js # methods related to lists
Trang 26methods.tests.js # tests for those methods
layouts/ # wrapper components for behaviour and visuals
pages/ # entry points for rendering used by the router
client/ # Phía client
main.js # tất cả chức năng phía client sẽ được import vào đây
server/ # Phía server
main.js # tất cả chức năng phía server sẽ được import vào đây
2.3.2.4 Một số package meteor được sử dụng
• Tương tự accounts-facebook đối với tài khoản google.
• Để cài đặt gõ lệnh: meteor add accounts-google.
Trang 27• Cung cấp dịch vụ lưu trữ dữ liệu tạm thời, sử dụng để lưu trữ và chuyền giữ
liệu giữa các trang và các module
• Để cài đặt gõ lệnh: meteor add session
2.3.3 Tìm hiểu về MongoDB
2.3.3.1 Cơ sở dữ liệu NoSQL là gì?
NoSQL thường được hiểu là Not Only SQL một dạng cơ sở dữ liệucung cấp cơ chế lưu trữ và truy xuất dữ liệu theo mô hình khác với các cơ
sở dữ liệu quan hệ NoSQL được đánh giá là có phương thức tiếp cận thiết
kế đơn giản, dễ dàng mở rộng ngang và có độ sẵn sàng đáp ứng cao, dễdàng kiểm soát Cấu trúc dữ liệu của NoSQL được lưu trữ dưới dạng: key-value, document hoặc graph khác với cách lưu trữ mà các RDBMS đang sửdụng hiện nay Tính chất lưu trữ đơn giản, không ràng buộc vì vậy hiệu suấthoạt động của NoSQL nhanh hơn RDBMS rất nhiều
Được gọi là Not Only SQL có ý nghĩa những cơ sở dữ liệu thuộc họNoSQL không những có thể hỗ trợ các truy vấn giống như SQL mà có thểlàm được nhiều hơn thế Hiện nay NoSQL đang được phát triển với tốc độnhanh, được ứng dụng vào nhiều dự án Big Data (dữ liệu lớn) và các ứngdụng mạng xã hội yêu cầu đáp ứng thời gian thực
Ngày nay, với sự phát triển của các ứng dụng Big Data mạng xã hội,yêu cầu đòi hỏi xử lý một lượng dữ liệu vô cùng lớn, tăng lên nhanh chónghàng ngày Vì vậy mà NoSQL trở thành một cơ sở dữ liệu không thể thiếu
để giải quyết những bài toán như vậy Ví dụ như Facebook sử dụng NoSQLkết hợp với RDBMS để lưu trữ hàng tỷ bài viết và bình luận đáp ứng hơn 1
tỷ thành viên sử dụng dịch vụ mà vẫn luôn hoạt động ổn định, tính sẵn sàngcao và khả năng phân tán dữ liệu vô tận
2.3.3.2 Giới thiệu về MongoDB :
MongoDB là một cơ sở dữ liệu mã nguồn mở thuộc họ nhà NoSQL đượcphát hành sử dụng miễn phí bởi công ty MongoDB Với những ý tưởng lưu trữ mới.MongoDB hoạt động trên mọi hệ điều hành phổ biến hiện nay như: Windows,
Trang 28Linux, OS X và hỗ trợ đầy đủ các driver cho các ngôn ngữ lập trình để giao tiếp vớichúng một cách dễ dàng nhất.
Mỗi một table (bảng dữ liệu) trong SQL sử dụng thì trong MongoDB gọi làcollection (tập hợp) Mỗi một record (bản ghi) trong MongoDB được gọi làdocument (tài liệu)
a Một bản ghi của Mongodb được lưu trữ như thế nào?
Một bản ghi của MongoDB được lưu trữ dưới dạng document (tài liệu), nó được ghi xuống với cấu trúc field (trường) và value (giá trị) Nó giống như là một đối tượng JSON có dạng như sau:
Hình 2-1 Cách MongoDB lưu trữ một bản ghi.
Điều đó giúp bạn có thể dễ dàng ép kiểu sang array (mảng) để lập trình các ứng
dụng một cách dễ dàng hơn Nói một cách dễ hiểu thì mỗi một bản ghi củaMongoDB là một mảng dữ liệu riêng biệt bao gồm các cặp key, value khác nhau do
đó cách lưu trữ của MongoDB là phi cấu trúc dữ liệu
b Mongodb hoạt động như thế nào?
MongoDB hoạt động dưới một tiến trình ngầm service luôn mở một cổng (Cổng mặc định là 27017) để lắng nghe các yêu cầu truy vấn, thao tác từ các ứng dụng gửi vào sau đó mới tiến hành xử lý
Mỗi một bản ghi của MongoDB được tự động gắn thêm một field có tên “_id” thuộckiểu dữ liệu ObjectId mà nó quy định để xác định được tính duy nhất của bản ghi này
so với bản ghi khác, cũng như phục vụ các thao tác tìm kiếm và truy vấn thông tin vềsau
Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấnthông tin đạt hiệu suất cao nhất
Trang 29Mỗi khi có một truy vấn dữ liệu, bản ghi được cache (ghi đệm) lên bộ nhớ RAM, đểphục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng.Khi có yêu cầu thêm/sửa/xóa bản ghi, để đảm bảo hiệu suất của ứng dụng mặc địnhMongoDB sẽ chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB mớithực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổ cứng.
2.3.3.3 Cơ chế phân quyền và bảo mật của MongoDB:
Cũng như các hệ cơ sở dữ liệu thông thường khác, MongoDB cũng có cơ chế xácthực phân quyền và bảo mật linh hoạt để quản trị viên có thể cấp phát quyền thaotác với cơ sở dữ liệu một cách đơn giản nhất
MongoDB có thể truy cập mà không cần xác thực khi bạn tắt chế độ xác thực quyền
sở hữu với cơ sở dữ liệu
Mặc định MongoDB sẽ có một tài khoản có tên truy cập là “admin” có quyền hạncao nhất, có quyền thao tác với tất cả các cơ sở dữ liệu được tạo ra trên hệ thống
• Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng
• Dữ liệu được caching, lấy RAM làm trọng tâm hoạt động vì vậy khi hoạtđộng yêu cầu một bộ nhớ RAM lớn
• Như đã giới thiệu ở trên, mọi thay đổi về dữ liệu mặc định đều chưa được ghixuống ổ cứng ngay lập tức vì vậy khả năng bị mất dữ liệu từ nguyên nhânmất điện đột xuất là rất cao
Trang 302.3.3.4 So sánh với SQL
Bảng 3-1 Bảng so sánh đối tượng trong SQL và MongoDB.
Bảng 3-2 Bảng so sánh các câu lệnh cơ bản trong SQL và MongoDB.
Các câu lệnh SQL cơ bản Các câu lệnh Mongobd cơ bản
CREATE TABLE users (
id MEDIUMINT NOT NULL
user_id: "abc123", age: 55,
ON users(user_id, age DESC)
db.users.createIndex( { user_id: 1, age: -1 } )
DROP TABLE users db.users.drop()
INSERT INTO users(user_id,
Trang 31SELECT user_id, status
FROM users
WHERE status = "A"
db.users.find(
{ status: "A" }, { user_id: 1, status: 1, _id: 0 })
Trang 32WHERE status = "A"
ORDER BY user_id DESC
db.users.find().count()UPDATE users
SET status = "C"
WHERE age > 25
db.users.update(
{ age: { $gt: 25 } }, { $set: { status: "C" } }, { multi: true }
)DELETE FROM users
WHERE status = "D"
db.users.remove( { status: "D" } )
Trang 332.3.4 Tìm hiểu về React và mô hình Redux
- Giới thiệu về React
React là thư viện viết bằng javascript taọ ra bởi Facebook, dùng để xây dựng giaodiện người dùng (User interface - UI)
React được xây dựng xung quanh các component, chứ không dùng template như cácfreamework khác Tạo một component bằng phương thức createClass của đối tượngReact
• State có thể được update sử dụng method setState để đảm bảo UI được cậpnhật liên tục, kết quả sẽ được truyền xuống component con sử dụng attributesthông qua this.props
- Giới thiệu về Redux
Redux là một thư viện Javascript giúp tạo ra một lớp quản lý trạng thái của ứngdụng, được dựa trên nền tảng tư tưởng của kiến trúc Flux do Facebook giới thiệu,redux thường kết hợp hoàn hảo với React
Trang 34˖ Thay đổi chỉ bằng hàm thuần túy: Để chỉ ra cách mà State được biến đổi bởi Action chúng ta dùng các pure function gọi là Reducer
• Cấu trúc
Cấu trúc của mô hình Redux gồm 4 phần:
˖ Action: là nói mang các thông tin dùng để gửi từ ứng dụng đến Store
˖ Reducer: là nơi xác định State thay đổi như thế nào
˖ Store: là nơi quản lý State, cho phép truy cập state qua getState(), update State qua dispatch(action), đăng kí listener qua subscribe(listener)
˖ View: hiển thị dữ liệu được cung cấp bởi store
2.3.5 Tìm hiểu về Webpack
- Giới thiệu
Webpack là một module bundler nó nhận các module cùng với các dependencies vàgenerate ra các static asets tương ứng
- Mục tiêu
Chia các cây dependency thành các chunk được load khi cần thiết
• Thời gian init ngắn hơn
• Mỗi static asset đểu có thể trở thành một module
• Khả năng tích hợp 3rd-party library như module
• Khả năng custom gần như mọi thành phần của module bundler
• Phù hợp với các dự án lớn
Trang 35CHƯƠNG 3: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG
3.1 Khảo sát nhu cầu các đối tượng sử dụng
3.1.1 Đối tượng giáo viên
- Tạo môn học, khóa học, lớp học:
Giáo viên trước khi tham gia giảng dạy phải tạo các lớp học và hệ thống sẽ tự độnggửi mã code tham gia đến email của các sinh viên
- Tạo kì thi:
• Mã code tự sinh sau mỗi lần tạo kì thi khác nhau
• Mỗi kì thi cần phải có tên của kì thi và mô tả về kì thi để cho người tham gia
có thể hiểu rõ được kì thi
• Cần cài đặt số lượng câu hỏi trước khi tạo ra bộ đề thi để người ra đề dễ dàngkiểm soát được đề thi của mình so với mức điểm đã đưa ra
• Mỗi đề thi cần được trộn ngẫu nhiên từ bộ đề gốc
• Bộ đề thi được tạo có thể tích hợp các dữ liệu đa phương tiện ( văn bản, hìnhảnh, âm thanh và video)
• Bộ đề của mỗi kì thi của giáo viên có thể công khai cho cộng đồng giáo viêncùng sử dụng hoặc chỉ riêng mình người ra đề biết là tùy chọn ở giáo viên tạo
đề thi
- Quản lý tài khoản và thông tin cá nhân
Giáo viên có thể tùy chỉnh thông tin cá nhân của bản thân và quản lý các tài khoảntham gia vào lớp học đối với các lớp khác nhau hoặc quản lý các lớp học do cánhân tạo và dạy
- Quản lý sinh viên:
Quản lý sinh viên đối với các lớp học có sinh viên theo học, giáo viên có thểthêm sinh viên, xóa sinh viên, phân quyền cho sinh viên các chức năng cần thiếttrong một lớp học trên hệ thống
- Quản lý tài liệu, thêm, xóa, sửa các file tài liệu liên quan đến bài giảng, bài tậptrong mỗi lớp học
- Thông báo nhắc nhở sinh viên qua hộp mail tự động
Trang 36- Lập lịch cho bài giảng theo tuần cụ thể.
- Chat online hỗ trợ trực tuyến cho sinh viên
- Quay video trực tuyến để hướng dẫn học tập cho sinh viên
- Tạo diễn đàn trao đổi học tập
- Thống kê kết quả học tập của sinh viên qua các bài tập ôn, các bài thi
- Thống kê các mức độ rất dễ, dễ, trung bình, khó, rất khó của mỗi câu hỏi đểgiáo viên nắm biết được tình hình học tập và ôn luyện của sinh viên từ đó rútkinh nghiệm và đưa ra bộ đề phù hợp với sinh viên
- Thấy được các đối tượng đang online và có thể mời tham gia đề thi của mìnhqua hình thức gửi thông báo đến tài khoản người đang online được mời với mãcode đề thi đi kèm
- Theo dõi sinh viên ở các hình thức có thể để giảm hình thức gian lận mức tối thiểu
3.1.2 Đối tượng sinh viên
- Đối tượng sinh viên có thể chuyển đổi vai trò thành giáo viên để tạo nhóm học
tập hoặc dạy một môn học nào đó
- Xem các danh sách khóa học, lớp học, môn học.
- Đăng kí môn học thông qua mã giáo viên cung cấp hoặc tìm kiếm theo tên môn
học dưới sự cho phép của giáo viên
- Thi trực tuyến kết quả sẽ được trả về ngay trong thời gian thi;
- Chat trực tuyến;
- Có thể tự tạo nhóm học tập;
- Lên kế hoạch học tập cho bản thân;
- Nhận được thông báo nhắc nhở các kì thi qua mail của giáo viên;
- Sau khi kết thúc bài thi thì sinh viên có thể xem và chia sẻ kết quả thi lên trang
facebook cá nhân của mình
- Quản lý tài khoản và thông tin cá nhân.
3.1.3 Đối tượng phụ huynh
- Xem kết quả ôn tập và thống kê kết quả học tập của sinh viên.
Trang 373.2 Thiết kế cơ sở dữ liệu
3.2.1 Đặc tả hệ thống
Các chức năng chính:
- Đối với giáo viên:
• Tạo lớp học, khóa học, môn học, tạo kì thi
• Tổ chức thi
• Thống kê tỷ lệ các mức độ của đề thi
• Quản lý lớp học (sinh viên, tài liệu, bài giảng, bài tập trong lớp học)
• Chat trực tuyến với sinh viên
• Thông báo kết quả học tập cho sinh viên
• Lập lịch bài giảng
- Đối với sinh viên:
• Tham gia kì thi, ôn luyện
Trang 383.2.2 Sơ đồ phân rã chức năng
Trang 39Hình 3-2 Sơ đồ phân rã chức năng.
- Mô hình tổng quát (hình 4.1) bao gồm các chức năng chính cho 3 đối tượng
giáo viên, sinh viên và phụ huynh Các chức năng này được phân tích và tổngquát tại mục 4.2.1 đặc tả hệ thống
3.2.3 Sơ đồ lớp
- Sơ đồ lớp tổng quát
Sơ đồ lớp tổng quát bao gồm 10 bảng cơ bản tập trung tại các chức năng đối vớigiáo viên trong một lớp học
Trang 40Hình 3-3.Sơ đồ lớp tổng quát.