HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐÀO TẤN HÀO VŨ KHÁNH HOÀNG BÁO CÁO ĐỒ ÁN 2 ỨNG DỤNG QUẢN LÝ CHƯƠNG TRÌNH ĐÀO TẠO KỸ SƯ/ CỬ NHÂN NGÀNH KỸ THUẬT PHẦ
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐÀO TẤN HÀO
VŨ KHÁNH HOÀNG
BÁO CÁO ĐỒ ÁN 2 ỨNG DỤNG QUẢN LÝ CHƯƠNG TRÌNH ĐÀO TẠO
KỸ SƯ/ CỬ NHÂN NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN THẦY LÊ THANH TRỌNG
TP HỒ CHÍ MINH 2023
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐÀO TẤN HÀO – VŨ KHÁNH HOÀNG
BÁO CÁO ĐỒ ÁN 2 ỨNG DỤNG QUẢN LÝ CHƯƠNG TRÌNH ĐÀO TẠO
GIẢNG VIÊN HƯỚNG DẪN THẦY LÊ THANH TRỌNG
TP HỒ CHÍ MINH, 2023
Trang 3THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin
Trang 4LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ bản, các kỹ năng thực tế để có thể thực hiện Khóa luận tốt nghiệp của mình
Để hoàn thành Khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến Ban Giámhiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ
sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin
Chúng em xin gửi lời cảm ơn chân thành đến thầy Lê Thanh Trọng đã tận tình giúp
đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quýbáu không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho chúng em trong quá trình học tập và lập nghiệp sau này
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn bè, tập thể lớp PML 2020.2 là những người luôn sẵn sàng sẻ chia và giúp đỡ tronghọc tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau
Trong quá trình làm Khóa luận này chúng em không tránh khỏi được những sai sót, chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để hoàn thiện và phát triển sự nghiệp của bản thân trong tương lai
Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người
Thành phố Hồ Chí Minh, 22 tháng 12 năm 2023 Sinh viên
VŨ KHÁNH HOÀNG
ĐÀO TẤN HÀO
Trang 5THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
LỜI CẢM ƠN
NỘI DUNG BÁO CÁO
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Mô tả bài toán
1.2 Mục tiêu
1.3 Phạm vi
1.4 Đối tượng sử dụng
1.5 Phương pháp thực hiện
1.6 Nền tảng công nghệ
1.7 Kết quả mong đợi
1.8 Hướng phát triển của đề tài
1.9 Kế hoạch làm việc
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
2.1 ReactJs
2.2 NodeJS
2.3 MongoDB
2.4 Javascript
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
3.1 Kiến trúc mô hình mvc
3.2 Chi tiết các thành phần có trong hệ thống
3.3 Thiết kế cơ sở dữ liệu cơ bản ứng với từng thuộc tính trong bản PDF chương trình đào tạo
CHƯƠNG 4: ĐẶC TẢ USECASE
4.1 Danh sách tác nhân
4.2 Chức năng authentication
4.3 Chức năng quản lý chương trình đào tạo (overview)
4.4 Chức năng quản lý tài liệu tham khảo
4.5 Chức năng PDF
4.6 Vẽ sơ đồ môn học
4.7 Sơ đồ lớp
4.8 Activity diagram
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN
CHƯƠNG 6: TỔNG KẾT
TÀI LIỆU THAM KHẢO
Trang 6DANH MỤC TỪ VIẾT TẮT
NỘI DUNG BÁO CÁO
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Mô tả bài toán
Ứng dụng quản lý chương trình đào tạo mà nhóm của chúng tôi đang phát triển nhằm mục đích đáp ứng nhanh chóng và hiệu quả cho nhu cầu ngày càng tăng về việc đa dạng hóa các chương trình học Được thiết kế đa nền tảng, ứng dụng sẽ mang lại trải nghiệm linh hoạt cho người dùng trên cả máy tính và thiết bị di động chạy hệ điều hành Android, Ios, web
Tính năng quan trọng của ứng dụng bao gồm việc cung cấp thông tin nhanh chóng về các thành phần của một chương trình đào tạo ngữ và các khóa học hiện có Người dùng có thể dễ dàng truy cập thông tin mới nhất về các chương trình đào tạo và
chương trình học qua bài viết được đăng tải trên ứng dụng Điều này giúp họ nắm bắt được sự phong phú và đa dạng của các lựa chọn giáo dục
Đối với nhân viên khi tham gia quản lý ứng dụng, ứng dụng cung cấp giao diện quản trị dễ sử dụng Họ có thể dễ dàng cập nhật thông tin, đăng và thay đổi các mục chươngtrình và sự kiện mới một cách nhanh chóng, giúp duy trì và cập nhật thông tin liên
Trang 7quan đến chương trình đào tạo một cách hiệu quả.
Quản lý chương trình đào tạo giúp tổ chức/nhà trường đảm bảo rằng nhân sự/sinh viêncủa họ đang được đào tạo và phát triển một cách hiệu quả Nó có thể giúp nâng cao năng lực và hiệu suất làm việc của mọi cá nhân
Một ứng dụng quản lý chương trình đào tạo có thể giảm thiểu công sức và thời gian cần thiết để tổ chức và theo dõi quá trình đào tạo Giúp giảm chi phí liên quan đến việc tổ chức đào tạo thông qua việc tối ưu hóa quản lý tài nguyên
Tóm lại, ứng dụng quản lý chương trình đào tạo của chúng tôi không chỉ đơn giản là một nguồn thông tin đáng tin cậy về quản trị các chương trình đào tạo mà còn là công
cụ linh hoạt và tiện ích, giúp tạo ra trải nghiệm học tập tích cực và thuận lợi cho cả người học và nhân viên quản lý chương trình đào tạo
1.2 Mục tiêu
Mục tiêu của trang web quản lý chương trình đào tạo là tạo ra một nền tảng hiệu quả
và linh hoạt để tổ chức, theo dõi và quản lý các chương trình đào tạo trong tổ chức Trang web này được thiết kế để đáp ứng những nhu cầu ngày càng phức tạp của doanhnghiệp và tổ chức trong việc phát triển và duy trì nguồn nhân lực
1 Tối ưu hóa Quản lý Tài nguyên: Tạo điều kiện cho tổ chức dễ dàng quản lý các nguồn lực như giảng viên, phòng học, tài liệu, và các nguồn lực khác cần thiết cho chương trình đào tạo
2 Theo dõi Tiến Trình và Hiệu Suất: Cung cấp công cụ để theo dõi tiến trình đào tạo của học viên và đánh giá hiệu suất của chương trình, giúp đảm bảo rằng mục tiêu đào tạo được đạt được
3 Tính Linh hoạt và Cập nhật: Cho phép tổ chức dễ dàng điều chỉnh và cập nhật chương trình đào tạo theo thời gian, phản ánh sự thay đổi trong nhu cầu và yêu cầu của thị trường lao động
4 Tương Tác Học viên và Giao tiếp: Tạo cơ hội cho sự tương tác giữa học viên vàgiảng viên thông qua các tính năng trực tuyến như diễn đàn, hệ thống phản hồi,
và trò chuyện trực tiếp
5 Bảo mật và Tuân thủ: Đảm bảo tính an toàn của dữ liệu cá nhân và thông tin đào tạo, đồng thời hỗ trợ tổ chức duy trì tuân thủ theo các quy định và tiêu chuẩn liên quan
6 Khả năng Tích hợp: Kết nối với các hệ thống khác như hệ thống quản lý nhân
sự (HRM), email, và các công cụ khác để tối ưu hóa quá trình làm việc
7 Phát triển Tiềm năng Nhân sự: Hỗ trợ việc đào tạo và phát triển kỹ năng cho
Trang 8nhân viên, giúp họ nâng cao năng lực và sẵn sàng đối mặt với những thách thứcmới trong môi trường làm việc.
8 Tối ưu hóa Trải nghiệm Người dùng: Tạo ra một giao diện thân thiện, dễ sử dụng để tối ưu hóa trải nghiệm người dùng, giúp mọi thành viên tham gia vào quá trình đào tạo một cách mượt mà và hiệu quả
Với những mục tiêu này, trang web quản lý chương trình đào tạo không chỉ là một công cụ hỗ trợ quản lý mà còn là một phần quan trọng trong việc định hình và phát triển năng lực nhân sự cho sự thành công của tổ chức."
Trang 91.3 Phạm vi
Phạm vi môi trường: Web
Phạm vi chức năng: CRUD data, download data, draw entity,
Cung cấp chức năng quản lý thông tin của chương trình đào tạo
Cung cấp chức năng vẽ biểu đồ môn học.
Cung cấp các chức năng quản lý các entity dành cho người dùng
Cung cấp chức năng quản lý tài khoản nội bộ
Cung cấp biểu đồ và thống kê số liệu, từ đó đề xuất các khóa học đang được nhiều người quan tâm nhất.
Trang 101.4 Đối tượng sử dụng
Các cán bộ công nhân viên chức thuộc một tổ chức giáo dục nào đó muốn tham gia thay đổi để hoàn thiện hơn chương trình đào tạo có thể tham gia ứng dụng để tạo ra một bản thông tin chi tiết cho chương trình đào tạo.
Quản trị viên phía trung tâm muốn thực hiện các công việc quản lý cũng như cung cấp thông tin đến mọi người truy cập vào ứng dụng.
1.5 Phương pháp thực hiện
Phương pháp làm việc:
Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline dưới
sự hướng dẫn của giảng viên hướng dẫn.
Phương pháp nghiên cứu:
Phân tích nhu cầu sử dụng của đối tượng người dùng
Nghiên cứu tài liệu các công nghệ liên quan
Phương pháp công nghệ:
Tìm hiểu và ứng dụng các công nghệ như react flow, react pdf, … để hiện thực hóa các yêu cầu.
Quản lý source code thông qua Github
Sử dụng Google doc, Office 365 Word… để quản lý tiến trình và tài liệu
Trang 11Visual Studio Code
1.7 Kết quả mong đợi
Sơ đồ vẽ hoàn chỉnh và nhanh chóng không có dấu hiệu bị chậm hay delay Bản pdf hoạt động ổn định khi thực hiện thay đổi và tải xuống.
Các components trong app có giao diện thân thiện và dễ sử dụng
1.8 Hướng phát triển của đề tài.
Thêm các tính năng hỗ trợ tiện ích dành cho nội bộ phía trung tâm, cũng như người dung truy cập vào ứng dụng
Nâng cấp giao diện, thêm bộ chuyển đổi ngôn ngữ sang tiếng Anh
Nâng cấp source code, tăng tốc độ xử lý của Web nhanh chóng, ổn định
1.9 Kế hoạch làm việc
Thời gian thực hiện từ ngày 29/8/2023 đến ngày kết thúc Khóa luận tốt nghiệp Nhóm chia thành 2 giai đoạn cụ thể:
nhập và tích hợp ChatBot Dialogflow Gồm 4 sprint với thời gian mỗi
Trang 12sprint kéo dài 2 tuần:
Thời gian: 29/8/2023 – 8/4/2023
Sprint 1: Đăng ký đề tài, soạn đề cương chi tiết
Sprint 2: Khâu chuẩn bị, chuẩn bị tài liệu, chuẩn bị bản vẽ, xây dựng CSDL, xây dựng ChatBot
Sprint 3: Xây dựng ứng dụng, tập trung vào các phần liên kết (liên kết Database, liên kết Chatbot ), đồng bộ giữa Web và Mobile App.
Sprint 4: Lập trình các tính năng cơ bản của ứng dụng và chuẩn bị báo cáo giữa kỳ
Tìm hiểu và xác định phạm vi, hướng phát triển của đề tài Tìm hiểu và phân tích các yêu cầu nghiệp vụ của đề tài
Viết tài liệu, đề cương chi tiết
Xây dựng bản vẽ Xây dựng CSDL Xây dựng Chatbot với các thoại
cơ bản
Lập trình các tính năng cơ bản của ứng dụng
Trang 13Liên kết CSDL vào ứng dụng Liên kết Chatbot vào ứng dụng
Lập trình các tính năng cơ bản của ứng dụng
Chuẩn bị báo cáo giữa kỳ
Giai đoạn 2: Hoàn thiện các tính năng của ứng dụng, triển khai và kiểm
thử ứng dụng, viết báo cáo Gồm 4 sprint với thời gian mỗi sprint kéo dài 2 tuần:
Thời gian: 24/10/2023 – 5/12/2023 – kết thúc Khóa luận
Sprint 5: Hoàn thiện tính năng của ứng dụng và kiểm thử
Sprint 6: Hoàn thiện tính năng của ứng dụng và kiểm thử
Sprint 7: Hoàn thiện tính năng, kiểm thử và triển khai ứng dụng
Sprint 8: Tổng kiểm thử và viết báo cáo
tính năng của ứng dụng Kiểm thử ứng dụng
tính năng của ứng dụng Kiểm thử ứng dụng
Trang 14tính năng của ứng dụng Kiểm thử ứng dụng Triển khai ứng dụng
dụng đã triển khai Viết báo cáo
1.10 Phân công công việc:
Phân tích yêu cầu Kiểm thử ứng dụng Triển khai ứng dụng Chuẩn bị tài liệu, viết báo cáo
Xây dựng CSDL Liên kết CSDL Quản lý tiến độ
Lập trình Front-end Xây dựng bản vẽ
Tp.Hồ Chí Minh, ngày 28 tháng 12 năm 2023
Trang 15CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
2.1 ReactJS
Trang 16Hình 2.1: ReactJs
ReactJS là một thư viện JavaScript có tính hiệu quả và linh hoạt để xây dựng các thành phần giao diện người dùng (UI) có thể sử dụng lại ReactJS giúp phân chia các UI phức tạp thành các thành phần nhỏ (được gọi là component) Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook ReactJS ban đầu được phát triển và duy trì bởi Facebook và sau đó được sử dụng trong các sản phẩm của mình như WhatsApp & Instagram.
ReactJS được dùng để xây dựng các ứng dụng [single page application] (SPA) Một trong những điểm hấp dẫn của ReactJS là nó không chỉ được xây dựng bên phía clients mà còn sử dụng được bên phía server.
Trang 172.2 NodeJS
Hình 2.2: nodeJS
NodeJS là mã nguồn mở chạy trên môi trường V8 JavaScript runtime (một trình thông dịch JavaScript chạy cực nhanh trên trình duyệt Chrome) NodeJS giúp các nhà phát triển xây dựng các ứng dụng web một cách đơn giản và dễ dàng
mở rộng.
NodeJS có thể được dùng để xây dựng các loại ứng dụng khác nhau như các ứng dụng dòng lệnh, ứng dụng web, ứng dụng trò chuyện theo thời gian thực, máy chủ REST API Tuy nhiên, NodeJS thường được dùng chủ yếu để xây dựng các chương trình mạng như máy chủ web, tương tự như PHP, Java hoặc
ASP.NET.
Trang 18Vì đây là mã nguồn mở nên cho phép bạn sử dụng miễn phí và đồng thời được liên tục được chỉnh sửa, cải tiến bởi cộng đồng các nhà phát triển toàn cầu
2.3 MongoDB
Hình 2.3: mongoDB
MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa nền tảng viết bằng C++ Bản ghi trong MongoDB được lưu trữ dạng một dữ liệu văn bản (Document), là một cấu trúc dữ liệu bao gồm các cặp giá trị và trường tương tự như các đối tượng JSON MongoDB được phát triển bởi MongoDB Inc dưới dạng giấy phép Server Side Public License (SSPL).
MongoDB được bắt đầu phát triển vào đầu năm 2007 khi công ty 10gen đang phát triển một nền tảng tương tự dịch vụ Azure của Microsoft Công ty 10gen là một công ty phần mềm có trụ sở tại New York, nay được đổi tên thành
MongoDB Inc Việc phát triển ban đầu tập trung vào xây dựng PaaS (một nền tảng dịch vụ) nhưng sau đó vào năm 2009, MongoDB đã xuất hiện trên thị
Trang 19trường như một dự án mã nguồn mở máy chủ cơ sở dữ liệu và được duy trì bởi chính tổ chức này.
Tháng 3 năm 2010, MongoDB Inc đã tung ra sản phẩm sẵn sàng đầu tiên của mình là phiên bản 1.4 Phiên bản ổn định tiếp theo của MongoDB là phiên bản 2.4.9 được phát hành vào ngày 10 tháng 1 năm 2014.
Đầu năm 2015, phiên bản 3.0 được phát hành, cuối năm 2015 phiên 3.2 ra đời đi kèm với công cụ quản trị trên giao diện đồ họa MongoDB Compass.
Trang 20mình và trở thành một ngôn ngữ lập trình phổ biến trên nhiều nền tảng.
Một trong những điểm mạnh lớn của JavaScript là khả năng thao tác và tương tác với HTML và CSS Nó cho phép xử lý sự kiện, thay đổi nội dung trang mà không cần tải lại, và tạo ra các hiệu ứng đồ họa động Điều này tạo ra trải nghiệm người dùng mượt mà và tương tác trên các trang web và ứng dụng web.
JavaScript cũng được sử dụng rộng rãi trong phát triển ứng dụng web đơn trang (Single Page Applications - SPAs) và có thể chạy cả ở phía client và phía server (với Node.js) Nó hỗ trợ nhiều thư viện và framework như React, Angular, và Vue, giúp đơn giản hóa quá trình phát triển ứng dụng web phức tạp.
Ngôn ngữ này còn cho phép giao tiếp với các API (Application Programming Interface), cho phép truy cập và tương tác với các dịch vụ và tài nguyên từ các nguồn khác nhau Điều này làm cho JavaScript trở thành một ngôn ngữ lập trình linh hoạt và mạnh mẽ trong cả môi trường web và ngoài web.
JavaScript ngày nay không chỉ là một ngôn ngữ lập trình quan trọng cho việc xây dựng trang web mà còn là một công cụ quan trọng trong cả lĩnh vực phát triển ứng dụng di động và desktop Sự phổ biến và linh hoạt của JavaScript
đã đóng góp vào sức sống và sự đa dạng của ngôn ngữ lập trình hiện đại.
Trang 21CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
3.1 Kiến trúc mô hình mvc
Model: Lưu trữ tất cả dữ liệu của ứng dụng Bộ phận này là cầu nối giữa cơ sở
dữ liệu quản lý cả nhân và trình bày giao diện người dùng Cho phép người dùng
có thể nhập và xuất đến các cơ sở dữ liệu lần lượt theo quyền của họ khi cần thiết và dữ liệu sẽ được lưu dữ trên database.
View: giao diện người dùng, nơi người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các công thức truy vấn và ghi lại hoạt động của người dùng
để tương tác với Controller
Controller: xử lý yêu cầu từ người dùng thông qua View Từ đó, Controller gửi
dữ liệu hợp lý đến người dùng bằng các kết nối đến Model và trưng bày nó trên View cho người dùng
Hình 3.1: Sơ đồ mô hình MVC
Trang 223.2 Chi tiết các thành phần có trong hệ thống
dùng thực hiện các thao tác nhập/xuất dữ liệu Đồng thời, trong lúc sử dụng, thông báo cho người dùng nếu có lỗi xảy ra
dùng, kiểm tra tính đúng đắn theo ràng buộc và thực thi yêu cầu nếu điều kiện được đáp ứng
thông tin trung tâm
Bảng 3.2: Các thành phần trong hệ thống
3.3 Thiết kế cơ sở dữ liệu cơ bản ứng với từng thuộc tính trong bản PDF chương trình đào tạo.
Trang 24Bảng 3.3: Sơ đồ dữ liệu cơ bản
Trang 25Hình 4.2: sơ đồ use case của chức năng authentication
Short Description Người dùng đăng kí trở thành thành viên của Website để
thực hiện các chức năng cần thiết cho việc học tập
Pre-Conditions
Post-Conditions
Trang 26Main flow Người đăng ký phải cung cấp các thông tin sau đây:
● Name
● Password
● Confirm password
Người dùng click vào nút đăng ký
Hệ thống sẽ kiểm tra thông tin mà người dùng vừa nhập vào
Hệ thống sẽ gửi OTP, người dùng xác nhận mã OTP và tài khoản sẽ được tạo thành công
Alternative flow(s) Nếu thông tin người dùng không đúng, thiếu sót hoặc
không khớp với định dạng thì khi đó hệ thống sẽ thông báo lỗi Các trường hợp như là:
● Tài khoản đã tồn tại
● Confirm Password and Password không giống nhau
● Để trống thông tin
Trang 27Use-case Đăng nhập
Short Description Người dùng sử dụng chức năng đăng nhập để truy cập vào
tài khoản cá nhân trên trang web
Pre-Conditions Người dùng đã đăng ký tài khoản trước đó
Tài khoản của người dùng chưa bị vô hiệu hóa hoặc khoá
Post-Conditions Người dùng đăng nhập thành công và có thể sử dụng các
chức năng của trang web
Main flow 1 Người dùng truy cập trang đăng nhập trên trang web
2 Người dùng nhập thông tin đăng nhập:
● Mật khẩu
3 Người dùng click vào nút "Đăng nhập."
4 Hệ thống kiểm tra thông tin đăng nhập:
5 Nếu thông tin chính xác, tài khoản sẽ được đăng nhập
6 Nếu thông tin không chính xác, hệ thống thông báo lỗi vàyêu cầu người dùng nhập lại
Alternative flow(s)
Trang 28Use-case Cập nhật thông tin
Short Description Người dùng sử dụng chức năng cập nhật thông tin để tinh
chỉnh thông tin tài khoản
Pre-conditions Người dùng phải đăng ký và đăng nhập được vào trang chủ
của trang web
Post-Conditions Người dùng cập nhật thành công và thông tin được thay đổi vàlưu vào CSDL
Main flow 1 Người dùng chọn vào mục tài khoản
2 Người dùng nhập thông tin cần chính sửa