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ệ, kh
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
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ả bài toán 15
1.1.1 Đầu vào của bài toán 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) 17
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
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 CẤU HÌNH HỆ THỐNG 63
3.1 Xây dựng hệ thống máy chủ 63
3.2 Đăng kí và sử dụng dịch vụ AWS S3 63
3.3 Đăng kí và sử dụng dịch vụ Pusher 64
KẾT LUẬN 66
THAM KHẢO 67
Trang 8DANH SÁCH BẢNG
Bảng 2.1 Thông tin bảng user 25
Bảng 2.2 Thông tin bảng event 27
Bảng 2.3 Thông tin bảng event_member 27
Bảng 2.4 Thông tin bảng event_invitations 28
Bảng 2.5 Thông tin về bảng plan 29
Bảng 2.6 Thông tin về bảng plan_member 30
Bảng 2.7 Thông tin về bảng ch_messages 30
Bảng 2.8 Thông tin về bảng notifications 31
Bảng 2.9 Thông tin về bảng departments 34
Bảng 2.10 Thông tin về bảng class_ 34
Bảng 2.11 Thông tin về bảng class_roles 35
Bảng 2.12 Thông tin về bảng subjects 36
Bảng 2.13 Thông tin về bảng intakes 38
Bảng 2.14 Thông tin về bảng intake_members 39
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 16
Hình 1.3 Hình ảnh ứng dụng cố vấn sinh viên UEH 18
Hình 2.1 Mô tả tổng quan thiết kế hệ thống 20
Hình 2.2 Kiến trúc tổng quan của hệ thống 21
Hình 2.3 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.4 Lược đồ CDSL quan hệ của hệ thống 23
Hình 2.5 Dữ liệu của bảng user 25
Hình 2.6 Dữ liệu của bảng event 26
Hình 2.7 Dữ liệu của bảng event_member 27
Hình 2.8 Dữ liệu của bảng event_invitations 27
Hình 2.9 Dữ liệu của bảng plan 28
Hình 2.10 Dữ liệu của bảng plan_member 29
Hình 2.11 Dữ liệu của bảng ch_messages 30
Hình 2.12 Dữ liệu của bảng notifications 31
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
Hình 2.20 Các module của Laravel Framework 39
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 2.38 Màn hình đăng nhập của hệ thống 57
Hình 2.39 Màn hình thể hiện kết qủa tìm kiếm người dùng và sự kiện 58
Hình 2.40 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 58
Hình 2.41 Hình ảnh thể hiện cách đánh dấu tham gia hay quan tâm sự kiện 59
Hình 2.42 Hình ảnh chi tiết thông tin của sự kiện 59
Trang 11Hình 2.43 Hình ảnh thể hiện thông báo real-time của hệ thống 60
Hình 2.44 Hình ảnh thể hiện tính năng chat real-time 60
Hình 2.45 Hình ảnh thể hiện tính năng tạo lịch hẹn, gửi email 61
Hình 2.46 Màn hình danh sách kế hoạch 61
Hình 2.47 Màn hình chi tiết kế hoạch 62
Hình 3.1 Cấu hình Laravel framework 63
Hình 3.2 Màn hình tạo bucket mới để sử dụng S3 Storage 64
Hình 3.3 Mục thông tin cần điền để sử dụng AWS S3 trong hệ thống 64
Hình 3.4 Màn hình dashboard trên Pusher 65
Hình 3.5 Mục thông tin cần điển của Pusher trong hệ thống 65
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
Khóa luận được trình bày theo bốn chương như sau:
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ờigian trên trường như lịch, thời khóa biểu cá nhân, tính năng lên kế hoạch, tổng hợp đầu mụccông việc để tiết kiệm thời gian
Trang 171.1 Mô tả bài toán
1.1.1 Đầu vào của bài toán
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
Từ các thông tin được trả về từ API trên, hệ thống giúp sinh viên có thể login vàobằng email của sinh viên, giảng viên 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
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
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ửa
Trang 18thông tin cơ bản của sự kiện như thời gian, địa điểm, mô tả 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ìm kiếm từ sinh viên khác nhằm bảo vệ thông tin
cá nhân của sinh viên
Để 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ự
Do việc tìm hiểu chi tiết các ứng dụng tương tự có nhiều khó khăn, hạn chế vì chỉ cótải khoản sinh viên hay giảng viên của trường đó mới có thể đăng nhập Trong pham vibài toán này, KLTN sẽ đưa ra nhận xét hai ứng dụng tương tự, một ứng dụng của trườngđại học bên nước ngoài và một ví dụ của trường đại học trong đất nước Việt Nam
1.2.1 Ứng dụng “Cố vấn học tập Starfish”
Starfish là một ứng dụng được sinh ra nhằm mục đích đem lại sự hỗ trợ tới sinh viêntrong 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
Trang 191.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
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
Trang 20Hì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ó thể có một ứng dụng dễ sử dụng, thuận lợi cho việc hỗ trợ học tập.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 được
mô tả như hình 2.1
Hình 2.1 Mô tả tổng quan thiết kế hệ thống
Theo đó, hệ thống sẽ bao 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
Trang 23 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
Hình 2.2 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
Hình 2.3 Mô tả cách lấy dữ liệu từ hệ thống trường Đại học Công Nghệ
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ộtCSDL để 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.4 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:
Trang 26- 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
chính: admin, teacher, student)
admin, teacher, student)
enum
other)
integer
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.5 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.6 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
status Trạng thái tương tác (có thể là going hay interested) enum
updated_at Thời gian cập nhật tương tác gần nhất timestamp
Bảng 2.3 Thông tin bảng event_member
Trang 29Hình 2.7 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.8 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.9 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
uuid Mã đặc biệt của thành viên (hệ thống tự sinh) varchar
status_invite Trạng thái thành viên trong kế hoạch (0 là chưa chấp tinyint
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.10 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
Trang 32Hình 2.11 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
Bảng 2.8 Thông tin về bảng notifications
Trang 33Hình 2.12 Dữ liệu của bảng 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 34Hì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ệ
- Bảng departments: lưu trữ các thông tin khoa của trường Đại Học Công Nghệ
name Tên của khoa (lưu dưới dạng json nhằm mục đích đa
updated_by Mã người dùng cập nhật khoa gần nhất varchar