1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài xây dựng website dạy học trực tuyến các môn cntt

86 0 0

Đ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

Tiêu đề Xây Dựng Website Dạy Học Trực Tuyến Các Môn CNTT
Tác giả Lương Văn Trường
Người hướng dẫn Ths. Phạm Thị Thuận
Trường học Trường Đại học Công nghệ Giao thông vận tải
Chuyên ngành Công nghệ thông tin
Thể loại đồ án tốt nghiệp
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 86
Dung lượng 4,71 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU (10)
    • 1.1. Lý do chọn đề tài (10)
    • 1.2. Mục tiêu của đề tài (11)
    • 1.3. Giới hạn và phạm vi của đề tài (11)
    • 1.4. Kết quả dự kiến đạt được (11)
  • CHƯƠNG 2. KIẾN THỨC NỀN TẢNG (12)
    • 2.1. Cơ sở lý thuyết (12)
      • 2.1.1. Phân tích và thiết kế hệ thống thông tin (12)
      • 2.1.2. Cơ sở d ữ li ệ u (12)
    • 2.2. Công cụ sử dụng (12)
      • 2.2.1. NodeJS (12)
      • 2.2.2. ReactJS (13)
      • 2.2.3. API (13)
      • 2.2.4. Redux (14)
      • 2.2.5. Phần mềm hỗ trợ phân tích thiết kế IBM Rational Rose (15)
      • 2.2.6. SQL Server (15)
      • 2.2.7. Stored Procedure (16)
      • 2.2.8. UML (16)
      • 2.2.9. Phần mềm hỗ trợ phân tích thiết kế IBM Rational Rose (17)
  • CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (18)
    • 3.1. Khảo sát hệ thống và đặc tả nghiệp vụ (18)
      • 3.1.1. Thực trạng hiện nay (18)
      • 3.1.2. Giới thiệu đơn vị khảo sát (19)
        • 3.1.2.1. Danh mục các khóa học công nghệ thông tin của website (19)
        • 3.1.2.2. Các nghiệp vụ chính của của website (19)
        • 3.1.2.3. Đánh giá chung về sự khác biệt dạy học online và dạy học truyền thống (20)
      • 3.1.3. Khảo sát (21)
        • 3.1.3.1. Hình thức khảo sát (21)
        • 3.1.3.2. Đối tượng khảo sát (21)
      • 3.1.4. Mô tả bài toán (23)
      • 3.1.5. Xác định các thành phần có của hệ thống (25)
      • 3.2.1. Biểu đồ use-case (26)
      • 3.2.2. Đặc tả các use case (33)
      • 3.2.3. Biểu đồ hoạt động (48)
      • 3.2.4. Biểu đồ trình tự (52)
      • 3.2.5. Biểu đồ trạng thái (54)
      • 3.2.6. Biểu đồ lớp (55)
    • 3.3. Thiết kế về cơ sở dữ liệu (56)
    • 3.4. Thiết kế các module chương trình chính (63)
      • 3.4.1. Website dạy học (63)
      • 3.4.2. Website quản lý (63)
    • 3.5. Thiết kế giao diện chương trình (64)
      • 3.5.1. Giao diện trang website dạy học (64)
      • 3.5.2. Giao diện trang quản lý (70)
  • CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH (76)
    • 4.1. Thu thập dữ liệu, xây dựng cơ sở dữ liệu vật lý (76)
    • 4.2. Viết code cho các module chương trình chính (76)
      • 4.2.1. Code Module trang chủ (76)
      • 4.2.2. Code Module trang danh sách khóa học (77)
      • 4.2.3. Code Module trang chi tiết khóa học (78)
      • 4.2.4. Code Module trang bài học (78)
      • 4.2.5. Code Module trang quản lý người dùng (79)
      • 4.2.6. Code Module trang quản lý khóa học (80)
    • 4.3. Kiểm thử và đánh giá chương trình (81)
      • 4.3.1. Kiểm thử module đăng ký khóa học (81)
    • 1. Kết quả đạt được (85)
    • 2. Hạn chế (85)
    • 3. Hướng phát triển (85)
    • 4. Kết luận (85)
  • TÀI LIỆU THAM KHẢO (86)

Nội dung

GIỚI THIỆU

Lý do chọn đề tài

Trong bối cảnh Internet và công nghệ ngày càng phát triển như hiện nay đòi hỏi mọi ngành nghề, mọi hoạt động đều phải thay đổi cho phù hợp với xu thế chung, trong đó giáo dục đào tạo không phải là ngoại lệ Dạy học trực tuyến hay đào tạo trực tuyến đang trở thành hình thức dạy học phổ biến hiện nay và được một lượng lớn học viên tham gia đặc biệt là giới trẻ Do đó ứng dụng của công nghệ thông tin vào việc dạy học trực tuyến trên các trang mạng Internet đã không còn xa lạ Lợi ích mà việc dạy học trực tuyến đem lại giúp độc giả tiết kiệm được thời gian, công sức cũng như hiệu quả cao trong học tập Giúp các bạn tìm tòi học hỏi và đào sâu những kiến thức, kỹ năng vững vàng cho bản thân Là sinh viên được trang bị những kiến thức của ngành hệ thống thông tin với những kiến thức đã tiếp thu và vận dụng lý thuyết đó vào công việc thực tế nên em đã chọn đề tài “Xây dựng website dạy học trực tuyến các môn CNTT” để thực hiện đồ án tốt nghiệp của mình với mục đích nghiên cứu và xây dựng một website dạy học trực tuyến giúp cho các bạn học sinh, sinh viên có thể học hỏi những kiến thức phù hợp với nhu cầu về công nghệ thông tin đang phát triển hiện nay

Theo cuộc khảo sát và tìm hiểu em nhận thấy tỷ lệ học sinh, sinh viên định hướng mục tiêu và chủ động tiếp xúc với công nghệ thông tin đang ngày một tăng dần đối với thời đại công nghệ thông tin phát triển hiện nay Một số bạn trẻ còn đang là học sinh đã có thể tạo ra những phần mềm, robot thông minh ngay cả khi chưa lên đại học và đã được các công ty lớn tạo điều kiện cho các bạn trẻ được trải nghiệm môi trường làm việc và học hỏi để phát triển hơn nữa Nhưng song song với điều đó thì vẫn còn những bạn đã là sinh viên nhưng chưa ý thức được và chủ động tìm tòi học hỏi đào sâu kiến thức về công nghệ thông tin

Qua tìm hiểu, khảo sát và xin ý kiến từ các thầy cô trong khoa và với sự góp ý của một số các bạn sinh viên, em đã quyết định chọn đề tài “Xây dựng website dạy học trực tuyến các môn CNTT” với mục đích duy nhất là cung cấp môi trường cho các bạn có cơ hội được chủ động tìm tòi học tập nhằm trang bị những kiến thức vững vàng hơn.

