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

Đề tài ứng dụng xếp thời khóa biểu cho giảng viên giảng dạy tại khoa phát triển nông thôn

53 3 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 đề Đề Tài Ứng Dụng Xếp Thời Khóa Biểu Cho Giảng Viên Giảng Dạy Tại Khoa Phát Triển Nông Thôn
Tác giả Nguyễn Trung Kiên
Người hướng dẫn ThS. Nguyễn Tí Hon
Trường học Trường Đại Học Cần Thơ
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn tốt nghiệp đại học
Năm xuất bản 2019
Thành phố Cần Thơ
Định dạng
Số trang 53
Dung lượng 1,08 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (12)
    • 1.1 ĐẶT VẤN ĐỀ (12)
      • 1.1.1 Hiện trạng (12)
      • 1.1.2 Mục tiêu (12)
    • 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ (13)
    • 1.3 PHẠM VI CỦA ĐỀ TÀI (14)
      • 1.3.1 Về cơ sở lý thuyết (14)
      • 1.3.2 Về chức năng (15)
      • 1.3.3 Về kỹ thuật (15)
    • 1.4 PHƯƠNG PHÁP NGHIÊN CỨU (16)
      • 1.4.1 Thu thập dữ liệu (16)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (19)
    • 2.1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN (19)
    • 2.2 Lập trình hướng đối tượng (20)
      • 2.2.1 Khái niệm cơ bản (20)
      • 2.2.2 Các đặc trưng của lập trình hướng đối tượng (21)
      • 2.2.3 Các khái niệm khác trong lập trình hướng đối tượng (21)
      • 2.2.4 Các tính chất của Lập trình hướng đối tượng (22)
    • 2.3 NODEJS (24)
    • 2.4 Mô hình MVC (26)
    • 2.5 Mongo DB (29)
  • CHƯƠNG 3: NỘI DUNG NGHIÊN CỨU (30)
    • 3.1 MÔ TẢ BÀI TOÁN (30)
      • 3.1.1 Mô tả quy trình bài toán (31)
      • 3.1.2 Sơ đồ use case (32)
    • 3.2 CÀI ĐẶT HỆ THỐNG (34)
      • 3.2.1 Lưu đồ giải thuật đăng nhập (34)
      • 3.2.2 Lưu đồ giải thuật xử lý sắp xếp thời khóa biểu (35)
      • 3.2.3 Lưu đồ giải thuật xuất file thời khóa biểu đã xếp (37)
    • 3.3 THIẾT KẾ HỆ THỐNG (38)
      • 3.3.1 Các mô hình thiết kế (38)
      • 3.3.2 CƠ SỞ DỮ LIỆU (40)
      • 3.3.3 MÔ TẢ CÁC THỰC THỂ (41)
    • 3.4 KIỂM THỬ (45)
  • CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM (46)
    • 4.1 Biểu mẫu thu thập tiết dạy (46)
    • 4.2 WebSite (47)
      • 4.2.1 Giao diện đăng nhập (47)
      • 4.2.2 Giao Diện Chính (47)
      • 4.2.3 Giao Diện Kết quả (48)
  • PHỤ LỤC (52)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

TỔNG QUAN

ĐẶT VẤN ĐỀ

Hiện nay, sự phát triển của các ngành học và số lượng sinh viên ngày càng tăng đã dẫn đến việc mở rộng nhiều lớp học phần để đáp ứng nhu cầu giảng dạy và học tập Tuy nhiên, số lượng phòng học có hạn và thời gian rảnh của giảng viên ngày càng ít, khiến việc sắp xếp thời khóa biểu hoàn chỉnh cho một học kỳ trở nên khó khăn hơn.

Việc xây dựng “Ứng dụng xếp lịch thời khóa biểu cho giảng viên tại Khoa Phát Triển Nông Thôn” là cần thiết nhằm tạo ra một hệ thống tiện lợi cho việc sắp xếp và quản lý thông tin Ứng dụng này sẽ tích hợp các chức năng giúp người dùng dễ dàng nhập và xuất dữ liệu, từ đó nâng cao hiệu quả trong công tác quản lý thời khóa biểu Hy vọng rằng hệ thống sẽ mang lại sự tiện lợi tối đa cho giảng viên trong quá trình giảng dạy.

Nghiên cứu và phát triển hệ thống hỗ trợ xếp thời khóa biểu tự động cho giảng viên bằng công nghệ NodeJS, áp dụng mô hình MVC Hệ thống được thiết kế với các chức năng tối ưu nhằm nâng cao hiệu quả trong việc quản lý và sắp xếp thời gian giảng dạy.

Hệ thống tự động xử lý sau khi nhập dữ liệu:

 Tổng hợp và xử lý các thông tin

Để đạt được kết quả tối ưu nhất, cần quét qua tất cả các mảng thông tin Website này được thiết kế dành cho các bộ phận phụ trách công việc quản lý và sắp xếp thời khóa biểu hiệu quả.

 Quản lý việc nhập dữ liệu cho hệ thống

 Quản lý xuất kết quả theo yêu cầu

 Quản lý thông tin phòng học

Cùng với đó là ứng dụng Microsoft Office Excel cho việc quản lý dữ liệu đã được thu thập

Quản lý thông tin các lớp học phần vọng giúp nâng cao hiệu suất vận hành và mang lại nhiều tiện ích trong quá trình phát triển hệ thống.

Hiện nay, việc sử dụng NodeJs để phát triển website theo mô hình MVC ngày càng phổ biến, nhờ vào khả năng xử lý nhanh và hỗ trợ thời gian thực NodeJs đặc biệt phù hợp cho các ứng dụng có lượng truy cập lớn, yêu cầu mở rộng nhanh và đổi mới công nghệ, đồng thời là lựa chọn lý tưởng cho các dự án khởi nghiệp Việc áp dụng các công nghệ này trong xây dựng hệ thống sẽ tạo ra một nền tảng hoàn chỉnh, hỗ trợ cán bộ phụ trách xếp thời khóa biểu và giảng viên, mang lại sự tiện lợi tối đa trong công tác quản lý và sắp xếp thời khóa biểu, cũng như giúp giảng viên dễ dàng đăng ký và thu thập các tiết dạy linh hoạt.

