Tải bản đầy đủ (.pdf) (22 trang)

đồ án 1 xây dựng ứng dụng quản lý đề cương môn học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.19 MB, 22 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO </b>

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM </b>

<b>ĐỒ ÁN MÔN HỌC ĐỒ ÁN 1 </b>

<b>XÂY DỰNG ỨNG DỤNG QUẢN LÝ ĐỀ CƯƠNG MÔN HỌC </b>

<b>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 </b>

TP.HCM, tháng 12 năm 2023

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>MỤC LỤC </b>

<small>CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI ... 4 </small>

<small>I. Động lực nghiên cứu: ... 4 </small>

<small>II. Mục tiêu và phạm vi: ... 4 </small>

<small>III. Bố cục báo cáo: ... 4 </small>

<small>CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ ... 5 </small>

<small>I. Sơ đồ Usecase: ... 5 </small>

<small>1. Tổng quan: ... 5 </small>

<small>2. Usecase quản lý phân quyền: ... 6 </small>

<small>3. Usecase quản lý đề cương: ... 8 </small>

<small>4. Usecase quản lý khoa: ... 10 </small>

<small>5. Usecase quản lý CĐR CTĐT: ... 11 </small>

<small>II. User Flow: ... 12 </small>

<small>CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ KẾT QUẢ SẢN PHẨM ... 14 </small>

<small>IV. Hướng phát triển: ... 21 </small>

<small>TÀI LIỆU THAM KHẢO ... 22 </small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC HÌNH ẢNH </b>

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI </b>

<b>I. Động lực nghiên cứu: </b>

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 q 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ả.

<b>II. Mục tiêu và phạm vi: </b>

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ỗ

<b>trợ các tính năng quản lý người dùng và CĐR CTĐT. </b>

<b>III. Bố cục báo cáo: </b>

Phần còn lại của báo cáo được trình bày theo bố cục sau:

<b>Chương 2 – Phân tích và thiết kế </b>

<b>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 </b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ </b>

<b>I. Sơ đồ Usecase: 1. Tổng quan: </b>

<i>Hình 1: Tổng quan Usecase </i>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>2. Usecase quản lý phân quyền: </b>

<i>Hình 2: Usecase Quản lý phân quyền </i>

<b>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 </b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Xử 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…).

<b>Tiền điều kiện: </b>

User cần kết nối mạng để truy cập trang web.

<b>Hậu điều kiện: </b>

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.

<i>Bảng 1: Mô tả usecase Quản lý phân quyền </i>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>3. Usecase quản lý đề cương: </b>

<i>Hình 3: Usecase Quản lý đề cương </i>

<b>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 đề </b>

cương.

<b>Dịng sự kiện chính: </b>

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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

User 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 tồn bộ các đề cương đã tạo trong hệ thống.

<b>Tiền điều kiện: </b>

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.

<b>Hậu điều kiện: </b>

Mọi thay đổi về đề cương cần được hệ thống lưu trữ vào cơ sở dữ liệu.

<i>Bảng 2: Mô tả usecase Quản lý đề cương </i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>4. Usecase quản lý khoa: </b>

<i>Hình 4: Usecase Quản lý khoa </i>

<b>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ó </b>

khoa hoặc Admin thực hiện các tác vụ liên quan đến khoa.

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.

<b>Tiền điều kiện: </b>

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.

<b>Hậu điều kiện: </b>

Mọi thay đổi về đề cương cần được hệ thống lưu trữ vào cơ sở dữ liệu.

<i>Bảng 3: Mô tả Usecase quản lý khoa </i>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Thơ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.

<b>Tiền điều kiện: </b>

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.

<b>Hậu điều kiện: </b>

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.

<i><b>Bảng 4: Mô tả Usecase quản lý CĐR CTĐT </b></i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>II. User Flow: </b>

<b>1. User flow giảng viên: </b>

<i>Hình 6: User flow giảng viên </i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>2. User flow trưởng / phó khoa: </b>

<i>Hình 7: User flow trưởng / phó khoa </i>

<b>3. User flow admin: </b>

<i><b>Hình 8: User flow Admin </b></i>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ KẾT QUẢ SẢN PHẨM </b>

<b>I. Công nghệ sử dụng: 1. NodeJS (backend): </b>

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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Mặ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.

<b>2. ReactJS (frontend): </b>

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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>3. MongoDB: </b>

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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>II. Demo: </b>

<i>Hình 9: Giao diện danh sách đề cương </i>

<i>Hình 10: Giao diện lịch sử thay đổi của đề cương </i>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i>Hình 11: Giao diện cập nhật thơng tin đề cương </i>

<i>Hình 12: Giao diện xét duyệt đề cương </i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>Hình 13: Giao diện xuất đề cương </i>

<i>Hình 14: Giao diện quản lý người dùng </i>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>Hình 15: Giao diện quản lý tài khoản cá nhân </i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN </b>

<b>II. Thuận lợi: </b>

- 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.

<b>III. Khó khăn: </b>

- 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ễ.

<b>IV. Hướng phát triển: </b>

thống kê, báo cáo.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>TÀI LIỆU THAM KHẢO </b>

</div>

×