Mục tiêu của đề tài

Xây dựng, thiết kế website dạy học trực tuyến các môn CNTT

Triển khai và cài đặt chương trình trong thực tế.

Giới hạn và phạm vi của đề tài

Nghiên cứu về công tác quản lý vận hành website dạy học trực tuyến

Website được xây dựng bằng ngôn ngữ lập trình Node.js kết hợp với React.js và cơ sở dữ liệu xây dựng bằng SQL Server.

Kết quả dự kiến đạt được

Hiểu được quy trình, cách thức quản lý và vận hành của website dạy học

Hoàn thành xây dựng website với các chức năng chính sau:

❖ Giao diện thân thiện, sử dụng dễ dàng

❖ Người dùng có thể đăng ký tài khoản và tham gia học online qua các chuỗi video, có thể góp ý, trao đổi tương tác qua chức năng thảo luận dưới mỗi bài học

❖ Độc giả có thể theo dõi khóa học, nhận thông báo khi có bài học mới

❖ Người quản lý có thể quản lý được khóa học, tài khoản người dùng và các tương tác của người dùng trong mỗi video bài học

Hoàn thành báo cáo chi tiết đồ án tốt nghiệp.

KIẾN THỨC NỀN TẢNG

Cơ sở lý thuyết

Để có thể thiết kế và xây dựng một hệ thống hoàn chỉnh thì phân tích thiết kế và cơ sở dữ liệu là những bước đầu tiên không thể thiếu trong quy trình, vì vậy em đã nghiên cứu và tóm tắt những tài liệu và trọng điểm chính sau đây

2.1.1 Phân tích và thiết kế hệ thống thông tin Định nghĩa: Phân tích và thiết kế hệ thống thông tin là quy trình để phát triển và bảo trì một ứng dụng hệ thống thông tin với mục đích nâng cao hiệu quả công việc Ưu điểm: Một trong những ưu điểm quan trọng bậc nhất của phương pháp phân tích và thiết kế hệ thống thông tin là tính tái sử dụng: Có thể tạo các thành phần (đối tượng) một lần và dùng chúng nhiều lần sau đó

2.1.2 Cơ sở dữ liệu Định nghĩa: Cơ sở dữ liệu là một hệ thống các thông tin có cấu trúc, được lưu trữ trên các thiết bị lưu trữ nhằm thỏa mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng chạy cùng một lúc với những mục đích khác nhau

Việc sử dụng hệ thống CSDL này sẽ khắc phục được những khuyết điểm của cách lưu trữ dưới dạng hệ thống tập tin đó là: Giảm trùng lặp thông tin ở mức thấp nhất, đảm bảo tính nhất quán và toàn vẹn dữ liệu, đảm bảo dữ liệu được truy xuất theo nhiều cách khác nhau, từ nhiều người khác nhau và nhiều ứng dụng khác nhau, tăng khả năng chia sẽ thông tin.

Công cụ sử dụng

Để có thể thiết kế được website thì công cụ và ngôn ngữ lập trình em sẽ sử dụng là NodeJS kết hợp gọi API để vận hành hệ thống quản lý (back-end) và sử dụng ReactJS kết hợp với Redux đối với giao diện người dùng (front-end) Cuối cùng là SQL Server để thao tác và quản lý cơ sở dữ liệu

NodeJS là một runtime (run-time system : phần mềm được thiết kế để chạy các chương trình máy tính với một hoặc nhiều ngôn ngữ xác định) Nó được xây dựng trên nền V8 javascript engine – cỗ máy thực thi mã javascript của trình duyệt nổi tiếng Chrome NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ WIndow cho tới Linux, OS X nên đó cũng là một lợi thế Đồng thời cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất

Một trong số những điểm mạnh của NodeJS là giúp server có thể được viết bằng javascript từ đó tạo ra được các ứng dụng có tốc độ xử lý nhanh, xử lý giao tiếp từ cilent tới máy chủ theo thời gian thực

ReactJS là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP) React lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram năm 2012 ReactJS xây dựng lên các single-page-app (Thao tác xử lý trang web diễn ra trên một trang) và cho phép nhúng code html trong code javascript nhờ vào JSX

JSX là một dạng ngôn ngữ cho phép viết các mã HTML trong Javascript JSX thực hiện tối ưu hóa trong khi biên dịch sang mã Javacsript Các mã này cho thời gian thực hiện nhanh hơn nhiều so với một mã tương đương viết trực tiếp bằng Javascript Ngược với Javascript, JSX là kiểu statically-typed (biên dịch trước khi chạy) giống như Java, C++ Vì thế các lỗi sẽ được phát hiện ngay trong quá trình biên dịch Ngoài ra, nó cũng cung cấp tính năng gỡ lỗi khi biên dịch rất tốt

API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng API cung cấp khả năng truy xuất đến một tập các hàm hay dùng và từ đó có thể trao đổi dữ liệu giữa các ứng dụng với nhau

Hình 2.1 Mô hình mô tả kết nối giữa API với các thư viện và ứng dụng khác

Một trong các mục đích chính của một API là cung cấp khả năng truy xuất đến một tập các hàm hay dùng Các hàm API cũng tương tự như các hàm thông thường khác API được ứng dụng ở nhiều loại ứng dụng và phần mềm khác nhau Thế hệ mới nhất của API, Web API có thể dùng cho mọi hệ thống (hệ điều hành, cơ sở dữ liệu, thư viện ứng dụng, ) thậm chí cả phần cứng máy tính

Redux là một thư viện Javascript giúp tạo ra thành một lớp quản lý trạng thái của ứng dụ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, do vậy Redux thường là bộ đôi kết hợp hoàn hảo với ReactJS và React Native

Hình 2.2 Sự khác biệt giữa việc sử dụng và không sử dụng redux

2.2.5 Phần mềm hỗ trợ phân tích thiết kế IBM Rational Rose

Rational Rose là phần mềm công cụ mạnh hỗ trợ phân tích, thiết kế mô hình hệ thống phần mềm theo đối tượng Nó giúp ta mô hình hóa hệ thống trước khi viết mã chương trình được sử dụng rộng rãi bởi các công ty trong nước và liên doanh với nước ngoài

Rational Rose là bức tranh của hệ thống từ những phối cảnh khác nhau, nó bao gồm tất cả các mô hình UML, Actor, Use Case Case, Object,…trong hệ thống Người lập trình có thể dùng mô hình như một bản thiết kế cho công việc xây dựng hệ thống

SQL Server hay còn gọi là Microsoft SQL Server, viết tắt là MS SQL Server Là một phần mềm được phát triển bởi Microsoft dùng để lưu trữ dữ liệu, và là một hệ quản trị cơ sở dữ liệu quan hệ đối tượng

