CHUONG 1: GIỚI THIỆU - __ Quản lý thông tin sinh viên - __ Quản lý thông tin hoc tap - __ Quản lý thông báo và học phí 1.3 Pham vi dé tai - Dé tai nay tập trung vào việc thiết kế vả triê
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
TRANG WEB DANG KY HOC
PHAN SINH VIEN
Trang 2
Báo cáo đồ án— Mơn Cơng nghệ mới trong PTUD CNTT
CHƯƠNG 2 : CƠ SỞ LÝ THUYÊT, 222:2222222211122231122231112711221 21.2 e2 4
2.6 Phân tích yêu cầu bằng UML 5-2 s1 2821111211 11111 1211 12212121, 6
2.6.2 Danh sách tác nhân và mơ tả - - 1 2222212211121 1221221 1181111111811 6
2.6.4 Tinh huống hoạt động L0 22121112111 21 1211 191111111112 111111 811k Hn ray 7
2.8 Deployment điàraim - 222 2201221121111 112211111151 111 11111101 0111101111 key 27 2.9 Giới thiệu và mục ổích c1 2112112221 12111211111 1111111111111 11 01 1122k re 28
PA ((N.©-ì.):8c.1'ƯẶỶVỶ 28
VI: a0 an 4 29 2.12 Chiến lược giải pháp - 2s s EE1221211212111112121111 12021211 29 2.13 Quyết định kiến trúc s1 s11 1111111111111 111111 1211111111 1 He 30
„Z8 c0 30
2.13.2 Ưu điểm/ nhược điểm ¿- 255222 2221112211222121112211111221 1.126 32
Trang 3
VN h9 àhaAaadaaiaaiaiaaaddiâdddâỶẢŸẢŸẢẢ 33
PA 5t 8n săấa 34
2.14.1 Kiến trúc của một hệ thống phần mềm (Software Architecture) 34
2.14.3 Phong cach kién tric (Architecture Style) s2 ss sec 2s 34
2.15 Tỉnh huống/ yêu cầu - 52-212 21212111112112112122 112212121 x re ng 35 2.16 Lợi ích/ đánh đỗi 5-522+22222221112211222112221122111271111112111212 1211 1 c6 36
2.16.7 Presentation Lay€f: Q02 02010211101 110111111 1111111111111 1 111111111 e2 36
CHƯƠNG 3 : HIỆN THỰC 2 1 2 1522211121212121212121 1121101112112 1e 38
3.1 Cấu hình phần cứng, phần mềm 22-21 ESEE19E11 1271112112121 21 1E xe 38
3.2 Giao didn ctha hé thong cece ccccsccssessesessseseseeseessesessesecseeseeseesessesesereses 38
CHƯƠNG 4 : KẾT LUẬN -222222222222221122221122711227111222111.21.1 21 ee 46
A.2 Han ché ctta d6 atrecccccccccccccccecscscscsesesesevevevsssesessseveevevecssssstvecstvavesusctvaveeseees 46
4.3 Huong phat ng ra .ẦẰẲdẦ3Ý'.ÝẢ 46
IV.1881008)57.0/89 (0 -‹‹‹4 47
Trang 4
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Trang 5
CHUONG 1: GIỚI THIỆU
- Quản lý thông tin sinh viên
- Quản lý thông tin hoc tap
- Quản lý thông báo và học phí
1.3 Pham vi dé tai
- Dé tai nay tập trung vào việc thiết kế vả triên khai một hệ thông quản lý lớp học tín chỉ cho sinh viên trường Đại học Công nghiệp thành phố Hồ Chí Minh
(TUH)
1.4 Mô tả yêu cầu chức năng
- Đăng nhập: sinh viên đăng nhập bằng mã sinh viên và mật khâu để vảo tài
khoản sinh viên
- Đăng xuất: sinh viên đăng xuất khỏi tài khoản sinh viên
- Lịch học theo tuần: Sinh viên xem lịch học theo tuần
- Lich thi: Sinh viên xem lịch thi của môn học phần
Trang 6
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
- Đăng ký học phần: sinh viên đăng ký theo học vào một lớp học phần nhất định (lớp tín chỉ) với số sinh viên được đăng ký tối đa được qui định cho từng lớp
học phần (tối đa 30 tín chỉ 1 hoc ki )
- Hủy học phần: Sinh viên hủy học phần đã đăng ký
- Xem kết quả học tập: Sinh viên xem thông tin học tập của mình (số tín chỉ đã đạt, số môn đã học, điểm môn học, điểm trung bình tích lùy )
- Tra cứu công nợ: Sinh viên xem công nợ
- Xem học phần đã đăng ký: Sinh viên xem học phần đã đăng ký 1.5 Yêu cầu phi chức năng
bảo vệ an toàn tuân thủ các quy định về quyền riêng tư
- _ Giao diện người dùng: Thân thiện, dé sử đụng, nhất quán và trực quan
- _ Độ tin cậy và khả năng sẵn sàng: Đáp ứng được một lượng lớn người dùng củng một lúc mà vẫn đảm bảo tính ổn định và sẵn sảng
-_ Khả năng mở rộng : Dê dàng thêm, sửa đôi các chức năng khi cân thiết
Trang 7
CHUONG 2: CO SO LY THUYET
2.1 Node.js
Node.js là một nền tảng JavaScript phía máy chủ, được xây dựng trên V§ JavaScript engine của Google Chrome Nó cho phép phát triển các ứng dụng mạng hiệu năng cao, có khả năng mở rộng lớn với kiến trúc sự kiện bat đồng bộ (asynchronous event-driven architecture)
2.3 TypeScipt
TypeScript là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Microsoft, là một siêu ngữ của JavaScript (superset of JavaScript) Nó bô sung các tính năng như kiểu tĩnh (static typing), các lớp (classes), và các module, giúp phát triển các ứng dụng JavaScript lớn và phức tạp đễ đảng hơn
Trang 8
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
2.4 Nodemailer
Nodemailer là một công cụ mạnh mẽ và dễ sử dụng cho việc gửi email trong ứng dụng Node.js Với khả năng hỗ trợ nhiều phương thức vận chuyên và tính năng linh hoạt, Nodemailer là lựa chọn hàng đầu cho việc gửi email trong môi trường Node.Js
nhiều tính năng bô sung khác Chính vì thế Axios đang là thư viện được sử dụng rất
phổ biến ở các ứng dụng web SPA hiện đại
Trang 9
: PHẦN TICH VA THIET KE
2.6 Phan tich yéu cau bang UML
2.6.1 Usecase tong quat
2.6.2 Danh sach tac nhan va m6 ta
Danh sách tác nhân và mô tả xem ở Bảng 3-1
Người dùng (User) là một vai trò quan trọng trong hệ thống
phần mềm quản lý học tập của trường học Đối tượng này bao gồm sinh viên hoặc bất kỳ ai được cấp quyền truy cập vào các tính năng học tập và quản lý cá nhân trên hệ thống Người dùng
có thể thực hiện nhiều tác vụ liên quan đến việc quản lý quá
trình học tập của mình một cách tiện lợi và hiệu quả Nền tảng
dễ sử dụng và hiệu quả, giúp người dùng quản lý các khía cạnh quan trọng của quá trình học tập, từ đăng ký học phần đến việc theo dõi lịch học và lịch thị, cũng như quản lý thông tin cá nhân
Trang 10Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Trang 12Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
|
|
| 2.1: Đặng nhập
Trang 14
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
User GUL! yiome GUI boon authCon troller
1: Chon dang xuat Ị
1.1: Đhng suất |
| [I.1.1: Chuyến về trang đãng
Trang 16Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
2: lich hoc theo tuan
2.1: Chuyén dén trang lich hoc theo tuan
Trang 172 Hé thong chuyén dén trang
1 Người dùng chọn lịch thi lịch thi
Trang 18Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
2.1: Chuyến đền trang lich thi
Trang 20Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
7.2 Quay lại bước 4
Trang 21User GUI_Home GUI_CourseRegistation registerControlier entity_Class
1: Chon họn dang đăng ký học phần _— ky hoc phd Ị i
1: Hién thị tranh đăng ký học phần
2 Hién thị thông báo chấp nhận hủy
Trang 22
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
4 Xóa học phần khỏi dsHocPhan
Trang 23
2.1: Xba hoe phần khói de|ocPhan của user deieleClass| d2, userlđ) >, 2.1.1: Save|UIser)
i 2.1.2: Debbie class success
Trang 24Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Trang 25
- — Activity
Trang 26
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Trang 28
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
1: Chọn tra cứu công nợ
alt 2: Xem thông tin công nợ ^
Trang 30Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Trang 32Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Trang 33Kiên trúc phan mém
(Thiết kế tài liệu theo mẫu arc42) 2.9 Giới thiệu và mục đích
2.9.2 Mục tiêu
- Tối ưu hóa quá trình đăng ký học phần
- Quản lý thông tin học tập
- Quản lý thông tin sinh viên 2.10 Ràng buộc
- Mỗi học kỳ sinh viên được đăng ký tối đa 30 tín chỉ Nếu quá số này, hệ
thống sẽ không cho đăng ký
Nhóm 15 32 Lop DHKTPMI6A
Trang 34
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
- Sinh viên đăng ký theo học vào một lớp nhất định (lớp tín chỉ) với số sinh viên được đăng ký tối đa được qui định cho từng lớp
- Trường hợp các lớp đã day, sinh viên sẽ được đưa vào một danh sách dự bị
để nhà trường cân nhắc có mở thêm lớp hay không Nếu không mớ thêm lớp, sinh
viên sẽ bị hủy đăng ký môn đó
- Sau khi đăng ký thành công, một email thông bảo sẽ được gửi cho sinh viên xác nhận việc đăng ký và nhận quyết định đóng học phí
- Hệ thông cần cho phép sinh viên đăng ký xét tốt nghiệp khi đã đạt đủ số tín chỉ theo yêu cầu của từng ngành học
- Hệ thống cần cung cấp các chức năng để sinh viên có thể xem thông tin về số tín chỉ đã đạt, số môn đã học, điểm môn học, điểm trung bình tích lũy, và thời khóa biểu
2.11 Bồi cảnh và phạm vi
- Thiết kế Giao diện Thân thiện Người dùng (UI/UX): Giao diện người dùng
phải được thiết kế sao cho đễ sử dụng và thân thiện với người dùng cuối,
bao gồm cả sinh viên và nhân viên quản lý hệ thống Các nút chức năng,
biểu mẫu và thông tin phải được tổ chức một cách logic để tôi ưu trải
nghiệm người dùng
- Dap ung (Responsive Design): Giao điện cần có khả năng tự điều chỉnh và
thích nghi với kích thước màn hình khác nhau, từ màn hình máy tính lớn
đến màn hình điện thoại di động nhỏ
- _ Bảo mật Dữ liệu (Data Security): Giao diện cần có các biện pháp bảo mật mạnh mẽ để đảm bảo an toàn cho dữ liệu cá nhân của sinh viên và thông tin quan trọng của hệ thống
- _ Hiệu suất và Tốc độ (Performance and Speed): Giao diện phải được tối ưu hoa dé tăng hiệu suất và tốc độ tai trang, øiúp người dùng trải nghiệm mượt
mà và không øặp trở ngại
- = Tích hợp Hệ thong và Dịch vụ Bên Ngoai (Integration with External Systems and Services): Giao dién cần có khả năng tích hợp với các hệ thống và dịch vụ bên ngoài khác chẳng hạn email
Nhóm 15 33 Lop DHKTPMI6A
Trang 35
Tương thích Duyệt Web (Browser Compatibility): GIao diện phải hoạt động tốt trên các trình duyệt web phô biến như Google Chrome, Mozilla Firefox, Safari và Microsoft Edge để đảm bảo mọi người dùng đều có thế truy cập mà không gặp vấn đề
2.12 Chiến lược giải pháp
Sử dụng các công nghệ như React.Js xây dựng giao diện người dùng tương tác
Sử dụng Node.js để xây dựng các API backend đề giao tiếp với Presentation Layer
Sử dụng MoneoDB để lưu trữ đữ liệu, vì MongoDB phù hợp với dữ liệu
không cần quan hệ vả có thể mở rộng dễ dàng
Sử dung MongoDB Node.js Driver để kết nối và thao tác với cơ sở dữ liệu MongoDB
Sử dụng nodemailer để gửi email từ hệ thống
Sử dụng thuật toán hashcode (ví dụ: bcrypt) để bảo mật mật khâu của ngudl dùng trong cơ sở đữ liệu
Sử dụng Git để quản lý mã nguồn của dự án, bao gồm việc theo dõi các phiên bản, quản lý nhánh và hợp nhất mã nguồn
tốt các yêu cầu và tình huống cụ thể trên bằng cách chia ứng dụng thảnh các lớp
giao diện người dùng, logic và dữ liệu Điều này giúp tách biệt các phần của hệ
thống và đễ dàng quản lý, mở rộng và bảo trì Ví vậy chọn mô hình kiến trúc 3-layer
architecture cho việc hiện thực ứng dụng:
Presentation Layer:
Trang 36
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
- - Giao diện thân thiện: Phải có giao diện dễ sử dụng và hiệu quả để sinh viên có thể đăng ký môn học một cách nhanh chóng và đễ dàng Business Layer:
- _ Xử lý loeic nghiệp vụ, bao gồm kiểm tra số lượng sinh viên đăng ký và quản lý danh sách chờ
- _ Xử lý đồng thời nhiều yêu cầu: Hệ thống cần xử lý đồng thoi hang ngan
yêu cầu đăng ký môn học từ các sinh viên trong thời gian ngắn
- Tinh nhat quan va dang tin cậy: Đảm bảo tính nhất quán của dữ liệu và
hoạt động của hệ thống, tránh trường hợp trùng lặp đăng ký hoặc mắt
dữ liệu
bị khi lớp học đây và quyết định mở thêm lớp dựa trên nhu cầu của sinh viên
Data Layer:
quan
chóng để đảm bảo trải nghiệm người dùng tốt
quan trọng khác trên cơ sở đữ liệu
- - Dự phòng và phục hỏi: Có hệ thống đự phòng và phục hồi đữ liệu để dam bao không mất đữ liệu quan trọng trong trường hợp sự cố xảy ra Tổng quan:
- _ Khả năng mở rộng: Hệ thống cần có khả năng mở rộng để có thể chứa đựng và xử lý số lượng lớn đữ liệu vả người dùng
hoat dé dé dang bao tri và nâng cấp khi cần thiết
Trang 37
không ảnh hưởng đến các phần khác của hệ thống, giúp dễ dàng mở rộng hệ thông theo yêu câu mới
Trang 38
Báo cáo đồ án— Môn Công nghệ mới trong PTUD CNTT
Tính tái sử dụng cao: Các lớp có thể được tái sử dụng trong các phần khác của ứng dụng hoặc thậm chí trong các dự án khác, giảm thiểu công sức phát triên và bảo trì
Dễ bảo trì và kiểm thử: Do mỗi lớp độc lập với các lớp khác, việc bảo trì và kiếm thử trở nên dễ dàng hơn
Hiệu suất cao: Cầu trúc lớp giúp tôi ưu hóa hiệu suất vì mỗi lớp chỉ chịu trách nhiệm cho một phần nhất định của logic
2.13.2.2 Nhược điểm
Khả năng chồng chéo (Overlap): Có thể xảy ra tình trạng một số logic hoặc tính năng được triển khai ở nhiều lớp, dẫn đến việc phức tạp hóa
mã nguồn và khó khăn trong việc bảo trì
Khó khăn trong quản lý các phụ thuộc: Các lớp có thê phụ thuộc lẫn nhau một cách phức tạp, đặc biệt khi có các yêu cầu động và thay đôi thường xuyên
Khả năng không linh hoạt: Cấu trúc lớp có thê làm hạn chế sự linh hoạt
khi cần thay đôi logic hoặc tính năng một cách nhanh chóng
Phức tạp trong triển khai ban đầu: Việc phân chia hệ thống thành các lớp có thê đòi hỏi thời gian và kỹ năng trong quá trình triển khai ban đầu
Chi phí và tài nguyên: Mô hình layer có thể đòi hỏi chỉ phí va tai
nguyên lớn hơn cho việc phát triển và bảo trì hệ thống so với các mô hình đơn giản hơn
2 13.3 Quy trình
1 User sử dụng các chức năng ở WebForm( GUI) trong tầng
registrationROutes) tương ứng trong tầng Business Layer
Routes định tuyến các yêu cầu từ WebForm đến các controller (authController, registrationController) trong tng
Trang 39
3 Controller xử lý yêu cầu từ WebForm, xác định hành động cần thực hiện và gọi các phương thức tương ứng đến Model(Account, User, Class, Subject) để thực hiện logic kinh doanh
4 Model tuong tac véi co so dir ligu (MongoDB) tang Data dé truy xuat
và cập nhật dữ liệu ứng với yêu cầu từ Controller
5 Kết quả được trả về từ MongoDB được chuyền lại qua Controller, Routes và WebForm đề hiến thị cho người dùng
2.14 Khái niệm
2.14.1 Kiến trúc của một hệ thống phần mềm (Software Architecture)
Kiến trúc của một hệ thống phần mềm (Software Architecture) mô tả các thành phần chính của nó, các mỗi quan hệ của các thành phần và cách chúng tương tác với nhau
Kiến trúc đóng vai trò như một bản thiết kế cho một hệ thống Nó cung cấp một sự trừu tượng để quản lý độ phức tạp của hệ thống và thiết lập một cơ chế giao tiếp và phối hợp giữa các thành phân
2.14.2 Thiết kế phần mềm (Software Design)
Thiết kế phần mềm cung cấp một kế hoạch thiết kế mô tả các phan tu cua hé thống, cách chúng phủ hợp và làm việc cùng nhau để đáp ứng yêu cầu của hệ thống Các mục tiêu của việc có một kế hoạch thiết kế như sau:
« _ Để thương lượng các yêu cầu hệ thống và đặt kỳ vọng với khách hàng, nhân viên tiếp thị và quản ly
‹« _ Hoạt động như một bản thiết kế trong quá trình phát triển
‹ _ Hướng dẫn các tác vụ triển khai, bao gồm thiết kế chỉ tiết, mã hóa, tích hợp và thử nghiệm
2.14.3 Phong cách kiến trúc (Architecture Style)
Phong cách kiến trúc (Architecture Style) đề cập đến cách tô chức và thiết kế cấu trúc của một hệ thông phần mềm Các architecture style định nghĩa các mẫu tổ chức và liên kết các thành phần phần mềm để đạt được các mục tiêu nhất định về hiệu suât, bảo trì, mở rộng, và sự linh hoạt