Hệ thống được phát triển bao gồm một mô hình xử lý, một website dành cho người dùng và ứng dụng thu thập biểu mẫu từ Google và Office Excel Hệ thống này nhằm hỗ trợ công tác quản lý và sắp xếp thời khóa biểu cho giảng viên một cách hiệu quả.

LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ

Sự gia tăng nhanh chóng của các ngành học và số lượng sinh viên đã dẫn đến việc đăng ký nhiều lớp học phần mỗi học kỳ, gây khó khăn trong việc sắp xếp thời khóa biểu giảng dạy cho giảng viên Hiện nay, cán bộ phụ trách công việc này phải nỗ lực rất nhiều về thời gian và công sức để hoàn thiện một thời khóa biểu hợp lý.

Đề tài “Ứng dụng xếp lịch thời khóa biểu cho giảng viên tại Khoa Phát Triển Nông Thôn” nhằm phát triển một ứng dụng hiện đại, tiện lợi cho người dùng, đồng thời giúp giải quyết khó khăn cho cán bộ quản lý giáo vụ.

PHẠM VI CỦA ĐỀ TÀI

Hệ thống sắp xếp thời khóa biểu giúp giảng viên đăng ký thông tin tiết dạy cho học kỳ tới, trong khi cán bộ phụ trách giám sát và quản lý việc thu thập dữ liệu Sau khi hoàn tất, hệ thống sẽ xếp thời khóa biểu cho các giảng viên trong các lớp học phần và tổng hợp thông tin như lớp học phần, mã nhóm, mã cán bộ, các tiết dạy, ngày dạy trong tuần và phòng học Đối tượng sử dụng chính của hệ thống là cán bộ phụ trách xếp thời khóa biểu và giảng viên.

 Thông tin các lớp học phần: mã học phần, mã nhóm, mã cán bộ giảng dạy

 Thông tin các học phần: mã học phần, tên học phần, tín chỉ, số tiết dạy

 Thông tin các nhóm học thuộc học phần: tên nhóm học, ký hiệu

 Thông tin các cán bộ giảng dạy: mã cán bộ, tên cán bộ, phòng bộ môn, email,…

 Thông tin các tiết đăng ký của cán bộ giảng dạy

 Thông tin từng phòng học: tên phòng học, trạng thái phòng học Yêu cầu:

 Chọn công nghệ và công cụ phát triển

1.3.1 Về cơ sở lý thuyết

 Vận dụng lý thuyết phân tích hệ thống thông tin đã học để xây dựng các mô hình phục vụ cho đề tài.

 Nắm vững phương pháp tổ chức, phân tích và thiết kế cơ sở dữ lịeu.

 Có kiến thức cơ bản về lập trình hướng đối tượng với Java

 Có kiến thức cơ bản về lập trình HTML, Javascript, NodeJS

 Cách sử dụng Bootstrap 3, JQuery, AJAX, JSON.

 Nắm vững kiến thức cơ bản về mô hình MVC

Mục tiêu của đề tài là xây dựng một hệ thống quản lý thời khóa biểu bao gồm một website, bảng biểu mẫu Google để thu thập thông tin tiết dạy, và file Excel để lưu trữ dữ liệu Hệ thống sẽ có các chức năng chính như sau: website sẽ có một quyền người dùng chính, đảm bảo việc quản lý và sắp xếp thời khóa biểu hiệu quả.

 Import/Export file dữ liệu

 Tổng hợp và xử lý Quyền quản lý:

 Quản lý thông tin thông tin các lớp học phần: mã học phần, tên học phần, mã cán bộ giảng dạy, số tiết học trong một buổi,…

 Quản lý thông tin các cán bộ giảng dạy: mã cán bộ, tên cán bộ,…

 Quản lý thông tin các tiết đăng ký của cán bộ giảng dạy

 Xuất file thời khóa biểu hoàn chỉnh sau khi sắp xếp

Hệ thống cần đạt được:

 Import file Excel và xử lý các chức năng của việc sắp xếp thời khóa biểu.

 Export file chứa các dữ liệu sau khi việc sắp xếp hoàn thành.

 Website ổn định, hoạt động tốt và nhanh chóng trong việc xử lý yêu cầu.

 Thiết kế và tạo giao diện đơn giản, thân thiện

 Tốc độ xử lý thông tin nhanh

 Đảm bảo tính chính xác dữ liệu

 Đảm bảo an toàn, bảo mật

 Chương trình dễ mở rộng, phát triển và bảo trì

 Sử dụng cơ sở dữ liệu MongoDB để quản lý cơ sở dữ liệu

 Sử dụng ngôn ngữ lập trình web: HTML5, CSS3, Bootstrap 3, Javascript, JQuery, AJAX

 Sử dụng ngôn ngữ để lập trình cho hệ thống và Website: NodeJS

 Website chạy tốt trên các trình duyệt thông dụng như Google Chrome, Firefox,Safari, Microsoft Edge,

PHƯƠNG PHÁP NGHIÊN CỨU

 Tham khảo cách thức lưu trữ dữ liệu của MongoDB cũng như NoSQL

 Rút kinh nghiệm từ những hạn chế, khó khăn trong việc sắp xếp thời khóa biểu từ đó xây dựng những dữ liệu cần thiết cho hệ thống.

 Lập quy trình tiến hành xây dựng website và hệ thống xử lý

 Phân tích hệ thống theo mô hình hướng đối tượng UML

 Xây dựng mô hình và sơ đồ cho website

 Nghiên cứu về cơ sở dữ liệu NoSQL

 Nghiên cứu các tài liệu về việc quản lý thu thập dữ liệu từ Google Forms, áp dụng và nâng cao được sự linh hoạt cho hệ thống.