SQL cung cấp các tập lệnh phong phú cho các công việc hỏi đáp dữ liệu như: tạo, thêm, xóa và sửa đổi các đối tượng trong của cơ sở dữ liệu hay điều khiển việc truy cấp tới cơ sở dữ liệu và các đối tượng của cơ sở dữ liệu để đảm bảo tính bảo mật, tính nhất quán và sự ràng buộc của cơ sở dữ liệu Đối tượng của SQL server là các bảng dữ liệu với các cột và các hàng Cột được gọi là trường dữ liệu và hàng là bản ghi của bảng Cột dữ liệu và kiểu dữ liệu xác định tạo nên cấu vào công việc nào đó sẽ trở thành một cơ sở dữ liệu

Stored procedure là tập hợp một hoặc nhiều câu lệnh SQL thành một nhóm đơn vị xử lý logic và được lưu trữ trên Database Server Khi một câu lệnh gọi chạy stored procedure lần đầu tiên thì SQL Server sẽ chạy nó và lưu trữ vào bộ nhớ đệm, gọi là plan cache, những lần tiếp theo SQL Server sẽ sử dụng lại plan cache nên sẽ cho tốc độ xử lý tối ưu Stored procedure rất tiện lợi cho người quản trị database (DBA), nó giúp DBA tạo ra những nhóm câu lệnh và gửi đến một bô phận khác mà họ sẽ không cần quan tâm đến nội dung bên trong stored procedure có gì, họ chỉ quan tâm đến tham số đầu vào và đầu ra

UML (“Unifiled Modeling Language”) là ngôn ngữ mô hình hóa thống nhất, dùng để đặc tả, trực quan hóa và tư liệu hóa phần mềm hướng đối tượng, có phần chính bao gồm những ký hiệu hình học, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu tả các thiết kế của một hệ thống Nó là một ngôn ngữ để đặc tả, trực quan hoá[4]

Diagram (Biểu đồ): Đồ thị biểu diễn đồ họa về tập các phần tử trong mô hình và mối quan hệ của chúng Trong phiên bản mới nhất có 13 loại biểu đồ trong đó có 9 loại biểu đồ chính được sử dụng

❖ Use Case Case Diagram (Biểu đồ ca sử dụng): Mô tả sự tương tác giữa các tác nhân ngoài và hệ thống thông qua các ca sử dụng

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Khảo sát hệ thống và đặc tả nghiệp vụ

Ngày nay, các ứng dụng công nghệ thông tin được áp dụng trong mọi lĩnh vực nghiên cứu khoa học kỹ thuật cũng như đời sống, máy tính trở thành công cụ trợ giúp đắc lực cho con người trong lưu trữ, phân tích và xử lý thông tin, nhu cầu học tập cũng ngày một phát triển để theo kịp xu thế chung Vì vậy việc áp dụng công nghệ hiện đại vào quá trình đào tạo đã tạo cho người học nhiều cơ hội hơn trên con đường chiếm lĩnh tri thức Dạy học online được biết đến như một mô hình, một phương thức đào tạo hiện đại, đã không còn là khái niệm mới mẻ đối với các nhà quản trị giáo dục và được coi là một cuộc cách mạng dạy và học, trở thành xu hướng tất yếu của thời đại Thay vì người học và người dạy tới các lớp học truyền thống, dạy học online đã giúp cho việc trao đổi thông tin, truyền đạt tri thức, việc tổ chức lớp học linh hoạt ở mọi lúc, mọi nơi, sử dụng các thành tựu CNTT Tuy nhiên, việc triển khai dạy học online với nhu cầu học tập và chia sẻ kiến thức ngày càng tăng, sự linh hoạt thực hiện ở mọi lúc, mọi nơi, thậm chí đáp ứng tính cá nhân hóa người học rất cao, đòi hỏi hoạt động quản lý dạy học online phải đáp ứng được mục tiêu dạy học, chất lượng dạy học, Để đáp ứng được những điều đó, website dạy học cần được xây dựng 1 hệ thống vận hành ổn định và đáp ứng đươc những nhu cầu của người dùng có cơ hội được học tập và chia sẻ kiên thức được thuận lợi hơn

❖ Hoạt động của hệ thống được xây dựng đảm bảo các yêu cầu sau: Đối tượng là học viên:

- Học viên có thể tìm kiếm thông tin về các khóa học, có thể tham gia xem các bài giảng và trao đổi thảo luận với những học viên lẫn giảng viên trên hệ thống

- Sau khi tham gia học các khóa học, học viên có thể theo dõi các video bài học mới nhất của giảng viên, có thể đánh giá và gửi nhưng câu hỏi hay thắc mắc còn gặp phải tới giảng viên hay người quản lý Đối với giảng viên:

- Giảng viên có thể tạo mới thông tin về khóa học mới của mình, có thể cập nhập chỉnh sửa những video bài học

- Giảng viên có trách nhiệm quản lý những video bài học của mình, tiếp nhận những phản hồi thắc mắc từ phía học viên Đối với người quản lý:

- Người quản lý có thể quản lý danh sách các khóa học

- Quản lý các thông tin của độc giả, giảng viên

- Quản lý và gửi phản hồi ý kiến từ phía người dùng

- Người quản lý có trách nhiệm quản lý phê duyệt những khóa học mới từ giảng viên, hay yêu cầu đăng ký giảng viên từ người dùng

- Thống kê chỉ tiêu số lượng người xem hàng ngày hay hàng tháng đối với từng khóa học Đối với người quản trị:

- Quản trị chức năng của hệ thống

- Cung cấp các tài khoản cho người quản lý và giảng viên

3.1.2 Giới thiệu đơn vị khảo sát Đơn vị khảo sát: Sinh viên học tại trường đại học FPT Địa chỉ: Khu GD&ĐT, Khu CNC, KM29, ĐCT08, Hòa Lạc, Thạch Thất, Hà Nội 3.1.2.1 Danh mục các khóa học công nghệ thông tin của website

Các khóa học như: Lập trình C#, lập trình C++, lập trình Android, lập trình Java, lập trình PHP, phân tích thiết kế, lập trình front-end…

3.1.2.2 Các nghiệp vụ chính của của website

Chức năng 1: Quản lý thông tin khóa học bao gồm:

❖ Thêm mới thông tin khóa học khi có khóa học mới, thay đổi sửa chữa thông tin khóa học nếu giảng viên có yêu cầu chỉnh sửa thông tin

❖ Thông tin khóa học bao gồm: Tên, hình ảnh, nội dung khóa học, thông tin giảng viên, danh sách bài học, số lượng đánh giá và lượt xem,…

