BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN MÔN HỌC ĐỒ ÁN 1 XÂY DỰNG ỨNG DỤNG QUẢN LÝ ĐỀ CƯƠNG MÔN HỌC Giảng viên hướng dẫn : ThS... Đề cương
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỒ ÁN MÔN HỌC
ĐỒ ÁN 1
XÂY DỰNG ỨNG DỤNG QUẢN LÝ ĐỀ CƯƠNG MÔN HỌC
Giảng viên hướng dẫn : ThS Lê Thanh Trọng Sinh viên thực hiện 1 : Hồ Minh Tuệ - 20520850 Sinh viên thực hiện 2 : Lâm Tấn Phát - 20520682
TP.HCM, tháng 12 năm 2023
Trang 2MỤC LỤC
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 4
I Động lực nghiên cứu: 4
II Mục tiêu và phạm vi: 4
III Bố cục báo cáo: 4
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ 5
I Sơ đồ Usecase: 5
1 Tổng quan: 5
2 Usecase quản lý phân quyền: 6
3 Usecase quản lý đề cương: 8
4 Usecase quản lý khoa: 10
5 Usecase quản lý CĐR CTĐT: 11
II User Flow: 12
CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ KẾT QUẢ SẢN PHẨM 14
I Công nghệ sử dụng: 14
1 NodeJS (backend): 14
2 ReactJS (frontend): 15
3 MongoDB: 16
II Demo: 17
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21
I Thành quả đạt được: 21
II Thuận lợi: 21
III Khó khăn: 21
IV Hướng phát triển: 21
TÀI LIỆU THAM KHẢO 22
Trang 3MỤC LỤC HÌNH ẢNH
Hình 1: Tổng quan Usecase 5
Hình 2: Usecase Quản lý phân quyền 6
Hình 3: Usecase Quản lý đề cương 8
Hình 4: Usecase Quản lý khoa 10
Hình 5: Usecase Quản lý CĐR CTĐT 11
Hình 6: User flow giảng viên 12
Hình 7: User flow trưởng / phó khoa 13
Hình 8: User flow Admin 13
Hình 9: Giao diện danh sách đề cương 17
Hình 10: Giao diện lịch sử thay đổi của đề cương 17
Hình 11: Giao diện cập nhật thông tin đề cương 18
Hình 12: Giao diện xét duyệt đề cương 18
Hình 13: Giao diện xuất đề cương 19
Hình 14: Giao diện quản lý người dùng 19
Hình 15: Giao diện quản lý tài khoản cá nhân 20
Trang 4CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
I Động lực nghiên cứu:
Trong môi trường giáo dục đại học, việc quản lý đề cương môn học đóng vai trò quan trọng trong việc đảm bảo chất lượng giảng dạy và học tập Đề cương môn học không chỉ cung cấp thông tin chi tiết về nội dung, mục tiêu và yêu cầu của mỗi khóa học, mà còn
là công cụ hữu ích giúp sinh viên hiểu rõ hơn về những gì họ sẽ học và làm thế nào để đạt được thành công trong quá trình học tập Việc quản lý đề cương môn học một cách hiệu quả sẽ giúp cải thiện sự tương tác giữa giảng viên và sinh viên, tăng cường tính minh bạch
và rõ ràng trong đánh giá, và hỗ trợ quản lý chương trình học một cách linh hoạt
Trong thời đại số hóa ngày nay, việc phát triển một ứng dụng web để quản lý đề cương môn học tại các trường đại học trở nên cần thiết Ứng dụng web này không chỉ giúp
tự động hóa quy trình quản lý, mà còn tạo điều kiện thuận lợi để giảng viên và sinh viên truy cập thông tin một cách dễ dàng và nhanh chóng Cho phép cải thiện khả năng tương tác và phản hồi, đồng thời hỗ trợ sinh viên trong việc lập kế hoạch học tập của họ một cách hiệu quả
II Mục tiêu và phạm vi:
Mục tiêu:
- Nắm được các yêu cầu nghiệp vụ của hệ thống quản lý đề cương
- Xây dựng được một trang web hỗ trợ quản lý đề cương cho môi trường đại học Phạm vi:
- Thiết kế và xây dựng trang web hỗ trợ quản lý đề cương đáp ứng được các yêu cầu nghiệp vụ bao gồm: soạn, chỉnh sửa đề cương; xét duyệt đề cương; xem lịch
sử và thống kê; xuất đề cương dưới các định dạng phổ biến (.pdf, docx…); hỗ
trợ các tính năng quản lý người dùng và CĐR CTĐT
III Bố cục báo cáo:
Phần còn lại của báo cáo được trình bày theo bố cục sau:
Chương 2 – Phân tích và thiết kế
Chương 3 – Công nghệ sử dụng và kết quả
Chương 4 – Kết luận và hướng phát triển
Trang 5CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ
I Sơ đồ Usecase:
1 Tổng quan:
Hình 1: Tổng quan Usecase
Trang 62 Usecase quản lý phân quyền:
Hình 2: Usecase Quản lý phân quyền
Tóm tắt: Usecase đăng nhập, đăng xuất cũng như đăng ký và quản lý tài khoản trong
Trang 7Xử lí các trường hợp đăng nhập, đăng ký không thành công (sai tài khoản, tài khoản đã tồn tại…)
Tiền điều kiện:
User cần kết nối mạng để truy cập trang web
Hậu điều kiện:
Trang web phải cung cấp cho user token jwt để thực hiện các tác vụ cần quyền truy cập khác
Bảng 1: Mô tả usecase Quản lý phân quyền
Trang 83 Usecase quản lý đề cương:
Hình 3: Usecase Quản lý đề cương
Tóm tắt: Usecase bắt đầu khi user đã đăng nhập thực hiện các tác vụ liên quan đến đề
cương
Dòng sự kiện chính:
User xem danh sách các đề cương đã tạo
User chọn tạo mới đề cương
Điền các thông tin đề cương
Gửi yêu cầu xét duyệt cho đề cương vừa tạo
Dòng sự kiện phụ:
Thông báo cho user các trường thông tin không hợp lệ
User có thể lưu nháp đề cương
User có thể xem lịch sử thay đổi của đề cương
User có thể xem thống kê các đề cương mình đã tạo
Trang 9User có thể xuất đề cương với các định dạng khác nhau (.pdf, docx…) sau khi đề
cương được trưởng khoa hoặc phó khoa duyệt
Trưởng / phó khoa có thể xem thống kê các đề cương thuộc khoa
Trưởng / phó khoa có thể chấp thuận hoặc từ chối đề cương yêu cầu xét duyệt
Trưởng / phó khoa có thể feedback cho giảng viên biên soạn chỉnh sửa trước khi quyết định xét duyệt
Admin có thể xem thống kê của toàn bộ các đề cương đã tạo trong hệ thống
Tiền điều kiện:
User cần kết nối mạng để truy cập trang web
User đăng nhập trang web với tài khoản có quyền Giảng viên hoặc Trưởng / phó khoa
Hậu điều kiện:
Mọi thay đổi về đề cương cần được hệ thống lưu trữ vào cơ sở dữ liệu
Bảng 2: Mô tả usecase Quản lý đề cương
Trang 104 Usecase quản lý khoa:
Hình 4: Usecase Quản lý khoa
Tóm tắt: Usecase bắt đầu khi user đã đăng nhập với tài khoản có quyền Trưởng / Phó
khoa hoặc Admin thực hiện các tác vụ liên quan đến khoa
Dòng sự kiện chính:
User
Dòng sự kiện phụ:
Thông báo cho user các trường thông tin không hợp lệ
User có thể lưu nháp đề cương
User có thể xem lịch sử thay đổi của đề cương
Trưởng / phó khoa có thể chấp thuận hoặc từ chối đề cương yêu cầu xét duyệt
Trưởng / phó khoa có thể feedback cho giảng viên biên soạn chỉnh sửa trước khi quyết định xét duyệt
Tiền điều kiện:
User cần kết nối mạng để truy cập trang web
User đăng nhập trang web với tài khoản có quyền Giảng viên hoặc Trưởng / phó khoa
Hậu điều kiện:
Mọi thay đổi về đề cương cần được hệ thống lưu trữ vào cơ sở dữ liệu
Bảng 3: Mô tả Usecase quản lý khoa
Trang 11Thông báo lại cho Admin khi có CĐR không hợp lệ được thêm
Ánh xạ các CĐR đã được nhập với các CĐR môn học khi thêm / cập nhật đề cương
Tiền điều kiện:
User cần kết nối mạng để truy cập trang web
User đăng nhập trang web với tài khoản có quyền Admin
Hậu điều kiện:
Mọi thay đổi về CĐR CTĐT cần được hệ thống lưu trữ vào cơ sở dữ liệu
Bảng 4: Mô tả Usecase quản lý CĐR CTĐT
Trang 12II User Flow:
1 User flow giảng viên:
Hình 6: User flow giảng viên
Trang 132 User flow trưởng / phó khoa:
Hình 7: User flow trưởng / phó khoa
3 User flow admin:
Hình 8: User flow Admin
Trang 14CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ KẾT QUẢ SẢN PHẨM
I Công nghệ sử dụng:
1 NodeJS (backend):
Node.js, một môi trường thực thi JavaScript bất đồng bộ và hướng sự kiện, được tạo ra với mục đích xây dựng các ứng dụng mạng có khả năng mở rộng Node.js có thể xử lý đồng thời nhiều kết nối Với mỗi kết nối, một hàm callback sẽ được kích hoạt, nhưng Node.js sẽ chuyển sang trạng thái chờ nếu không có công việc nào cần xử lý Cách tiếp cận này giúp Node.js linh hoạt và hiệu quả, phù hợp với các ứng dụng đòi hỏi sự nhanh chóng và đáp ứng tức thì
Trái ngược với mô hình đồng thời thông thường ngày nay, nơi sử dụng các luồng của hệ điều hành, Node.js mang đến một cách tiếp cận hiệu quả hơn Mạng lưới dựa trên luồng thường kém hiệu quả và khó sử dụng Điểm nổi bật của Node.js là nó loại bỏ được những
lo lắng về tình trạng bế tắc trong quá trình xử lý, vì nó không sử dụng khóa Hầu như không
có hàm nào trong Node.js thực hiện trực tiếp các thao tác I/O, do đó tiến trình không bao giờ bị chặn, trừ khi I/O được thực hiện bằng các phương thức đồng bộ trong thư viện tiêu chuẩn của Node.js Sự linh hoạt này giúp việc phát triển các hệ thống có khả năng mở rộng trở nên thuận lợi và hợp lý trong Node.js
Node.js, được thiết kế theo cảm hứng từ các hệ thống như Event Machine của Ruby và Twisted của Python, đưa mô hình sự kiện lên một tầm cao mới Khác biệt lớn nhất của nó
so với các hệ thống khác là Node.js không yêu cầu một lệnh cụ thể để khởi động vòng lặp
sự kiện Nó tự động chuyển vào vòng lặp sau khi thực thi script đầu vào và chỉ kết thúc khi không còn bất kỳ callback nào cần thực hiện, một cách tiếp cận tương tự như JavaScript trong trình duyệt
Trong Node.js, HTTP được xem trọng và tối ưu hóa cho truyền tải dữ liệu nhanh chóng và hiệu quả Điều này làm cho Node.js trở thành nền tảng lý tưởng cho việc phát triển các thư viện web và khuôn khổ ứng dụng
Trang 15Mặc dù Node.js không dựa trên mô hình đa luồng, nhưng nó vẫn mở ra khả năng tận dụng
đa lõi CPU trong môi trường của bạn Có thể tạo ra các tiến trình con dễ dàng thông qua API child_process.fork(), và mô-đun cluster cho phép chia sẻ socket giữa các tiến trình, giúp cân bằng tải trên các lõi và phát triển hệ thống có khả năng mở rộng
2 ReactJS (frontend):
React (còn được gọi là React.js hoặc ReactJS) là một thư viện JavaScript mã nguồn mở miễn phí cho phát triển giao diện người dùng phía trước dựa trên các thành phần (component) Được duy trì bởi Meta (trước đây là Facebook) và cộng đồng các nhà phát triển cá nhân và công ty
React có thể được sử dụng để phát triển các ứng dụng đơn trang, di động, hoặc ứng dụng được hiển thị từ máy chủ với các framework như Next.js React chỉ tập trung vào giao diện người dùng và hiển thị các thành phần, thường phụ thuộc vào các thư viện khác cho chức năng định tuyến và khác phía máy khách Một ưu điểm chính của React là nó chỉ tái hiển thị những phần trang web đã thay đổi, tránh việc tái hiển thị không cần thiết các phần tử DOM không thay đổi
Trang 163 MongoDB:
MongoDB, một cơ sở dữ liệu tài liệu mã nguồn mở, được xây dựng dựa trên kiến trúc mở
rộng ngang, cung cấp một lược đồ linh hoạt cho việc lưu trữ dữ liệu Kể từ khi ra đời vào
năm 2007, MongoDB đã thu hút sự quan tâm rộng rãi từ cộng đồng các nhà phát triển trên
toàn cầu
Khác biệt với cách lưu trữ dữ liệu theo hàng và cột như trong cơ sở dữ liệu SQL, mỗi bản
ghi trong MongoDB là một tài liệu được mô tả bằng BSON - một dạng biểu diễn nhị phân
của dữ liệu Các ứng dụng sau đó có thể truy xuất thông tin này dưới dạng JSON
Cơ sở dữ liệu tài liệu của MongoDB rất linh hoạt, cho phép biến đổi cấu trúc của các tài
liệu và lưu trữ những tài liệu chưa hoàn chỉnh Một tài liệu có thể chứa các tài liệu khác
được nhúng vào bên trong Các trường trong tài liệu đóng vai trò giống như cột trong cơ
sở dữ liệu SQL và có thể được lập chỉ mục để tăng cường hiệu suất tìm kiếm
MongoDB được xây dựng trên kiến trúc mở rộng, cho phép nhiều máy nhỏ làm việc cùng
nhau, tạo ra các hệ thống nhanh chóng và xử lý lượng dữ liệu lớn
MongoDB luôn tập trung vào việc cung cấp trải nghiệm người dùng xuất sắc cho các nhà
phát triển, điều này, cùng với các đặc tính khác, đã làm cho MongoDB trở thành sự lựa
chọn ưa thích của các nhà phát triển trên toàn thế giới cho nhiều loại ứng dụng khác nhau
Trang 17II Demo:
Hình 9: Giao diện danh sách đề cương
Hình 10: Giao diện lịch sử thay đổi của đề cương
Trang 18Hình 11: Giao diện cập nhật thông tin đề cương
Hình 12: Giao diện xét duyệt đề cương
Trang 19Hình 13: Giao diện xuất đề cương
Hình 14: Giao diện quản lý người dùng
Trang 20Hình 15: Giao diện quản lý tài khoản cá nhân
Trang 21CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
II Thuận lợi:
- Nguồn tư liệu có sẵn và dễ truy cập
- Giảng viên hướng dẫn tận tâm, nhiệt tình
III Khó khăn:
- Thành viên nhóm ít có cơ hội trao đổi, làm việc trực tiếp
- Một thành viên nhóm thiếu trách nhiệm khiến tiến độ đồ án bị chậm trễ
IV Hướng phát triển:
thống kê, báo cáo
Trang 22TÀI LIỆU THAM KHẢO