1.4.3 Công cụ và ngôn ngữ lập trình Để thực hiện đề tài các công cụ và ngôn ngữ lập trình sau đây đã được sử dụng:

Bảng 1.1 Các công cụ và công nghệ được sử dụng

T Công cụ - ngôn ngữ lập trình Chức năng

Lập trình ngôn ngữ NodeJS, HTML, CSS, JavaScript, JQuery, AJAX

2 Google Forms Thu thập tiết dạy của giảng viên

3 Microsoft Excel 2013 Lưu trữ dữ liệu sau khi thu thập

Xuất file dữ liệu theo yêu cầu

4 Creately – Diagram Maker Thiết kế lưu đồ, biểu bảng

5 Robomongo và MongoDB Compass Xây dựng cơ sở dữ liệu

6 Power Designer 15.2 Thiết kế các mô hình

1.5 BỐ CỤC QUYỂN LUẬN VĂN

Bố cục quyển báo cáo luận văn này gồm 4 chương:

 Chương 1: Tổng quan – trình bày lý do chọn đề tài, lịch sử giải quyết đề tài, phạm vi đề tài, các phương pháp nghiên cứu khoa học

 Chương 2: Cơ Sở Lý Thuyết – trình bày các cơ sở lý thuyết được áp dụng trong đề tài như: lập trình hướng đối tượng, NodeJS, NoSQL MongoDB,…

Chương 3: Nội dung nghiên cứu sẽ trình bày chi tiết các mô hình dữ liệu và thiết kế cài đặt của hệ thống, bao gồm lưu đồ giải thuật và các sơ đồ liên quan Ngoài ra, phần này cũng sẽ đề cập đến quy trình kiểm thử nhằm đảm bảo tính khả thi và hiệu quả của hệ thống.

Chương 4: Kết quả thực nghiệm sẽ trình bày các chức năng và giao diện đã được phát triển trong hệ thống, đồng thời nêu rõ những vấn đề còn tồn tại chưa được giải quyết.

CƠ SỞ LÝ THUYẾT

PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN

Hệ thống thông tin là sự kết hợp của phần cứng, phần mềm và mạng truyền thông, được thiết kế để thu thập, tạo ra, tái tạo, phân phối và chia sẻ dữ liệu, thông tin và tri thức nhằm đạt được các mục tiêu cụ thể Vai trò của hệ thống thông tin rất quan trọng trong việc hỗ trợ quản lý và ra quyết định hiệu quả.

 Thu thập thông tin: thực hiện phân tích, sàng lọc và ghi nhận những thông tin cần thiết cho hệ thống quản lý

 Xử lý thông tin: Thực hiện tính toán, cập nhật, lưu trữ dữ liệu

Truyền thông tin hiệu quả là yếu tố quan trọng giúp đảm bảo thông suốt, kịp thời và bảo mật, từ đó hỗ trợ cho quá trình ra quyết định chính xác và nhanh chóng.

Có rất nhiều loại hệ thống thông tin nhưng ở đề tài này loại hệ thống thông tin được sử dụng là hệ thống thông tin quản lý.

Hệ thống thông tin quản lý (Management Information System) là công cụ quan trọng trong việc xử lý thông tin thống kê và dự báo cho nhiều cấp quản lý Các hệ thống này thường là máy vi tính, giúp quản lý ba yếu tố chính: công nghệ, con người (bao gồm cá nhân và nhóm), và dữ liệu.

Hệ thống thông tin quản lý là một tập hợp gồm nhiều phương tiện thông tin được sử dụng để đảm bảo các chức năng:

 Thu thập thông tin đến từ bộ phận quyết định, bộ phận tác vụ, môi trường bên ngoài… nhờ bộ phận ghi nhớ và lưu trữ.

 Xử lý phân tích thông tin theo yêu cầu của bộ phận quyết định, bộ phận tác vụ, nhờ bộ phận xử lý thông tin.

 Lưu trữ các thông tin thu thập được và các kết quả xử lý nhờ bộ phận ghi nhớ và lưu trữ.

Các giai đoạn xây dựng HTTT:

 Giai đoạn 1: Phân tích hiện trạng - là giai đoạn nắm bắt các thông tin liên quan đến hiện trạng hệ thống thông tin hiện thời cần tin học hoá.

 Giai đoạn 2: Nghiên cứu khả thi - là giai đoạn đề xuất các giải pháp khả thi

 Giai đoạn 3: Thiết kế - là giai đoạn xác định cách thực hiện các giải pháp được

 Giai đoạn 4: Phát triển – là giai đoạn chuyển các kết quả của giai đoạn thiết kế sang ứng dụng.

 Giai đoạn 5: Thử nghiệm – là giai đoạn kiểm tra tính đúng đắn của hệ thống dưới góc độ người sử dụng.

 Giai đoạn 6: Cài đặt – là giai đoạn bố trí các thành phần dữ liệu và xử lý của hệ thống trên các thiết bị vật lý để thực thi.

 Giai đoạn 7: Khai thác – là giai đoạn kể từ lúc sử dụng hệ thống mới thay thế cho hoạt động của hệ thống cũ.

 Giai đoạn 8: Bảo trì: là giai đoạn tiếp tục phát hiện sự cố của hệ thống mới trong quá trình sử dụng.

Bên cạnh đó trong quy trình thiết kế HTTT cũng có sử dụng đến một thành phần không thể thiếu đó là mô hình hoá dữ liệu.