Chức năng 2: Quản lý thông tin bài học:

❖ Thêm mới cập nhập bài học cho khóa học khi bài học được giảng viên thêm mới

❖ Thông tin bài học được người quản lý chịu trách nhiệm quản lý và phê duyệt

❖ Thông tin bài học bao gồm: Tên, hình ảnh, nội dung video bài học, thông tin giảng viên, thảo luận, tài liệu, số lượng đánh giá và lượt xem,…

Chức năng 3: Quản lý thông tin học viên:

❖ Quản lý tài khoản và thông tin của học viên

❖ Chỉnh sửa và xóa tài khoản học viên

❖ Quản lý phê duyệt khi học viên có yêu cầu đăng ký làm giảng viên

Chức năng 4: Quản lý thông tin giảng viên:

❖ Quản lý tài khoản và thông tin của giảng viên

❖ Chỉnh sửa và xóa tài khoản giảng viên

❖ Quản lý danh sách các khóa học/ bài học của giản viên

❖ Quản lý phê duyệt khi có khóa hoc/ bài học được thêm mới từ giảng viên

Chức năng 5: Đăng nhập website:

❖ Kiểm tra thông tin tài khoản người dùng

❖ Phân quyền đăng nhập đối với từng đối tượng người dùng

Chức năng 6: Quản lý thảo luận:

❖ Quản lý danh sách các bình luận từ người dùng

❖ Xóa hoặc chỉnh sửa thông tin bình luận khi bình luận của người dùng không hợp lệ

Chức năng 7: Báo cáo thống kê:

❖ Báo cáo thống kê số lượng khóa học đánh giá tốt nhất/ không tốt

❖ Báo cáo số lượng lượt xem và tương tác từng khóa học

3.1.2.3 Đánh giá chung về sự khác biệt dạy học online và dạy học truyền thống Đặc điểm Dạy học truyền thống Dạy học online

Phạm vi, quy mô, thời gian

Giảng viên và học viên giao tiếp giới hạn trong lớp học Giới hạn về số lượng học viên tham gia và thời gian lớp học cố định

Có thể học ở mọi nơi trên mọi thiết bị Có thể giảng cho nhiều học viên ở nhiều địa điểm khác nhau Có thể học mọi thời gian có thể, chủ động điều tiết về thời gian học

Chi phí Phải chịu chi phí khu vực dạy học và di chuyển đến địa điểm học

Không phải chịu chi phí di chuyển và khu vực dạy học nhưng phải chịu chi phí cho phương tiện học tập

Việc chia sẻ tài liệu, nội dung

Học viên nghỉ học sẽ không nắm được nội dung buổi học và khó kiểm soát nội dung giảng dạy trên lớp

Người học chủ động nội dung học tập, có thể học nội dung mình muốn, học lại nhiều lần, nội dung giảng dạy được kiểm soát và công khai dễ dàng tìm kiếm

Trao đổi, thảo luận (tương tác)

Trao đổi, thảo luận trực tiếp giúp phản hồi giải quyết vấn đề ngay nhưng giới hạn người tham gia, giới hạn về thời gian, địa điểm Học viên không tham dự sẽ không nắm được thông tin

Trao đổi thảo luận trực tiếp trên internet Không giới hạn số người tham gia Không giới hạn về thời gian và địa điểm Nội dung trao đổi thảo luận được quản lý, người không tham dự có thể theo dõi được mọi lúc

Người được phỏng vấn: Lương Hoàng Hà

Nội dung phỏng vấn: Nội dung về học tập online trên mạng

Các câu hỏi dự kiến như sau:

STT Câu hỏi Câu trả lời của sinh viên Ghi chú

1 Câu hỏi 1: Anh có bao giờ học online trên mạng không?

2 Câu hỏi 2: Thời gian dạy học của một bài học online trong bao lâu là phù hợp đối với anh?

3 Câu hỏi 3: Trung bình một ngày anh dành bao nhiêu

Trả lời: 1 tiếng thời gian để học online?

4 Câu hỏi 4: Những nội dung về khóa học online có đáp ứng phù hợp với nhu cầu học tập của anh không ạ?

Trả lời: Thường là có Tùy theo cái bản thân muốn tìm hiểu

5 Câu hỏi 5: Anh có thường xuyên trao đổi về học tập với các thành viên khác trên các website dạy học không ạ?

Người được phỏng vấn: Nguyễn Văn Nam

Nội dung phỏng vấn: Nội dung về học tập online trên mạng

Các câu hỏi dự kiến như sau:

STT Câu hỏi Câu trả lời của sinh viên Ghi chú

1 Câu hỏi 1: Có những bất cập nào gây khó khăn trong việc học online của anh không ạ?

Trả lời: Khó để trao đổi trực tiếp với giáo viên

2 Câu hỏi 2: Xin anh cho biết những chương trình dạy học online về công nghệ thông tin có đáp ứng được với công việc của anh không ạ?

STT Câu hỏi Câu trả lời của sinh viên Ghi chú

3 Câu hỏi 3: Anh có đề xuất thay đổi hay cải tiến các về tính năng của website dạy học online hiện nay không?

Trả lời: Live stream … để có thể hỏi giáo viên trực tiếp

Câu hỏi 4: Anh học online nhiều nhất là trên thiết bị nào?

5 Câu hỏi 5: Anh có hay bỏ học giữa chừng khi khóa học không đáp ứng đầy đủ về kiến thức lẫn chất lượng dạy học?

Trả lời: Có - Ko đáp ứng nhu cầu

Hoạt động của website dạy học online các môn CNTT được thực hiện như sau:

Giảng viên và học viên trước tiên đều phải sử dụng thiết bị CNTT, mạng internet để đăng nhập vào website dạy học online Người dùng phải sử dụng tài khoản Email để đăng nhập vào hệ thống Các thông tin chính của người dùng bao gồm: họ tên, ngày sinh, số điện thoại, tài khoản email, Đối với học viên, có thể xem danh sách các khóa học mà giảng viên cung cấp đăng tải trên website Một khóa học sẽ hiện thị những thông tin nhất định như: tên khóa học, nội dung khóa học, thông tin giảng viên, danh sách bài học, đánh giá từ những học viên khác Học viên có thể tham gia học tập linh hoạt, chủ động thời gian khác nhau Với mỗi bài học của khóa học, thời gian không quá 1 tiếng Mỗi bài học sẽ hiển thị nội dung video giảng bài của giảng viên và hiển thị tài liệu đi kèm Học viên và giảng viên có thể đánh giá chất lượng và nội dung của khóa học Với mỗi đánh giá tích cực về khóa học, có thể giúp đánh giá về năng lực trình độ và chất lượng đào tạo của giảng viên đối với khóa học đó Đối với mỗi thông tin giảng viên hay khóa học, học viên có thể theo dõi nhằm hiện thông báo mỗi khi có khóa học mới được thêm từ giảng viên đó Học viên và giảng viên có thể tương tác thông qua email hoắc trao đổi học tập qua mục thảo luận ở cuối mỗi video khóa học Đối với mỗi bình luận của khóa học học viên có thể tương tác thích hoặc hủy thích bình luận Người quản lý có trách nhiệp quản lý thông tin người dùng, quản lý danh sách khóa học và tương tác thảo luận của học viên và giảng viên Khi có yêu cầu học viên đăng ký giảng viên, người quản lý có nhiệm vụ kiểm tra thông tin và phê duyệt yêu cầu Đối với mỗi khóa học được tạo mới từ giảng viên, người quản lý đóng vai trò kiểm duyệt nhằm đảm bảo chất lượng bài học cho học viên

