HYPERLINK \l _bookmark0 LỜI CẢM ƠN.............................................................1 TÓM TẮT...........................................................................................................................2 LỜI CAM ĐOAN...............................................................................................................3 MỤC LỤC...........................................................................................................................4 DANH SÁCH BẢNG..........................................................................................................6 DANH SÁCH TỪ VIẾT TẮT.........................................................................................10 MỞ ĐẦU............................................................................................................................11 CHƯƠNG 1. GIỚI THIỆU CHUNG..............................................................................13 1.1. Mô tả hệ thống.........................................................................................................15 1.1.1. Đầu vào của hệ thống........................................................................................15 1.1.2. Các tính năng hỗ trợ chính của hệ thống...........................................................15 1.2. Phân tích các ứng dụng tương tự..............................................................................16 1.2.1. Ứng dụng “Cố vấn học tập Starfish”.................................................................16 1.2.2. Ứng dụng “Cố vấn sinh viên” của UEH (trường Đại học Kinh Tế thành phố Hồ Chí Minh)...........................................................................................................18 CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ..........................................................................20 2.1. Tổng quan hệ thống..................................................................................................20 2.2. Tầng CSDL..............................................................................................................22 2.2.1. Giới thiệu tổng quan..........................................................................................22 2.2.2. Phân tích, thiết kế CSDL...................................................................................23 2.3. Tầng máy chủ...........................................................................................................38 2.3.1. Các công nghệ sử dụng......................................................................................38 2.3.2. Laravel Framework............................................................................................38 5 2.3.3. Pusher................................................................................................................40 2.3.4. AWS S3 Storage................................................................................................40 2.3.5. Các chức năng ở tầng máy chủ..........................................................................41 2.3.6. Giao tiếp giữa tầng máy chủ và tầng giao diện..................................................48 2.4. Tầng giao diện..........................................................................................................56 CHƯƠNG 3. CÀI ĐẶT VÀ KIỂM THỬ HỆ THỐNG................................................58 3.1. Xây dựng hệ thống máy chủ....................................................................................58 3.2. Đăng kí và sử dụng dịch vụ AWS S3......................................................................58 3.3. Đăng kí và sử dụng dịch vụ Pusher..........................................................................59 3.4. Đăng kí webhosting và xây dựng hệ thống trên nền tảng hosting...........................60 3.5. Kiểm thử hệ thống....................................................................................................61 KẾT LUẬN.......................................................................................................................73 THAM KHẢO..................................................................................................................7
Trang 1HỌC TẬP CHO SINH VIÊN
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Khoa học máy tính
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Anh Tuấn
XÂY DỰNG HỆ THỐNG HỖ TRỢ CÔNG TÁC CỐ VẤN
HỌC TẬP CHO SINH VIÊN
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Khoa học máy tính
Cán bộ hướng dẫn: TS Nguyễn Thị Hậu
Trang 3LỜI CẢM ƠN
Đầu tiên, em xin được gửi lời cảm ơn chân thành tới cô Nguyễn Thị Hậu vì đã luôn
hỗ trợ, đồng hành và không ngại ngần dành thời gian hướng dẫn em trong quá trình làmkhoá luận
Đồng thời, em xin gửi lời cảm ơn cũng như sự biết ơn của em tới toàn thể thầy, côgiáo công tác tại trường Đại Học Công Nghệ nói chung, và các thầy, cô giáo công tác tạikhoa Khoa học máy tính nói riêng Em trân trọng mọi kiến thức, công sức của các thầy côtrên giảng đường trong suốt bốn năm của em tại trường Đại Học Công Nghệ Những kiếnthức đó sẽ là một bước đệm vững chắc cho em trước khi bước vào sự nghiệp
Cuối cùng, tôi xin gửi lời cảm ơn tới các bạn sinh viên tại trường Đại Học CôngNghệ, các bạn đã luôn đồng hành cùng tôi và giúp đỡ lẫn nhau trong những năm sinh viênđáng nhớ này Cuối cùng, con xin gửi lời cảm ơn chân thành nhất tới bố, mẹ, gia đình đãluôn yêu thương ủng hộ và tạo điều kiện tốt nhất cho con được học tập và trưởng thành
Em xin chân thành cảm ơn!
Trang 4TÓM TẮT
Tóm tắt: Với sự bùng nổ và phát triền vượt bậc của công nghệ ngày nay, con người nói chung và
sinh viên nói riêng đã có một sự tiếp xúc dễ dàng tới thông tin, từ đó dễ dàng có thể tìm hiểu, họctập về mọi thứ, mọi ngành nghề Dù vậy, để có thể thật sự tận dụng được lợi ích của công nghệ,chúng ta cần hiểu rất rõ những gì nên học, những gì nên bỏ qua Trong mội trường đại học CôngNghệ, các bạn sinh viên có rất nhiều cách khác nhau để quản lý thời gian, công việc để nâng caokết quả học tập của mình Song, sự kết nối giữa sinh viên và giảng viên chưa thật sự vững chắc.Nhằm nâng cao hiệu quả giao tiếp, quản lý thời gian trong công việc học tập của sinh viên trườngĐại học Công Nghệ, khoá luận tốt nghiệp này sẽ xây dựng một ứng dụng để giúp nâng cao hiệuquả giao tiếp và cung cấp một số tính năng giúp sinh viên có thể quản lý thời gian, công việc họctập một cách dễ dàng, hiệu quả và tiết kiệm thời gian hơn Mục tiêu cuối cùng của ứng dụng sẽ làcung cấp bộ ứng dụng thân thiên, dễ sử dụng giúp sinh viên và giảng viên có thể làm việc, họctập với nhau hiệu quả hơn
Từ khóa: Ứng dụng hỗ trợ sinh viên, student advisor,
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan khóa luận tốt nghiệp này là do tôi tự tìm hiểu, nghiên cứu và trìnhbày dưới sự hướng dẫn của Tiến sĩ Nguyễn Thị Hậu, không có sự sao chép công trìnhnghiên cứu của người khác Tất cả những tài liệu tham khảo đã được liệt kê rõ ở phầncuối của khóa luận Tôi cam kết những nội dung tham khảo nằm trong giới hạn, phạm vicho phép theo quy chế của trường Nếu không đúng sự thật, tôi xin hoàn toàn chịu tráchnhiệm
Tác giả khóa luận
Nguyễn Anh Tuấn
Trang 6MỤC LỤC
HYPERLINK \l "_bookmark0" LỜI CẢM ƠN 1
TÓM TẮT 2
LỜI CAM ĐOAN 3
MỤC LỤC 4
DANH SÁCH BẢNG 6
DANH SÁCH TỪ VIẾT TẮT 10
MỞ ĐẦU 11
CHƯƠNG 1 GIỚI THIỆU CHUNG 13
1.1 Mô tả hệ thống 15
1.1.1 Đầu vào của hệ thống 15
1.1.2 Các tính năng hỗ trợ chính của hệ thống 15
1.2 Phân tích các ứng dụng tương tự 16
1.2.1 Ứng dụng “Cố vấn học tập Starfish” 16
1.2.2 Ứng dụng “Cố vấn sinh viên” của UEH (trường Đại học Kinh Tế thành phố Hồ Chí Minh) 18
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ 20
2.1 Tổng quan hệ thống 20
2.2 Tầng CSDL 22
2.2.1 Giới thiệu tổng quan 22
Trang 72.3.3 Pusher 40
2.3.4 AWS S3 Storage 40
2.3.5 Các chức năng ở tầng máy chủ 41
2.3.6 Giao tiếp giữa tầng máy chủ và tầng giao diện 48
2.4 Tầng giao diện 56
CHƯƠNG 3 CÀI ĐẶT VÀ KIỂM THỬ HỆ THỐNG 58
3.1 Xây dựng hệ thống máy chủ 58
3.2 Đăng kí và sử dụng dịch vụ AWS S3 58
3.3 Đăng kí và sử dụng dịch vụ Pusher 59
3.4 Đăng kí webhosting và xây dựng hệ thống trên nền tảng hosting 60
3.5 Kiểm thử hệ thống 61
KẾT LUẬN 73
THAM KHẢO 74
Trang 8DANH SÁCH BẢNG
Bảng 2.1 Thông tin bảng user 24
Bảng 2.2 Thông tin bảng event 26
Bảng 2.3 Thông tin bảng event_member 26
Bảng 2.4 Thông tin bảng event_invitations 27
Bảng 2.5 Thông tin về bảng plan 28
Bảng 2.6 Thông tin về bảng plan_member 29
Bảng 2.7 Thông tin về bảng ch_messages 29
Bảng 2.8 Thông tin về bảng notifications 30
Bảng 2.9 Thông tin về bảng system_notifications 31
Bảng 2.10 Thông tin về bảng departments 33
Bảng 2.11 Thông tin về bảng class_ 34
Bảng 2.12 Thông tin về bảng class_roles 34
Bảng 2.13 Thông tin về bảng subjects 35
Bảng 2.14 Thông tin về bảng intakes 37
Bảng 2.15 Thông tin về bảng intake_members 38
Bảng 2.16 Bảng mô tả dữ liệu đầu vào của API login 50
Bảng 2.17 Mô tả tham số truy vấn sự kiện của người dùng 54
Bảng 2.18 Mô tả tham số truy vấn thông báo của người dùng 55
Trang 9DANH SÁCH HÌNH ẢNH
Hình 1.1 Biểu đồ thể hiện sinh viên học sai ngành, trái ngành 14
Hình 1.2 Hình minh họa hệ thống cố vấn sinh viên Starfish 17
Hình 1.3 Hình ảnh ứng dụng cố vấn sinh viên UEH 18
Hình 2.1 Kiến trúc tổng quan của hệ thống 21
Hình 2.2 Mô tả cách lấy dữ liệu từ hệ thống trường Đại học Công Nghệ 22
Hình 2.3 Lược đồ CDSL quan hệ của hệ thống 23
Hình 2.4 Dữ liệu của bảng user 25
Hình 2.5 Dữ liệu của bảng event 26
Hình 2.6 Dữ liệu của bảng event_member 27
Hình 2.7 Dữ liệu của bảng event_invitations 27
Hình 2.8 Dữ liệu của bảng plan 28
Hình 2.9 Dữ liệu của bảng plan_member 29
Hình 2.10 Dữ liệu của bảng ch_messages 30
Hình 2.11 Dữ liệu của bảng notifications 31
Hình 2.12 Dữ liệu của bảng system_notifications 32
Hình 2.13 Cấu trúc dữ liệu các bảng nắm thông tin của hệ thống trường Đại học Công Nghệ 32
Hình 2.14 Dữ liệu của bảng departments 33
Hình 2.15 Dữ liệu của bảng class_ 34
Hình 2.16 Dữ liệu của bảng class_roles 35
Hình 2.17 Dữ liệu của bảng subjects 36
Hình 2.18 Dữ liệu của bảng intakes 37
Hình 2.19 Dữ liệu của bảng intake_members 38
Trang 10Hình 2.21 Mô tả các chức năng ở tầng máy chủ 42
Hình 2.22 Biểu đồ hoạt động cho tính năng Đăng nhập 42
Hình 2.23 Biểu đồ hoạt động cho tính năng xem thông báo hệ thống 43
Hình 2.24 Biểu đồ hoạt động cho tính năng xem, quản lý dữ liệu lịch, sự kiện 44
Hình 2.25 Biểu đồ hoạt động cho tính năng chat 45
Hình 2.26 Biểu đồ hoạt động cho tính năng xem, quản lý dữ liệu lớp học theo môn, tạo lịch hẹn, gửi email 46
Hình 2.27 Biểu đồ hoạt động cho tính năng xem, quản lí kế hoạch 47
Hình 2.28 Biểu đồ hoạt động cho tính năng quản lí dữ liệu hệ thống 48
Hình 2.29 Sơ đồ mô tả phương thức hoạt động của REST API 49
Hình 2.30 Hình ảnh response thành công của API login 50
Hình 2.31 Hình ảnh response thành công của API lấy departments 51
Hình 2.32 Hình ảnh response thành công của API lấy danh sách lớp theo môn học của người dùng 52
Hình 2.33 Hình ảnh response thành công của API lấy thông tin giảng viên của lớp theo môn học 53
Hình 2.34 Hình ảnh response thành công của API đếm số tin nhắn chưa đọc 53
Hình 2.35 Hình ảnh response thành công của API lấy danh sách sự kiện của người dùng. .54
Hình 2.36 Hình ảnh response thành công của API lấy danh sách thông báo của người dùng 55
Hình 2.37 Hình ảnh response thành công của API đánh dấu thông báo là đã đọc 56
Hình 3.1 Cấu hình Laravel framework 58
Trang 11Hình 3.6 Màn hình dashboard webhosting của hệ thống 60
Hình 3.7 Màn hình đăng nhập của hệ thống 61
Hình 3.8 Màn hình thể hiện kết qủa tìm kiếm người dùng và sự kiện 62
Hình 3.9 Màn hình hiển thị danh sách sự kiện hiện có và tính năng chỉnh sửa, huỷ sự kiện. .62
Hình 3.10 Hình ảnh thể hiện cách đánh dấu tham gia hay quan tâm sự kiện 63
Hình 3.11 Hình ảnh chi tiết thông tin của sự kiện 63
Hình 3.12 Hình ảnh thể hiện thông báo real-time của hệ thống 64
Hình 3.13 Hình ảnh thể hiện tính năng chat real-time 64
Hình 3.14 Hình ảnh thể hiện tính năng tạo lịch hẹn, gửi email 65
Hình 3.15 Màn hình danh sách kế hoạch 65
Hình 3.16 Màn hình chi tiết kế hoạch 66
Hình 3.17 Màn hình danh sách thông báo hệ thống 66
Hình 3.18 Màn hình chi tiết thông báo hệ thống 67
Hình 3.19 Màn hình bảng điều khiển của quản trị hệ thống 67
Hình 3.20 Màn hình danh sách khoa của trường Đại Học Công Nghệ 68
Hình 3.21 Màn hình danh sách lớp học của trường Đại Học Công Nghệ 68
Hình 3.22 Màn hình chi tiết lớp học của trường Đại Học Công Nghệ 69
Hình 3.23 Màn hình chi tiết lớp học theo môn của trường Đại Học Công Nghệ 69
Hình 3.24 Màn hình import dữ liệu của quản trị 70
Hình 3.25 Màn hình import dữ liệu của quản trị sau khi import thành công 71
Hình 3.26 Màn hình thông tin sinh viên được import vào hệ thống 71
Hình 3.27 Màn hình thông lớp theo môn học được import vào hệ thống 72
Trang 12DANH SÁCH TỪ VIẾT TẮT
API: Application Programming Interface - Giao diện lập trình ứng dụng.
CPU: Central Processing Unit – Bộ xử lý trung tâm.
CSDL: Cơ sở dữ liệu.
GPU: Graphics Processing Unit - Đơn vị xử lý đồ họa.
JSON: JavaScript Object Notation - Ký hiệu đối tượng JavaScript.
KLTN: Khóa luận tốt nghiệp.
MVC: Model – View – Controller.
mySQL: hệ thống quản trị về cơ sở dữ liệu với mã nguồn mở (được gọi tắt là RDBMS) và
đang hoạt động theo mô hình dạng client-server
ORM: Object–relational mapping – Ánh xạ quan hệ giữa các đối tượng.
REST: Representational state transfer.
SQL: Structured Query Language – Ngôn ngữ truy vấn có cấu trúc.
URL: Uniform Resource Locator - Định vị thống nhất tài nguyên.
Trang 13MỞ ĐẦU
Cùng với sự phát triển vượt bậc của mọi ngành nghề trong xã hội hiện tại, giáo dụcluôn là một chủ đề nóng hổi của những nhà lãnh đạo Khi mà nền giáo dục đang khôngngừng phát triển, mối quan hệ giữa sinh viên và nhà trường chính là nền tảng của sự thànhcông trong học tập Để nâng cao hiệu của làm việc giữa sinh viên và nhà trường, cả haibên phải đối mặt với vô số thách thức trên hành trình tiếp thu và phổ cập kiến thức
KLTN này được làm với mục tiêu cuối cùng là đưa ra một giải pháp để nâng cao hiệu quảcủa mối liên hệ giữa sinh viên và giảng viên trường Đại Học Công Nghệ Với mục tiêunêu trên, KLTN đã lên ý tưởng, thiết kế và triển khai một ứng dụng web có tính chuyểnđổi – Cố vấn Sinh viên Với thực trạng hiện nay, hệ thống Cố vấn Sinh viên đã xuất hiện
và đi vào sử dụng ở nhiều trường Đại học bên nước ngoài nhưng ở Việt Nam, chưa cónhiều trường Đại Học phát triển và sử dụng hệ thống tương tự Nền tảng đổi mới nàykhông chỉ tìm cách giải quyết những mối quan tâm đã tồn tại sẵn; ứng dụng còn cung cấpmột số tính năng nhằm giúp đỡ sinh viên trường Đại Học Công Nghệ nâng cấp hiệu quảquản lý thời gian cũng như khối lượng công việc học tập Các giải pháp, tính năng ứngdụng đưa ra bao gồm: cung cấp một kênh chat riêng giữa các sinh viên với nhau và giữasinh viên với giảng viên; lịch cá nhân của sinh viên, giảng viên, giúp tăng hiệu quả quản
lý thời gian, lịch học, lịch dạy cá nhân; tính năng tạo kế hoạch giúp giảng viên và sinhviên dễ dàng quản lý đầu việc cần làm, phân bổ công việc
Với sự thay đổi không ngừng của giáo dục, việc giao tiếp hiệu quả giữa sinh viên là nhàtrường là yếu tố không thể thiếu Ứng dụng Cố vấn Sinh viên không chỉ là sự can thiệpcủa công nghệ; đó là một giải pháp hiệu quả đối với nhu cầu và nguyện vọng ngày càngtăng của người học cũng như người cố vấn
Sau cùng, ứng dụng Cố vấn Sinh viên hướng đến mục tiêu không chỉ là một giải pháp; đó
là một tầm nhìn, một chiếc la bàn hướng dẫn giới học thuật hướng tới nâng cao hiệu quả,tăng cường sự tham gia và cuối cùng là nâng cao trải nghiệm giáo dục
Trang 14● Chương 1: Trong chương này, KLTN sẽ giới thiệu về bài toán của ứng dụng cố
vấn sinh viên Bên cạnh đó cũng chỉ ra các điểm mạnh, điểm yếu của một số ví dụcác hệ thống tương tự khác để từ đó có thể từng bước hoàn thiện hơn với khóa luậnnày
● Chương 2: Trong Chương 2, KLTN sẽ trình bày về việc phân tích và thiết kế hệ
thống cố vấn sinh viên
● Chương 3: Nội dung Chương 3 sẽ tập trung vào việc cài đặt và đánh giá hệ thống,
các kết quả đạt được ở chương trước
● Chương 4: Đưa ra kết luận và hướng phát triển trong tương lai của ứng dụng.
Trang 15CHƯƠNG 1 GIỚI THIỆU CHUNG
Hiện nay, các trường Đại Học trên thế giới nói chung hay trong Việt Nam nói riêngđều đang có triền khai các nền tảng cố vấn học tập nhắm cải thiện hiệu quả học, hướng tớimột sự phát triển bền vững giữa sinh viên và nhà trường
Theo một kết quả khảo sát gần đây của Viện nghiên cứu đào tạo kinh tế quốc tế (Thànhphố Hồ Chí Minh), có tới 15-20% sinh viên nhận ra mình chọn sai ngành nghề sau khi ratrường Một con số thể hiện điều này có thể nói tới đó là số sinh viên bị cảnh báo học vụ,đình chỉ học tập hàng năm (10-23%) Bên cạnh đó, năm 2019, trung tâm dự báo nhu cầunhân lực và thông tin thị trường lao động thành phố Hồ Chí Minh nói rằng tỉ lệ sinh viênchọn sai ngành lên tới 60%
Giáo dục là chìa khoá dẫn tới thành công của một quốc gia, là lĩnh vực mà lúc nào cũngđược quan tâm bậc nhất Từ những con số trên, chúng ta có thể thấy việc cố vấn cho sinhviên là một việc bắt buộc cần làm để giúp sinh viên có cái nhìn đúng đắn nhất khi đưa ralựa chọn về ngành nghề cũng như kế hoạch học tập của bản thân để có thể tiết kiệm ítnhất thời gian mà vẫn đưa ra được lựa chọn đúng đắn về sự nghiệp sau này
Việc lựa chọn sai ngành hay kết quả học tập không được như ý có thể đến từ rất nhiều lýdo
Trang 16Hình 1.1 Biểu đồ thể hiện nguyên nhân sinh viên học sai ngành, trái ngành
Có thể thẩy, tới gần 50% số sinh viên được phỏng vẩn cho rằng lý do sinh viên chọn saingành, trái ngành là do chưa được định hướng cụ thể, rõ ràng, từ đó đưa ra lựa chọn chưachính xác cho bản thân mình Vì vậy, đòi hỏi một hệ thống có thể giúp sinh viên kết nối, giaotiếp, nhận thông tin để có thể hiểu rõ hơn về mục tiêu học tập, định hướng của bản thân
Bài toán này hướng đến một ứng dụng có thể giải quyết vấn đề nêu trên Ngoài ra, sau khisinh viên đã có hiểu biết về ngành học, định hướng của bản thân thì ứng dụng vẫn là một nơisinh viên có thể dựa vào để tìm sự trợ giúp từ các giảng viên trong trường từ các sự kiện,webinar Hơn thể nữa, sinh viên được cung cấp các dụng cụ để tự quản lý được công việc, thời
Trang 171.1 Mô tả hệ thống
1.1.1 Đầu vào của hệ thống
KLTN sẽ xây dựng hệ thống cố vấn sinh viên với yêu cầu các đầu vào sẽ bao gồm các thông tin sau:
Dữ liệu sinh viên, giảng viên, khoa, môn học, lịch học, điểm số của sinh viên (các
dữ liệu này sẽ được cung cấp bởi một API do KLTN tự cung cấp nhằm đảm bảo tinh thực tế của bài toán)
1.1.2 Các tính năng hỗ trợ chính của hệ thống
Để có thể mô tả tính năng của hệ thống một cách tổng quan và chi tiết, KLTN sẽtách danh sách các tính năng dựa trên ba vai trò của người dùng trong hệ thống, trong đóbao gồm: giảng viên (teacher), sinh viên (student), quản trị hệ thống (admin)
Các tính năng dành cho giảng viên và sinh viên:
Từ các thông tin được trả về từ API trên, hệ thống giúp giảng viên, sinh viên có thểlogin vào bằng email của minhg Dựa trên thông tin môn học, lịch học của từng cá nhân,
hệ thống sẽ xây lên một thời khoá biểu tương ứng Bên cạnh thông tin môn học thực tếcủa sinh viên hay giảng viên, lịch cá nhân này còn có thể hiện các sự kiện, webinar haycác cuộc hẹn cá nhân mà sinh viên hay giảng viên đó có tham gia
Ngoài tính năng liên quan tới sự kiện, tạo lịch hẹn, ứng dụng còn hỗ trợ sinh viên cóthể tìm kiếm giảng viên, bạn cùng lớp để tạo cuộc hội thoại thời gian thực Tính năng nàygiúp sinh viên có thể kết nối với giảng viên hay bạn bè một cách bảo mật và riêng tư.Bằng cách này, sinh viên có thể giao tiếp, đặt câu hỏi với giảng viên một cách thoải mái,thuận lợi hơn Riêng với tài khoản sinh viên, sinh viên có thể bật hay khoá tính năng tìmkiếm từ sinh viên khác nhằm bảo vệ thông tin cá nhân của sinh viên
Một tính năng khác ứng dụng cung cấp là tính năng tạo kế hoạch, lên đầu mục côngviệc cho bản thân hay cho một nhóm Tính năng này giúp sinh viên quản lý đầu mục côngviệc một cách hiệu quả hơn, từ đó có thể tiết kiệm thời gian cho công việc khác Mộttrong những kỹ năng mà sinh viên cần học trong 4 năm đại học là kỹ năng làm việc nhóm,tính năng này cũng giúp sinh viên có thể tạo kế hoạch cho nhóm, từ đó, phát triển kĩ năngmềm này
Trang 18Các tính năng dành cho giảng viên:
Một tính năng nữa dành cho giảng viên trong ứng dụng là tính năng xem điểm sốcủa sinh viên trong một lớp học Các sinh viên có điểm số thấp hơn hay bằng 6 sẽ đượcbôi đỏ, giúp giảng viên dễ nhận biết, từ đó có thể đưa ra hành động hợp lý Giảng viêncũng có thể tạo lịch hẹn hay gửi email cho một hay nhiều sinh viên từ màn hình này
Hệ thống cũng sẽ cung cấp các tính năng cơ bản như tìm kiếm, tra cứu thông tin sinhviên, giảng viên hay thông tin các sự kiện, webinar sắp tới Giảng viên có thể chỉnh sửathông tin cơ bản của sự kiện như thời gian, địa điểm, mô tả
Các tính năng dành cho quản trị hệ thống:
Đối với tài khoản quản trị hệ thống, đây là tài khoản có quyền cao nhất và có thế tiếpcận tới các thông tin cơ bản nhưng quan trọng của hệ thống như thông tin khoa, thông tin
cá nhân của giảng viên, sinh viên, thông tin môn học, lớp học hay thông tin thông báo của
hệ thống Quản trị hệ thống có thể dễ dàng thêm, sửa các thông tin nêu trên, ngoài ra còn
có thể quản lí thành viên trong từng lớp, ví dụ giảng viên A sẽ dạy lớp B hay thêm sinhviên C vào lớp B cũng như loại bỏ sinh viên D khỏi lớp B Với quyền lớn nhất của hệthống như vậy, quản trị hệ thống có thể dễ dàng thao tác với cơ sở dữ liệu để chỉnh sửathông tin cơ bản của hệ thống trong thời gian ngắn nhất
Để phân tích sự khác biệt đối với các hệ thống khác, tiếp theo đây KLTN sẽ đưa rahai hệ thống tương tự để tiến hành phân tích, so sánh, cũng như đánh giá được ưu, nhượcđiểm của từng hệ thống tương ứng, qua đó có những cái nhìn đa chiều về hệ thống đã xâydựng cũng như học hỏi, áp dụng vào hệ thống này
1.2 Phân tích các ứng dụng tương tự
Trang 19trong quá trình học tập, đảm bảo tất cả sinh viên nhận được sự giúp đỡ và can thiệp đúnglúc nhất Starfish hiện đang được sử dụng bởi rất nhiều trường đại học như: trường ĐạiHọc North Dakota, trường Đại Học LeTourNEAU Để sử dụng, trải nghiệm Starfish,người dùng có thể đi tới trang web của sản phẩm Starfish và yêu cầu demo.
Hình 1.2 Hình ảnh minh hoạ hệ thống cố vấn sinh viên Starfish
1.2.1.1 Điểm mạnh
Có thể áp dụng cho mọi trường đại học bởi Starifish là một sản phẩm dạng SAAS
Tính năng Early Alert System: Starfish cung cấp tính năng để giảng viên có thể dễdàng lọc, tìm kiếm các sinh viên có điểm số “báo động” và dễ dàng lên kế hoạch canthiệp kịp thời
Khả năng tích hợp: Starfish có thể dễ dàng tích hợp với các phần mềm quản lý sinhviên khác, tham khảo Starfish API
Trang 20Starfish là một nền tảng cung cấp giải pháp Student Advisor được nhiều trường Đạihọc tin tưởng sử dụng Starfish được cung cấp bởi công ty EAB và webapp khi sử dụng sẽđược deploy ở môi trường cloud (Starfish là một sản phẩm dạng SAAS) Song, chi phí làmột vấn đề lớn với các trường, học viên với quy mô vừa và nhỏ.
1.2.2 Ứng dụng “Cố vấn sinh viên” của UEH (trường đại học Kinh Tế thành phố Hồ Chí Minh)
Nhằm nâng cao chất lượng và hiệu quả trong công tác cố vấn học tập, UEH đã cho
ra mắt nền tảng quản lý mới UEH Advisor Platform với phương châm hiện đại - nhanhchóng - tiện ích Ứng dụng là minh chứng cho công tác chuyển đổi số trong quản trị đạihọc, hoạt động hỗ trợ của nhà trường đối với cán bộ viên chức và người học, hướng tớimột đại học phát triển bền vững
Hình 1.3 Hình ảnh ứng dụng cố vấn sinh viên UEH
Trang 21Kết luận: Qua những phân tích từ hai ứng dụng tương tự trên, hệ thống trong khóa
luận sẽ tiếp thu các điểm mạnh và cải thiện các nhược điểm của những ứng dụng đó Từ
đó giúp người dùng có một hệ thống vừa hỗ trợ các thông tin như thời khóa biểu, thôngbáo mới nhất của trường, vừa có thể cải thiện khả năng tương tác giữa giảng viên và sinhviên với mục đích cuối cùng là kết quả học tập của sinh viên
Chương 1 trong KLTN đã trình bày thực trạng, các số liệu và giới thiệu về bài toánứng dụng “Cố vấn sinh viên” Bên cạnh đó, chương 1 cũng trình bày các ưu, nhược điểm
và đưa ra nhận xét tổng quan của hệ thống tương tự nhằm mục tiêu áp dụng cho hệ thốngnày Trong chương tiếp theo, KLTN sẽ tập trung trình bày chi tiết về việc thiết kế vả pháttriển hệ thống cố vấn sinh viên
Trang 22CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ
Trong Chương 2 này, KLTN sẽ tập trung vào việc nghiên cứu và xây dựng hệ thống
cố vấn sinh viên Các mô đun, quy trình vận hành, thiết kế hệ thống, việc trao đổi, giaotiếp giữa các thành phần trong hệ thống cũng sẽ được đề cập trong chương này
2.1 Tổng quan hệ thống
Sau khi đã nghiên cứu và đánh giá kỹ lưỡng, kiến trúc tổng quan của hệ thống đượcchia ra gồm ba tầng sau:
Tầng 1: Tầng CSDL
Tầng CSDL là tầng không thể thiếu trong bất cứ hệ thống lớn nhỏ nào Tầng CSDL
có vai trò lưu trữ, đọc, thêm, sửa, xoá các bản ghi Trong khoá luận tốt nghiệp này, hệthống sẽ sử dụng MySQL làm CSDL Bên cạnh đó, các dữ liệu dạng file sẽ được lưu trữtrên dịch vụ S3 Storage của Amazon để tối ưu việc lưu trữ dữ liệu như hình ảnh, video,file
Tầng 2: Tầng máy chủ
Tầng máy chủ web service sẽ đảm nhiệm vai trò xử lý logic, thuật toán, truy vấn,thao tác với tầng CSDL, Ở phạm vi khóa luận tốt nghiệp này, tầng thứ 2 còn có mộtserver ảo của bên thứ 3 tên là Pusher Server Pusher sẽ đảm nhiệm vai trò nhận yêu cầu vàtrả yêu cầu dựa trên thời gian thực Trong phạm vi khóa luận tốt nghiệp này, Pusher sẽ xử
lý thời gian thực cho phần chat (giao tiếp giữa sinh viên và giảng viên) và gửi thông báoreal-time
Ngoài ra, tích hợp các framework, các thư viện bên ngoài cũng do tầng máy chủthực hiện
Trang 23Hình 2.1 Kiến trúc tổng quan của hệ thống
Trang 24 Tầng 3: Tầng giao diện
Tầng này là tầng mà người dùng sẽ nhìn thấy và tương tác trực tiếp với ứng dụngqua các thiết bị máy tính, điện thoại hỗ trợ trình duyệt web Người dùng sẽ gửi yêu cầu tờitầng máy chủ thông qua giao diện (UI) và rest API để lấy thông tin yêu cầu
2.2 Tầng CSDL
Trong phạm vi bài toán, hệ thống “Cố vấn sinh viên” sẽ quản lý thông tin ngườidùng (quản lý giảng viên, sinh viên), thông tin sự kiện (bao gồm lịch hẹn, thông tinwebinar của giảng viên, lịch học, lịch dạy của giảng viên, sinh viên), thông tin chat, thôngbáo của hệ thống, kế hoạch cho việc học (lưu dưới dạng task)
Bên cạnh đó, các thông tin như điểm số, môn học, lớp học sẽ được lấy từ REST APIcủa trang tín chỉ trường (trong phạm vi KLTN, các đầu API sẽ được fake và được servebởi hệ thống luôn để phục vụ dữ liệu)
2.2.1 Giới thiệu tổng quan
Có thể nói, việc thiết kế một CSDL chặt chẽ là yếu tố quyết định tới sự ổn định, hiệusuất của hệ thống Một CSDL được thiết kế chặt chẽ, hiệu quả sẽ đem lại thời gian tối ưu
để truy vấn, trả response cho hệ thống
KLTN chủ yếu phụ thuộc vào dữ liệu giảng viên, sinh viên và các dữ liệu liên quannhư khoa, môn học, lịch học, điểm số của trường Đại học Công Nghệ Ban đầu, KLTNđịnh tạo một cơ sở dữ liệu riêng để lưu trữ các thông tin này Song, việc này không mangtính thực tiễn cao do trường đại học Công Nghệ đã có sẵn một hệ thống để quản lý cácthông tin trên Vì vậy, để tăng tính thực tiễn của hệ thống và tiết kiệm tài nguyên, hệthống sẽ tạo ra các đầu API để trả về các thông tin như khoa, môn học, lịch học với điểm
số và coi như các đầu API này là do hệ thống trường Đại học Công Nghệ trả ra
Trang 25Do tính bảo mật thông tin, các đầu API trả thông tin khoa, môn học, lớp học, lịch học vàđiểm sẽ được giả lập và hệ thống “Cố vấn sinh viên” sẽ gọi API để lấy thông tin từ hệ thốngnày.
2.2.2 Phân tích, thiết kế CSDL
Để xây dựng CSDL phù hợp với yêu cầu bài toán, KLTN đã phân tích và xây dựng một
CSDL để có thể lưu trữ thông tin riêng của hệ thống bao gồm: user, event, event_member, event_invitations, plan, plan_member, task, notifications Ngoài các bảng trên, để phục vụ
cho data của trường Đại Học Công Nghệ, KLTN cũng đã thiết kế các bảng sau để lưu thông
tin khoa, môn học, lớp học, lịch học: departments, class_, class_roles, subjects, intakes, intake_members.
Hình 2.3 Lược đồ CSDL quan hệ của hệ thống
Từ hình 2.4, cơ sở dữ liệu của hệ thống sẽ được thiết lập với các bảng sau:
- Bảng user: lưu thông tin về tài khoản đăng nhập của người dùng (bao gồm 3 role
Trang 26Trường Mô tả Kiểu dữ liệu
vi hay en)
varchar
allow_search_by_teacher_only Cho phép tài khoản có thể được tìm
kiếm bởi mỗi tài khoản giáo viên hay không
boolean
Bảng 2.1 Thông tin bảng user
Trang 27Hình 2.4 Dữ liệu của bảng user
- Bảng event: lưu thông tin sự kiện của hệ thống
uuid Mã đặc biệt của sự kiện (hệ thống tự sinh) varchar
tags Lưu thông tin các khoa liên quan tới sự kiện varcharfiles Thông tin các files ảnh liên quan tới sự kiện text
Trang 28end_minute Phút kết thúc sư kiện integer
updated_by Lưu mã của người cập nhật sự kiện gần nhất varchar
Bảng 2.2 Thông tin bảng event
Hình 2.5 Dữ liệu của bảng event
- Bảng event_member: lưu thông tin tương tác của người dùng với sự kiện
id Mã tương tác sự kiện (Khóa chính, tự động tăng) integeruuid Mã đặc biệt tương tác sự kiện (hệ thống tự sinh) varchar
Trang 29Hình 2.6 Dữ liệu của bảng event_member
- Bảng event_invitations: lưu trữ thông tin lời mời tham dự sự kiện
id Mã lời mới tham dự sự kiện (Khóa chính, tự động
status Trạng thái của lời mời (có thể là no_response, going
Bảng 2.4 Thông tin bảng event_invitations
Hình 2.7 Dữ liệu của bảng event_invitations
- Bảng plan: lưu trữ các thông tin kế hoạch của người dùng
Trang 30id Mã kế hoạch (Khóa chính, tự động tăng) integeruuid Mã đặc biệt của kế hoạch (Hệ thống tự sinh) varchar
settings Thông tin settings của kế hoạch như màu nền và màu
updated_at Thời gian cập nhật kế hoạch gần nhất timestamp
Bảng 2.5 Thông tin về bảng plan
Hình 2.8 Dữ liệu của bảng plan
- Bảng plan_member: đảm nhiệm việc lưu trữ thông tin về thành viên trong kế hoạch
Trang 31nhập tham gia kế hoạch, 1 là chấp nhận tham gia kế hoạch)
updated_at Thời gian cập nhật thành viên gần nhất timestamp
Bảng 2.6 Thông tin về bảng plan_member
Hình 2.9 Dữ liệu của bảng plan_member
- Bảng ch_messages: lưu trữ các thông tin tin nhắn của người dùng
seen Đánh dấu xem tin nhắn đã được đọc hay chưa tinyint
updated_at Thời gian cập nhật tin nhắn gần nhất timestamp
Bảng 2.7 Thông tin về bảng ch_messages
Trang 32Hình 2.10 Dữ liệu của bảng ch_messages
- Bảng notifications: lưu trữ các thông tin thông báo của người dùng
updated_at Thời gian cập nhật thông báo gần nhất timestamp
Trang 33Hình 2.11 Dữ liệu của bảng notifications
- Bảng system_notifications: lưu trữ các thông tin các thông báo của hệ thống nhà trường
tới người dùng (ví dụ như thông báo nghỉ học)
updated_at Thời gian cập nhật thông báo gần nhất timestamp
Bảng 2.9 Thông tin về bảng system_notifications
Trang 34Hình 2.12 Dữ liệu của bảng system_notifications
Như đã đề cập ở trên, ngoài việc thiết kế dữ liệu riêng cho hệ thống “Cố vấn sinhviên” của trường Đại Học Công Nghệ, KLTN còn thiết kể các bảng khác để nắm nhiệm
vụ trả dữ liệu như khoa, lớp học, môn học, thời khoá biểu của sinh viên, giảng viên và coicác dữ liệu này được trả về từ hệ thống của trường Đại Học Công Nghệ Chi tiết các bảng
departments, class_, class_roles, subjects, intakes, intake_members sẽ được diễn giải như
dưới đây
Trang 35Trường Mô tả Kiểu dữ liệu
name Tên của khoa (lưu dưới dạng json nhằm mục đích đa
ngôn ngữ)
varchar
updated_by Mã người dùng cập nhật khoa gần nhất varchar
Bảng 2.10 Thông tin về bảng departments
Hình 2.14 Dữ liệu của bảng departments
- Bảng class_: lưu trữ các lớp của trường Đại Học Công Nghệ
Trang 36end_year Năm kết thúc của lớp varchar
Bảng 2.11 Thông tin về bảng class_
Hình 2.15 Dữ liệu của bảng class_
- Bảng class_roles: lưu trữ các thành viên trong lớp của trường Đại Học Công Nghệ
id Mã thành viên trong lớp (Khóa chính, tự động tăng) integeruuid Mã đặc biệt của thành viên trong lớp (hệ thống tự
sinh)
varchar
role Vai trò của người dùng trong lớp (có thể là teacher
updated_at Thời gian cập nhật thành viên trong lớp gần nhất timestamp
Trang 37Hình 2.16 Dữ liệu của bảng class_roles
- Bảng subjects: lưu trữ các môn học của trường Đại Học Công Nghệ
uuid Mã đặc biệt của môn học (hệ thống tự sinh) varcharname Tên của môn học (lưu dưới dạng json để phục vụ đa
department_id Mã của khoa liên quan tới môn học varchar
updated_by Mã người dùng cập nhật môn học gần nhất varchar
Bảng 2.13 Thông tin về bảng subjects
Trang 38Hình 2.17 Dữ liệu của bảng subjects
- Bảng intakes: lưu trữ các lớp theo môn học của trường Đại Học Công Nghệ
id Mã môn lớp theo môn học (Khóa chính, tự động
tăng)
integeruuid Mã đặc biệt của lớp theo môn học (hệ thống tự sinh) varchar
duration_weeks Độ dài của lớp theo môn học tính theo tuần integer
start_minute Phút bắt đầu của lớp theo môn học integer