Mô hình hoá dữ liệu là phương pháp biểu diễn dữ liệu được sử dụng và tạo ra bởi hệ thống Quá trình này bắt đầu bằng việc phân tích và thu thập các nhu cầu thông tin cần thiết cho các hoạt động nghiệp vụ Đảm bảo rằng các nhu cầu thông tin được cài đặt đầy đủ trong cơ sở dữ liệu (CSDL) là rất quan trọng, đồng thời giúp người dùng hiểu rõ nội dung thông tin Mô hình hoá dữ liệu có thể biểu diễn thông tin ở nhiều mức độ khác nhau, bao gồm mô hình dữ liệu mức quan niệm, mô hình dữ liệu mức luận lý và mô hình dữ liệu mức vật lý.

Lập trình hướng đối tượng

Lập trình hướng đối tượng (OOP) là một phương pháp lập trình sử dụng mô hình đối tượng để giải quyết các bài toán và vấn đề trong ngôn ngữ lập trình máy tính.

Chi tiết hơn về lập trình hướng đối tượng là:

 Đối tượng được xây dựng dựng dựa trên thuộc tính và hành vi (hoặc là phương thức).

 Có sự gắn kết chặt chẽ giữa các thuộc tính

 Bao gói được phần dữ liệu

 Chương trình được tạo bởi tập các đối tượng

2.2.2 Các đặc trưng của lập trình hướng đối tượng

Lập trình hướng đối tượng kết nối chặt chẽ giữa dữ liệu và các thao tác của đối tượng, giúp tập trung vào bản chất vấn đề thay vì chi tiết bên trong Dữ liệu và hàm được bao gói trong một đối tượng, cho phép che giấu thông tin cần thiết và chỉ cho phép truy cập thông qua các hàm.

Tổng quát các đặc trưng của lập trình hướng đối tượng:

 Tất cả điều là đối tượng

 Mọi đối tượng bao gồm các thuộc tính và hành vi Các đối tượng này tương tác với nhau thông qua cơ chế truyền thông điệp

 Mọi đối tượng đều có bộ nhớ riêng.

 Mỗi đối tượng thuộc về một kiểu

 Các đối tượng sẽ tạo nên một chương trình.

2.2.3 Các khái niệm khác trong lập trình hướng đối tượng

 Sự tổng quát quá của nhiều đối tượng có cùng đặc trưng(thuộc tính, phương thức)

 Mỗi một lớp gồm: thuộc tính và phương thức, trong đó thuộc tính sẽ có một kiểu, phương thức là tập hợp các khối lệnh.

Là sự thể hiện hóa các giá trị cho các thuộc tính của một lớp Và lớp được dùng để tạo ra các đối tượng.

Mỗi đối tượng có hai thành phần:

 Thuộc tính (property, attribute): là đặc trưng mô tả về lớp hay đối tượng đó

 Hành vi (behavior, method): là các hoạt động của lớp hoặc các đặc trưng.

Thông điệp và truyền thông điệp Thông điệp là các hành vi và phương thức.

Truyền thông điệp là quá trình thực hiện các phương thức của một đối tượng Khi một đối tượng nhận được thông điệp, nó sẽ kích hoạt phương thức hoặc hàm tương ứng.

Việc áp dụng phương thức của một đối tượng chỉ tác động đến dữ liệu của chính đối tượng đó, không làm ảnh hưởng đến các đối tượng khác trong cùng lớp.

2.2.4 Các tính chất của Lập trình hướng đối tượng

 Sự trừu tượng hóa (Abstraction)

Mô hình hóa nhiều đối tượng là quá trình trừu tượng hóa, trong đó việc xây dựng các lớp, thuộc tính và phương thức từ một bài toán hay vấn đề cụ thể đóng vai trò quan trọng.

 Tính bao gói (Encapsulation) Xác định đường truy xuất đến các đặc trưng của một lớp hay đối tượng.

Phạm vi truy cập (access modifier)

 Public (dùng chung): được gọi là thành phần chung, được truy cập bởi mọi thành phần của một lớp khác.

 Private (dùng riêng): những thành phần chỉ được truy cập bởi các thành phần trong cùng một lớp đó

 Protected (thành phần bảo vệ): những thành phần chỉ được truy cập bởi các thành phần trong cùng một lớp và các lớp con của nó.

 Là cho phép dùng lại mã (reusability) Dùng để mô hình hóa mối quan hệ “là” (“is a”) giữa các đối lớp/đối tượng với nhau:

 Đối tượng “thừa kế” là một đối tượng đã có sẵn khác, với những thuộc tính và phương thức “tương tự” nhau

 Thừa kế sử dụng “sự tương tự” (similarities) và “sự khác nhau” (differences) để mô hình một nhóm các đối tượng có liên quan với nhau.

 Lớp được thừa kế: Lớp cha (superclass), lớp cơ sở (based class)

Trong thừa kế, lớp con kế thừa tất cả thuộc tính và phương thức từ lớp cha, nhưng chỉ có thể truy cập vào các thành phần mà lớp cha cho phép.

Một lớp con được tạo ra bằng cách:

 Thêm vào một số thuộc tính, phương thức mới

 Tái định nghĩa các phương thức của lớp cha

Có thể tái định nghĩa (nạp chồng) là hành động bổ sung thêm thông tin, trong khi nạp đè là việc thay thế hoàn toàn một thành phần Ý nghĩa của một thành phần có thể thay đổi tùy thuộc vào ngữ cảnh hoặc môi trường mà nó xuất hiện.

NODEJS

Node.js là một nền tảng mã nguồn mở dựa trên Javascript V8 Engine, được sử dụng rộng rãi bởi hàng triệu lập trình viên toàn cầu Nó hỗ trợ nhiều hệ điều hành như Windows, Linux và MacOS, mang lại sự linh hoạt cho người dùng Node.js cung cấp một kho thư viện phong phú dưới dạng các module Javascript, giúp đơn giản hóa quy trình lập trình và tối ưu hóa thời gian phát triển Đặc biệt, Node.js nổi bật với khả năng xử lý giao tiếp theo thời gian thực giữa client và server, tạo ra trải nghiệm người dùng mượt mà và nhanh chóng.

 Các tính năng vượt trội của Nodejs