Hàng tuần hay hàng tháng người quản lý tạo các báo cáo thống kê số lượng khóa học trong tháng và báo cáo về số lượng khóa học được đánh giá tốt hay không tốt Ngoài ra người quản lý có thể quản lý sửa thông tin về khóa học khi cần thiết Người quản trị hệ thống có trách nhiệm theo dõi và cập nhập hệ thống mỗi khi có sự thay đổi

3.1.5 Xác định các thành phần có của hệ thống

Tác nhân Use case Biểu đồ lớp Ghi chú

- Xem nội dung khóa học

- Quản lý danh mục khóa học

- Quản lý ý kiến người dùng

- In đậm là tác nhân

- In nghiêng là use case

- In đậm và in nghiêng là biểu đồ lớp

3.2 Phân tích, xác định các tác nhân của hệ thống

3.2.1.2 Biểu đồ chi tiết Usecase “Đăng nhập”

Hình 3.2 Biểu đồ chi tiết usecase đăng nhập

3.2.1.3 Biểu đồ chi tiết Usecase “Đăng ký giảng viên”

Hình 3.3 Biểu đồ chi tiết usecase đăng ký giảng viên

3.2.1.4 Biểu đồ chi tiết Usecase “Đánh giá khóa học”

3.2.1.5 Biểu đồ chi tiết Usecase “Hỏi đáp/ thắc mắc”

Hình 3.5 Biểu đồ chi tiết usecase quản lý khóa học

3.2.1.6 Biểu đồ chi tiết Usecase “Quản lý bài học”

Hình 3.6 Biểu đồ chi tiết usecase quản lý bài học

3.2.1.7 Biểu đồ chi tiết Usecase “Quản lý danh mục”

Hình 3.7 Biểu đồ chi tiết usecase quản lý danh mục khóa học

3.2.1.8 Biểu đồ chi tiết Usecase “Quản lý giảng viên”

Hình 3.8 Biểu đồ chi tiết usecase quản lý giảng viên

3.2.1.9 Biểu đồ chi tiết Usecase “Quản lý học viên”

Hình 3.9 Biểu đồ chi tiết usecase quản lý học viên

3.2.1.10 Biểu đồ chi tiết Usecase “Quản lý khóa học”

Hình 3.10 Biểu đồ chi tiết usecase quản lý khóa học

3.2.1.11 Biểu đồ chi tiết Usecase “Quản lý thảo luận”

Hình 3.11 Biểu đồ chi tiết usecase quản lý thảo luận

3.2.1.12 Biểu đồ chi tiết Usecase “Quản lý ý kiến người dùng”

Hình 3.12 Biểu đồ chi tiết usecase quản lý ý kiến người dùng

3.2.1.13 Biểu đồ chi tiết Usecase “Thảo luận khóa học”

Hình 3.13 Biểu đồ chi tiết usecase quản lý thảo luận khóa học

3.2.1.14 Biểu đồ chi tiết Usecase “Thống kê”

Hình 3.14 Biểu đồ chi tiết usecase thống kê

3.2.1.15 Biểu đồ chi tiết Usecase “Xem nội dung khóa học”

Hình 3.15 Biểu đồ chi tiết usecase xem nội dung khóa học

3.2.2 Đặc tả các use case

Bảng 3.1 Đặc tả usecase Đăng nhập

Tác nhân HV, GV, QLHT

Mục đích Cho phép người dùng truy cập vào hệ thống Website Điều kiện tiên quyết

Người dùng sử dụng tài khoản google để đăng nhập vào website

Mô tả chung Học viên, Giảng viên hoặc Quản trị hệ thống muốn thực hiện công việc hay chức năng của mình thì phải đăng nhập vào hệ thống

Tất cả các trường trong màn hình bao gồm Đăng nhập bằng Google, Email, password đều là trường bắt buộc Nếu bỏ trống, hệ thống có thông báo ‘không được để trống’

Luồng sự kiện 1 Tại trang chủ chọn chức năng đăng nhập

2 Hiển thị form đăng nhập

3 Lựa chọn chức năng đăng nhập bằng Google

4 Nhập thông tin đăng nhập (email, password)

5 Gửi thông tin đăng nhập tới hệ thống

6 Kiểm tra thông tin đăng nhập, nếu đúng thì cho phép truy cập hệ thống, sai thì thông báo lỗi và yêu cầu nhập lại

Ngoại lệ 1 Hệ thống thông báo thông tin nhập chưa đầy đủ

2 Hệ thống thông báo thông tin nhập bị sai

3 Hệ thống thông báo đăng nhập thất bại

Các yêu cầu đặc biệt

Nếu người dùng đã đăng nhập thành công những lần vào hệ thống tiếp theo, người dùng không phải đăng nhập lại mà tự động lưu cookie

Ngược lại, người dùng chưa đăng nhập hoặc đăng xuất thì: Những lần đăng nhập tiếp theo phải đăng nhập lại

3.2.2.2 Usecase Đánh giá khóa học

Bảng 3.2 Đặc tả usecase Đánh giá khóa học

Tên Usecase Danh gia khoa hoc

Mục đích Cho phép học viên, giảng viên có thể đánh giá khóa học và bài học Điều kiện tiên quyết

Người dùng sử dụng tài khoản google để đăng nhập vào website

Mô tả chung Học viên, Giảng viên có thể đánh giá khóa học và bài học theo thang điểm 5 ứng với mỗi khóa học hay bài học của giảng viên phụ trách dạy khóa học đó

Luồng sự kiện 1 Tại trang thông tin khóa học và bài học lựa chọn đánh giá khóa học

2 Gửi thông tin đánh giá tới hệ thống

3 Kiểm tra thông tin đăng nhập, nếu đúng thì cho phép lưu thông tin đánh giá, sai thì thông báo lỗi và yêu cầu đăng nhập

Ngoại lệ 1 Hệ thống thông báo tài khỏa chưa đăng nhập

