Tải bản đầy đủ (.docx) (87 trang)

Báo cáo đồ án tốt nghiệp xây dựng hệ thống Elearning

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.15 MB, 87 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

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

HUỲNH NGỌC SÁNG

PHÂN TÍCH, CÀI ĐẶT MODULE QUẢN LÝ TẠO ĐỀ, RA ĐỀ THI
TRONG ỨNG DỤNG WEB HỖ TRỢ HỌC
VÀ THI TRỰC TUYẾN.

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công nghệ Thông tin

Nha Trang - 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO

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

HUỲNH NGỌC SÁNG

PHÂN TÍCH, CÀI ĐẶT MODULE QUẢN LÝ TẠO ĐỀ, RA ĐỀ THI
TRONG ỨNG DỤNG WEB HỖ TRỢ HỌC
VÀ THI TRỰC TUYẾN.

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công nghệ Thông tin


CÁN BỘ HƯỚNG DẪN:
TS. ĐINH ĐỒNG LƯỠNG


MỤC LỤC
DANH MỤC KÍ HIỆU, CHỮ VIẾT TẮT......................................................................1
DANH MỤC CÁC HÌNH..............................................................................................3
LỜ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



2.3.3.3 Cơ chế phân quyền và bảo mật của MongoDB:....................................24
2.3.3.4 So sánh với SQL...................................................................................25
2.3.4

Tìm hiểu về React và mô hình Redux.......................................................28

2.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



1


DANH 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

ĐH

Đại học

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



2

DANH 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


3

Hì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


4

Hì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

LỜI MỞ ĐẦU
Ngày nay, có thể nhận thấy rằng, Internet ngày càng thể hiện được vai trò to
lớn trong mọi mặt đời sống, đặc biệt là trong lĩnh vực giáo dục và đào tạo.


5

Công nghệ thông tin thúc đẩy một nền giáo dục mở, giúp mọi người tiếp cận
rất nhiều thông tin, thông tin nhiều chiều, rất nhanh, rút ngắn mọi khoảng cách, thu
hẹp mọi không gian, tiết kiệm thời gian. Kết quả, con người có thể tiếp nhận kiến
thức, nhận thức, trí tuệ và tư duy nhanh và thuận tiện hơn. Nội dung và cách truyền
đạt thông tin đa dạng nên hạn chế các phương pháp truyền đạt mang tính áp đặt một
chiều, nhờ vậy, năng lực của người học phát triển và có khả năng tư duy độc lập.
Trong 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ững
bướ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ông
nghệ 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ông
tin 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ách
truy 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ọc
tậ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ông
tá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ạo

cá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ài
kiể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. Đồng
thờ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ức
cá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
khoa Công nghệ Thông tin, hay các cuộc thi tiếng anh cũng có thể áp dụng hệ thống
nà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


6

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!

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.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ương

phá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 (Elearning) 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ọc
nhữ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ạng
Internet. Đố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ên
họ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ông
nghệ 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, âm
thanh, 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àng
trao đổ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ính
tươ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ài
họ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ười
dạ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ới
bạ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ất
nhiều so với các phương pháp dạy học truyền thống.
1.2.

Lý do chọn đề tài
Trường Đại học Nha Trang - trường đại học đa ngành đa lĩnh vực, hiện tại

trường đang đào tạo 5 ngành trình độ tiến sĩ, 8 ngành trình độ thạc sĩ, 25 ngành trình
độ đại học và 10 ngành trình độ cao đẳng. Lưu lượng người học thường xuyên của
Trường: gần 100 nghiên cứu sinh, trên 1.100 học viên cao học, hơn 13.000 sinh viên
chính quy tại Nha Trang và trên 10.000 sinh viên hệ vừa làm vừa học tại 18 cơ sở


7

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 E-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ó 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ính
nă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 email
nhắ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ân
loạ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ự động
tớ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ành
rấ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 gian
khi 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ệt
vờ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ây
dự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:


8

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ệc
khả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:
-

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 chi
tiế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ười
dù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ỳnh
Ngọ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ễn
Xuâ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ài
tậ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ạo
forum học tập)


9



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.


Đố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ên
kết kể cả các sinh viên đang học tại cơ sở chính.

1.4.
-

Hỗ trợ theo dõi và quản lý của Phụ huynh sinh viên.
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 cho

thấ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ãi
tại Việt Nam cũng như trong các nghiên cứu công nghệ tại trường Đại học Nha
Trang.
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ần
phả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ài
tập nhóm trực tiếp ngay trên hệ thống website, hệ thống hỗ trợ giáo viên việc
thống kê các kết quả học tập cũng như thống kê mức độ của bộ đề để sau đó giáo
viê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ác
nhau, 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ó.


10

Kết quả nghiên cứu giúp sinh viên có thể chủ động học tập mọi nơi trong
khuô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 chi
phí đ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
ra hệ thống có thể hỗ trợ việc tổ chức các chương trình game show liên quan đến
vấ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ĩa
khoa học và thực tiễn của đề tài nghiên cứu và chỉ ra những vấn đề mà đề tài
cầ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ải
quyế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ới
thiệu cơ sở lý thuyết sử dụng các mô hình công nghệ mới React, mô hình
Reduct, 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ân
tí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.


11

CHƯƠ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ọc

nhằ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 đàn