Node.js hoạt động theo cơ chế không đồng bộ, cho phép tất cả các API của nó thực hiện các cuộc gọi mà không bị chặn, giúp máy chủ nhận phản hồi từ các cuộc gọi trước đó theo thời gian thực Được xây dựng trên nền tảng V8 Javascript Engine, Node.js cho phép thực thi chương trình với tốc độ nhanh chóng Mặc dù sử dụng mô hình đơn luồng, Node.js có khả năng mở rộng cao nhờ vào cơ chế tổ chức sự kiện, giúp máy chủ xử lý nhiều yêu cầu cùng lúc mà không bị giới hạn, vượt trội hơn so với các máy chủ truyền thống như Apache HTTP Server.

Không đệm: Nodejs không đệm bất kỳ một dữ liệu nào và các ứng dụng này chủ yếu là đầu ra dữ liệu.

 Khi nào nên sử dụng Node.js?

 Những ứng dụng đòi hỏi các giao thức kết nối khác nhau chứ không phải chỉ có http.

Một ví dụ nhỏ cài đặt với Nodejs

Tạo file app.js với nội dung:

// khai báo sử dụng module HTTP var http = require('http');

//Khởi tạo server chạy cổng 3000 http.createServer(function (request, response) { //thiết lập giá trị server trả về response.write('Hello - Nguyễn Trung Kiên'); response.end();

Sau đó mở cửa sổ CMD lên đứng ngay vị trí lưu file app.js để thực thi nó với câu lệnh: node app.js

Sau đó ta có thể mở trình duyệt lên và gõ http://localhost:3000 sẽ thấy kết quả hiển thị ra màn hình dòng chữ "'Hello - Nguyễn Trung Kiên ".

Mô hình MVC

Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm quan trọng trong kỹ thuật phát triển ứng dụng, cho phép các lập trình viên phân chia ứng dụng thành ba thành phần độc lập: Model, View và Controller Mỗi thành phần đảm nhiệm một nhiệm vụ riêng, giúp tối ưu hóa quy trình phát triển và bảo trì ứng dụng.

Lịch sử ra đời MVC

Vào những năm 70 của thế kỷ XX, tại phòng thí nghiệm Xerox PARC ở Palo Alto, giao diện đồ họa (GUI) và lập trình hướng đối tượng (OOP) đã được phát triển, cho phép lập trình viên tương tác với các thành phần đồ họa như những đối tượng có thuộc tính và phương thức riêng Hơn nữa, các nhà nghiên cứu tại Xerox PARC còn giới thiệu kiến trúc MVC (Model – View – Controller), mở ra một hướng đi mới cho phát triển phần mềm.

Kiến trúc phần mềm đang ngày càng được cải tiến để đáp ứng các thách thức mới và cung cấp giải pháp hiệu quả cho quá trình phát triển phần mềm.

Các thành phần trong mô hình MVC

Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller:

Mô hình là nơi thực hiện các nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu như MySQL, MSSQL Nó bao gồm các lớp và hàm xử lý nhiều chức năng như kết nối cơ sở dữ liệu, truy vấn dữ liệu, cũng như thực hiện các thao tác thêm, xóa và sửa dữ liệu.

View là thành phần quan trọng trong giao diện người dùng, bao gồm các yếu tố như nút bấm, khung nhập liệu, menu và hình ảnh Nó có vai trò chính trong việc hiển thị dữ liệu và tạo điều kiện cho người dùng tương tác hiệu quả với hệ thống.

Controller là thành phần tiếp nhận yêu cầu xử lý từ người dùng, bao gồm các class và function thực hiện nhiều nghiệp vụ logic Nó giúp truy xuất dữ liệu cần thiết từ lớp Model và hiển thị thông tin đó cho người dùng thông qua lớp View.

Trong mô hình MVC, sự tương tác giữa Controller và View rất quan trọng Controller sẽ lấy hình ảnh, nút bấm và dữ liệu từ Model để hiển thị trên View Nếu không có dữ liệu từ Model, Controller vẫn có thể đảm nhiệm việc hiển thị các thành phần giao diện như hình ảnh và nút bấm một cách đơn giản.

Controller – Model là quá trình xử lý khi controller nhận yêu cầu và tham số từ người dùng Controller sẽ sử dụng các lớp và hàm trong Model để truy xuất dữ liệu chính xác.

Mô hình View trong kiến trúc phần mềm cho phép các thành phần tương tác trực tiếp với nhau mà không cần thông qua Controller Nó chỉ đảm nhận vai trò hiển thị dữ liệu, không thực hiện bất kỳ xử lý nghiệp vụ logic nào Điều này tương tự như các khu vực hiển thị tĩnh trên các trang web, chẳng hạn như các khối slidebar.

Mô hình MVC là một phương pháp linh hoạt có thể áp dụng cho nhiều loại dự án, bao gồm website và ứng dụng phần mềm Trong bài viết này, chúng ta sẽ tập trung vào cách thức áp dụng mô hình MVC trong các dự án xây dựng và phát triển website Những ưu điểm của mô hình này sẽ được phân tích chi tiết để làm rõ lợi ích mà nó mang lại cho quá trình phát triển.

Các dự án có thể áp dụng ngay mô hình MVC mà không phụ thuộc môi trường, nền tảng xây dựng hay ngôn ngữ lập trình phát triển;

Việc quy hoạch các class và function thành các thành phần riêng biệt như Controller, Model và View giúp đơn giản hóa quá trình xây dựng, phát triển, quản lý, vận hành và bảo trì dự án Điều này tạo ra sự rõ ràng và minh bạch trong quá trình phát triển, đồng thời kiểm soát tốt các luồng xử lý và cho phép tạo ra các thành phần xử lý nghiệp vụ chuyên biệt.