2 Hệ thống thông báo đánh giá khóa học thất bại

3 Hệ thống thông báo đánh giá bài học thất bại

3.2.2.3 Usecase Hỏi đáp/ thắc mắc

Bảng 3.3 Đặc tả usecase Hỏi đáp/ thắc mắc

Tên Usecase Hoi dap/ thac mac

Mục đích Học viên hoặc Giảng viên có hỏi đáp thắc mắc cần gửi thông tin liên hệ tới Người quản trị hệ thống Điều kiện tiên quyết

Người dùng sử dụng tài khoản google để đăng nhập vào website

Mô tả chung Khi có vước mắc cần trao đổi liên hệ với Người quản trị hệ thống

1 Tại trang chủ chọn chức năng hỏi đáp

2 Hiển thị form hỏi đáp

3 Nhập nội dung cần hỏi đáp

4 Gửi thông tin hỏi đáp tới hệ thống

5 Kiểm tra thông tin đăng nhập nếu đúng thì cho phép gửi thông tin hỏi đáp tới Người quản trị, sai thì thông báo lỗi và yêu cầu đăng nhập

6 Người quản trị tiếp nhập thông tin hỏi đáp

7 Người quản trị phản hồi lại thông tin hỏi đáp

Ngoại lệ 1 Hệ thống thông báo người dùng cần đăng nhập

2 Hệ thông thông báo gửi thông tin hỏi đáp thất bại

3.2.2.4 Usecase Thảo luận khóa học

Bảng 3.4 Đặc tả usecase Thảo luận khóa học

Tên Usecase Thao luan khoa hoc

Mục đích Học viên hoặc Giảng viên có thể trao đổi thảo luận với nhau sau mỗi bài học Điều kiện tiên quyết

Người dùng sử dụng tài khoản google để đăng nhập vào website và đã đăng ký khóa học tương ứng muốn thảo luận

Mô tả chung Khi kết thúc bài học của khóa học, học viên và giảng viên có thể trao đổi thảo luận với nhau phục vụ mục đích học tập Luồng sự kiện

1 Tại trang nội dung bài học chọn chức năng bình luận

2 Hiển thị thông tin bình luận của người dùng

3 Nhập nội dung cần bình luận

4 Gửi thông tin bình luận tới hệ thống

5 Kiểm tra thông tin đăng nhập nếu đúng thì cho phép lưu thông tin bình luận tới hệ thống, sai thì thông báo lỗi và yêu cầu đăng nhập

6 Hệ thống hiện thị thông tin bình luận lên màn hình bình luận bài học

7 Giảng viên và Học viên trong nhóm tiếp nhận và phản hồi thông tin bình luận

Ngoại lệ 1 Hệ thống thông báo người dùng cần đăng nhập

2 Hệ thông thông báo gửi thông tin bình luận thất bại

3.2.2.5 Usecase Xem nội dung khóa học

Bảng 3.5 Đặc tả usecase Xem nội dung khóa học

Tên Usecase Xem noi dung khoa hoc

Mục đích Học viên hoặc Giảng viên có thể xem nội dung tài liệu cũng như bài học của khóa học tương ứng sau khi đăng ký khóa học Điều kiện tiên quyết

Người dùng sử dụng tài khoản google để đăng nhập vào website và đã đăng ký khóa học

Thiết kế về cơ sở dữ liệu

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

Email VARCHAR 150 Tài khoản Email

ConfirmToken VARCHAR 200 Dùng để lưu trữ chuỗi activation token

PassReToken VARCHAR 200 Dùng để lưu trữ token dành cho việc khôi phục mật khẩu

PassReExpire NUMERIC Thời điểm mà token sẽ bị hết hiệu lực

LoginStatus TINYINT Trạng thái đăng nhập của tài khoản

ActiveYn TINYINT Trạng thái kich hoạt của tài khoản

Level TINYINT Cấp độ tài khoản

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

UsProNo VARCHAR 50 Mã người dùng

UsProNm NVARCHAR 200 Tên người dùng

Coin NUMERIC Số điểm của người dùng

Mobile VARCHAR 40 Số điện thoại

ImageUrl NVARCHAR 500 Đường dẫn file hình ảnh

Email VARCHAR 150 Email người dùng

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

GoogleId VARCHAR 30 Mã id Google

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

CateNo VARCHAR 50 Mã danh mục

CateNm NVARCHAR 100 Tên danh mục

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

CouNo VARCHAR 50 Mã khóa học

CouNm NVARCHAR 200 Tên khóa học

Coin NUMERIC Số điểm để đăng ký học

ImageUrl NVARCHAR 500 Tên file hình ảnh

CateCd CHAR 2 Mã danh mục

SeenCount INT Số lượng lượt xem

FileVideo NVARCHAR 500 Tên file video giới thiệu

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

CouCd CHAR 12 Mã khóa học

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

LessNo VARCHAR 50 Mã bài học

LessNm NVARCHAR 200 Tên bài học

SortOrder NUMERIC Thứ tự bài học trong danh sách của một khóa học

ImageUrl NVARCHAR 500 Tên file hình ảnh

FileDoc NVARCHAR 500 Tên file tài liệu

FileVideo NVARCHAR 500 Tên file video bài học

VideoId VARCHAR 200 Mã video bài học

Duration NUMERIC Thời lượng của video bài học

CouCd CHAR 12 Mã khóa học

SeenCount INT Số lượng lượt xem

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

RatType INT Loại đánh giá

RatSts TINYINT Trạng thái đánh giá

RatTo CHAR 12 Đánh giá tới id khóa học hoặc id bài học

Score NUMERIC Số điểm đánh giá

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

CmtText NVARCHAR 500 Nội dung bình luận

CmtType INT Loại bình luận

CmtStatus TINYINT Trạng thái bình luận

CmtTo CHAR 12 Bình luận tới id bài học hoặc id người dùng

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 14 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

LikeTo CHAR 12 Thích tới id khóa học hoặc id bài học

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 12 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

SeeType TINYINT Loại lượt xem

SeenTo CHAR 12 Xem tới id khóa học hoặc id bài học

SeenCounts NUMERIC Số lượng lượt xem

SeenDate CHAR 10 Thời gian xem của người dùng

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

RegiType TINYINT Loại đăng ký

RegiTo CHAR 12 Đăng ký tới id khóa học

RegMan CHAR 8 Id người tạo

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

InteNm NVARCHAR 50 Tên tương tác

InteType TINYINT Loại tương tác

InteVal NUMERIC Điểm nhận được

RegMan CHAR 8 Id người tạo

UptMan CHAR 8 Id người chỉnh sửa

UptDate CHAR 14 Ngày chỉnh sửa

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

NotiType TINYINT Loại thông báo