thả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ành
tứ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ết
lậ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ài
kiể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ọc
tậ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ọc
tậ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 cho
phép gửi bài giảng điện tử cho sinh viên qua email hoặc website của Trường trước
khi 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ững
kiế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.


12

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ì Elearning có thể giúp chúng ta thu được những kết quả chắc chắn và lâu dài, không
chỉ thông qua nội dung mà đồng thời bằng cả cộng đồng mạng trực tuyến, hỗ trợ
“học tập thông qua nhận xét và thảo luận”.
E-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ách
phù 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 ELearning 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ọc
tậ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ới
khả 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 trong
quá 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àm

việ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ùng
quỹ 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. Theo

Cyber 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ệc
giả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 (Learning
Management System) mã nguồn mở phổ biến nhất với một cộng đồng lớn trên khắp
thể 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ác
khó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ống
nà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ết


13

lậ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ới
mộ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
và 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ọc
củ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ùng
hợ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. Tuy
nhiên hạn chế của Blackboard chính là chi phí rất đắt để triển khai và hệ thống
Blackboard 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ên
trong 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ực
tuyế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ải
thưở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ối
tấ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ọc
khu 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ởi
mộ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ạn
chế 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ây
khó 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.


14

-

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.

-

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
nắm rõ tình hình lớp học từ đó có thể đưa ra bộ đề hợp lý.

2.3

Công nghệ hỗ trợ

2.3.1 Giới thiệu về Node.Js
2.3.1.1 Giới thiệu
-

Node.js là một mã nguồn mở, một môi trường cho các máy chủ và ứng dụng
mạng.

-

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ì được
viế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ặc IIS.

-

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


15


-

Các máy chủ quảng cáo

-

Các ứng dụng dữ liệu thời gian thực khác.

2.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ất
khi không phải tạo thread mới cho mỗi truy vấn giống PHP. Ngoài ra, tận
dụng ưu điểm non-blocking I/O của Javascript mà Node.js tận dụng tối đa tài
nguyê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ụ Webs
là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ại
trang, 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ệu
xuấ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:


16


Ứ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ài
nguyên CPU như encoding video, convert file, decoding encryption… hoặc
các ứng dụng tương tự như vậy thì không nên dùng NodeJS (Lý do: NodeJS
được viết bằng C++ và Javascript, nên phải thông qua thêm một trình biên
dị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óa
việ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ời
gian thực bằng một giao thức gọi là Giao thức Dữ liệu Phân tán (Distributed Data
Protocol - 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ường
hợ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 (JavaScript
Serialized 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áy
khá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ới
MongoDB.
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ùng
tạ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ội
tạ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ất
bại hoặc trả về một kết quả không mong muốn, mã JavaScript ở phía máy khách
ngay 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ự



17

đ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.
Mặ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 khung
cộng tác web, bạn có thể dễ dàng trộn lẫn HTML (Ngôn ngữ đánh dấu văn
bản siêu liên kết - Hypertext Markup Language)—hoặc tương đương với
HTML, 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ệu
vào các trang mà bạn gửi cho người sử dụng. Sau đó, bạn có trách nhiệm đặt
mộ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ập
các lời gọi lại để thay đổi HTML khi mà dữ liệu bên dưới thay đổi, khiến
cho 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 đều
thô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ắn
module 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.


18



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.

-


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 & Joomla
hay 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ất
cá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 with index.js from

absolute path
import './loading.html';
relative path
import '/imports/ui/style.css';

-

// import Blaze compiled HTML from
// import CSS from absolute path

Import từ packages:
import moment from 'moment';
// default import from npm
import { HTTP } from 'meteor/http'; // named import from Atmosphere

-

Sử dụng require (tương tự như import):
if (Meteor.isClient) {
require('./client-only-file.js');
}

Export:


19

export const listRenderHold = LaunchScreen.hold(); // named export
export { Todos };
// named export

export 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
server/
fixtures.js

#File thêm vào database một số dữ liệu nền khi ứng dụng

khởi chạy

index.js
api/

#File import server startup through a single index entry point
#Thư mục chứa các collection của ứng dụng

lists/

# a unit of domain logic

server/
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

methods.tests.js


# tests for those methods

ui/
components/

# thư mục chứa các component tương ứng với các chức năng

của
# ứng dụng các chức năng này có thể lồng vào nhau thông qua
import
layouts/

# wrapper components for behaviour and visuals


20

pages/
client/

# entry points for rendering used by the router
# Phía client

main.js
server/

# tất cả chức năng phía client sẽ được import vào đây
# 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
-

Dotansimha:accounts-ui-angular


Một package của angular cung cấp dịch vụ đăng ký đăng nhập và xác thực
người dùng trong hệ thống.


-

Để cài đặt gõ lệnh: meteor add dotansimha:accounts-ui-angular.

Accounts-facebook


Cung cấp dịch vụ đăng nhập thông qua tài khoản facebook bằng cách liên kết
với một ứng dụng facebook.


-

-

Để cài đặt gõ lệnh: meteor add accounts-facebook.


Accounts-google:


Tương tự accounts-facebook đối với tài khoản google.



Để cài đặt gõ lệnh: meteor add accounts-google.

Email:


Cung cấp dịch vụ gửi mail thông qua một tài khoản email được liên kết với
ứng dụng.


-

Để cài đặt gõ lệnh: meteor add email.

Session:


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ệu
cung 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ơ


×