Việc áp dụng mô hình MVC trong các dự án giúp chuyên gia tiếp cận và tìm hiểu nhanh chóng, hiệu quả Khi bạn đã nắm vững mô hình MVC của một dự án, việc làm quen với những dự án khác cùng mô hình sẽ trở nên dễ dàng hơn Học một mô hình nhưng có thể áp dụng và hiểu biết cho nhiều dự án khác nhau.

Mô hình này giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư và PM hiểu rõ hoạt động của dự án, đồng thời hỗ trợ lập trình viên trong việc quản lý và phát triển dự án một cách hiệu quả Mặc dù không phải là ngôn ngữ, nhưng khi tất cả cùng tham gia, họ sẽ dễ dàng hiểu và trao đổi yêu cầu cũng như bàn bạc công việc Đây là một mô hình chuẩn tối ưu nhất hiện nay, được áp dụng rộng rãi trong nhiều dự án và lĩnh vực, đặc biệt là trong công nghệ sản xuất.

Mongo DB

MongoDB là một trong cơ sở dữ liệu mã nguồn mở NoSQL phổ biến nhất được viết bằng C++.

Nền tảng và ngôn ngữ hỗ trợ:

MongoDB là một cơ sở dữ liệu NoSQL đa nền tảng, có khả năng hoạt động trên Windows, Linux và Mac Nó hỗ trợ nhiều ngôn ngữ lập trình phổ biến như C#, Java, PHP và Javascript, cùng với các môi trường phát triển khác nhau Những ưu điểm nổi bật của MongoDB bao gồm khả năng mở rộng linh hoạt và hiệu suất cao trong việc xử lý dữ liệu lớn.

MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON, cho phép mỗi collection có kích thước và cấu trúc document khác nhau Điều này mang lại sự linh hoạt trong việc lưu trữ dữ liệu, cho phép người dùng dễ dàng thêm dữ liệu mà không gặp phải ràng buộc.

Dữ liệu trong MongoDB không bị ràng buộc lẫn nhau và không hỗ trợ join như trong RDBMS, điều này giúp quá trình chèn, xóa hoặc cập nhật dữ liệu diễn ra nhanh chóng mà không cần kiểm tra các ràng buộc dữ liệu.

MongoDB nổi bật với khả năng mở rộng dễ dàng thông qua tính năng mở rộng ngang (Horizontal Scalability) Hệ thống sử dụng khái niệm cluster, bao gồm các node chứa dữ liệu có khả năng giao tiếp với nhau Để mở rộng hệ thống, người dùng chỉ cần thêm một node vào cluster mà không gặp khó khăn nào.

 Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất.

Khi một truy vấn dữ liệu được thực hiện, bản ghi sẽ được lưu trữ trong bộ nhớ RAM, giúp tăng tốc độ truy vấn cho các lần sau mà không cần truy cập vào ổ cứng.

 Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn so với các hệ quản trị cơ sở dữ liệu quan hệ.

NỘI DUNG NGHIÊN CỨU

MÔ TẢ BÀI TOÁN

Để xây dựng một thời khóa biểu giảng dạy hiệu quả cho giảng viên tại Khoa Phát Triển Nông Thôn, cần thiết phải có một hệ thống hoàn chỉnh để thu thập dữ liệu đầu vào, bao gồm lớp học phần, nhóm học và mã cán bộ giảng dạy từ hệ thống quản lý Dữ liệu giờ rảnh của cán bộ sẽ được lưu trữ trong file Excel (.xlsx) cùng với danh sách phòng học của khoa Hệ thống này không chỉ phải đảm bảo tính tiện dụng cho người dùng mà còn dễ dàng bảo trì và phát triển trong tương lai Website quản lý lịch giảng dạy cần tích hợp các chức năng hỗ trợ hiệu quả cho công tác này.

 Hệ thống sẽ xử lý hoàn toàn khi Import file dữ liệu vào

 Export kết quả theo yêu cầu của người sử dụng

Hệ thống quản lý thông tin cho phép người dùng nhập file dữ liệu để sắp xếp lịch học Nó nhận danh sách lớp học phần và mã cán bộ để quét các tiết đã đăng ký, bao gồm tiết dạy và lịch trong tuần Sau khi xếp lịch dạy, hệ thống tự động chọn ngẫu nhiên các phòng từ cơ sở dữ liệu để tạo ra thời khóa biểu hoàn chỉnh.

Bên cạnh đó hệ thống cũng yêu cầu phi chức năng sau:

 Phù hợp với yêu cầu của người dùng, giao diện thân thiện dễ thao tác.

 Hệ thống đảm bảo việc truy cập dữ liệu.

 Hệ thống hỗ trợ việc xác thực bằng tên tài khoản, mật khẩu đăng nhập.

 Mỗi người sử dụng phải có tài khoản riêng để đăng nhập vào hệ thống, để có

 Dễ dàng bảo trì và nâng cấp khi hệ thống phát sinh vấn đề mới.

3.1.1 Mô tả quy trình bài toán

Hình 3.1 Quy trình tổng quát của hệ thống Trong đó:

Cán bộ phụ trách sẽ nhận danh sách lớp học phần từ hệ thống quản lý và thu thập thông tin về các tiết dạy của giảng viên trong các lớp học phần thông qua biểu mẫu được gửi kèm.

 Người dùng đăng nhập vào hệ thống: để sử dụng, người dùng phải đăng nhập vào hệ thống.

Người dùng có thể nhập file Excel bằng cách chọn tệp chứa dữ liệu lớp học phần và thông tin đăng ký của giảng viên để tải lên hệ thống.

 Server nhận yêu cầu: server sẽ nhận được yêu cầu và tiến hành xử lý

