Hệ thống này đã giải quyết được những vấn đề khó khăn đó như: chogiảng viên đăng ký trước giờ rảnh của mình, hệ thống sẽ tự động lấy các lớp học phần để xếp vào các tiết mà giảng viên đã
TỔNG QUAN
ĐẶT VẤN ĐỀ
Hiện nay với sự phát triển của ngành học, số lượng sinh viên và số lớp học phần ngày càng tăng để đáp ứng nhu cầu giảng dạy và học tập Tuy nhiên, nguồn lực phòng học có hạn và quỹ thời gian rảnh của đội ngũ giảng viên không nhiều, khiến việc sắp xếp lịch học cho cả học kỳ trở nên ngày càng khó khăn Do đó, quản lý tài nguyên và tối ưu hóa thời khóa biểu là thách thức then chốt của giáo dục hiện nay.
Xuất phát từ nhu cầu thực tế của Khoa Phát Triển Nông Thô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 giảng dạy sẽ nâng cao hiệu quả sắp xếp lịch và quản lý thông tin Hệ thống được thiết kế như một trang web tích hợp các chức năng nhập và xuất dữ liệu, giúp quá trình xếp lịch trở nên dễ dàng và thuận tiện hơn Mục tiêu của dự án là mang lại trải nghiệm người dùng tốt cho giảng viên và quản trị viên, đồng thời tối ưu hóa quy trình nhập xuất dữ liệu và truy cập thông tin lịch giảng dạy.
Nghiên cứu và xây dựng hệ thống hỗ trợ xếp thời khóa biểu tự động cho giảng viên, ứng dụng công nghệ Node.js để viết một website theo mô hình MVC nhằm tự động hóa và tối ưu hóa quá trình lên lịch giảng dạy Hệ thống được thiết kế với các chức năng trên nền Node.js và kiến trúc MVC, giúp quản lý thời khóa biểu một cách hiệu quả, linh hoạt và dễ mở rộng.
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
Quét qua tất cả các mảng thông tin để cho ra kết quả tối ưu nhất
Website dùng cho các bộ phụ trách công việc quản lý và sắp xếp thời khóa biểu
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 đem lại hiệu suất cao hơn trong việc vận hành cũng như những tiện lợi nhất định trong quá trình phát triển hệ thống.
Ngoài ra có thể thấy được hiện nay việc sử dụng công nghệ NodeJs để viết ra một website với mô hình MVC không còn xa lạ nữa, Nodejs có thể tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực Ngoài ra, NodeJs cũng được áp dụng chó các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án khởi nghiệp nhanh nhất có thể. Ứng dụng các công nghệ đề xuất như trên vào việc xây dựng nhằm tạo ra một hệ thống thật sự hoàn chỉnh để có thể hỗ trợ người dùng như cán bộ phụ trách việc xếp thời khóa biểu và các giảng viên có thể cảm thấy sự thoải mái và tiện lợi tối đa khi thực hiện công tác quản lý và sắp xếp thời khóa biểu, hoặc là giảng viên có thể dễ dàng đăng ký thu thập các tiết dạy linh hoạt.
Đây là một hệ thống tích hợp, gồm một mô hình xử lý dữ liệu, một website dành cho người dùng và một ứng dụng thu thập biểu mẫu từ Google và Excel, nhằm tối ưu hóa quá trình quản trị dữ liệu và sắp xếp thời khóa biểu Hệ thống được thiết kế để phục vụ quản lý và lên lịch cho giảng viên, nâng cao hiệu quả công tác quản trị lịch giảng dạy và cải thiện sự kết nối giữa giảng viên và người quản trị.
LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Với sự phát triển của các ngành học và sự gia tăng của số lượng sinh viên, số lớp học phần đăng ký ở đầu mỗi kỳ học ngày càng nhiều, khiến công việc sắp xếp thời khóa biểu giảng dạy cho giảng viên trở nên khó khăn Hiện tại, để có một thời khóa biểu hoàn chỉnh, cán bộ phụ trách công tác này phải bỏ ra rất nhiều thời gian và công sức, đồng thời đối mặt với áp lực quản lý lịch giảng dạy ngày càng phức tạp.
Đề tài "Ứ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" được triển khai nhằm xây dựng một hệ thống xếp lịch hiện đại, bắt kịp xu hướng công nghệ và mang lại sự tiện lợi tối ưu cho người dùng, đặc biệt là giảng viên và cán bộ quản lý giáo vụ Ứng dụng giúp tự động hoá quy trình xếp lịch, tối ưu hóa thời khóa biểu, giảm thiểu tranh chấp thời gian và sai sót, đồng thời giải quyết một phần khó khăn mà cán bộ quản lý giáo vụ gặp phải Nhờ đó, Khoa Phát Triển Nông Thôn có được quy trình quản lý lịch giảng dạy hiệu quả hơn, tiết kiệm thời gian và tăng tính nhất quán của lịch học cho giảng viên và người quản lý.
PHẠM VI CỦA ĐỀ TÀI
Hệ thống sắp xếp thời khóa biểu và lịch dạy cho giảng viên cho phép đăng ký thông tin về tiết dạy ở kỳ tới; cán bộ phụ trách sẽ giám sát và quản lý việc thu thập dữ liệu để tiến hành xếp thời khóa biểu cho các giảng viên thuộc các lớp học phần Sau khi xếp xong, hệ thống tổng hợp và công bố thời khóa biểu đầy đủ, gồm 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 là cán bộ phụ trách xếp thời khóa biểu và giảng viên.
Chức năng của hệ thống sẽ xử lý:
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
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 chính của đề tài là xây dựng một hệ thống gồm các thành phần: một website dùng cho quản lý và sắp xếp thời khóa biểu, một bảng biểu mẫu của Google dùng để thu thập thông tin tiết dạy, một file Excel dùng để lưu trữ và đưa dữ liệu đầu vào, và một website để xử lý thông tin gửi tới server Hệ thống sẽ có các chức năng tương ứng cho website có một quyền người dùng chính, trong đó các chức năng liên quan đến quản lý tài khoản và quyền truy cập, quản lý thời khóa biểu, đồng bộ dữ liệu từ bảng Google Form và Excel, xử lý dữ liệu trên server và xuất báo cáo, nhằm giúp tối ưu quá trình lên lịch, lưu trữ thông tin giảng dạy và báo cáo thống kê một cách an toàn và hiệu quả.
Import/Export file dữ liệu
Tổng hợp và xử 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 trình bày nội dung nghiên cứu một cách hệ thống, bao gồm mô hình dữ liệu và thiết kế cài đặt của hệ thống, lưu đồ giải thuật và các sơ đồ liên quan, cùng với kế hoạch và phương pháp kiểm thử nhằm đánh giá tính khả thi, tính mở rộng và hiệu suất của hệ thống Phần mô hình dữ liệu mô tả rõ các thực thể, thuộc tính và mối quan hệ giữa chúng để làm nền cho quá trình triển khai Phần thiết kế cài đặt hệ thống trình bày kiến trúc tổng thể, các thành phần chính và cách thức tích hợp giữa các module, đảm bảo tính khả thi và thống nhất giữa các phần mềm và phần cứng Lưu đồ giải thuật và các sơ đồ liên quan minh họa luồng xử lý, quyết định và tương tác giữa các bước để dễ dàng triển khai và kiểm thử Phần kiểm thử đề cập các phương pháp kiểm tra, tiêu chí chấp nhận và kế hoạch thử nghiệm để đảm bảo chất lượng, độ tin cậy và hiệu suất của hệ thống.
Chương 4: Kết quả thực nghiệm trình bày đầy đủ các chức năng đã triển khai và giao diện người dùng đã xây dựng trên hệ thống, đồng thời nêu rõ những hạn chế còn tồn tại để làm cơ sở cho tối ưu hóa hiệu suất và trải nghiệm người dùng Các chức năng được triển khai bao gồm quản lý dữ liệu, xử lý nghiệp vụ và tích hợp các module, cho phép người dùng thao tác nhanh chóng, chính xác và tin cậy Giao diện được thiết kế trực quan, nhất quán và thân thiện với người dùng, giúp người dùng dễ dàng tiếp cận chức năng và trạng thái hệ thống ở mọi màn hình Tuy nhiên, hệ thống vẫn còn một số vấn đề cần khắc phục như tối ưu hóa hiệu năng ở quy mô lớn, xử lý trường hợp ngoại lệ, và tăng cường bảo mật thông tin Từ những kết quả này, bài viết đề xuất các giải pháp cải tiến và định hướng cho các phiên bản tương lai nhằm mở rộng chức năng, nâng cao hiệu suất và cải thiện trải nghiệm người dùng.
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ế và vận hành để thu thập, xử lý, lưu trữ, tái tạo và phân phối dữ liệu, thông tin và tri thức nhằm phục vụ các mục tiêu đã định ra của tổ chức Vai trò của hệ thống thông tin bao gồm hỗ trợ ra quyết định, tối ưu hóa quy trình làm việc và tăng cường hiệu quả hoạt động bằng cách kết nối người dùng, dữ liệu và công cụ phân tích, đồng thời chia sẻ thông tin giữa các bộ phận và cấp quản lý.
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 thông tin là quá trình đảm bảo thông tin được chia sẻ một cách minh bạch và nhất quán giữa các bên liên quan Việc thực hiện truyền thông thông tin cần diễn ra một cách thông suốt, đúng thời gian và chú trọng bảo mật để giảm thiểu rủi ro và bảo vệ dữ liệu Nhờ thông tin được truyền达 kịp thời và an toàn, quyết định được đưa ra đúng đắn và nhanh chóng, góp phần tăng hiệu quả quản trị và vận hành của tổ chức.
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ý (MIS) xử lý thông tin mang tính thống kê và dự báo để hỗ trợ quyết định ở nhiều cấp quản lý Các hệ thống MIS tiêu biểu là các hệ thống máy vi tính được thiết kế để quản lý ba đối tượng chính: công nghệ, con người (cá nhân và nhóm), và dữ liệu MIS tích hợp xử lý dữ liệu, phân tích thống kê và trình bày báo cáo nhằm nâng cao hiệu quả quản trị và khả năng dự báo cho tổ chức.
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à cách thức biểu diễn dữ liệu do hệ thống sử dụng và sinh ra Quá trình này bắt đầu bằng phân tích và thu thập các nhu cầu thông tin cho các hoạt động nghiệp vụ, sau đó đảm bảo rằng những nhu cầu đó được tích hợp đầy đủ vào CSDL và người dùng có thể hiểu được nội dung thông tin Mô hình hoá dữ liệu cho phép biểu diễn thông tin ở nhiều mức độ khác nhau, ví dụ như mức quan niệm, mức luận lý và mức vật lý, nhằm tổ chức dữ liệu một cách logic và hiệu quả.
Lập trình hướng đối tượng
Lập trình hướng đối tượng (gọi tắt là OOP) là một phương pháp lập trình dựa trên mô hình đối tượng, nhằm chuyển đổi các bài toán và vấn đề thành mã nguồn trên 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
Trong lập trình hướng đối tượng, dữ liệu và các thao tác (hàm) của một đối tượng được liên kết chặt chẽ với nhau, cho phép tập trung vào bản chất của vấn đề thay vì các chi tiết bên trong Dữ liệu và hàm được đóng gói trong một đối tượng, có thể ẩn những dữ liệu nhạy cảm và chỉ cho phép truy cập thông qua các phương thức, từ đó tăng tính an toàn, khả năng bảo trì và khả năng mở rộng của phần mề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à cơ chế thực hiện việc gọi các phương thức của một đối tượng Khi một đối tượng nhận được một thông điệp, nó sẽ xác định phương thức tương ứng và kích hoạt hàm đó để xử lý yêu cầu Quá trình này cho phép các đối tượng giao tiếp với nhau thông qua việc gửi nhận thông điệp và thực thi hành vi được liên kết với từng phương thức, giúp hệ thống mềm dẻo, mở rộng và dễ bảo trì.
Trong lập trình hướng đối tượng, việc thực thi phương thức của một đối tượng chỉ tác động lên dữ liệu của chính đối tượng đó; các đối tượng khác cùng lớp có trạng thái riêng và không bị ảnh hưởng bởi sự thay đổi ở một đối tượng bất kỳ Điều này thể hiện khái niệm đóng gói và tách biệt trạng thái giữa các đối tượng, giúp mỗi đối tượng quản lý dữ liệu riêng và đảm bảo tính nhất quán khi các phương thức được gọi trên từng đối tượng.
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)
Đó là quá trình mô hình hóa nhiều đối tượng thành một hệ thống có tổ chức 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ể là cách trừu tượng hóa, giúp làm rõ bản chất và tối ưu hóa cách giải quyết vấn đề.
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 của lớp cha, mang lại cho nó các đặc trưng và hành vi của lớp cha Tuy nhiên, việc truy cập vào các thành phần của lớp cha bị giới hạn bởi các phạm vi truy cập mà lớp cha quy định; các thành phần công khai (public) và được bảo vệ (protected) có thể truy cập từ lớp con, trong khi các thành phần riêng tư (private) bị ẩn và không thể truy cập từ lớp con.
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à thêm bổ sung và nạp đè là thay thế
Một thành phần sẽ có những ý nghĩa khác nhau trong các ngữ cảnh hoặc môi trường khác nhau.
NODEJS
Node.js là nền tảng nguồn mở dựa trên JavaScript V8 Engine của Google, giúp xử lý giao tiếp giữa client và server theo thời gian thực và phục vụ các ứng dụng mạng quy mô lớn Nó được sử dụng rộng rãi bởi hàng ngàn lập trình viên trên toàn thế giới và có thể chạy trên Windows, Linux và macOS, mang lại tính linh hoạt cho dự án Node.js cung cấp kho thư viện phong phú ở dạng module JavaScript, giúp đơn giản hóa lập trình và rút ngắn thời gian phát triển ở mức tối ưu Khi nhắc đến Node.js, khả năng làm việc thời gian thực và xử lý giao tiếp liên tục giữa client và server được xem là một ưu điểm nổi bật.
Các tính năng vượt trội của Nodejs
Node.js là nền tảng có tính bất đồng bộ (non-blocking) và không chặn, dựa trên cơ sở xử lý của máy chủ để chờ phản hồi từ API và thông báo sự kiện, cho phép các cuộc gọi API hoạt động theo thời gian thực và nhanh chóng nhận được phản hồi Được xây dựng trên nền tảng V8 JavaScript Engine, Node.js thực thi mã với tốc độ cao và hiệu quả Mô hình đơn luồng nhưng có khả năng mở rộng vượt trội nhờ vòng lặp sự kiện (event loop) và cơ chế xử lý sự kiện không đồng bộ, giúp máy chủ đáp ứng lượng yêu cầu lớn hơn nhiều so với các máy chủ truyền thống như Apache HTTP Server Với đặc điểm này, Node.js phù hợp cho các ứng dụng thời gian thực và hiệu suất cao, nơi cần xử lý nhiều kết nối đồng thời mà vẫn duy trì tốc độ phản hồi nhanh.
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 phổ biến trong kỹ thuật phần mềm, giúp tách ứng dụng thành ba thành phần riêng biệt: Model (dữ liệu và logic nghiệp vụ), View (giao diện người dùng) và Controller (điều khiển luồng dữ liệu và xử lý tương tác) Mỗi thành phần có nhiệm vụ riêng biệt và hoạt động độc lập, từ đó cải thiện khả năng bảo trì, mở rộng và kiểm thử, đồng thời cho phép các nhóm phát triển làm việc song song trên các phần khác nhau của ứng dụng mà không gây xung đột.
Lịch sử ra đời MVC
Vào những năm 70 của thế kỷ XX, tại Xerox PARC ở Palo Alto, sự ra đời của giao diện đồ họa (GUI) và lập trình hướng đối tượng (OOP) cho phép lập trình viên làm việ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 Các nhà nghiên cứu tại Xerox PARC còn tiến xa hơn khi cho ra đời kiến trúc MVC (Model – View – Controller), một khung quản lý ứng dụng tách rời giữa dữ liệu, giao diện và điều khiển nhằm tối ưu hoá quá trình phát triển phần mềm.
Kiến trúc phần mềm ngày càng được nghiên cứu, phát triển và hoàn thiện nhằm tối ưu hóa quy trình phát triển, giải quyết các vấn đề phát sinh và đưa ra các giải pháp công nghệ hiệu quả cho toàn bộ vòng đời dự án từ thiết kế hệ thống đến triển khai, vận hành và bảo trì.
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:
Model là lớp chịu trách nhiệm xử lý 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 Đây là thành phần giao tiếp với cơ sở dữ liệu thông qua các lớp và hàm xử lý nhiều nghiệp vụ từ kết nối dữ liệu, truy vấn dữ liệu cho đến thêm, xóa và sửa dữ liệu Model giúp ánh xạ dữ liệu giữa cơ sở dữ liệu và các đối tượng trong ứng dụng, đồng thời đảm bảo an toàn dữ liệu, tối ưu hiệu suất truy vấn và hỗ trợ đầy đủ các thao tác CRUD (Create, Read, Update, Delete) một cách nhất quán.
View là khu vực chứa các giao diện như nút bấm, khung nhập liệu, menu và hình ảnh, đảm nhận nhiệm vụ hiển thị dữ liệu và hỗ trợ người dùng tương tác với hệ thống Với vai trò là lớp giao diện người dùng, View tối ưu hóa trải nghiệm bằng cách trình bày thông tin rõ ràng và trực quan, giúp người dùng thao tác dễ dàng và hiệu quả.
Controller là nơi tiếp nhận các yêu cầu xử lý từ người dùng, gồm các lớp hoặc hàm xử lý nhiều nghiệp vụ logic nhằm lấy đúng dữ liệu cần thiết từ các nghiệp vụ của lớp Model Nó kết nối Model và View bằng cách xử lý luồng dữ liệu từ người dùng, chuẩn bị dữ liệu và chuyển giao cho View để hiển thị cho người dùng.
Sự tương tác giữa các lớp trong mô hình MVC
Trong mô hình MVC, Controller – View sẽ lấy hình ảnh, nút bấm và có thể hiển thị dữ liệu từ Model; khi dữ liệu từ Model có, nó chuyển dữ liệu lên giao diện để hiển thị một cách đồng bộ Ngược lại, nếu không có dữ liệu từ Model, Controller – View vẫn đảm nhận vai trò hiển thị thuần túy các thành phần giao diện như hình ảnh và nút bấm, không xử lý thêm dữ liệu.
Controller – Model là luồng xử lý khi Controller tiếp nhận yêu cầu và tham số đầu vào từ người dùng; Controller sẽ sử dụng các lớp/hàm trong Model cần thiết để lấy ra những dữ liệu chính xác và thực thi các nghiệp vụ liên quan Trong kiến trúc MVC, Controller đóng vai trò điều phối, nhận diện tham số đã được xác thực và chuẩn hóa, sau đó gọi các phương thức trong Model để truy vấn dữ liệu và trả về kết quả phù hợp cho giao diện người dùng Việc phân tách rõ ràng giữa Controller và Model giúp tối ưu luồng xử lý, tăng tính bảo trì và dễ mở rộng cho ứng dụng.
View–Model cho phép các thành phần tương tác với nhau mà không thông qua Controller; nó chỉ đảm nhận hiển thị dữ liệu và không thực hiện bất kỳ xử lý nghiệp vụ logic nào Điều này khiến View–Model giống như các vùng dữ liệu hiển thị tĩnh trên website, như block slidebar, nơi nội dung được trình bày sẵn mà không tham gia vào xử lý nghiệp vụ phức tạp.
Mô hình MVC có thể áp dụng cho nhiều loại dự án khác nhau, từ website đến các ứng dụng – phần mềm; tuy nhiên trong phạm vi bài viết này chúng ta sẽ tập trung vào cách thức áp dụng MVC trong các dự án xây dựng và phát triển website Ưu điểm của mô hình này gồm sự phân tách trách nhiệm giữa Model, View và Controller, giúp bảo trì và mở rộng hệ thống dễ dàng, tăng tính kiểm thử và khả năng tái sử dụng code, đồng thời tối ưu hóa quy trình phát triển trên nền tảng web.
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 và phân tách các class/function thành các thành phần riêng biệt theo mô hình Controller – Model – View giúp dễ dàng xây dựng, phát triển, quản lý, vận hành và bảo trì một dự án Cách tổ chức này mang lại sự rõ ràng, minh bạch trong quá trình phát triển, đồng thời kiểm soát luồng xử lý và tạo ra các thành phần xử lý nghiệp vụ chuyên biệt hóa, tối ưu hóa khả năng mở rộng, bảo trì và vận hành hệ thống.
Xây dựng một mô hình chuẩn cho nhiều dự án giúp các chuyên gia tiếp cận và tìm hiểu các dự án một cách nhanh chóng và hiệu quả Khi bạn nắm vững mô hình MVC của một dự án, việc tiếp cận những dự án khác được xây dựng trên cùng khung MVC nhưng chưa từng tiếp xúc sẽ trở nên rất dễ dàng và tiết kiệm thời gian Học một mô hình MVC có thể mở rộng khả năng hiểu và áp dụng cho nhiều dự án khác nhau chỉ với một nền tảng kiến thức vững chắc.
Đây là một mô hình chuẩn quản lý dự án giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư và PM hiểu rõ cách thức vận hành của dự án và hỗ trợ lập trình viên quản lý – phát triển dự án một cách hiệu quả Mô hình này không phải là một ngôn ngữ lập trình, nhưng khi các thành viên cùng nhìn vào nó, họ sẽ tự nhận diện được ý nghĩa và mục tiêu của dự án, từ đó dễ dàng trao đổi các yêu cầu và bàn bạc công việc Với tính tối ưu và được xem là tiêu chuẩn hiện nay, mô hình này vượt trội so với nhiều lựa chọn khác và đã được ứng dụng rộng rãi trong nhiều dự án và lĩnh vực, đặc biệt 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ợ:
MongDB là một cơ sở dữ liệu NoSQL đa nền tảng có thể chạy trên Windows, Linux và macOS, cho phép triển khai dễ dàng trên nhiều hệ điều hành khác nhau Nó hỗ trợ hầu hết các ngôn ngữ lập trình phổ biến như C#, Java, PHP và JavaScript, cùng với nhiều môi trường phát triển khác nhau để tối ưu quy trình làm việc của các lập trình viên Ưu điểm của MongoDB nằm ở khả năng mở rộng linh hoạt, thiết kế dựa trên tài liệu và hiệu suất xử lý dữ liệu lớn, giúp lưu trữ dữ liệu phi cấu trúc hiệu quả và đáp ứng tốt các ứng dụng web và di động hiện đại.
Một đặc điểm nổi bật của MongoDB là lưu trữ dữ liệu dưới dạng Document JSON, nên mỗi collection có kích thước và các document khác nhau Điều này tạo sự linh hoạt trong việc lưu trữ dữ liệu, cho phép bạn insert vào collection một cách thoải mái mà không bị ràng buộc bởi một schema cố định.
MongoDB lưu trữ dữ liệu ở dạng tài liệu độc lập và không có các ràng buộc tham chiếu chặt chẽ như trong RDBMS, nên khi insert, delete hoặc update, hệ thống không phải mất thời gian kiểm tra xem có thỏa mãn các ràng buộc dữ liệu hay không Điều này giúp các thao tác ghi diễn ra nhanh hơn và tối ưu hiệu suất, đặc biệt cho các ứng dụng đòi hỏi tốc độ ghi cao Dù không có JOIN như trong hệ quản trị dữ liệu quan hệ, MongoDB vẫn hỗ trợ liên kết dữ liệu thông qua nhúng tài liệu hoặc tham chiếu, mang lại sự linh hoạt trong mô hình dữ liệu mà vẫn duy trì hiệu suất cao.
Mongodb rất dễ mở rộng theo chiều ngang (horizontal scalability) Trong MongoDB, khái niệm cluster là tập hợp các node chứa dữ liệu giao tiếp với nhau, và khi cần mở rộng hệ thống thì chỉ cần thêm một node mới vào cluster Quá trình mở rộng sẽ tăng dung lượng lưu trữ và khả năng xử lý mà không gây gián đoạn dịch vụ, đảm bảo dữ liệu được đồng bộ giữa các node và duy trì hiệu suất ở mức cao.
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 có một truy vấn dữ liệu, bản ghi liên quan được cached vào bộ nhớ RAM để các lượt truy vấn sau nhanh hơn mà không cần đọc từ ổ cứng Quá trình caching giúp giảm độ trễ, tăng hiệu suất hệ thống và cải thiện trải nghiệm người dùng bằng cách phục vụ ngay dữ liệu đã được truy cập trước đó Đây là kỹ thuật tối ưu hóa truy vấn dữ liệu trong hệ thống lưu trữ, đảm bảo dữ liệu được truy cập nhanh hơn nhờ ưu tiên giữ những bản ghi thường xuyên dùng trong RAM.
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
Để sắp xếp thời khóa biểu giảng dạy cho giảng viên ở Khoa Phát Triển Nông Thôn, cần có một hệ thống hoàn chỉnh thu thập và tích hợp các bộ dữ liệu đầu vào như 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ộ được lưu trữ dưới định dạng Excel (.xlsx), đồng thời danh sách phòng học của khoa cũng được tích hợp để tối ưu hoá lịch học Hệ thống phải dễ dùng và dễ bảo trì cho người dùng và cho quá trình phát triển sau này Website quản lý lịch giảng dạy cần cung cấp các chức năng như quản lý lớp, phân công giảng viên, kiểm tra xung đột và xuất báo cáo, nhằm đảm bảo thời khóa biểu được sắp xếp hiệu quả và phù hợp với nhu cầu của khoa.
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 có chức năng chính là quản lý thông tin và cho người dùng nhập các file dữ liệu để xử lý việc sắp xếp lịch học Nó nhận danh sách các lớp học phần, sau đó lấy mã cán bộ để quét các tiết mà cán bộ đã đăng ký, bao gồm các tiết dạy và các mục trong tuần Sau khi lên lịch, hệ thống sẽ tự động chọn ngẫu nhiên các phòng từ cơ sở dữ liệu và 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 đó:
Nhận lớp học phần từ hệ thống quản lý và thu thập các tiết đăng ký của các giảng viên: 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ý, cùng với đó là gửi biểu mẫu thu thập các tiết dạy của giảng viên có trong các lớp học phần.
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 import file Excel: người dùng chọn file Excel chứa dữ liệu của lớp học phần và các tiết đăng ký của giảng viên để import vào 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ý
Hệ thống máy chủ nhận dữ liệu đầu vào và tiến hành xử lý để sắp xếp thời khóa biểu theo các tiêu chí tối ưu Sau khi hoàn tất, máy chủ trả về kết quả thời khóa biểu đã được sắp xếp đầy đủ và chính xác cho người dùng.
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
Trong sơ đồ use case được cho thấy, hệ thống có một người dùng duy nhất là cán bộ quản lý với chức năng sắp xếp thời khóa biểu và nhập dữ liệu thống kê thông qua chức năng import file dữ liệu thống kê Để sử dụng các chức năng này, cán bộ quản lý phải đă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.
Quy trình xử lý bắt đầu khi hệ thống nhận file và kiểm tra định dạng của nó (.xlsx hoặc xls) Nếu định dạng đúng, hệ thống sẽ tiếp tục xử lý dữ liệu; nếu sai, hệ thống sẽ trả về trang thông báo lỗi và đề nghị người dùng import lại file với định dạng hợp lệ.
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.
Đưa các phòng học vào lịch dạy của cán bộ để quản lý thời khóa biểu hiệu quả Để tránh trùng lịch, hệ thống sẽ tự động cập nhật trạng thái của những phòng đã được xếp vào lịch, đồng thời thông báo khi có sự thay đổi và đảm bảo việc phân bổ phòng học diễn ra suôn sẻ, phù hợp với kế hoạch giảng dạy.
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 như vậy, mục tiêu là mang lại cho người dùng sự thoải mái, tiện dụng, an toàn và tin cậy Tuy nhiên, trước khi hệ thống đến tay người dùng thực sự, sẽ có một loạt kịch bản kiểm thử nhằm nhận diện ưu điểm và nhược điểm để có thể cải thiện và phát triển thêm trong tương lai Dành cho website phục vụ người dùng, các kịch bản kiểm thử này sẽ tập trung đánh giá trải nghiệm người dùng, khả năng tương tác, hiệu suất, bảo mật và độ tin cậy của hệ thống.
Kiểm thử các chức năng
Bảng 3.8 Kiểm thử chức năng Website
Trong kịch bản kiểm thử này, đăng nhập với tên đăng nhập và mật khẩu đúng cho phép người dùng truy cập và sử dụng website một cách thành công, đảm bảo quá trình xác thực hoạt động chính xác Ngược lại, đăng nhập với thông tin sai sẽ yêu cầu nhập lại và không cho phép truy cập, giúp đảm bảo an ninh và phản hồi người dùng rõ ràng Đối với nhập file Excel, khi đúng định dạng, hệ thống sẽ chạy được và lên lịch tự động, cho thấy quy trình xử lý dữ liệu diễn ra suôn sẻ và hiệu quả Kết quả kiểm thử cho cả hai phần - đăng nhập và xử lý file Excel - đều thành công, xác nhận chất lượng hệ thống và khả năng vận hành trên môi trường thực tế.
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ả
Trong hệ thống quản lý lịch giảng dạy, khi giảng viên không đăng ký tiết dạy, hệ thống trả về kết quả 'Giảng viên chưa đăng ký tiết dạy' Tuy nhiên, nếu có đủ phòng học và xếp các lớp học phần được thực hiện đúng quy trình, quá trình xếp lịch sẽ thành công, mang lại kết quả 'Thành công' và đảm bảo xếp lịch thành công cho toàn bộ thời khóa biểu.
Không đủ phòng so với các lớp học phần Trả về kết quả “không còn phòng học trống” Thành cô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.
Việc sử dụng MongoDB làm cơ sở để lưu trữ và xử lý thông tin mang lại lợi ích từ đặc tính NoSQL: tính linh hoạt cao và truy vấn nhanh 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 quá trình lập trình.
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.
Về Website, các yêu cầu cơ bản liên quan đến quản lý và sắp xếp dữ liệu đã được đáp ứng đầy đủ, đồng thời tính năng import/export dữ liệu hoạt động nhanh chóng, giúp tối ưu quy trình quản trị và trao đổi thông tin hiệu quả.
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.