NotiSts TINYINT Trạng thái thông báo

NotiTo CHAR 8 Thông báo tới id người dùng

NotiText NVARCHAR 500 Nội dung thông báo

NotiBy CHAR 8 Thông báo từ id người dùng

RegMan CHAR 14 Id người tạo

UptMan CHAR 14 Id người chỉnh sửa

UptDate CHAR 8 Ngày chỉnh sửa

Thiết kế các module chương trình chính

Hệ thống được xậy dựng bao gồm 2 website chính là:

❖ Website dạy học: Sử dụng cho học viên và giảng viên với mục đích dạy và học, thảo luận sau mỗi bài học

❖ Website quản lý: Sử dụng cho người quản lý và giảng viên với mục đích quản lý thông tin dạy và học của học viên với giảng viên,

Các module chính của website bao gồm:

❖ Module Trang chủ ( Nội dung giới thiệu website giảng dạy và danh sách khóa học mới)

❖ Module Danh sách khóa học ( Danh sách khóa học theo danh mục )

❖ Module Chi tiết khóa học ( Thông tin chi tiết khóa học của khóa học )

❖ Module Nội dung bài học ( Nội dung video bài học và thảo luận giảng viên với độc giả )

❖ Module Đăng nhập ( Đăng nhập website dạy học)

Các module chính của website bao gồm:

❖ Module Dashboard ( Thống kê danh sách đăng ký khóa học và thảo luận )

❖ Module Quản lý người dùng ( Quản lý danh sách tài khoản người dùng )

❖ Module Quản lý danh mục ( Quản lý danh sách danh mục khóa học)

❖ Module Quản lý khóa học (Quản lý danh sách khóa học)

❖ Module Quản lý bài học (Quẩn lý danh sách bài học)

❖ Module Quản lý bình luận (Quản lý danh sách bình luận)

❖ Module Quản lý tương tác (Quản lý danh sách tương tác)

❖ Module Thống kê (Thống kê danh sách đăng ký khóa học và thảo luận khóa học)

❖ Module Đăng nhập ( Người dùng đăng nhập vào website)

Thiết kế giao diện chương trình

3.5.1 Giao diện trang website dạy học

Hình 3.27 Giao diện trang chủ

3.5.1.2 Giao diện trang đăng nhập

Hình 3.28 Giao diện trang đăng nhập

3.5.1.3 Giao diện trang danh sách khóa học

Hình 3.29 Giao diện trang danh sách khóa học

3.5.1.4 Giao diện trang chi tiết khóa học

Hình 3.30 Giao diện trang chi tiết khóa học

3.5.1.5 Giao diện trang bài học

Hình 3.31 Giao diện trang bài học

3.5.1.6 Giao diện trang thông tin người dùng

Hình 3.32 Giao diện trang thông tin người dùng

3.5.2 Giao diện trang quản lý

3.5.2.1 Giao diện trang đăng nhập hệ thống

Hình 3.33 Giao diện trang đăng nhập

Hình 3.34 Giao diện trang dashboard

3.5.2.3 Giao diện trang quản lý người dùng

Hình 3.35 Giao diện trang quản lý người dùng

3.5.2.4 Giao diện trang quản lý danh mục

Hình 3.36 Giao diện trang quản lý danh mục

3.5.2.5 Giao diện trang quản lý khóa học

Hình 3.37 Giao diện trang quản lý khóa học

3.5.2.6 Giao diện trang quản lý bài học

Hình 3.38 Giao diện trang quản lý bài học

3.5.2.7 Giao diện trang quản lý bình luận

Hình 3.39 Giao diện trang quản lý bình luận

3.5.2.8 Giao diện trang quản lý tương tác

Hình 3.40 Giao diện trang quản lý tương tác

3.5.2.9 Giao diện trang thông tin người dùng

Hình 3.41 Giao diện trang thông tin người dùng

3.5.2.10 Giao diện trang thống kê

Hình 3.42 Giao diện trang thống kê.

XÂY DỰNG CHƯƠNG TRÌNH

Thu thập dữ liệu, xây dựng cơ sở dữ liệu vật lý

Trong chương này em đã tham khảo về cách thiết kế của một số website dạy học nổi tiếng hiện nay, do dữ liệu về khóa học của em còn hạn hẹp lên em xin tham khảo cơ sở dữ liệu của một số website bao gồm Unica.vn, Howkteam.vn, Egghead.io, Khoapham.vn, nhằm phục vụ mục đích thiết kế xây dựng lên cơ sở dữ liệu vật lý cho website.

Viết code cho các module chương trình chính