Server xử lý và sắp xếp thời khóa biểu đóng vai trò quan trọng trong việc quản lý dữ liệu đầu vào Sau khi tiếp nhận thông tin, server sẽ tiến hành sắp xếp thời khóa biểu một cách hiệu quả và trả về kết quả chính xác.

 Hiển thị kết quả cho client: client sẽ nhận được kết quả trả về và được hiển thị ra trang kết quả

Hình 3.2 Sơ đồ use case các chức năng của Website

Sơ đồ use case thể hiện chức năng của hệ thống dành cho cán bộ quản lý công việc trong việc sắp xếp thời khóa biểu Hệ thống cho phép người dùng import file dữ liệu thống, tuy nhiên, để truy cập vào các chức năng này, cán bộ quản lý cần đăng nhập vào hệ thống.

CÀI ĐẶT HỆ THỐNG

3.2.1 Lưu đồ giải thuật đăng nhập

Hình 3.3 Lưu đồ giải thuật đăng nhập Ý nghĩa:

 Client - Website cho phép người dùng nhập tên đăng nhập và mật khẩu để truy cập vào hệ thống.

 Hệ thống tiến hành xử lý kiểm tra thông tin đăng nhập.

 Kết quả gửi về cho Client.

 Nếu đúng thì cho phép truy cập vào hệ thống.

 Nếu sai yêu cầu nhập lại

3.2.2 Lưu đồ giải thuật xử lý sắp xếp thời khóa biểu Ý nghĩa:

 Client cho phép người dùng import file Excel chứa dữ liệu thông qua form.

Hệ thống sẽ nhận file và kiểm tra định dạng file (.xlsx hoặc xls) Nếu định dạng đúng, hệ thống sẽ tiếp tục xử lý; nếu không, người dùng sẽ nhận thông báo lỗi và được yêu cầu nhập lại file.

 Hệ thống sẽ lấy được thông tin của Lop_hp từ file import bao gồm: ma_hp, ten_hp, ma_nh, ma_cb,…

 Sau đó hệ thống sẽ lấy ra mã cán bộ từ Lop_hp.

 Từ mã cán bộ hệ thống sẽ lấy ngẫu nhiên các tiết mà cán bộ đã đăng ký và tiến hành xếp thời khóa biểu.

 Xếp được tiết dạy và ngày dạy trong tuần cho cán bộ Cho ra kết quả lịch dạy.

 Khi có được lịch dạy, hệ thống sẽ vào CSDL để lấy được thông tin các phòng học.

Hệ thống sẽ tự động cập nhật trạng thái của các phòng học đã được xếp vào lịch dạy của cán bộ, nhằm tránh tình trạng trùng lặp.

 Trả về thời khóa biểu hoàn chỉnh và hiện thị cho Client.

3.2.3 Lưu đồ giải thuật xuất file thời khóa biểu đã xếp

Hình 3.5 Lưu đồ giải thuật xuất file thời khóa biểu Ý nghĩa:

 Người dùng click vào button yêu cầu xuất file thời khóa biểu.

 Hệ thống nhận được yêu cầu xuất file dữ liệu

 Lấy thông tin thời khóa biểu từ bảng dữ liệu của trang html

 Hệ thống cho người dùng tải file về máy.

THIẾT KẾ HỆ THỐNG

3.3.1 Các mô hình thiết kế

Mô hình mức quan niệm (CDM)

Hình 3.6 Mô hình CDM của hệ thống

Mô hình mức luận lý (LDM)

Mô hình mức luận lý (PDM)

Hình 3.8 Mô hình PDM của hệ thống

Hình 3.9 Mô hình cơ sở dữ liệu quan hệ

Hệ thống được xây dựng theo mô hình cơ sở dữ liệu quan hệ Trong đó có thể thấy:

 Ds_hocphan (1-n) Lop_hp: 1 thông tin trong Ds_hocphan sẽ được mở nhiều Lop_hp khác nhau.

 Lop_hp (1-1) Ds_hocphan: 1 Lop_hp chỉ được dạy 1 học phần trong Ds_hocphan giảng dạy.

 Nhom_hp (1-n) Lop_hp: 1 thông tin trong Nhom_hp có thể nằm trong nhiều Lop_hp khác nhau.

 Lop_hp (1-1) Nhom_hp: 1 Lop_hp chỉ được 1 Nhom_hp.

 Ds_canbo (1-n) Lop_hp: 1 thông tin trong Ds_canbo giảng viên có thể dạy ở nhiều Lop_hp khác nhau.

 Ds_phong: Phòng học sẽ được xếp dựa trên sỉ số sinh viên có trong lớp học phần

3.3.3 MÔ TẢ CÁC THỰC THỂ

STT Tên thuộc tính Kiểu dữ liệu

Số dươn g Độ dài tối đa

1 MA_HP String x Mã học phần

2 MA_NH String x Mã nhóm học

3 MA_CB String x Mã cán bộ giảng dạy

4 TIET_BUOI String x Số tiết dạy trong buổi

5 SI_SO String Sỉ số sinh viên

Mô tả: Thể hiện thông tin của một lớp học phần

Bảng 3.2 Cán bộ giảng viên

T Tên thuộc tính Kiểu dữ liệu

Số dương Độ dài tối đa

1 MA_CB String x Mã cán bộ

3 TEN_CB String Họ tên cán bộ

4 EMAIL String Email cán bộ

5 SDT_CB String x 10 Số điện thoại cán bộ

Mô tả: Thể hiện thông tin của cán bộ giảng viên

Bảng 3.3 Danh Sách Học Phần

T Tên thuộc tính Kiểu dữ liệu

Số dương Độ dà i tối đaKhóa chính Diễn giải

2 TEN_HP String Tên học phần

3 TINCHI Int x Số tín chỉ

4 SO_TIET Int x Số tiết học

Mô tả: Thể hiện thông tin của một học phần

STT Tên thuộc tính Kiểu dữ liệu Số dương Độdài tối đa

1 MA_NH String x Mã nhóm nhọc

2 TEN_NH String Ký hiệu

