CHƯƠNG 1: TỔNG QUAN 1. TỔNG QUAN NGHIỆP VỤ Để tạo ra một CTDT hoàn chỉnh, các giảng viên thường phải tuân theo 1 cấu trúc nhất định như sau: • Phân chia số tín chỉ cho các khối kiến thức và các nhóm kiến thức. • Thêm thông tin của môn học (bao gồm: Mã môn, tên môn, số tín chỉ,.) cho từng khối kiến thức và nhóm kiến thức. • Phân bố các môn học đã thêm vào cho các học kì.
Các công việc trên hoàn toàn được thực hiện bằng các công cụ đơn giản như excel, world, từ đó việc soạn và chỉnh sửa một CTDT yêu cầu rất nhiều thời gian và công sức bỏ ra của các giảng viên, từ việc phải hệ thống các môn, số tín chỉ, khối kiến thức, kế hoạch học kì,…một cách thủ công, dẫn đến nhiều sai sót không đáng có. Do đó, chúng em quyết định xây dựng một phần mềm có thể dùng để quản lý CTDT một cách hiệu quả. MÔ TẢ YÊU CẦU Yêu cầu: xây dựng một hệ thống có giao diện thân thiện, thuận tiện hỗ trợ thực hiện các nghiệp vụ nhanh chóng và chinh xác. Người dùng cuối cơ bản: Bao gồm các sinh viên, giảng viên.
Có quyền xem kế hoạch của một CTDT. Người quản trị: Bao gồm các Trưởng ngành và quản trị viên của hệ thống, đối với trưởng ngành thì có quyền xem, soạn mới, hiệu chỉnh hoặc xoá CTDT thuộc ngành mà người đó phụ trách, đối với quản trị viên hệ thống thì tương tự nhưng áp dụng được cho toàn bộ các ngành hiện có. Nội dung chức năng quản trị: • Định nghĩa tự điển dữ liệu cho toàn bộ hệ thống (Ngành học; Khối kiến thức; Danh mục môn học theo từng khối kiến thức, theo tuỳ chọn hoặc bắt buộc; Kế hoạch theo từng học kì,…) • Soạn mới một CTDT: xây dựng từ đầu một CTDT hoặc dựa trên một CTDT có sẵn trên hệ thống. • Hiệu chỉnh, cập nhật, xoá CTDT.
• Theo dõi và cập nhật tiến độ CTDT. NỘI DUNG THỰC HIỆN *Dự án được phát triển từ dự án của môn Tiểu luận chuyên ngành, bao gồm các nội dung sau: • Các chức năng xác thực người dùng: tạo tài khoản, đăng nhập, đăng xuất, đặt lại mật khẩu,… • Tạo CTDT, bao gồm tạo từ một mẫu (template) riêng của ngành đó, tạo từ một CTDT đã tồn tại trong hệ thống hoặc tạo mới từ đầu. Việc tạo CTDT phải tuân theo quy trình được định sẵn. • Cho phép xem, chỉnh sửa và thay đổi các dữ liệu cho các chương trình đào tạo đã tạo của người dùng.
• Khi tạo lẫn chỉnh sửa CTDT, cho phép người dùng theo dõi các thông số, hơn hết hệ thống sẽ liên tục kiểm tra các ràng buộc như tổng số tín chỉ, phân bổ các môn trong khối kiến thức • Cho phép người dùng lưu tạm thời quá trình tạo chương trình đào tạo nếu chưa hoàn thành. • Theo dõi và cập nhật quá trình của CTDT. *Đối với Khoá luận chuyên ngành, nhóm đã bổ sung các chức năng sau: • Đối với chức năng tạo CTDT: Quy trình tạo được chỉnh sửa mới cũng như bổ sung thêm nhiều tính năng hỗ trợ. Quy trình bao gồm: o Tạo và xác định các khối kiến thức: Người dùng sẽ trực tiếp thêm số lượng cũng như tên của các khối kiến thức cần thiết.
So với Tiểu luận chuyên ngành, chức năng này đã được thay đổi cấu trúc, thay vì bắt buộc người dùng phải thiết lập cả số tín chỉ cho từng khối kiến thức thì giờ số tín chỉ đó sẽ được tự động tính dựa trên số tín chỉ của các môn học mà người dùng đã nhập vào, từ đó giúp cho người dùng dễ dàng tính toán hơn trong quá trình nhập liệu. o Tạo/thêm/chỉnh sửa các môn học của từng khối kiến thức: Sau khi đã xác định được các khối kiến thức cần thiết, người dùng sẽ thực hiện thêm các môn học cho các khối kiến thức đó bao gồm các môn học bắt buộc và tự chọn. 2 o Đối với các môn học bắt buộc, khi được thêm vào hoặc chỉnh sửa thì số tín chỉ của các môn học đó sẽ được tính, cộng và hiển thị cho từng khối kiến thức ở phần “Tạo và xác định các khối kiến thức” o Đối với các môn học tự chọn, do các dữ liệu CTDT có sẵn, các môn học này là các môn được phép chọn học hoặc không và hiển thị đại diện của chúng trong học kì lại là các môn trừu tượng (Ví dụ: Tự chọn chuyên ngành 1, 2,. Để đảm bảo hệ thống không quá khác biệt so với cách tạo CTDT truyền thống, thì ngoài thêm các môn học tự chọn, người dùng sẽ cần thêm các nhóm đại diện cho các môn học đấy, tuy nhiên các nhóm môn ban đầu được cấu trúc theo dạng “Tên của khối kiến thức + Số thứ tự” lại không đáp ứng được yêu cầu của các khối kiến thức tự chọn chuyên ngành nên chức năng đã được cập nhật thêm lựa chọn cho phép thay đổi cấu trúc tên theo “Tên của các khối kiến thức liên quan + STT” người dùng khi tạo nhóm sẽ xác định nhóm đó thuộc khối kiến thức liên quan nào và từ đó môn học sẽ dựa vào và tự động đặt tên.
o Ngoài các chức năng chính liên quan tới môn học, người dùng còn có một số chức năng nhỏ như: Thay đổi thứ tự của các môn học trong cùng khối kiến thức, chuyển môn học từ khối kiến thức này sang khối kiến thức khác, xem và chỉnh sửa danh sách môn học ngay tại bước “Tạo và xác định các khối kiến thức”, import môn học từ từ điển môn học, lựa chọn tự động tạo mã môn hoặc nhập mã môn bằng tay. o Lên kế hoạch cho từng học kì: Từ các môn học cùng nhóm môn tự chọn đã được thêm ở bước “Tạo/thêm/chỉnh sửa các môn học của từng khối kiến thức” người dùng sẽ có thể thực hiện sắp xếp các môn học đó vào từng học kì sao cho phù hợp nhất, ngoài ra người dùng còn có thể sắp xếp thứ tự của các môn học đó trong từng học kì. • Quản lý tài khoản tài khoản, cho phép thay đổi thông tin cơ bản của tài khoản và cập nhật mật khẩu. • Quản lý thông tin của các ngành học, môn học, chuyên ngành, khoa học,… bao gồm các chức năng như thêm, chỉnh sửa các thông tin.
• Phân quyền tệp người dùng: Admin, trưởng ngành. 3 • Định nghĩa, quản lý từ điển môn học (danh mục các môn theo các khối kiến thức) o Ban đầu các môn học được sử dụng sẽ là một document riêng trong collection Subject (môn học) và sẽ được lưu vào CTDT dưới dạng tham chiếu Id và nếu việc thêm môn học làm thay đổi bất kì thông tin dữ liệu nào của môn học đó thì lập tức một môn học mới sẽ được tạo ra. Việc này dẫn đến số lượng bản ghi môn học được lưu lại tăng lên rất nhiều khi mà mã môn học của các chuyên ngành các môn qua từng năm đều có 1 sự thay đổi nhất định. o Giải pháp cho vấn đề trên là từ điển môn học.
Bằng cách tận dụng ưu thế của NoSQL là có thể lưu trữ các dữ liệu phi cấu trúc, CTDT bây giờ sẽ không còn lưu tham chiếu Id của các môn học trong collection Subject nữa mà khi thêm một môn học mới cho CTDT thì người dùng có thể chọn import dữ liệu của một môn học có trong từ điển môn học và sẽ dùng nó để tạo một bản sao môn học chỉ được lưu và sử dụng trong nội bộ CTDT đấy, từ đó việc quản lý các môn học sẽ dễ dàng hơn khi các thay đổi như cập nhật hoặc xóa cũng sẽ không trực tiếp ảnh hưởng đến các môn học đã được lưu trong từ điển môn học. o Ngoài ra để giải quyết vấn đề mã môn có thể thay đổi theo từng CTDT, hệ thống còn cho phép người dùng chọn phương thức tạo mã môn giữa việc tạo tự động theo quy luật chung và tự nhập vào theo quyết định của người dùng. • Định nghĩa các mẫu CTDT (Admin). o Mẫu CTDT là một CTDT sẽ luôn được import vào mỗi khi người dùng bắt đầu sử dụng chức năng tạo CTDT và mỗi ngành sẽ được định nghĩa một mẫu CTDT riêng biệt o Mẫu CTDT được thiết kế và định nghĩa giống hoàn toàn chức năng tạo CTDT và sẽ do các admin định nghĩa.
Chức năng này được tạo ra nhầm giúp người dùng dễ dàng tiếp cận việc tạo CTDT khi mà các người dùng có thể chọn sử dụng lại các dữ liệu mong muốn trên mẫu hoặc thay đổi một số dữ liệu cần thiết. • Ở quy trình tạo CTDT, có thể import CTDT bên ngoài bằng file excel (xlxs). 4 • Xuất chương trình đào tạo trong hệ thống thành file excel (xlxs). • Quản lý danh mục từ điển giảng viên.
• So sánh hai CTDT, giúp người dùng nhanh chóng tìm ra được điểm cần bổ sung hoặc thiếu sót. o Tuy chức năng này đã được hoàn thành, tuy nhiên ở giai đoạn ý tưởng, khả năng của chức năng này ưu việt nhiều hơn thế khi mà hệ thống sẽ phát hiện ra từng khác biệt dù là nhỏ nhất trong hai CTDT và đánh dấu lên UI cho người dùng nhận biết. Tuy nhiên vấn đề là khi bắt tay vào thực hiện, với hàng tá dữ liệu phi cấu trúc lồng nhau của DB, việc có thể track ra khác biệt giữa hai CTDT gặp nhiều khó khăn. o Hướng giải quyết: sau khi phát hiện vấn đề, nhóm đã thử nhiều biện pháp nhưng không thành công như mong đợi (bỏ qua vài điểm khác biệt không mong muốn).
Nhận ra rằng chức năng này sẽ hao tổn một lượng lớn thời gian với khả năng hiện tại của nhóm, nhóm đã thay đổi chức năng này trở thành xem hai CTDT cùng lúc với các phần nội dung của CTDT được tách biệt ra để dễ dàng theo dõi sự thay đổi. • Nâng cấp khả năng lưu tạm thời CTDT, thêm các tuỳ chọn và có thể lưu nhiều CTDT cùng lúc. o Phiên bản đầu tiên cho phép người dùng lưu bản nháp chỉ bằng một nút nhấn, và sẽ tự động tải bản nháp khi người dùng truy cập vào chức năng tạo CTDT, tuy vậy chức năng lại gặp vấn đề sau khi có thêm chức năng Mẫu CTDT, cũng là một chức năng tự động tải vì vậy nên cả hai xảy ra xung đột. O Để giải quyết vấn đề trên, chức năng này đã được nâng cấp lên cho phép người dùng lưu được nhiều bản nháp hơn, quản lý thông tin các bản nháp và đồng thời có thể chọn load bất kì bản nháp nào nếu muốn.