4.2.1 Code Module trang chủ router.get('/', function(req, res, next) { myLogger( function(recordset) { const user = recordset.recordset; if(user && user.length > 0) { var pJSONData = JSON.stringify({"UserId" : user[0]['UserId']}); var SQ_Get_frmDashboard_1 = "exec SQ_Get_frmDashboard_1 @pJSONData=N'" + pJSONData + "'"; reqq.query(SQ_Get_frmDashboard_1, function(err, recordset) { if(err) { console.log(err);

}else { var datafrmDashboard1 = recordset.recordset; var pJSONData = JSON.stringify({"UserId" : user[0]['UserId']}); var SQ_Get_frmDashboard_2= "exec SQ_Get_frmDashboard_2 @pJSONData=N'" + pJSONData + "'"; reqq.query(SQ_Get_frmDashboard_2, function(err, recordset) { if(err) { console.log(err);

}else { var datafrmDashboard2 = recordset.recordset; getNotification (user[0]['UserId'], function(recordset) {

4.2.2 Code Module trang danh sách khóa học const notifications = recordset.recordset; res.render('index', { title: title, user: user[0], datafrmDashboard1: datafrmDashboard1, datafrmDashboard2: datafrmDashboard2, notifications: notifications

}else { res.render('login', {title: title});

}); router.get('/api/v1/category/:slug', function(req, res, next) { var pJSONData = JSON.stringify(req.params); var SP_Get_Courses = "exec SP_Get_Courses @pJSONData=N'" + pJSONData + "'"; reqq.query(SP_Get_Courses, function(err, recordset) { if(err) { console.log(err);

}else { var courses = recordset.recordset; var result = {

4.2.3 Code Module trang chi tiết khóa học

4.2.4 Code Module trang bài học

}); router.get('/api/v1/course/:slug', function(req, res, next) { req.params.UserId = req.query.UserId; var pJSONData = JSON.stringify(req.params); var SP_Get_CourseSingle = "exec SP_Get_CourseSingle @pJSONData=N'" + pJSONData + "'"; reqq.query(SP_Get_CourseSingle, function(err, recordset) { if(err) { console.log(err);

}else { var courseSingle = recordset.recordset; var SP_Get_ContentsCourseSingle = "exec SP_Get_ContentsCourseSingle

@pJSONData=N'" + pJSONData + "'"; reqq.query(SP_Get_ContentsCourseSingle, function(err, recordset) { if(err) { console.log(err);

}else { var Contents = recordset.recordset; var result = {

}); router.get('/api/v1/category/:slug', function(req, res, next) { var pJSONData = JSON.stringify(req.params);

4.2.5 Code Module trang quản lý người dùng var SP_Get_Courses = "exec SP_Get_Courses @pJSONData=N'" + pJSONData + "'"; reqq.query(SP_Get_Courses, function(err, recordset) { if(err) { console.log(err);

}else { var courses = recordset.recordset; var result = {

}); router.get('/qryMngUsers', function(req, res, next) { myLogger( function(recordset) { const user = recordset.recordset; if(user && user.length > 0) { req.params.UserId = user[0].UserId; var pJSONData = JSON.stringify(req.params); var SQ_Get_qryMngUsers = "exec SQ_Get_qryMngUsers @pJSONData=N'" + pJSONData + "'"; reqq.query(SQ_Get_qryMngUsers, function(err, recordset) { if(err) { console.log(err);

}else { var dataGrids = recordset.recordset; getNotification (user[0]['UserId'], function(recordset) { const notifications = recordset.recordset; res.render('manager/users/qryMngUsers', { dataGrids: dataGrids, title: "Danh sách người dùng", notifications: notifications,

4.2.6 Code Module trang quản lý khóa học user: user[0]

}else { res.render('login', {title: title});

}); router.get('/qryCourses', function(req, res, next) { myLogger( function(recordset) { const user = recordset.recordset; if(user && user.length > 0) { req.params.UserId = user[0].UserId; var pJSONData = JSON.stringify(req.params); var SQ_Get_qryCourses = "exec SQ_Get_qryCourses @pJSONData=N'" + pJSONData + "'"; reqq.query(SQ_Get_qryCourses, function(err, recordset) { if(err) { console.log(err);

}else { var dataGrids = recordset.recordset; getNotification (user[0]['UserId'], function(recordset) { const notifications = recordset.recordset; res.render('manager/courses/qryCourses', { dataGrids: dataGrids, notifications: notifications, title: "Danh sách khóa học", user: user[0]

Kiểm thử và đánh giá chương trình

Trong phần này em sử dụng phần mềm kiểm thử tự động Katalon để áp dụng vào kiểm thử tự động cho website dạy học của mình

4.3.1 Kiểm thử module đăng ký khóa học

String text = WebUI.getText(findTestObject('Object Repository/Page_React

App/button_ng k hc')) if (text.contains('Đăng ký học')) {

WebUI.click(findTestObject('Object Repository/Page_React App/button_ng k hc'))

String toastSuccess = WebUI.getText(findTestObject('Object Repository/Page_React App/div_ng k kha hc thnh cng')) if (toastSuccess.contains('Đăng ký khóa học thành công !')) {

WebUI.verifyEqual(toastSuccess.contains(var_result), true)

//NO_THAN_COIN String toastNoCoin = WebUI.getText(findTestObject('Object

Repository/Page_React App/div_Ti khon bn khng coin ng k kha hc ny')) if (toastNoCoin.contains('Tài khoản bạn không đủ coin để đăng ký khóa học này!')) {

WebUI.verifyEqual(toastNoCoin.contains(var_result), true)

}else { res.render('login', {title: title});

Hình 4.1 Dữ liệu kiểm thử

//REGIS_ERROR String toastError = WebUI.getText(findTestObject('Object Repository/Page_React App/div_ng k kha hc tht bi'))

WebUI.verifyEqual(toastError.contains(var_result), true) }

} else { println('Sorry, button is not exists :( ')

4.3.1.2 Thực hiện kiểm thử chương trình

Hình 4.2 Thực hiện kiểm thử chương trình

Hình 4.3 Quá trình tự động kiểm thử chương trình

❖ Số lượng case thất bại: 0%

Qua quá trình chạy thực thi kiểm thử chương trình, kết quả trả về đúng như kết quả đã dự tính và không có lỗi sai sót

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Kết quả đạt được

✓ Hiểu được các kiến thức về cơ sở dữ liệu Sql Server, UML, HTML, CSS, NodeJs, ReactJs, kiểm thử Katalon

✓ Phân tích hệ thống dựa trên các thông tin khảo sát được, từ đó đưa ra các biểu đồ use case, biểu đồ hành động, biểu đồ tuần tự để phục vụ quá trình xây dựng hệ thống

✓ Đặc tả các chức năng hệ thống

✓ Thiết kế cơ sở dữ liệu

✓ Thiết kế giao diện dễ sử dụng, thân thiện với người dùng

✓ Thiết kế giao diện cho người quản lý hệ thống

Hạn chế

❖ Do kinh nghiệm chưa được nhiều và việc phân tích và khảo sát hệ thống website dạy học còn nhiều hạn chế nên trong quá trình phân tích và xây dựng hệ thống còn nhiều chỗ chưa hoàn thiện đầy đủ và hợp lý

❖ Thời gian thực hiện đề tài còn hạn chế nên hệ thống có thể chưa đáp ứng đủ một số chức năng như trong đề cương nêu ra nhưng sau này em sẽ phát triển thành một hệ thống hoàn chỉnh hơn.

Hướng phát triển

❖ Hoàn thiện các chức năng chưa đáp ứng được như đề cương đã đưa ra

❖ Phát triển chức năng dạy học trực tuyến bằng void call

❖ Liên kết tài khoản sử dụng người dùng với nhiều mạng xã hội khác

❖ Phát triển thêm các chức năng theo dõi khóa học, theo dõi giảng viên, hỏi đáp,

Kết luận

Trong thời gian làm đồ án này đã giúp em tìm hiểu và nắm bắt được nhiều kiến thức bổ ích, đồng thời rút ra nhiều kinh nghiệm thực tế Do hạn chế về thời gian cũng như trình độ nên chương trình không tránh khỏi nhiều sai sót Em xin chân thành cảm ơn và mong nhận được sự đóng góp ý kiến từ các thầy cô và các bạn để đồ án được hoàn thiện hơn Sau khi thực hiện em tự đánh giá và nhận ra rằng đề tài mặc dù đã có ưu điểm nhưng bên cạnh vẫn còn tồn tại rất nhiều thiếu xót Sau này em sẽ phát triển hệ thống website day học của mình thành một website hoàn chỉnh hơn, để có thể giúp người dạy và người học có thể tham gia học tập linh hoạt, chủ động ở không gian, thời gian khác nhau trong quá trình học tập và đào tạo hiện nay

Ngày đăng: 13/04/2024, 16:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w