Mô tả: Thể hiện thông tin của một nhóm học

STT Tên thuộc tính Kiểu dữ liệu Số dương Độdà itối đa

1 MA_PHONG Int x x Mã phòng học

2 TEN_PHONG String Tên phòng học

3 TRANGTHAI String Trạng thái phòng

4 LOAI_PHONG String Loại phòng, sức chứa

Mô tả: Thể hiện thông tin của từng phòng học

STT Tên thuộc tính Kiểu dữ liệu

Số dươn g Độ dài tối đa

1 ID String x Mã lịch đã xếp

2 LICHDAXEP String Mảng chứa các phần tử trong lịch đã xếp

Mô tả: Thông tin về thời khóa biểu đã xếp hoàn chỉnh

STT Tên thuộc tính Kiểu dữ liệu

Số dươn g Độ dài tối đa

1 ID_CB String x Mã đăng nhập

3 Quyen String x Quyền truy cập

KIỂM THỬ

Với thiết kế và cài đặt hệ thống hiện tại, hy vọng mang đến sự thoải mái, tiện dụng, an toàn và tin cậy cho người dùng Trước khi hệ thống được đưa vào sử dụng thực tế, sẽ có một số kịch bản kiểm thử để đánh giá các ưu điểm và khuyết điểm, từ đó cải thiện và phát triển hệ thống trong tương lai Dưới đây là một số kịch bản kiểm thử dành cho website người dùng.

 Kiểm thử các chức năng

Bảng 3.8 Kiểm thử chức năng Website

Kịch bản kiểm thử cho việc đăng nhập yêu cầu người dùng nhập đúng tên đăng nhập và mật khẩu để truy cập thành công vào website Nếu thông tin không chính xác, hệ thống sẽ yêu cầu nhập lại và không cho phép truy cập Đối với việc nhập file Excel, nếu file đúng định dạng, hệ thống sẽ chạy và xếp lịch thành công.

Không nhập file hoặc nhập file sai định dạng Báo lỗi sai file yêu cầu Thành công

Giảng viên đăng ký đủ tiết dạy với lớp học phần có tên giảng dạy Xếp lịch thành công Thành công

Giảng viên đăng ký không đủ tiết dạy so với học phần có tên giảng dạy

Không xếp được lịch cho giảng viên đó và trả về kết quả

Giảng viên không đăng ký tiết dạy sẽ nhận kết quả là “Giảng viên chưa đăng ký tiết dạy” Nếu đủ phòng học, việc xếp lịch cho các lớp học phần sẽ thành công Ngược lại, nếu không đủ phòng so với số lớp học phần, hệ thống sẽ trả về kết quả “không còn phòng học trống”.

Xuất ra lile Excel lịch đã xếp Xuất file thành công, tự động tải về file Excel kết quả Thành công

KẾT QUẢ THỰC NGHIỆM

Biểu mẫu thu thập tiết dạy

Hình 4.1 Biễu mẫu thu thập giờ rảnh cho giảng viên đăng ký

WebSite

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

Hình 4.4 Giao diện kết quả

4.2.4 Giao diện lọc dữ liệu theo mã cán bộ

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

Sau đây là những kết quả đạt được sau quá trình hoàn thành đề này:

 Thiết kế và xây dựng ứng dụng xếp lịch thời khóa biểu cho giảng viên giảng dạy tại khoa Phát Triển Nông Thôn.

MongoDB là một cơ sở dữ liệu NoSQL linh hoạt và nhanh chóng, lý tưởng cho việc lưu trữ và xử lý thông tin Mặc dù hệ thống có thể được thiết kế theo mô hình cơ sở dữ liệu quan hệ, việc ràng buộc dữ liệu trên NoSQL vẫn có thể được thực hiện thông qua lập trình, mang lại hiệu quả cao trong quản lý dữ liệu.

 Nghiên cứu về công nghệ NodeJs và khái niệm mô hình MVC.

 Nâng cao khả năng phân tích thiết kế hệ thống, thiết kế cơ sở dữ liệu, thiết kế các mô hình chức năng, giải thuật,…

 Nâng cao khả năng lập trình Web với Javascript và sử dụng các kỹ thuật như AJAX, JQuery,…

 Tìm hiểu và cải thiện khả năng lập trình NodeJS, tìm hiểu về cách thức xây dựng website với NodeJS

 Bằng cách sử dụng tốt front-end Framework Bootstrap 3 học được cách thiết kế website chuẩn responsive tương thích trên nhiều màn hình có kích thước khác nhau

 Biết được cách thức import/export và xử lý file Excel.

Website đã đáp ứng đầy đủ các yêu cầu cần thiết cho việc quản lý và sắp xếp, đồng thời hỗ trợ khả năng import/export dữ liệu một cách nhanh chóng.

 Giao diện Website thiết kế và xây dựng đơn giản trên Front-end Framework Bootstrap 3 nên tiện dụng, dễ thao tác, trực quan.

 Tốc độ xử lý nhanh và chính xác

 Tốc độ truy xuất Web ổn định, đảm bảo tính chính xác nhờ sử dụng kỹ thuật AJAX và JQuery.

 Website viết bằng NodeJS kết hợp với việc sử dụng cơ sở dữ liệu MongoDB khiến cho việc xử lý dữ liệu tương đối dễ dàng, nhanh chóng hơn.

Nhằm khắc phục những khuyết điểm trên, nên dưới đây là một số hướng phát triển hi vọng có thể khiến cho hệ thống ngày một mạnh mẽ hơn:

 Cho giảng viên đăng ký tiết dạy ngay tại website.

 Phân quyền với nhiều người dùng.

 Thêm nhiều chức năng để giúp cho cán bộ thuận tiện hơn trong việc quản lý lịch giảng dạy.

Ngày đăng: 24/12/2023, 14:50

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

TÀI LIỆU LIÊN QUAN

w