1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

95 887 15
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 95
Dung lượng 5,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

KHOA CÔNG NGHỆ THÔNG TIN

Trang 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

Trang 4

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

Trang 6

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

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 7

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

Trang 8

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

Trang 9

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

Trang 10

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ữ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 11

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ố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 12

CHƯƠ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 13

E-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 16

ra 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 17

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ọ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 18

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á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 19

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ọ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 21

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ấ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 23

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 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 25

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

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 26

methods.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 28

Linux, 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 29

Mỗ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 30

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

SELECT user_id, status

FROM users

WHERE status = "A"

db.users.find(

{ status: "A" }, { user_id: 1, status: 1, _id: 0 })

Trang 32

WHERE 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 33

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

CHƯƠ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 37

3.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 38

3.2.2 Sơ đồ phân rã chức năng

Trang 39

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

Hình 3-3.Sơ đồ lớp tổng quát.

Ngày đăng: 10/07/2018, 10:58

TỪ KHÓA LIÊN QUAN

w