NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TƯ VẤN THÔNG TIN TUYỂN SINH PTIT

81 0 0
Tài liệu đã được kiểm tra trùng lặp
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TƯ VẤN THÔNG TIN TUYỂN SINH PTIT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP Nghiên cứu xây dựng hệ thống tư vấn thông tin tuyển sinh PTIT Giảng viên hướng dẫn: TS.Đỗ Thị Liên Sinh viên thực hiện: Lê Nhật Huy Mã sinh viên: B19DCCN306 Ngành: Công nghệ thông tin Hà Nội - 2023 ĐỒ ÁN TỐT NGHIỆP LÊ NHẬT HUY – B19DCCN306 2 ĐỒ ÁN TỐT NGHIỆP NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ............................................................ Điểm: ….. (Bằng chữ ) Ngày ….. tháng……năm 20.... Giảng viên phản biện LÊ NHẬT HUY – B19DCCN306 3 ĐỒ ÁN TỐT NGHIỆP NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ............................................................ Điểm: ….. (Bằng chữ ) Ngày ….. tháng……năm 20... Giảng viên hướng dẫn LÊ NHẬT HUY – B19DCCN306 4 ĐỒ ÁN TỐT NGHIỆP LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn đến các thầy cô trong Học viện Công nghệ Bưu chính Viễn thông nói chung và các thầy cô trong khoa Công nghệ thông tin nói riêng. Cảm ơn các thầy cô đã dạy cho em rất nhiều kiến thức và kinh nghiệm trong suốt những năm đại học, giúp em có được cơ sở lý thuyết vững vàng và tạo một môi trường học tập chuyên nghiệp để em có thể phát triển bản thân và vững bước trên con đường phát triển sự nghiệp. Em xin gửi lời cảm ơn chân thành đến cô Đỗ Thị Liên đã tận tình hướng dẫn, dẫn dắt cũng như tạo điều kiện giúp em hoàn thành đồ án này, em xin chúc cô và gia đình thật nhiều sức khỏe và thành công. Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành khóa luận tốt nghiệp. Vì thời gian có hạn, trình độ hiểu biết của bản thân còn nhiều hạn chế. Cho nên trong đồ án này không tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến của tất cả các thầy cô giáo cũng như các bạn bè để đồ án em được hoàn thiện hơn nữa. Em xin chân thành cảm ơn LÊ NHẬT HUY – B19DCCN306 5 ĐỒ ÁN TỐT NGHIỆP MỤC LỤC Chương 1: Tổng quan về hệ thống tư vấn thông tin tuyển sinh PTIT.........................................................................................7 1.1 Tổng quan hệ thống.........................................................................................................................................................7 1.1.1 Mục đích hệ thống...................................................................................................................................................7 1.1.2 Khảo sát các sản phẩm tương tự..............................................................................................................................7 1.1.3 Yêu cầu hoạt động của ứng dụng.............................................................................................................................8 1.2 Thiết kế tương tác.........................................................................................................................................................13 1.3 Phương pháp tiếp cận và giải quyết vấn đề...................................................................................................................14 1.3.1 Mô hình tổng quát hệ thống...................................................................................................................................14 1.3.2 Phương pháp xây dựng phần mềm.........................................................................................................................14 1.3.3 Kiến trúc phần mềm..............................................................................................................................................16 1.3.4 Công nghệ triển khai hệ thống...............................................................................................................................19 1.4 Tổng kết chương........................................................................................................................................................... 23 Chương 2: Công nghệ tư vấn thông tin tuyển sinh tự động......................................................................................................24 2.1 Yêu cầu tư vấn tuyển sinh tự động................................................................................................................................24 2.2 Nguyên lý hoạt động.....................................................................................................................................................24 2.2.1 Nguyên lý hoạt động của speech to text................................................................................................................24 2.2.2 Nguyên lý tư vấn tự động......................................................................................................................................25 2.3 Xử lý bài toán với mô hình seq2seq và cơ chế attention................................................................................................26 2.3.1 Giới thiệu mô hình Sequence-to-Sequence............................................................................................................26 2.3.2 Giới thiệu cơ chế attention.....................................................................................................................................27 2.4 Công nghệ áp dụng.......................................................................................................................................................28 2.5 Kết luận chương............................................................................................................................................................ 32 Chương 3: Phân tích thiết kế hệ thống.....................................................................................................................................35 3. 1 Phân tích hệ thống........................................................................................................................................................35 3.1.1 Biểu đồ usecase.....................................................................................................................................................35 3.1.2 Kịch bản của các usecase.......................................................................................................................................45 3.1.3 Biểu đồ lớp phân tích.............................................................................................................................................54 3.2 Thiết kế hệ thống tư vấn tuyển sinh tự động..................................................................................................................56 Chương 4: Thiết kế cơ sở dữ liệu.............................................................................................................................................66 Kết luận chung......................................................................................................................................................................... 71 Phụ lục: Cài đặt và triển khai...................................................................................................................................................72 LÊ NHẬT HUY – B19DCCN306 6 ĐỒ ÁN TỐT NGHIỆP DANH MỤC CÁC HÌNH Hình 1. 1: Tổng quát hệ thống 14 Hình 1. 2 Mô hình tổng quát hệ thống 15 Hình 1. 3 Kiến trúc Clean Architecture 17 Hình 1. 4 Mô hình MVVM 19 Hình 2. 1 Mô hình xử lý...........................................................................................................................................................24 Hình 2. 2 Nguyên lý hoạt động speech to text..........................................................................................................................25 Hình 2. 3 Ví dụ về nguyên lý hoạt động của mô hình ngôn ngữ..............................................................................................25 Hình 2. 4 Mô tả về việc huấn luyện trước................................................................................................................................26 Hình 2. 5 Mô hình Encoder - Decoder.....................................................................................................................................27 Hình 2. 6 Cơ chế extension......................................................................................................................................................27 Hình 2. 7 Mô hình transformer................................................................................................................................................28 Hình 2. 8 Cơ chế self – extension của transformer...................................................................................................................30 Hình 2. 9 Mô tả về attension vector.........................................................................................................................................30 Hình 2. 10 Kiến trúc transformer.............................................................................................................................................31 Hình 2. 11 Sơ đồ kiến trúc của OpenAi Whisper.....................................................................................................................32 Hình 2. 12 Một số thông tin từ học viện...................................................................................................................................33 Hình 2. 13 Biểu đồ training loss...............................................................................................................................................34 Hình 3. 1 Usecase tổng quan hệ thống 35 Hình 3. 2 Chức năng xem thông tin trường 36 Hình 3. 3 Chức năng xem thông tin ngành 36 Hình 3. 4 Chức năng tư vấn tự động 37 Hình 3. 5 Chức năng xem thông tin học phí 37 Hình 3. 6 Chức năng xem thông tin nghề nghiệp 38 Hình 3. 7 Chức năng xem phương thức xét tuyển 38 Hình 3. 8 Chức năng xem thông tin học bổng 39 Hình 3. 9 Chức năng xem tin tức 39 Hình 3. 10 Chức năng xem quy trình nhập học 40 Hình 3. 11 Chức năng chỉnh sửa thông tin trường 40 Hình 3. 12 Chức năng chỉnh sửa thông tin ngành 41 Hình 3. 13 Chức năng chỉnh sửa thông tin nghề nghiệp 41 Hình 3. 14 Chức năng chỉnh sửa thông tin học bổng 42 Hình 3. 15 Chức năng chỉnh sửa tin tức 42 Hình 3. 16 Usecase chỉnh sửa quy trình nhập học 43 Hình 3. 17 Usecase chỉnh sửa thông tin học phí 43 Hình 3. 18 Usecase chỉnh sửa phương thức xét tuyển 44 Hình 3. 19 Biểu đồ lớp phân tích 55 Hình 3. 20 Biểu đồ tuần tự chức năng xem thông tin trường 55 Hình 3. 21 Biểu đồ tuần tự chức năng xem thông tin ngành 56 Hình 3. 22 Biểu đồ tuần tự chức năng tư vấn tự động 56 Hình 3. 23 Biểu đồ tuần tự chức năng xem thông tin học bổng 57 Hình 3. 24 Biểu đồ tuần tự chức năng xem thông tin học phí 57 Hình 3. 25 Biểu đồ tuần tự chức năng xem thông tin nghề nghiệp 58 Hình 3. 26 Biểu đồ tuần tự chức năng xem tin tức 58 Hình 3. 27 Biểu đồ tuần tự chức năng xem quy trình nhập học 59 Hình 3. 28 Biểu đồ tuần tự chức năng xem phương thức xét tuyển 59 Hình 3. 29 Biểu đồ tuần tự chức năng chỉnh sửa thông tin trường 60 Hình 3. 30 Biểu đồ tuần tự chức năng chỉnh sửa thông tin ngành 60 Hình 3. 31 Biểu đồ tuần tự chức năng chỉnh sửa thông tin nghề nghiệp 61 Hình 3. 32 Biểu đồ tuần tự chức năng chỉnh sửa thông tin học bổng 61 Hình 3. 33 Biểu đồ tuần tự chức năng chỉnh sửa tin tức 62 Hình 3. 34 Biểu đồ tuần tự chức năng chỉnh sửa quy trình nhập học 62 Hình 3. 35 Biểu đồ lớp thực thể 63 Hình 3. 36 Biểu đồ lớp thiết kế 64 Hình 3. 37 Biểu đồ thiết kế cơ sở dữ liệu 65 LÊ NHẬT HUY – B19DCCN306 7 ĐỒ ÁN TỐT NGHIỆP Chương 1: Tổng quan về hệ thống tư vấn thông tin tuyển sinh PTIT Tại chương 1: Tổng quan về hệ thống tư vấn thông tin tuyển sinh PTIT, em sẽ trình bày tổng quan về yêu cầu cho hệ thống tư vấn tuyển sinh đồng thời cũng khảo sát hiện trạng và so sánh với những hệ thống tư vấn hiện có. Điều này nhằm mục đích xác định những yếu điểm cũng như những ưu điểm của các hệ thống đối thủ, từ đó đề xuất những cải tiến cho hệ thống của mình. Đồng thời em sẽ giới thiệu khái quát qua về yêu cầu phần mềm cho hệ thống tư vấn, bao gồm những chức năng cụ thể mà người dùng có thể mong đợi từ sản phẩm. Ngoài ra, chương này sẽ đưa ra thiết kế tương tác để minh họa diện mạo đầu ra của hệ thống, giúp dễ dàng hình dung về ứng dụng. Trên cơ sở đó em tiến hành xác định phương pháp tiếp cận và giải quyết vấn đề cho bài toán đặt ra. 1.1 Tổng quan hệ thống 1.1.1 Mục đích hệ thống Hệ thống phục vụ cho công tác tư vấn tuyển sinh, định hướng nghề nghiệp và xem chỉ tiêu xét tuyển nhằm cung cấp những thông tin cần thiết về Học viện Công nghệ Bưu chính viễn thông ví dụ như các thông tin về chương trình học, yêu cầu đầu vào và cơ hội việc làm sau khi tốt nghiệp,.... Học sinh, sinh viên cũng có thể nắm bắt được thông tin về các quy trình cần thiết lúc nhập học như là hướng dẫn về quy trình nộp hồ sơ xét tuyển, cách chuẩn bị cho các kỳ thi đầu vào và các vấn đề liên quan đến đăng ký tuyển sinh hay những thông tin chi tiết về học bổng, hỗ trợ tài chính và các nguồn tài trợ khác để giúp học sinh đạt được mục tiêu học tập của mình. Ngoài ra, hệ thống còn có chức năng tư vấn tự động (người dùng có thể chat hoặc sử dụng giọng nói để đưa ra yêu cầu) để có thể nắm thông tin về các khóa học, chương trình học, ngành nghề phù hợp với từng học sinh. 1.1.2 Khảo sát các sản phẩm tương tự Một số hệ thống tư vấn tuyển sinh:  Website ketnoigiaoduc.vn: là một cổng thông tin điện tử về tuyển sinh đào tạo của Công ty Cổ phần Cổng thông tin Giáo dục Việt Nam. Trang web cung cấp các thông tin về quy chế, quy định về thi và tuyển sinh các cấp, các chính sách mới nhất của nhà nước về giáo dục đào tạo, những tư vấn lời khuyên chuyên gia về hướng nghiệp, chọn trường, thi cử, các bí quyết về tuyển sinh hiệu quả, vv. giúp thí sinh tìm hiểu những thông tin tuyển sinh, thông tin đầy đủ và cập nhật của các trường, các đơn vị giáo dục đào tạo, các nhà tuyển sinh cả nước trước khi đưa ra các quyết định đăng ký tuyển sinh nhập học  Website tuyensinh.ufm.edu.vn: Đại học tài chính, Marketing: là cổng thông tin tuyển sinh của Đại học tài chính - Marketing: Cung cấp các thông tin như hướng nghiệp, thông tin các chuyên ngành đào tạo, thông tin tuyển sinh liên kết quốc tế, thông tin nhập học, … LÊ NHẬT HUY – B19DCCN306 8 ĐỒ ÁN TỐT NGHIỆP  Học viện Công nghệ Bưu chính Viễn thông (PTIT): PTIT Slink, PTIT Slink tuyển sinh - là các ứng dụng cung cấp đầy đủ các thông tin về nhà trường ví dụ như thông tin nhà trường, thông tin các ngành học, ứng dụng được Học viện Công nghệ Bưu chính Viễn thông phát triển nhằm hỗ trợ thí sinh và phụ huynh trong quá trình tuyển sinh vào trường. Ứng dụng PTIT S-Link Tuyển sinh là một công cụ hữu ích giúp thí sinh và phụ huynh thuận tiện hơn trong quá trình tuyển sinh vào Học viện Công nghệ Bưu chính Viễn thông. Ứng dụng cung cấp thông tin tuyển sinh đầy đủ và chính xác về các phương thức tuyển sinh, chỉ tiêu, tổ hợp xét tuyển,... của Học viện. đồng thời cung cấp các thông tin hỗ trợ tuyển sinh như lịch thi, hướng dẫn thí sinh,... Nhìn chung, các trường đại học tại Việt Nam đều có hệ thống tư vấn tuyển sinh đa dạng, bao gồm tư vấn trực tuyến, tư vấn qua điện thoại và tư vấn trực tiếp. Các hệ thống tư vấn này nhằm cung cấp thông tin tuyển sinh và hỗ trợ thí sinh trong quá trình lựa chọn ngành nghề phù hợp hay nắm thêm các thông tin chi tiết. Do đó các bạn học sinh, sinh viên có thể có nhiều cách tiếp cận thông tin và có rất nhiều thông tin có thể nắm bắt. Tuy nhiên đối với việc tư vấn trực tiếp, đôi khi người tư vấn viên lại không có mặt ngay tức thì để hỗ trợ giải đáp kịp thời. Từ điều này, có thể cải thiện thêm chức năng tư vấn tuyển sinh tự động không cần tới nhân viên tư vấn. Đặc biệt trong trường hợp các bạn không tiện sử dụng bàn phím, một chức năng nhận diện giọng nói sẽ giúp các bạn có thể dễ dàng đưa ra câu hỏi. 1.1.3 Yêu cầu hoạt động của ứng dụng Sau khi khảo sát các hệ thống trên, có thể nhận thấy các hệ thống tư vấn tuyển sinh đều có các điểm mạnh, bao gồm đa dạng thông tin, thông tin chính xác và cập nhật, cũng như khả năng hỗ trợ thí sinh trong việc lựa chọn ngành nghề và quá trình tuyển sinh. Mỗi khi tới kỳ tuyển sinh, việc cung cấp thông tin giải đáp thắc mắc cho các bạn học sinh, sinh viên là rất quan trọng. Với số lượng sinh viên mỗi năm là cực kỳ lớn, việc cung cấp thông tin chính xác và kịp thời là một việc rất quan trọng. Ngoài ra, với số lượng lớn như vậy, việc nhận về số lượng các câu hỏi và các cách thức hỏi khác nhau cho một mục đích là rất nhiều. Vậy làm sao để có thể nhận biết được đâu là mục đích mà câu hỏi hướng tới để đưa ra câu trả lời chính xác? Ngoài ra, để đem lại sự thuận tiện cho những thời điểm học sinh, sinh viên không tiện để có thể soạn và nhắn ra câu hỏi, làm thế nào để có thể hỗ trợ họ? Tuy nhiên các hệ thống trên đang triển khai tư vấn dạng tư vấn trực tiếp, cần người tư vấn cho sinh viên. Trường hợp người tư vấn trực tiếp đang không thể trả lời, sinh viên có thể nhận được thông tin chậm trễ. Để giúp các bạn có thể dễ dàng hơn trong việc tìm kiếm thông tin, bên cạnh các chức năng thông tin, hệ thống xây dựng chức năng hỗ trợ giải đáp thắc mắc tự động, các bạn học sinh và sinh viên có thể nhận được thông tin cần thiết một cách nhanh chóng. Trong một số trường hợp khi các bạn học sinh, sinh viên không tiện sử dụng bàn phím, hệ thống có thể hỗ trợ các bạn bằng chức năng nhận diện giọng nói, dễ dàng đặt câu hỏi bằng lời nói. LÊ NHẬT HUY – B19DCCN306 9 ĐỒ ÁN TỐT NGHIỆP 1.1.3.1 Phần dành cho người dùng cuối ● Đăng nhập: Người dùng thực hiện truy cập vào hệ thống → hệ thống hiển thị màn hình đăng nhập → Người dùng nhập thông tin tài khoản và nhấn nút đăng nhập → Hệ thống sẽ chuyển sang màn hình trang chủ ● Đăng ký: Người dùng thực hiện truy cập vào hệ thống → hệ thống hiển thị màn hình đăng nhập → Người dùng nhấn chọn đăng ký → Hệ thống hiển thị màn hình đăng ký → Người dùng nhập thông tin tài khoản và nhấn nút đăng ký → Hệ thống sẽ hiển thị trạng thái đăng ký và chuyển về màn hình đăng nhập ● Đăng xuất: Người dùng đã đăng nhập thành công và thực hiện di chuyển qua màn thông tin → hệ thống hiển thị giao diện thông tin → Người dùng nhấn vào nút Đăng xuất → hệ thống hiển thị thông báo bạn có muốn đăng xuất → Người dùng xác nhận → hệ thống di chuyển về màn hình đăng nhập ● Xem thông tin trường: sinh viên đăng nhập vào hệ thống → chọn chức năng giới thiệu về trường → hệ thống hiển thị thông tin về trường, sinh viên nhấn chọn lịch sử → hệ thống hiển thị thông tin về lịch sử hình thành ● Xem thông tin ngành: sinh viên chọn xem thông tin ngành → hệ thống hiển thị danh sách các ngành học và chỉ tiêu tuyển sinh đi kèm → sinh viên nhấn chọn một ngành → hệ thống hiển thị các thông tin về ngành bao gồm: mã ngành, thời gian học, ngày nhập học, cơ sở và chương trình đào tạo của ngành ● Tư vấn tuyển sinh tự động: sinh viên đăng nhập vào hệ thống, sinh viên chọn icon bot → hệ thống hiển thị màn hình chat tư vấn → sinh viên thực hiện chat hoặc sử dụng giọng nói và chat bot sẽ trả lời dựa theo nội dung sinh viên vừa nhập ● Định hướng nghề nghiệp: sinh viên bấm vào chức năng định hướng nghề nghiệp → hệ thống hiển thị danh sách các nghề nghiệp hiện có ● Xem thông tin học bổng, hỗ trợ tài chính: tại màn hình trang chủ, sinh viên nhấn vào xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn vào xem thông tin học bổng, hỗ trợ tài chính → hệ thống hiển thị màn hình thông tin học bổng, hỗ trợ tài chính ● Xem tin tức: Tại màn hình trang chủ, sinh viên nhấn vào phần tin tức tại bottom nav, hệ thống hiển thị màn hình danh sách tin tức → sinh viên nhấn chọn một tin tức → hệ thống hiển thị màn hình tin tức vừa được chọn ● Xem quy trình nhập học: tại màn hình trang chủ, sinh viên nhấn vào xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn vào xem quy trình nhập học → hệ thống hiển thị màn hình quy trình nhập học ● Xem thông tin học phí: tại màn hình trang chủ, sinh viên nhấn vào xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn chọn xem học phí → hệ thống hiển thị thông tin về học phí ● Xem phương thức xét tuyển: tại màn hình trang chủ, sinh viên nhấn vào cụm xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn vào chức năng xem phương thức xét tuyển → hệ thống hiển thị thông tin xem phương thức xét tuyển LÊ NHẬT HUY – B19DCCN306 10 ĐỒ ÁN TỐT NGHIỆP 1.1.3.2 Phần dành cho người quản trị ● Người quản trị có chức năng xem thông tin tương tự người dùng cuối ● Xem danh sách tài khoản người dùng: sau khi đăng nhập thành công, người quản trị bấm vào icon profile → hệ thống hiển thị màn hình profile → người quản trị bấm vào Quản lý danh sách tài khoản → Hệ thống chuyển sang màn danh sách tài khoản. ● Xoá tài khoản người dùng: sau khi đăng nhập thành công, người quản trị bấm vào icon profile → hệ thống hiển thị màn hình profile → người quản trị bấm vào Quản lý danh sách tài khoản → Hệ thống chuyển sang màn danh sách tài khoản. → người dùng bấm ● Chỉnh sửa thông tin của trường: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin trường → hệ thống hiển thị giao diện thông tin chi tiết gồm tên, địa chỉ, … → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin→ người quản trị chỉnh sửa thông tin trường và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình thông tin trường ● Chỉnh sửa thông tin ngành: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin ngành→ hệ thống hiển thị giao diện thông tin chi tiết gồm tên ngành, thông tin ngành, … → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin ngành và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin ngành ● Chỉnh sửa thông tin nghề nghiệp: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin ngành nghề nghiệp → hệ thống hiển thị giao diện thông tin chi tiết gồm tên ngành nghề, thông tin ngành nghề, … → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin ngành và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin ngành nghề. ● Chỉnh sửa thông tin học phí: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin học phí → hệ thống hiển thị giao diện thông tin chi tiết gồm số tiền, hạn thanh toán… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin ngành và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin học phí. ● Chỉnh sửa thông tin học bổng, hỗ trợ tài chính: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin học bổng → hệ thống hiển thị giao diện thông tin chi tiết gồm số tiền, hạn thanh toán… → LÊ NHẬT HUY – B19DCCN306 11 ĐỒ ÁN TỐT NGHIỆP người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin học phí và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin học phí ● Chỉnh sửa thông tin tin tức: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin tin tức → hệ thống hiển thị giao diện thông tin chi tiết gồm ảnh, tiêu đề, nội dung tin tức… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin tin tức và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin tin tức. ● Chỉnh sửa thông tin quy trình nhập học: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin tin tức → hệ thống hiển thị giao diện thông tin chi tiết gồm các bước hướng dẫn nhập học… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin về quy trình nhập học và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin quy trình nhập học. ● Chỉnh sửa thông tin phương thức xét tuyển: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin phương thức xét tuyển → hệ thống hiển thị giao diện thông tin chi tiết gồm các phương thức xét tuyển… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin phương thức xét tuyển và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin phương thức xét tuyển. ● Xóa thông tin trường: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin trường → hệ thống hiển thị danh sách thông tin trường → người quản trị chọn thông tin trường cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin trường → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin trường. ● Xóa thông tin ngành: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin ngành → hệ thống hiển thị danh sách thông tin ngành → người quản trị chọn thông tin ngành cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xoá thông tin ngành → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin ngành. ● Xóa thông tin ngành nghề nghiệp: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin ngành nghề nghiệp → hệ thống hiển thị danh sách thông tin ngành nghề nghiệp → người quản trị chọn LÊ NHẬT HUY – B19DCCN306 12 ĐỒ ÁN TỐT NGHIỆP thông tin ngành nghề nghiệp cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin ngành nghề nghiệp → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin ngành nghề nghiệp. ● Xóa thông tin học phí: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin học phí → hệ thống hiển thị danh sách thông tin học phí → người quản trị chọn thông tin học phí cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin học phí → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin học phí. ● Xóa thông tin học bổng, hỗ trợ tài chính: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin học bổng → hệ thống hiển thị danh sách thông tin học bổng → người quản trị chọn thông tin học bổng cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin học bổng → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin học bổng. ● Xóa thông tin tin tức: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin tin tức → hệ thống hiển thị danh sách thông tin tin tức → người quản trị chọn thông tin tin tức cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin tin tức → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin tin tức. ● Xóa thông tin quy trình nhập học: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin quy trình nhập học → hệ thống hiển thị danh sách thông tin quy trình nhập học → người quản trị chọn thông tin quy trình nhập học cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin quy trình nhập học → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin quy trình nhập học. ● Xóa thông tin phương thức xét tuyển: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin phương thức xét tuyển → hệ thống hiển thị danh sách thông tin phương thức xét tuyển → người quản trị chọn thông tin phương thức xét tuyển cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin phương thức xét tuyển → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin phương thức xét tuyển 1.2 Thiết kế tương tác LÊ NHẬT HUY – B19DCCN306 13 ĐỒ ÁN TỐT NGHIỆP Hình 1. 1: Tổng quát hệ thống LÊ NHẬT HUY – B19DCCN306 14 ĐỒ ÁN TỐT NGHIỆP 1.3 Phương pháp tiếp cận và giải quyết vấn đề 1.3.1 Mô hình tổng quát hệ thống Hình 1. 2 Mô hình tổng quát hệ thống 1.3.2 Phương pháp xây dựng phần mềm Dựa vào mô hình tổng quát của hệ thống, em lựa chọn phương pháp hướng dịch vụ để phát triển module server và sử dụng phương pháp hướng đối tượng để phát triển module ứng dụng mobile. Backend và Frontend sẽ được giao tiếp với nhau thông qua Restful API 1.3.2.1 Phương pháp hướng dịch vụ - Khối server SOA hay Service - Oriented Architecture là một thuật ngữ được hiểu nôm na là kiến trúc hướng dịch vụ. Nơi đây tập hợp mọi dịch vụ được kết nối “mềm dẻo” với nhau. Tuy nhiên, chúng vẫn có giao tiếp và được định nghĩa độc lập, rõ ràng với nền tảng hệ thống. Có thể nói, SOA thuộc một cấp độ cao hơn ở phát triển ứng dụng, nó chú trọng nhiều đến quy trình nghiệp vụ. Đồng thời dùng chính giao tiếp chuẩn của mình nhằm che đi sự phức tạp kỹ thuật bên dưới. Nói theo một cách dễ hiểu hơn, thì SOA được LÊ NHẬT HUY – B19DCCN306 15 ĐỒ ÁN TỐT NGHIỆP định nghĩa là kiểu kiến trúc trong phần mềm bao gồm nhiều thành phần đơn lẻ. Chúng tập trung lại và tạo thành những dịch vụ, mỗi dịch vụ thực hiện một nhiệm vụ, quy trình khác nhau. Sự tập hợp những thành phần được kết nối qua cổng giao tiếp, chúng có tính kế thừa các thành phần đang tồn tại. Chúng tương tác với nhau mà không cần quan tâm đến việc mình được phát triển trên nền tảng công nghệ nào. Điều này có tác dụng giúp hệ thống mở rộng hơn và tích hợp một cách dễ dàng. 1.3.2.2 Phương pháp hướng đối tượng - Khối ứng dụngmobile Xây dựng phần mềm hướng đối tượng (Object-Oriented Software Development) là một quá trình phát triển phần mềm sử dụng phương pháp lập trình hướng đối tượng (OOP). Khái niệm cơ bản của OOP: OOP là một phương pháp lập trình mà dữ liệu và mã nguồn được tổ chức thành các "đối tượng." Mỗi đối tượng bao gồm dữ liệu (thuộc tính) và mã nguồn (phương thức) liên quan đến nó. Đối tượng được sử dụng để biểu diễn thực thể trong thế giới thực. Các bước chính trong quá trình xây dựng phần mềm hướng đối tượng:  Phân tích yêu cầu: Trước hết, bạn cần hiểu rõ yêu cầu của dự án phần mềm và xác định các đối tượng và quan hệ giữa chúng.  Thiết kế: Sau khi đã hiểu yêu cầu, bạn sẽ thiết kế kiến trúc của hệ thống, bao gồm việc xác định các lớp, đối tượng, thuộc tính và phương thức. Bạn cũng sẽ quyết định về cách các đối tượng tương tác với nhau.  Lập trình: Tạo mã nguồn theo thiết kế đã xác định, bao gồm việc viết các lớp, phương thức, và triển khai các đối tượng.  Kiểm thử: Thực hiện kiểm thử để đảm bảo rằng phần mềm hoạt động như mong đợi và đáp ứng yêu cầu.  Bảo trì và mở rộng: Sau khi triển khai, phần mềm cần được bảo trì và có thể mở rộng để thêm tính năng mới hoặc sửa lỗi. Lợi ích của xây dựng phần mềm hướng đối tượng:  Tái sử dụng mã nguồn: Các đối tượng có thể được tái sử dụng trong các dự án khác, giúp tiết kiệm thời gian và công sức lập trình.  Dễ bảo trì: Các đối tượng tạo ra một cấu trúc dễ bảo trì, vì bạn có thể tập trung vào từng phần riêng lẻ thay vì phải quản lý một mã nguồn lớn và phức tạp.  Mở rộng dễ dàng: Bạn có thể thêm tính năng mới bằng cách mở rộng hoặc thay đổi các lớp và đối tượng mà không ảnh hưởng đến các phần khác trong hệ thống.  Quản lý dự án tốt hơn: OOP giúp tạo ra cấu trúc dự án rõ ràng và mối quan hệ giữa các thành phần, giúp quản lý dự án dễ dàng hơn.  Xây dựng phần mềm hướng đối tượng giúp tạo ra các ứng dụng có cấu trúc, hiệu quả, và dễ bảo trì. Nó là một trong những phương pháp phát triển phần mềm quan trọng và được ưa chuộng trong ngành công nghiệp phần mềm LÊ NHẬT HUY – B19DCCN306 16 ĐỒ ÁN TỐT NGHIỆP 1.3.3 Kiến trúc phần mềm 1.3.3.1 Kiến trúc Clean Architecture (Dùng cho khối Ứng dụng - App) Clean Architecture là kiến trúc ứng nổi tiếng dựa trên nguyên lý loại bỏ sự lệ thuộc giữa các đối tượng cũng như các layer trong ứng dụng. Trong kiến trúc Clean Architecture bao gồm bốn layer được đại diện thông qua các vòng tròn đồng tâm. Các vòng tròn ở trong sẽ không hề biết gì về các vòng tròn bên ngoài. Nguyên tắc này được minh hoạ như sau: Hình 1. 3 Kiến trúc Clean Architecture Entities là layer trong cùng, cũng là layer quan trọng nhất. Entity chính là các thực thể hay từng đối tượng cụ thể và các rule business login của nó. Trong OOP, đây chính là Object cùng với các method và properties tuân thủ nguyên tắc Encapsulation – chỉ bên trong Object mới có thể thay đổi trạng thái (State) của chính nó. Use Cases là layer chứa các business logic ở cấp độ cụ thể từng Use Case. Interface Adapters chính là các layer phụ trách việc chuyển đổi các format dữ liệu để phù hợp với từng Use Case và Entities. Các format dữ liệu này có thể dùng cả bên trong hoặc bên ngoài ứng dụng. Framework Drivers là tầng ngoài cùng, tổ hợp các công cụ cụ thể phục vụ cho từng nhu cầu của người dùng cuối như: thiết bị (devices), web, application, databases… LÊ NHẬT HUY – B19DCCN306 17 ĐỒ ÁN TỐT NGHIỆP Ưu và Nhược điểm của Clean Architecture Ưu điểm: ● Chia để trị rất hiệu quả trong ứng dụng lớn: Trong Clean Architecture thì code tầng nào thì ở đúng tầng nấy. Hạn chế được việc "code ở đâu cũng là code, chạy được là được". ● Rất dễ maintain và mở rộng: Việc tìm kiếm bug và lỗi logic sẽ trở nên dễ dàng và nhanh hơn. Vì các tầng độc lập với nhau thông qua các Interfaces nên việc mở rộng hoặc thay đổi các tầng sẽ không ảnh hưởng tới nhau. Điều này hạn chế các breaking change cũng như phải viết lại code (refactoring). ● Tách biệt biểu đồ phụ thuộc: Mô hình này tạo ra các lớp hoàn toàn độc lập với nhau, giúp tách biệt business logic, UI và các yếu tố kỹ thuật khác. Điều này giúp cho việc thay đổi từng phần của ứng dụng dễ dàng hơn và không ảnh hưởng đến các phần khác. ● Dễ kiểm thử: Clean Architecture khuyến khích việc viết các unit test dựa trên nguyên tắc "Single Responsibility" dễ dàng hơn và bám sát hơn với yêu cầu. ● Đảm bảo tính độc lập với nền tảng: Clean Architecture giúp đảm bảo ứng dụng của bạn không phụ thuộc quá nhiều vào các công nghệ hoặc nền tảng cụ thể, điều này làm cho việc chuyển đổi giữa các nền tảng hoặc nâng cấp công nghệ dễ dàng hơn. Nhược điểm  Tính trừu tượng cao: Trừu tượng càng cao thì tiện cho các developers nhưng sẽ gây ảnh hưởng không nhỏ tới tốc độ thực thi (performance).  Phức tạp cho các ứng dụng nhỏ: Mô hình Clean Architecture có thể trở nên quá phức tạp cho các ứng dụng nhỏ và đơn giản. Việc triển khai một mô hình như vậy có thể tốn thời gian và công sức không cần thiết.  Yêu cầu kiến thức sâu: Để thiết kế và triển khai Clean Architecture, đòi hỏi kiến thức sâu về thiết kế phần mềm và khả năng phân tích yêu cầu của dự án một cách tỉ mỉ.  Tăng độ phức tạp cho các dự án thay đổi thường xuyên: Đối với các dự án mà yêu cầu sự thay đổi thường xuyên, việc tuân theo mô hình Clean Architecture có thể làm tăng độ phức tạp và tốn nhiều thời gian.  Yêu cầu quản lý cẩn thận: Để triển khai Clean Architecture thành công, bạn cần có quản lý dự án tốt và đảm bảo rằng toàn bộ nhóm phát triển hiểu rõ và tuân theo các quy tắc và nguyên tắc của mô hình. 1.3.3.2 Mô hình MVVM (triển khai kết hợp với Clean Architecture trong khối ứng dụng Android) Bên cạnh việc sử dụng phân chia ứng dụng thành các lớp với nhiệm vụ cụ thể, em kết hợp triểm khai với mô hình MVVM để có thể tách biệt logic giao diện người dùng và logic xử lý dữ liệu. MVVM là viết tắt của Model - View - ViewModel, ở đó View (giao diện người dùng) sẽ được cập nhật bởi ViewModel và việc xử lý Logic hoặc trình bày dữ liệu sẽ do Model đảm nhận LÊ NHẬT HUY – B19DCCN306 18 ĐỒ ÁN TỐT NGHIỆP Hình 1. 4 Mô hình MVVM ViewModel là một abstraction của View. Nó sẽ lấy dữ liệu từ tầng Model, xử lý UI logic sau đó hiển thị data có liên quan tới view. ViewModel sẽ không có bất kỳ behavior nào để tương tác với View. Như vậy để nhận biết khi nào cần hiển thị dữ liệu, View sẽ đăng ký lắng nghe sự kiện từ ViewModel. ViewModels sẽ sử dụng các model nếu cần định nghĩa dữ liệu. Sự liên kết giữa View - ViewModel giúp chúng gửi và nhận dữ liệu, để hiểu rõ ta cần tìm hiểu các khái niệm về Binding, DataContext, Behaviors SDK. Nhờ đó ta tách code-behind của View và đưa xuống ViewModel. Thành phần giao diện của ứng dụng (View) là thành phần duy nhất mà người dùng có thể tương tác được trong chương trình, nó chính là thành phần mô tả dữ liệu. Trong lập trình android, View là một activity, fragment, hay một custom view… Quan hệ giữa ViewModel và View là 1-n, nghĩa là nhiều View có thể liên kết với 1 ViewModel Model là các đối tượng giúp truy xuất và thao tác trên dữ liệu. Model chứa phần data được lấy từ nhiều nguồn khác nhau, ví dụ như: từ remote hoặc từ data local. Tuy nhiên cần phải lưu ý đó là model chỉ lưu giữ thông tin mà thôi, nó không quan tâm đến các hoạt động hay dịch vụ có thể thay đổi, điều khiển các thông tin đó. Ví dụ như nó không có trách nhiệm phải định dạng đoạn văn bản hiển thị như thế nào, hay làm sao để lấy một danh sách các item về từ remote server. Clean Architecture giúp tạo ra một cấu trúc rõ ràng với các lớp và tầng có trách nhiệm cụ thể, giúp dễ bảo trì và mở rộng mã nguồn. Cùng với đó, MVVM tách biệt logic giao diện người dùng và logic xử lý dữ liệu, giúp kiểm thử dễ dàng và thích ứng với sự thay đổi. Sự kết hợp này cũng giúp tái sử dụng mã nguồn hiệu quả, khiến cho việc quản lý độ phức tạp của ứng dụng trở nên dễ dàng hơn. Mô hình thiết kế này tạo điều kiện cho việc phát triển ứng dụng linh hoạt, đồng thời giữ cho mã nguồn sạch sẽ, dễ đọc và có khả năng mở rộng cao. LÊ NHẬT HUY – B19DCCN306 19 ĐỒ ÁN TỐT NGHIỆP 1.3.4 Công nghệ triển khai hệ thống 1.3.4.1 Phía server 1.3.4.1.1. Flask Flask là một framework web siêu nhẹ và dễ sử dụng trong ngôn ngữ lập trình Python, được phát triển để xây dựng ứng dụng web nhanh chóng và hiệu quả. Dựa trên triết học "micro" của nó, Flask tập trung vào cung cấp các công cụ cơ bản như định tuyến URL và xử lý HTTP requests, cho phép bạn xây dựng các ứng dụng web tùy chỉnh mà không bị ràng buộc bởi cấu trúc phức tạp. Một số điểm nổi bật về Flask: ● Siêu nhẹ: Flask được thiết kế với mục tiêu là duyệt đơn giản và siêu nhẹ. Nó không yêu cầu nhiều dependencies bên ngoài và cho phép bạn tự do lựa chọn các thành phần bạn muốn sử dụng trong dự án của mình. ● Dễ học và sử dụng: Flask có cú pháp đơn giản và tài liệu rõ ràng, làm cho việc học và sử dụng nó rất dễ dàng, đặc biệt đối với người mới bắt đầu phát triển web. ● Định tuyến mạnh mẽ: Flask cho phép bạn xác định các định tuyến URL dễ dàng, đồng thời kết hợp với các hàm xử lý để quản lý các request và response. ● Thích hợp cho ứng dụng nhỏ và trung bình: Flask thích hợp cho việc xây dựng ứng dụng web vừa và nhỏ, đặc biệt là các ứng dụng prototype hoặc dự án cá nhân. Flask là một framework có khả năng phát triển các ứng dụng web đáng tin cậy và mạnh mẽ. Điều này làm cho Flask trở thành một sự lựa chọn phổ biến trong cộng đồng phát triển Python cho việc xây dựng các dự án web đơn giản và tùy chỉnh. Em đã sử dụng Flask để có thể xây dựng các API service phục vụ cho công việc ứng dụng android gửi yêu cầu xử lý và trả về các thông tin cần thiết 1.3.4.1.2 SQLite SQLite là hệ quả trị cơ sở dữ liệu (DBMS) quan hệ tương tự như Mysql, Đặc điểm nổi bật của SQLite so với các DBMS khác là gọn, nhẹ, đơn giản, đặt biệt không cần mô hình server-client, không cần cài đặt, cấu hình hay khởi động nên không có khái niệm user, password hay quyền hạn trong SQLite Database. Dữ liệu cũng được lưu ở một file duy nhất. SQLite thường không được sử dụng với các hệ thống lớn nhưng với những hệ thống ở quy mô vừa và nhỏ thì SQLite không thua các DBMS khác về chức năng hay tốc độ. Vì không cần cài đặt hay cấu hình nên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm … vì tránh được những rắc rối trong quá trình cài đặt. Các ưu điểm của SQLite: ● Nhỏ gọn: SQLite chỉ là một tệp duy nhất, vì vậy nó dễ dàng tải xuống và cài đặt. ● Hiệu quả: SQLite được thiết kế để chạy trên các thiết bị có tài nguyên hạn chế. LÊ NHẬT HUY – B19DCCN306 20 ĐỒ ÁN TỐT NGHIỆP ● Mã nguồn mở: SQLite là mã nguồn mở, vì vậy nó có thể được sửa đổi và tùy chỉnh theo nhu cầu. ● Dễ sử dụng: SQLite sử dụng ngôn ngữ SQL tiêu chuẩn, vì vậy nó dễ dàng học và sử dụng. SQLite được em sử dụng trong đồ án với vai trò là nơi lưu trữ các thông tin thực thể cần thiết cho hệ thống như các thông tin về trường, thông tin về ngành học, … SQLite được đặt tại khối API Service phục vụ cho việc các Service truy vấn dữ liệu và lấy ra các thông tin dữ liệu cần thiết và trả về cho ứng dụng Mobile 1.3.4.2 Phía Client 1.3.4.2.1 Android Studio Android Studio là môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng dụng Android. Nó được phát triển bởi Google và dựa trên IDE Java IntelliJ của hãng JetBrains. Android Studio cung cấp một loạt các tính năng và công cụ giúp các nhà phát triển tạo ra các ứng dụng Android chất lượng cao. Các tính năng chính của Android Studio: ● Giao diện người dùng thân thiện và dễ sử dụng: Android Studio được thiết kế với giao diện người dùng trực quan và dễ sử dụng. Các nhà phát triển có thể dễ dàng tìm thấy các tính năng và công cụ cần thiết để phát triển ứng dụng Android. ● Hỗ trợ các ngôn ngữ lập trình: Android Studio hỗ trợ các ngôn ngữ lập trình Java, Kotlin, C++, và C. Các nhà phát triển có thể chọn ngôn ngữ lập trình phù hợp với nhu cầu của mình. ● Các công cụ phát triển tích hợp: Android Studio cung cấp một loạt các công cụ phát triển tích hợp giúp các nhà phát triển tạo ra các ứng dụng Android nhanh hơn và hiệu quả hơn. Các công cụ này bao gồm: ● Trình soạn thảo mã: Trình soạn thảo mã của Android Studio được tích hợp các tính năng nâng cao như tự động hoàn thành, kiểm tra lỗi, và gợi ý từ khóa. ● Trình quản lý dự án: Trình quản lý dự án của Android Studio giúp các nhà phát triển dễ dàng quản lý các dự án ứng dụng Android của mình. ● Trình xây dựng: Trình xây dựng của Android Studio giúp các nhà phát triển nhanh chóng xây dựng và triển khai các ứng dụng Android. ● Trình mô phỏng: Trình mô phỏng của Android Studio giúp các nhà phát triển kiểm tra và gỡ lỗi các ứng dụng Android của mình trên các thiết bị ảo. 1.3.4.2.2 Android Jetpack Android Jetpack là một bộ công cụ và thư viện hỗ trợ mạnh mẽ được phát triển bởi Google để giúp nhà phát triển xây dựng ứng dụng Android hiệu quả, ổn định và dễ quản lý hơn. Android Jetpack cung cấp một cơ sở vững chắc cho việc phát triển ứng dụng bằng cách giảm bớt sự phức tạp, tối ưu hóa việc quản lý vòng đời và cung cấp LÊ NHẬT HUY – B19DCCN306 21 ĐỒ ÁN TỐT NGHIỆP các công cụ mạnh mẽ cho việc làm việc với giao diện người dùng, dữ liệu, và các tính năng chung. Gói Android Jetpack bao gồm nhiều thành phần khác nhau, một số ví dụ như: ● AppCompat: Đảm bảo ứng dụng hoạt động mượt mà trên các phiên bản Android khác nhau. ● ViewModel: Giúp quản lý dữ liệu và trạng thái ứng dụng trong suốt quá trình hoạt động của ứng dụng, giúp tránh rò rỉ bộ nhớ và giúp vượt qua sự hủy bỏ và tái khởi động hoạt động. ● Room: Thư viện cơ sở dữ liệu dễ sử dụng để làm việc với SQLite, cung cấp một cách thuận tiện để lưu trữ và truy vấn dữ liệu trong ứng dụng. ● Navigation: Giúp quản lý quá trình điều hướng giữa các màn hình và sự chuyển đổi giữa các phân đoạn (Fragments) trong ứng dụng. ● LiveData: Thông báo về các thay đổi trong dữ liệu và tự động cập nhật giao diện người dùng khi có thay đổi. 1.3.4.2.3 Coroutine Coroutines là một khái niệm quan trọng trong lập trình Android hiện đại, cho phép chúng ta thực hiện các tác vụ không đồng bộ một cách hiệu quả và dễ...

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

Trang 4

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 5

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn đến các thầy cô trong Học viện Công nghệ Bưu chính Viễn thông nói chung và các thầy cô trong khoa Công nghệ thông tin nói riêng Cảm ơn các thầy cô đã dạy cho em rất nhiều kiến thức và kinh nghiệm trong suốt những năm đại học, giúp em có được cơ sở lý thuyết vững vàng và tạo một môi trườnghọc tập chuyên nghiệp để em có thể phát triển bản thân và vững bước trên con đường phát triển sự nghiệp

Em xin gửi lời cảm ơn chân thành đến cô Đỗ Thị Liên đã tận tình hướng dẫn, dẫndắt cũng như tạo điều kiện giúp em hoàn thành đồ án này, em xin chúc cô và gia đình thật nhiều sức khỏe và thành công

Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành khóa luận tốt nghiệp

Vì thời gian có hạn, trình độ hiểu biết của bản thân còn nhiều hạn chế Cho nên trong đồ án này không tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến của tất cả các thầy cô giáo cũng như các bạn bè để đồ án em được hoàn thiện hơn nữa

Em xin chân thành cảm ơn!

Trang 6

Chương 2: Công nghệ tư vấn thông tin tuyển sinh tự động 24

2.1 Yêu cầu tư vấn tuyển sinh tự động 24

2.2 Nguyên lý hoạt động 24

2.2.1 Nguyên lý hoạt động của speech to text 24

2.2.2 Nguyên lý tư vấn tự động 25

2.3 Xử lý bài toán với mô hình seq2seq và cơ chế attention 26

2.3.1 Giới thiệu mô hình Sequence-to-Sequence 26

2.3.2 Giới thiệu cơ chế attention 27

3.2 Thiết kế hệ thống tư vấn tuyển sinh tự động 56

Chương 4: Thiết kế cơ sở dữ liệu 66

Kết luận chung 71

Phụ lục: Cài đặt và triển khai 72

Trang 7

DANH MỤC CÁC HÌNH

Hình 1 2 Mô hình tổng quát hệ thống15Hình 1 3 Kiến trúc Clean Architecture17

Hình 1 4 Mô hình MVVM 19

Hình 2 1 Mô hình xử lý 24

Hình 2 2 Nguyên lý hoạt động speech to text 25

Hình 2 3 Ví dụ về nguyên lý hoạt động của mô hình ngôn ngữ 25

Hình 2 4 Mô tả về việc huấn luyện trước 26

Hình 2 5 Mô hình Encoder - Decoder 27

Hình 2 6 Cơ chế extension 27

Hình 2 7 Mô hình transformer 28

Hình 2 8 Cơ chế self – extension của transformer 30

Hình 2 9 Mô tả về attension vector 30

Hình 2 10 Kiến trúc transformer 31

Hình 2 11 Sơ đồ kiến trúc của OpenAi Whisper 32

Hình 2 12 Một số thông tin từ học viện 33

Hình 2 13 Biểu đồ training loss 34Hình 3 1 Usecase tổng quan hệ thống35Hình 3 2 Chức năng xem thông tin trường36Hình 3 3 Chức năng xem thông tin ngành36Hình 3 4 Chức năng tư vấn tự động37Hình 3 5 Chức năng xem thông tin học phí37Hình 3 6 Chức năng xem thông tin nghề nghiệp38Hình 3 7 Chức năng xem phương thức xét tuyển38Hình 3 8 Chức năng xem thông tin học bổng39

Hình 3 10 Chức năng xem quy trình nhập học40Hình 3 11 Chức năng chỉnh sửa thông tin trường40Hình 3 12 Chức năng chỉnh sửa thông tin ngành41Hình 3 13 Chức năng chỉnh sửa thông tin nghề nghiệp41Hình 3 14 Chức năng chỉnh sửa thông tin học bổng42Hình 3 15 Chức năng chỉnh sửa tin tức42Hình 3 16 Usecase chỉnh sửa quy trình nhập học43Hình 3 17 Usecase chỉnh sửa thông tin học phí43Hình 3 18 Usecase chỉnh sửa phương thức xét tuyển44

Hình 3 20 Biểu đồ tuần tự chức năng xem thông tin trường55Hình 3 21 Biểu đồ tuần tự chức năng xem thông tin ngành56Hình 3 22 Biểu đồ tuần tự chức năng tư vấn tự động56Hình 3 23 Biểu đồ tuần tự chức năng xem thông tin học bổng57Hình 3 24 Biểu đồ tuần tự chức năng xem thông tin học phí57Hình 3 25 Biểu đồ tuần tự chức năng xem thông tin nghề nghiệp58Hình 3 26 Biểu đồ tuần tự chức năng xem tin tức58Hình 3 27 Biểu đồ tuần tự chức năng xem quy trình nhập học59Hình 3 28 Biểu đồ tuần tự chức năng xem phương thức xét tuyển59Hình 3 29 Biểu đồ tuần tự chức năng chỉnh sửa thông tin trường60Hình 3 30 Biểu đồ tuần tự chức năng chỉnh sửa thông tin ngành60Hình 3 31 Biểu đồ tuần tự chức năng chỉnh sửa thông tin nghề nghiệp61Hình 3 32 Biểu đồ tuần tự chức năng chỉnh sửa thông tin học bổng61Hình 3 33 Biểu đồ tuần tự chức năng chỉnh sửa tin tức62Hình 3 34 Biểu đồ tuần tự chức năng chỉnh sửa quy trình nhập học62

Hình 3 37 Biểu đồ thiết kế cơ sở dữ liệu65

Trang 8

Chương 1: Tổng quan về hệ thống tư vấn thông tin tuyển sinh PTIT

Tại chương 1: Tổng quan về hệ thống tư vấn thông tin tuyển sinh PTIT, em sẽ trình bày tổng quan về yêu cầu cho hệ thống tư vấn tuyển sinh đồng thời cũng khảo sáthiện trạng và so sánh với những hệ thống tư vấn hiện có Điều này nhằm mục đích xác định những yếu điểm cũng như những ưu điểm của các hệ thống đối thủ, từ đó đề xuất những cải tiến cho hệ thống của mình

Đồng thời em sẽ giới thiệu khái quát qua về yêu cầu phần mềm cho hệ thống tư vấn, bao gồm những chức năng cụ thể mà người dùng có thể mong đợi từ sản phẩm Ngoài ra, chương này sẽ đưa ra thiết kế tương tác để minh họa diện mạo đầu ra của hệ thống, giúp dễ dàng hình dung về ứng dụng Trên cơ sở đó em tiến hành xác định phương pháp tiếp cận và giải quyết vấn đề cho bài toán đặt ra.

1.1 Tổng quan hệ thống1.1.1 Mục đích hệ thống

Hệ thống phục vụ cho công tác tư vấn tuyển sinh, định hướng nghề nghiệp và xem chỉ tiêu xét tuyển nhằm cung cấp những thông tin cần thiết về Học viện Công nghệ Bưu chính viễn thông ví dụ như các thông tin về chương trình học, yêu cầu đầu vào và cơ hội việc làm sau khi tốt nghiệp,

Học sinh, sinh viên cũng có thể nắm bắt được thông tin về các quy trình cần thiết lúc nhập học như là hướng dẫn về quy trình nộp hồ sơ xét tuyển, cách chuẩn bị cho cáckỳ thi đầu vào và các vấn đề liên quan đến đăng ký tuyển sinh hay những thông tin chi tiết về học bổng, hỗ trợ tài chính và các nguồn tài trợ khác để giúp học sinh đạt được mục tiêu học tập của mình

Ngoài ra, hệ thống còn có chức năng tư vấn tự động (người dùng có thể chat hoặcsử dụng giọng nói để đưa ra yêu cầu) để có thể nắm thông tin về các khóa học, chươngtrình học, ngành nghề phù hợp với từng học sinh.

1.1.2 Khảo sát các sản phẩm tương tự

Một số hệ thống tư vấn tuyển sinh:

Website ketnoigiaoduc.vn: là một cổng thông tin điện tử về tuyển sinh đào tạo

của Công ty Cổ phần Cổng thông tin Giáo dục Việt Nam Trang web cung cấp các thông tin về quy chế, quy định về thi và tuyển sinh các cấp, các chính sách mới nhất của nhà nước về giáo dục đào tạo, những tư vấn lời khuyên chuyên gia về hướng nghiệp, chọn trường, thi cử, các bí quyết về tuyển sinh hiệu quả, vv giúp thí sinh tìm hiểu những thông tin tuyển sinh, thông tin đầy đủ và cập nhật của các trường, các đơn vị giáo dục đào tạo, các nhà tuyển sinh cả nước trước khi đưa ra các quyết định đăng ký tuyển sinh nhập học

Website tuyensinh.ufm.edu.vn: Đại học tài chính, Marketing: là cổng thông tin

tuyển sinh của Đại học tài chính - Marketing: Cung cấp các thông tin như hướng nghiệp, thông tin các chuyên ngành đào tạo, thông tin tuyển sinh liên kết quốc tế, thông tin nhập học, …

Trang 9

Học viện Công nghệ Bưu chính Viễn thông (PTIT): PTIT Slink, PTIT Slink tuyển sinh - là các ứng dụng cung cấp đầy đủ các thông tin về nhà trường ví dụ như thông tin nhà trường, thông tin các ngành học, ứng dụng được Học viện Công nghệ Bưu chính Viễn thông phát triển nhằm hỗ trợ thí sinh và phụ huynh trong quá trình tuyển sinh vào trường Ứng dụng PTIT S-Link Tuyển sinh là một công cụ hữu ích giúpthí sinh và phụ huynh thuận tiện hơn trong quá trình tuyển sinh vào Học viện Công nghệ Bưu chính Viễn thông Ứng dụng cung cấp thông tin tuyển sinh đầy đủ và chính xác về các phương thức tuyển sinh, chỉ tiêu, tổ hợp xét tuyển, của Học viện đồng thời cung cấp các thông tin hỗ trợ tuyển sinh như lịch thi, hướng dẫn thí sinh,

Nhìn chung, các trường đại học tại Việt Nam đều có hệ thống tư vấn tuyển sinh đa dạng, bao gồm tư vấn trực tuyến, tư vấn qua điện thoại và tư vấn trực tiếp Các hệ thống tư vấn này nhằm cung cấp thông tin tuyển sinh và hỗ trợ thí sinh trong quá trình lựa chọn ngành nghề phù hợp hay nắm thêm các thông tin chi tiết

Do đó các bạn học sinh, sinh viên có thể có nhiều cách tiếp cận thông tin và có rất nhiều thông tin có thể nắm bắt Tuy nhiên đối với việc tư vấn trực tiếp, đôi khi người tư vấn viên lại không có mặt ngay tức thì để hỗ trợ giải đáp kịp thời Từ điều này, có thể cải thiện thêm chức năng tư vấn tuyển sinh tự động không cần tới nhân viên tư vấn.Đặc biệt trong trường hợp các bạn không tiện sử dụng bàn phím, một chức năng nhận diện giọng nói sẽ giúp các bạn có thể dễ dàng đưa ra câu hỏi.

1.1.3 Yêu cầu hoạt động của ứng dụng

Sau khi khảo sát các hệ thống trên, có thể nhận thấy các hệ thống tư vấn tuyển sinhđều có các điểm mạnh, bao gồm đa dạng thông tin, thông tin chính xác và cập nhật, cũng như khả năng hỗ trợ thí sinh trong việc lựa chọn ngành nghề và quá trình tuyển sinh

Mỗi khi tới kỳ tuyển sinh, việc cung cấp thông tin giải đáp thắc mắc cho các bạn học sinh, sinh viên là rất quan trọng Với số lượng sinh viên mỗi năm là cực kỳ lớn, việc cung cấp thông tin chính xác và kịp thời là một việc rất quan trọng Ngoài ra, với số lượng lớn như vậy, việc nhận về số lượng các câu hỏi và các cách thức hỏi khác nhau cho một mục đích là rất nhiều Vậy làm sao để có thể nhận biết được đâu là mục đích mà câu hỏi hướng tới để đưa ra câu trả lời chính xác? Ngoài ra, để đem lại sự thuận tiện cho những thời điểm học sinh, sinh viên không tiện để có thể soạn và nhắn ra câu hỏi, làm thế nào để có thể hỗ trợ họ? Tuy nhiên các hệ thống trên đang triển khai tư vấn dạng tư vấn trực tiếp, cần người tư vấn cho sinh viên Trường hợp người tưvấn trực tiếp đang không thể trả lời, sinh viên có thể nhận được thông tin chậm trễ Để giúp các bạn có thể dễ dàng hơn trong việc tìm kiếm thông tin, bên cạnh các chức năngthông tin, hệ thống xây dựng chức năng hỗ trợ giải đáp thắc mắc tự động, các bạn học sinh và sinh viên có thể nhận được thông tin cần thiết một cách nhanh chóng.

Trong một số trường hợp khi các bạn học sinh, sinh viên không tiện sử dụng bàn phím, hệ thống có thể hỗ trợ các bạn bằng chức năng nhận diện giọng nói, dễ dàng đặt câu hỏi bằng lời nói.

Trang 10

1.1.3.1 Phần dành cho người dùng cuối

● Đăng nhập: Người dùng thực hiện truy cập vào hệ thống → hệ thống hiển thị màn hình đăng nhập → Người dùng nhập thông tin tài khoản và nhấn nút đăng nhập → Hệ thống sẽ chuyển sang màn hình trang chủ

● Đăng ký: Người dùng thực hiện truy cập vào hệ thống → hệ thống hiển thị màn hình đăng nhập → Người dùng nhấn chọn đăng ký → Hệ thống hiển thị màn hình đăng ký → Người dùng nhập thông tin tài khoản và nhấn nút đăng ký → Hệthống sẽ hiển thị trạng thái đăng ký và chuyển về màn hình đăng nhập

● Đăng xuất: Người dùng đã đăng nhập thành công và thực hiện di chuyển qua màn thông tin → hệ thống hiển thị giao diện thông tin → Người dùng nhấn vào nút Đăng xuất → hệ thống hiển thị thông báo bạn có muốn đăng xuất → Người dùng xác nhận → hệ thống di chuyển về màn hình đăng nhập

● Xem thông tin trường: sinh viên đăng nhập vào hệ thống → chọn chức năng giới thiệu về trường → hệ thống hiển thị thông tin về trường, sinh viên nhấn chọn lịchsử → hệ thống hiển thị thông tin về lịch sử hình thành

● Xem thông tin ngành: sinh viên chọn xem thông tin ngành → hệ thống hiển thị danh sách các ngành học và chỉ tiêu tuyển sinh đi kèm → sinh viên nhấn chọn một ngành → hệ thống hiển thị các thông tin về ngành bao gồm: mã ngành, thời gian học, ngày nhập học, cơ sở và chương trình đào tạo của ngành

● Tư vấn tuyển sinh tự động: sinh viên đăng nhập vào hệ thống, sinh viên chọn icon bot → hệ thống hiển thị màn hình chat tư vấn → sinh viên thực hiện chat hoặc sử dụng giọng nói và chat bot sẽ trả lời dựa theo nội dung sinh viên vừa nhập

● Định hướng nghề nghiệp: sinh viên bấm vào chức năng định hướng nghề nghiệp → hệ thống hiển thị danh sách các nghề nghiệp hiện có

● Xem thông tin học bổng, hỗ trợ tài chính: tại màn hình trang chủ, sinh viên nhấn vào xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn vào xem thông tin học bổng, hỗ trợ tài chính → hệ thống hiển thị màn hình thông tin học bổng, hỗ trợ tài chính

● Xem tin tức: Tại màn hình trang chủ, sinh viên nhấn vào phần tin tức tại bottom nav, hệ thống hiển thị màn hình danh sách tin tức → sinh viên nhấn chọn một tin tức → hệ thống hiển thị màn hình tin tức vừa được chọn

● Xem quy trình nhập học: tại màn hình trang chủ, sinh viên nhấn vào xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn vào xem quy trình nhập học → hệ thống hiển thị màn hình quy trình nhập học

● Xem thông tin học phí: tại màn hình trang chủ, sinh viên nhấn vào xem thêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn chọn xem họcphí → hệ thống hiển thị thông tin về học phí

● Xem phương thức xét tuyển: tại màn hình trang chủ, sinh viên nhấn vào cụm xemthêm → hệ thống hiển thị màn hình danh sách chức năng → sinh viên nhấn vào chức năng xem phương thức xét tuyển → hệ thống hiển thị thông tin xem phương thức xét tuyển

Trang 11

1.1.3.2 Phần dành cho người quản trị

● Người quản trị có chức năng xem thông tin tương tự người dùng cuối

● Xem danh sách tài khoản người dùng: sau khi đăng nhập thành công, người quản trị bấm vào icon profile → hệ thống hiển thị màn hình profile → người quản trị bấm vào Quản lý danh sách tài khoản → Hệ thống chuyển sang màn danh sách tài khoản.

● Xoá tài khoản người dùng: sau khi đăng nhập thành công, người quản trị bấm vàoicon profile → hệ thống hiển thị màn hình profile → người quản trị bấm vào Quản lý danh sách tài khoản → Hệ thống chuyển sang màn danh sách tài khoản → người dùng bấm

● Chỉnh sửa thông tin của trường: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin trường → hệ thống hiển thị giao diện thông tin chi tiết gồm tên, địa chỉ, … → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin→ người quản trị chỉnh sửa thông tin trường và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình thông tin trường

● Chỉnh sửa thông tin ngành: người quản trị sau khi đăng nhập, bấm vào thêm chứcnăng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin ngành→ hệ thống hiển thị giao diện thông tin chi tiết gồm tên ngành, thông tin ngành, … → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin ngành và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin ngành

● Chỉnh sửa thông tin nghề nghiệp: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéoxuống phần chức năng quản lý và chọn chỉnh sửa thông tin ngành nghề nghiệp →hệ thống hiển thị giao diện thông tin chi tiết gồm tên ngành nghề, thông tin ngànhnghề, … → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin ngành và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin ngành nghề.

● Chỉnh sửa thông tin học phí: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin học phí → hệ thống hiển thị giao diện thông tin chi tiết gồm số tiền, hạn thanh toán… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin ngành và bấm lưu thay đổi → hệ thống báo lưu thành công vàquay về màn hình hiển thị thông tin học phí.

● Chỉnh sửa thông tin học bổng, hỗ trợ tài chính: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin học bổng →hệ thống hiển thị giao diện thông tin chi tiết gồm số tiền, hạn thanh toán… →

Trang 12

người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin học phí và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin học phí

● Chỉnh sửa thông tin tin tức: người quản trị sau khi đăng nhập, bấm vào thêm chứcnăng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin tin tức → hệ thống hiển thị giao diện thông tin chi tiết gồm ảnh, tiêu đề, nội dung tin tức… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin tin tức và bấm lưu thay đổi → hệ thống báo lưu thành công và quayvề màn hình hiển thị thông tin tin tức.

● Chỉnh sửa thông tin quy trình nhập học: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùngkéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin tin tức → hệ thống hiển thị giao diện thông tin chi tiết gồm các bước hướng dẫn nhập học… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin về quy trình nhập học và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin quy trình nhập học.

● Chỉnh sửa thông tin phương thức xét tuyển: người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn chỉnh sửa thông tin phương thức xét tuyển → hệ thống hiển thị giao diện thông tin chi tiết gồm các phương thức xét tuyển… → người quản trị bấm chỉnh sửa → hệ thống cho phép thay đổi thông tin → người quản trị chỉnh sửa thông tin phương thức xét tuyển và bấm lưu thay đổi → hệ thống báo lưu thành công và quay về màn hình hiển thị thông tin phương thức xét tuyển.

● Xóa thông tin trường: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin trường → hệ thống hiển thị danh sách thông tin trường → người quản trị chọn thông tin trường cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin trường → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin trường.

● Xóa thông tin ngành: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng→ hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin ngành → hệ thống hiển thị danh sách thông tin ngành → người quản trị chọn thông tin ngành cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xoá thông tin ngành → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin ngành.

● Xóa thông tin ngành nghề nghiệp: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin ngành nghề nghiệp → hệ thống hiển thị danh sách thông tin ngành nghề nghiệp → người quản trị chọn

Trang 13

thông tin ngành nghề nghiệp cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin ngành nghề nghiệp → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin ngành nghề nghiệp.

● Xóa thông tin học phí: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin học phí → hệ thống hiển thị danh sách thông tin học phí → người quản trị chọn thông tin học phí cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin học phí →hệ thống báo xóa thành công và cập nhật lại danh sách thông tin học phí.

● Xóa thông tin học bổng, hỗ trợ tài chính: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin học bổng → hệ thống hiển thị danh sách thông tin học bổng → người quản trị chọn thông tin học bổng cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thôngtin học bổng → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin học bổng.

● Xóa thông tin tin tức: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin tin tức → hệ thống hiển thị danh sách thông tin tin tức → người quản trị chọn thông tin tin tức cần xoá → hệ thốngcho phép xác nhận xóa → người quản trị xác nhận xóa thông tin tin tức → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin tin tức.

● Xóa thông tin quy trình nhập học: Người quản trị sau khi đăng nhập, bấm vào thêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin quy trình nhập học → hệ thống hiển thị danh sách thông tin quy trình nhập học → người quản trị chọn thông tin quy trình nhập học cần xoá → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xóa thông tin quy trình nhập học → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin quy trình nhập học.

● Xóa thông tin phương thức xét tuyển: Người quản trị sau khi đăng nhập, bấm vàothêm chức năng → hệ thống hiển thị màn hình các chức năng → người dùng kéo xuống phần chức năng quản lý và chọn xoá thông tin phương thức xét tuyển → hệ thống hiển thị danh sách thông tin phương thức xét tuyển → người quản trị chọn thông tin phương thức xét tuyển cần xoá → hệ thống cho phép xác nhận xóa→ người quản trị xác nhận xóa thông tin phương thức xét tuyển → hệ thống báo xóa thành công và cập nhật lại danh sách thông tin phương thức xét tuyển

1.2 Thiết kế tương tác

Trang 14

Hình 1 1: Tổng quát hệ thống

Trang 15

1.3 Phương pháp tiếp cận và giải quyết vấn đề1.3.1 Mô hình tổng quát hệ thống

Hình 1 2 Mô hình tổng quát hệ thống

1.3.2 Phương pháp xây dựng phần mềm

Dựa vào mô hình tổng quát của hệ thống, em lựa chọn phương pháp hướng dịch vụ để phát triển module server và sử dụng phương pháp hướng đối tượng để phát triển module ứng dụng/ mobile Backend và Frontend sẽ được giao tiếp với nhau thông qua Restful API

1.3.2.1 Phương pháp hướng dịch vụ - Khối server

SOA hay Service - Oriented Architecture là một thuật ngữ được hiểu nôm na là kiến trúc hướng dịch vụ Nơi đây tập hợp mọi dịch vụ được kết nối “mềm dẻo” với nhau Tuy nhiên, chúng vẫn có giao tiếp và được định nghĩa độc lập, rõ ràng với nền tảng hệ thống.

Có thể nói, SOA thuộc một cấp độ cao hơn ở phát triển ứng dụng, nó chú trọng nhiều đến quy trình nghiệp vụ Đồng thời dùng chính giao tiếp chuẩn của mình nhằm che đi sự phức tạp kỹ thuật bên dưới Nói theo một cách dễ hiểu hơn, thì SOA được

Trang 16

định nghĩa là kiểu kiến trúc trong phần mềm bao gồm nhiều thành phần đơn lẻ Chúng tập trung lại và tạo thành những dịch vụ, mỗi dịch vụ thực hiện một nhiệm vụ, quy trình khác nhau.

Sự tập hợp những thành phần được kết nối qua cổng giao tiếp, chúng có tính kế thừa các thành phần đang tồn tại Chúng tương tác với nhau mà không cần quan tâm đến việc mình được phát triển trên nền tảng công nghệ nào Điều này có tác dụng giúp hệ thống mở rộng hơn và tích hợp một cách dễ dàng.

1.3.2.2 Phương pháp hướng đối tượng - Khối ứng dụng/mobile

Xây dựng phần mềm hướng đối tượng (Object-Oriented Software Development) là một quá trình phát triển phần mềm sử dụng phương pháp lập trình hướng đối tượng (OOP)

Khái niệm cơ bản của OOP: OOP là một phương pháp lập trình mà dữ liệu và mãnguồn được tổ chức thành các "đối tượng." Mỗi đối tượng bao gồm dữ liệu (thuộc tính) và mã nguồn (phương thức) liên quan đến nó Đối tượng được sử dụng để biểu diễn thực thể trong thế giới thực.

Các bước chính trong quá trình xây dựng phần mềm hướng đối tượng:

 Phân tích yêu cầu: Trước hết, bạn cần hiểu rõ yêu cầu của dự án phần mềm và xác định các đối tượng và quan hệ giữa chúng.

 Thiết kế: Sau khi đã hiểu yêu cầu, bạn sẽ thiết kế kiến trúc của hệ thống, bao gồm việc xác định các lớp, đối tượng, thuộc tính và phương thức Bạn cũng sẽ quyết định về cách các đối tượng tương tác với nhau.

 Lập trình: Tạo mã nguồn theo thiết kế đã xác định, bao gồm việc viết các lớp, phương thức, và triển khai các đối tượng.

 Kiểm thử: Thực hiện kiểm thử để đảm bảo rằng phần mềm hoạt động như mongđợi và đáp ứng yêu cầu.

 Bảo trì và mở rộng: Sau khi triển khai, phần mềm cần được bảo trì và có thể mởrộng để thêm tính năng mới hoặc sửa lỗi.

Lợi ích của xây dựng phần mềm hướng đối tượng:

 Tái sử dụng mã nguồn: Các đối tượng có thể được tái sử dụng trong các dự án khác, giúp tiết kiệm thời gian và công sức lập trình.

 Dễ bảo trì: Các đối tượng tạo ra một cấu trúc dễ bảo trì, vì bạn có thể tập trung vào từng phần riêng lẻ thay vì phải quản lý một mã nguồn lớn và phức tạp.

 Mở rộng dễ dàng: Bạn có thể thêm tính năng mới bằng cách mở rộng hoặc thay đổi các lớp và đối tượng mà không ảnh hưởng đến các phần khác trong hệ thống.

 Quản lý dự án tốt hơn: OOP giúp tạo ra cấu trúc dự án rõ ràng và mối quan hệ giữa các thành phần, giúp quản lý dự án dễ dàng hơn.

 Xây dựng phần mềm hướng đối tượng giúp tạo ra các ứng dụng có cấu trúc, hiệu quả, và dễ bảo trì Nó là một trong những phương pháp phát triển phần mềm quantrọng và được ưa chuộng trong ngành công nghiệp phần mềm

Trang 17

1.3.3 Kiến trúc phần mềm

1.3.3.1 Kiến trúc Clean Architecture (Dùng cho khối Ứng dụng - App)

Clean Architecture là kiến trúc ứng nổi tiếng dựa trên nguyên lý loại bỏ sự lệ thuộc giữa các đối tượng cũng như các layer trong ứng dụng Trong kiến trúc Clean Architecture bao gồm bốn layer được đại diện thông qua các vòng tròn đồng tâm Các vòng tròn ở trong sẽ không hề biết gì về các vòng tròn bên ngoài Nguyên tắc này đượcminh hoạ như sau:

Hình 1 3 Kiến trúc Clean Architecture

Entities là layer trong cùng, cũng là layer quan trọng nhất Entity chính là các thực thể hay từng đối tượng cụ thể và các rule business login của nó Trong OOP, đây chính là Object cùng với các method và properties tuân thủ nguyên tắc Encapsulation –chỉ bên trong Object mới có thể thay đổi trạng thái (State) của chính nó

Use Cases là layer chứa các business logic ở cấp độ cụ thể từng Use Case Interface Adapters chính là các layer phụ trách việc chuyển đổi các format dữ liệu để phù hợp với từng Use Case và Entities Các format dữ liệu này có thể dùng cả bên trong hoặc bên ngoài ứng dụng

Framework & Drivers là tầng ngoài cùng, tổ hợp các công cụ cụ thể phục vụ cho từng nhu cầu của người dùng cuối như: thiết bị (devices), web, application,

databases…

Trang 18

Ưu và Nhược điểm của Clean ArchitectureƯu điểm:

● Chia để trị rất hiệu quả trong ứng dụng lớn: Trong Clean Architecture thì codetầng nào thì ở đúng tầng nấy Hạn chế được việc "code ở đâu cũng là code, chạy được là được"

● Rất dễ maintain và mở rộng: Việc tìm kiếm bug và lỗi logic sẽ trở nên dễ dàngvà nhanh hơn Vì các tầng độc lập với nhau thông qua các Interfaces nên việc mở rộng hoặc thay đổi các tầng sẽ không ảnh hưởng tới nhau Điều này hạn chế các breaking change cũng như phải viết lại code (refactoring)

● Tách biệt biểu đồ phụ thuộc: Mô hình này tạo ra các lớp hoàn toàn độc lập với nhau, giúp tách biệt business logic, UI và các yếu tố kỹ thuật khác Điều này giúp cho việc thay đổi từng phần của ứng dụng dễ dàng hơn và không ảnh hưởng đến các phần khác.

● Dễ kiểm thử: Clean Architecture khuyến khích việc viết các unit test dựa trên nguyên tắc "Single Responsibility" dễ dàng hơn và bám sát hơn với yêu cầu.● Đảm bảo tính độc lập với nền tảng: Clean Architecture giúp đảm bảo ứng

dụng của bạn không phụ thuộc quá nhiều vào các công nghệ hoặc nền tảng cụ thể, điều này làm cho việc chuyển đổi giữa các nền tảng hoặc nâng cấp công nghệ dễ dàng hơn.

 Yêu cầu kiến thức sâu: Để thiết kế và triển khai Clean Architecture, đòi hỏi kiến thức sâu về thiết kế phần mềm và khả năng phân tích yêu cầu của dự án một cách tỉ mỉ.

 Tăng độ phức tạp cho các dự án thay đổi thường xuyên: Đối với các dự án mà yêu cầu sự thay đổi thường xuyên, việc tuân theo mô hình Clean Architecture có thể làm tăng độ phức tạp và tốn nhiều thời gian.

 Yêu cầu quản lý cẩn thận: Để triển khai Clean Architecture thành công, bạn cần có quản lý dự án tốt và đảm bảo rằng toàn bộ nhóm phát triển hiểu rõ và tuân theo các quy tắc và nguyên tắc của mô hình.

1.3.3.2Mô hình MVVM (triển khai kết hợp với Clean Architecture trong khối ứng dụng Android)

Bên cạnh việc sử dụng phân chia ứng dụng thành các lớp với nhiệm vụ cụ thể, em kết hợp triểm khai với mô hình MVVM để có thể tách biệt logic giao diện người dùng và logic xử lý dữ liệu MVVM là viết tắt của Model - View - ViewModel, ở đó View (giao diện người dùng) sẽ được cập nhật bởi ViewModel và việc xử lý Logic hoặc trình bày dữ liệu sẽ do Model đảm nhận

Trang 19

Hình 1 4 Mô hình MVVM

ViewModel là một abstraction của View Nó sẽ lấy dữ liệu từ tầng Model, xử lý UI logic sau đó hiển thị data có liên quan tới view ViewModel sẽ không có bất kỳ behavior nào để tương tác với View Như vậy để nhận biết khi nào cần hiển thị dữ liệu,View sẽ đăng ký lắng nghe sự kiện từ ViewModel ViewModels sẽ sử dụng các model nếu cần định nghĩa dữ liệu Sự liên kết giữa View - ViewModel giúp chúng gửi và nhận dữ liệu, để hiểu rõ ta cần tìm hiểu các khái niệm về Binding, DataContext, Behaviors SDK Nhờ đó ta tách code-behind của View và đưa xuống ViewModel.

Thành phần giao diện của ứng dụng (View) là thành phần duy nhất mà người dùng có thể tương tác được trong chương trình, nó chính là thành phần mô tả dữ liệu Trong lập trình android, View là một activity, fragment, hay một custom view… Quanhệ giữa ViewModel và View là 1-n, nghĩa là nhiều View có thể liên kết với 1

Model là các đối tượng giúp truy xuất và thao tác trên dữ liệu Model chứa phần

data được lấy từ nhiều nguồn khác nhau, ví dụ như: từ remote hoặc từ data local Tuy nhiên cần phải lưu ý đó là model chỉ lưu giữ thông tin mà thôi, nó không quan tâm đếncác hoạt động hay dịch vụ có thể thay đổi, điều khiển các thông tin đó Ví dụ như nó không có trách nhiệm phải định dạng đoạn văn bản hiển thị như thế nào, hay làm sao để lấy một danh sách các item về từ remote server.

Clean Architecture giúp tạo ra một cấu trúc rõ ràng với các lớp và tầng có trách nhiệm cụ thể, giúp dễ bảo trì và mở rộng mã nguồn Cùng với đó, MVVM tách biệt logic giao diện người dùng và logic xử lý dữ liệu, giúp kiểm thử dễ dàng và thích ứng với sự thay đổi Sự kết hợp này cũng giúp tái sử dụng mã nguồn hiệu quả, khiến cho việc quản lý độ phức tạp của ứng dụng trở nên dễ dàng hơn Mô hình thiết kế này tạo điều kiện cho việc phát triển ứng dụng linh hoạt, đồng thời giữ cho mã nguồn sạch sẽ, dễ đọc và có khả năng mở rộng cao.

Trang 20

1.3.4 Công nghệ triển khai hệ thống1.3.4.1 Phía server

1.3.4.1.1 Flask

Flask là một framework web siêu nhẹ và dễ sử dụng trong ngôn ngữ lập trình Python, được phát triển để xây dựng ứng dụng web nhanh chóng và hiệu quả Dựa trêntriết học "micro" của nó, Flask tập trung vào cung cấp các công cụ cơ bản như định tuyến URL và xử lý HTTP requests, cho phép bạn xây dựng các ứng dụng web tùy chỉnh mà không bị ràng buộc bởi cấu trúc phức tạp.

Một số điểm nổi bật về Flask:

● Siêu nhẹ: Flask được thiết kế với mục tiêu là duyệt đơn giản và siêu nhẹ Nó không yêu cầu nhiều dependencies bên ngoài và cho phép bạn tự do lựa chọn các thành phần bạn muốn sử dụng trong dự án của mình.

● Dễ học và sử dụng: Flask có cú pháp đơn giản và tài liệu rõ ràng, làm cho việchọc và sử dụng nó rất dễ dàng, đặc biệt đối với người mới bắt đầu phát triển web.

● Định tuyến mạnh mẽ: Flask cho phép bạn xác định các định tuyến URL dễ dàng, đồng thời kết hợp với các hàm xử lý để quản lý các request và response.● Thích hợp cho ứng dụng nhỏ và trung bình: Flask thích hợp cho việc xây dựng

ứng dụng web vừa và nhỏ, đặc biệt là các ứng dụng prototype hoặc dự án cá nhân.

Flask là một framework có khả năng phát triển các ứng dụng web đáng tin cậy vàmạnh mẽ Điều này làm cho Flask trở thành một sự lựa chọn phổ biến trong cộng đồngphát triển Python cho việc xây dựng các dự án web đơn giản và tùy chỉnh.

Em đã sử dụng Flask để có thể xây dựng các API service phục vụ cho công việc ứng dụng android gửi yêu cầu xử lý và trả về các thông tin cần thiết

1.3.4.1.2 SQLite

SQLite là hệ quả trị cơ sở dữ liệu (DBMS) quan hệ tương tự như Mysql, Đặc điểm nổi bật của SQLite so với các DBMS khác là gọn, nhẹ, đơn giản, đặt biệt không cần mô hình server-client, không cần cài đặt, cấu hình hay khởi động nên không có khái niệm user, password hay quyền hạn trong SQLite Database Dữ liệu cũng được lưu ở một file duy nhất.

SQLite thường không được sử dụng với các hệ thống lớn nhưng với những hệ thống ở quy mô vừa và nhỏ thì SQLite không thua các DBMS khác về chức năng hay tốc độ Vì không cần cài đặt hay cấu hình nên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm … vì tránh được những rắc rối trong quá trình cài đặt.

Các ưu điểm của SQLite:

● Nhỏ gọn: SQLite chỉ là một tệp duy nhất, vì vậy nó dễ dàng tải xuống và cài đặt.

● Hiệu quả: SQLite được thiết kế để chạy trên các thiết bị có tài nguyên hạn chế.

Trang 21

● Mã nguồn mở: SQLite là mã nguồn mở, vì vậy nó có thể được sửa đổi và tùy chỉnh theo nhu cầu.

● Dễ sử dụng: SQLite sử dụng ngôn ngữ SQL tiêu chuẩn, vì vậy nó dễ dàng học và sử dụng.

SQLite được em sử dụng trong đồ án với vai trò là nơi lưu trữ các thông tin thực thể cần thiết cho hệ thống như các thông tin về trường, thông tin về ngành học, … SQLite được đặt tại khối API Service phục vụ cho việc các Service truy vấn dữ liệu vàlấy ra các thông tin dữ liệu cần thiết và trả về cho ứng dụng Mobile

1.3.4.2 Phía Client1.3.4.2.1 Android Studio

Android Studio là môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng dụng Android Nó được phát triển bởi Google và dựa trên IDE Java IntelliJ của hãng JetBrains Android Studio cung cấp một loạt các tính năng và công cụ giúp các nhà phát triển tạo ra các ứng dụng Android chất lượng cao.

Các tính năng chính của Android Studio:

● Giao diện người dùng thân thiện và dễ sử dụng: Android Studio được thiết kế với giao diện người dùng trực quan và dễ sử dụng Các nhà phát triển có thể dễ dàng tìm thấy các tính năng và công cụ cần thiết để phát triển ứng dụng

● Hỗ trợ các ngôn ngữ lập trình: Android Studio hỗ trợ các ngôn ngữ lập trình Java, Kotlin, C++, và C Các nhà phát triển có thể chọn ngôn ngữ lập trình phù hợp với nhu cầu của mình.

● Các công cụ phát triển tích hợp: Android Studio cung cấp một loạt các công cụ phát triển tích hợp giúp các nhà phát triển tạo ra các ứng dụng Android nhanh hơn và hiệu quả hơn Các công cụ này bao gồm:

● Trình soạn thảo mã: Trình soạn thảo mã của Android Studio được tích hợp các tính năng nâng cao như tự động hoàn thành, kiểm tra lỗi, và gợi ý từ khóa.● Trình quản lý dự án: Trình quản lý dự án của Android Studio giúp các nhà phát

triển dễ dàng quản lý các dự án ứng dụng Android của mình.

● Trình xây dựng: Trình xây dựng của Android Studio giúp các nhà phát triển nhanh chóng xây dựng và triển khai các ứng dụng Android.

● Trình mô phỏng: Trình mô phỏng của Android Studio giúp các nhà phát triển kiểm tra và gỡ lỗi các ứng dụng Android của mình trên các thiết bị ảo.

1.3.4.2.2 Android Jetpack

Android Jetpack là một bộ công cụ và thư viện hỗ trợ mạnh mẽ được phát triển bởi Google để giúp nhà phát triển xây dựng ứng dụng Android hiệu quả, ổn định và dễquản lý hơn Android Jetpack cung cấp một cơ sở vững chắc cho việc phát triển ứng dụng bằng cách giảm bớt sự phức tạp, tối ưu hóa việc quản lý vòng đời và cung cấp

Trang 22

các công cụ mạnh mẽ cho việc làm việc với giao diện người dùng, dữ liệu, và các tính năng chung.

Gói Android Jetpack bao gồm nhiều thành phần khác nhau, một số ví dụ như:● AppCompat: Đảm bảo ứng dụng hoạt động mượt mà trên các phiên bản

Android khác nhau.

● ViewModel: Giúp quản lý dữ liệu và trạng thái ứng dụng trong suốt quá trình hoạt động của ứng dụng, giúp tránh rò rỉ bộ nhớ và giúp vượt qua sự hủy bỏ và tái khởi động hoạt động.

● Room: Thư viện cơ sở dữ liệu dễ sử dụng để làm việc với SQLite, cung cấp mộtcách thuận tiện để lưu trữ và truy vấn dữ liệu trong ứng dụng.

● Navigation: Giúp quản lý quá trình điều hướng giữa các màn hình và sự chuyểnđổi giữa các phân đoạn (Fragments) trong ứng dụng.

● LiveData: Thông báo về các thay đổi trong dữ liệu và tự động cập nhật giao diện người dùng khi có thay đổi.

1.3.4.2.3 Coroutine

Coroutines là một khái niệm quan trọng trong lập trình Android hiện đại, cho phép chúng ta thực hiện các tác vụ không đồng bộ một cách hiệu quả và dễ dàng Nó là một phần của thư viện Kotlin, và được hỗ trợ bởi Android Jetpack Coroutines cho phép chúng ta viết mã xử lý không đồng bộ một cách tự nhiên, gần gũi với cú pháp Kotlin, giúp tạo ra mã dễ đọc và dễ bảo trì.

Chức năng của Coroutines: Xử Lý bất đồng bộ: Một trong những chức năng quantrọng nhất của coroutines là khả năng xử lý các tác vụ không đồng bộ Coroutines giúpđơn giản hóa việc xử lý các tác vụ như gọi API, thao tác với cơ sở dữ liệu, và tương tác với các tác vụ I/O.

Luồng Thực Thi: Coroutines cho phép quản lý và điều khiển các luồng thực thi một cách tường minh Có thể tạo ra và quản lý nhiều luồng trong một coroutine, giúp tận dụng tốt hơn khả năng đa nhiệm của thiết bị.

Coroutine Context và Dispatcher: Mỗi coroutine trong Kotlin đều có một contextđược thể hiện bằng một instance của interface Coroutine Context Context này là một tập các element cấu hình cho coroutine Các loại element trong coroutine context gồm:

● Job: nắm giữ thông tin về lifecycle của coroutine

● Dispatcher: Quyết định thread nào mà coroutine sẽ chạy trên đó Có các loại dispatcher sau:

● Dispatchers.Main: chạy trên main UI thread

● Dispatchers.IO: chạy trên background thread của thread pool Thường được dùng khi Read, write files, Database, Networking

● Dispatchers.Default: chạy trên background thread của thread pool Thường được dùng khi sorting a list, parse Json, DiffUtils

Điểm Mạnh của Coroutines:

● Đơn giản và dễ đọc hiểu: Coroutines sử dụng cú pháp Kotlin, giúp viết code dễ đọc, giảm thiểu callback hell và tránh callback spaghetti.

Trang 23

● Hiệu Năng Cao: Coroutines được tối ưu hóa để làm việc tốt trên Android và giảm độ trễ Điều này giúp ứng dụng Android hoạt động mượt mà hơn.

● Quản lý Luồng dễ dàng: Coroutines cho phép bạn quản lý và đồng bộ hóa các luồng thực thi một cách tường minh, giúp tránh các vấn đề liên quan đến đa luồng.

Điểm Yếu của Coroutines:

● Khả năng rò rỉ bộ nhớ: Sử dụng coroutines một cách sai, ví dụ như không giải phóng tài nguyên, có thể dẫn đến rò rỉ bộ nhớ.

● Phức tạp khi xử lý lỗi: Xử lý lỗi trong coroutines có thể trở nên phức tạp, đặc biệt khi có nhiều luồng song song.

1.3.4.2.5 Databinding

Trong sự kiện Google I/O 2015 Google đã giới thiệu đến một thư viện xử lý dữ liệu giữa tầng hiển thị và tầng dữ liệu có tên là Data Binding Và cách sử dụng thư viện Data Binding này như sử dụng pattern Model-View-ViewModel (MVVM).

DataBinding là một công nghệ quan trọng trong lập trình ứng dụng Android, giúptối ưu hóa việc làm việc với giao diện người dùng và dữ liệu trong ứng dụng

DataBinding cho phép kết nối trực tiếp giữa các thành phần giao diện và dữ liệu của ứng dụng, giúp giảm thiểu phần lớn mã lập trình, tăng hiệu suất và sự bảo trì của ứng dụng.

Cách hoạt động của Data Binding là sử dụng một lớp trong XML được gọi là "layout" để định nghĩa giao diện người dùng của ứng dụng Trong layout này, bạn có thể sử dụng các biểu thức và thẻ để truy cập trực tiếp dữ liệu từ đối tượng Java hoặc Kotlin DataBinding cũng giúp tạo ra mã lập trình dễ đọc hơn bằng cách tự động tạo racác lớp Binding cho mỗi layout, cho phép bạn truy cập các thành phần giao diện và dữ liệu bằng cách gọi các phương thức đã được tạo sẵn Điều này làm giảm sai sót và giúplàm việc với giao diện người dùng và dữ liệu dễ dàng hơn.

1.4 Tổng kết chương

Trang 24

Chương 1 đã giới thiệu khái quát về toàn bộ chức năng cũng như công nghệ đượcáp dụng trong hệ thống Trong chương tiếp theo, em sẽ trình bày về bài toán tư vấn thông tin tuyển sinh tự động cũng như các công nghệ được áp dụng và thử nghiệm

Trang 25

Chương 2: Công nghệ tư vấn thông tin tuyển sinh tự động

Để có thể xây dựng được công nghệ tư vấn thông tin tuyển sinh tự động, em sẽ giới thiệu về những yêu cầu về tư vấn tuyển sinh tự động Từ đó em sẽ đi tới mô tả về nguyên lý hoạt động của công nghệ tư vấn tuyển sinh và các kỹ thuật được áp dụng

2.1 Yêu cầu tư vấn tuyển sinh tự động

Với bài toán này, em sẽ xử lý như sau, sau khi lắng nghe phần yêu cầu, phần câu hỏi của người dùng nói vào Sau đó đưa vào phần mô hình nhận dạng giọng nói tự động ASR (Automatic Speech Recognition) để tiến hành xử lý và trả về phần văn bản cuối Đoạn văn bản này sẽ được trả về cho ứng dụng Android.

Sau khi nhận được phần câu hỏi trả về, phần văn bản yêu cầu sẽ được gửi đến hệ thống xử lý Đoạn văn bản đó sẽ được được vào mô hình được xây dựng dựa trên xử lýngôn ngữ tự nhiên NLP được huấn luyện với bộ dữ liệu được chuẩn bị sẵn (bộ dữ liệu gồm các câu hỏi và tương ứng là các câu trả lời phù hợp) Mô hình này sẽ được xây dựng và huấn luyện theo cơ chế seq2seq kết hợp với attention Từ đó, với mỗi yêu cầu,câu hỏi được đưa vào sẽ có những câu trả lời phù hợp được đưa ra

Hình 2 1 Mô hình xử lý

2.2 Nguyên lý hoạt động

Để có thể hiểu rõ hơn về mô hình xử lý phía trên, em sẽ mô tả chi tiết hơn về những nguyên lý hoạt động của từng phần speech to text và tư vấn tự động Bắt đầu với phần nguyên lý hoạt động của speech to text

2.2.1 Nguyên lý hoạt động của speech to text

Công nghệ chuyển tiếng nói ra văn bản (Speech to Text) hoạt động dựa trên các quy trình xử lý và phân tích âm thanh để nhận dạng giọng nói và trích xuất thông tin, sau đó chuyển đổi âm thanh thành văn bản Dưới đây là cách hoạt động chi tiết

a Quy trình xử lý âm thanh

Bước đầu tiên là thu thập âm thanh: Người dùng cung cấp dữ liệu âm thanh thông qua bản ghi âm, cuộc gọi thoại, hoặc các nguồn âm thanh khác.

Trang 26

Tiếp theo, âm thanh được phân tích: Công nghệ sử dụng các thuật toán xử lý tín hiệu và trí tuệ nhân tạo để phân tích và tách riêng các phần âm thanh quan trọng như giọng nói và từ ngữ từ dữ liệu thu thập

b Nhận dạng giọng nói và trích xuất thông tin

Khi đã phân tích và tách được giọng nói từ dữ liệu âm thanh, công nghệ nhận dạng giọng nói sử dụng các mô hình và mạng nơ-ron để xác định và nhận dạng từng đoạn giọng nói

c Xử lý và chuyển đổi âm thanh thành văn bản

Dữ liệu giọng nói đã được nhận dạng và trích xuất sau đó được xử lý bổ sung: Các từ và câu được liên kết, đảm bảo cấu trúc văn bản chính xác và dễ đọc.Cuối cùng,dữ liệu giọng nói đã qua quá trình xử lý sẽ được chuyển đổi thành văn bản tương ứng

Hình 2 2 Nguyên lý hoạt động speech to text

2.2.2 Nguyên lý tư vấn tự động

Yêu cầu của việc tư vấn tự động là đối với mỗi mục đích hỏi sẽ cần đưa ra một câu trả lời chính xác Tuy nhiên, mỗi mục đích hỏi sẽ có thể có nhiều cách hỏi Vậy nên cần phải lọc ra những từ khoá chính để xác định được mục đích hỏi từ các câu hỏi đầu vào

Mục tiêu của việc tư vấn tự động là phải hiểu được nội dung của câu hỏi yêu cầu.Đối với con người, thông thường sẽ đọc toàn bộ nội dung để có thể hiểu được ý muốn mà câu hỏi đưa ra là gì Chính là xác định một tập hợp các từ quan trọng có trong câu hỏi và sử dụng các kỹ thuật để xác định trọng số và xếp hạng chúng dựa trên mức độ quan trọng Từ đó phân loại và biết được mục đích mà câu hỏi đang muốn hướng tới.

Hình 2 3 Ví dụ về nguyên lý hoạt động của mô hình ngôn ngữ

Để có thể đạt được hiệu suất tốt hơn, em chuẩn bị một lượng dữ liệu để huấn luyện trước đó Huấn luyện trước là hành động huấn luyện một mô hình từ đầu: các

Trang 27

trọng số được khởi tạo ngẫu nhiên và quá trình huấn luyện bắt đầu mà không cần biết trước bất kỳ điều gì.

Hình 2 4 Mô tả về việc huấn luyện trước

2.3 Xử lý bài toán với mô hình seq2seq và cơ chế attention

Yêu cầu của việc tư vấn tự động là đối với mỗi mục đích hỏi sẽ cần đưa ra một câu trả lời chính xác Tuy nhiên, mỗi mục đích hỏi sẽ có thể có nhiều cách hỏi Vậy nên cần phải lọc ra những từ khoá chính để xác định được mục đích hỏi từ các câu hỏi đầu vào Nhưng đối với máy tính thì sẽ khó có thể thực hiện như vậy Vậy nên cần phải có cách để giúp cho máy tính hiểu và xác định được đâu là thông tin quan trọng cần chú ý Trong đồ án này, em lựa chọn mô hình seq2seq kết hợp self-attention để giải quyết vấn đề trên.

2.3.1 Giới thiệu mô hình Sequence-to-Sequence

Mô hình seq2seq (sequence-to-sequence) được thiết kế để giải quyết các vấn đề liên quan đến xử lý chuỗi dữ liệu, trong đó có những tác vụ quan trọng như dịch máy, tóm tắt văn bản, và chuyển đổi thông tin từ một định dạng chuỗi sang một định dạng khác Mục đích chính của seq2seq là học cách ánh xạ một chuỗi dữ liệu vào một chuỗikhác, giúp mô hình nắm bắt cấu trúc và ý nghĩa của thông tin trong chuỗi.

Mô hình seq2seq sử dụng kiến trúc Encoder-Decoder có độ dài đầu vào và đầu rakhác nhau Kiến trúc Encoder-Decoder được coi là hai khối - Mã hóa (Encoder) và Giải mã (Decoder), hai khối này được kết nối với nhau thông qua Vector trung gian (Context Vector):

● Bộ mã hóa - Encoder: Bộ mã hóa xử lý từng token trong chuỗi đầu vào, và nó cố gắng nhồi nhét toàn bộ thông tin đầu vào vào một vector có độ dài cố định, tức là "vector trung gian" Sau đó bộ mã hóa sẽ chuyển vector này sang bộ giải mã.

● Vector trung gian - Context Vector: Vector này có chức năng gói gọn toàn bộ ý nghĩa của chuỗi đầu vào và giúp bộ giải mã đưa ra được quyết định chính xác Đây là trạng thái ẩn nằm cuối chuỗi và được tính bởi bộ mã hóa, vector này sau đó cũng hoạt động như trạng thái ẩn đầu tiên của bộ giải mã.

● Bộ giải mã - Decoder: Bộ giả mã sử dụng Vector trung gian và cố gắng dự đoánchuỗi đích.

Trang 28

Hình 2 5 Mô hình Encoder - Decoder

2.3.2 Giới thiệu cơ chế attention

Khi sử dụng mô hình seq2seq truyền thống, bộ mã hóa (Encoder) của nó phải chứa toàn bộ thông tin của chuỗi đầu vào trong một vector ngữ cảnh cố định, điều này có thể dẫn đến mất thông tin quan trọng khi xử lý các chuỗi dài Cơ chế attention đượcra đời để giải quyết các vấn đề của mô hình seq2seq với mạng nơ-ron hồi tiếp bằng cách cho phép mô hình tập trung vào các phần quan trọng của chuỗi đầu vào khi tạo rachuỗi đầu ra Thay vì chỉ sử dụng một vector ngữ cảnh cố định, mô hình Attention tạo ra một tập hợp các vector ngữ cảnh có trọng số, trong đó mỗi vector được tập trung vào một phần cụ thể của chuỗi đầu vào

Hình 2 6 Cơ chế extension

Chi tiết các bước

Bước 1: Nhận vector trạng thái ẩn của decoder và tất cả các vector trạng thái ẩn của encoder

Bước 2: Tính điểm attention Với mỗi vector trạng thái ẩn của encoder thì ta cần tính điểm thể hiện sự liên quan với vector trạng thái ẩn của decoder Cụ thể, em sẽ áp dụng phương trình tính điểm "attention" với đầu vào là vector trạng thái ẩn decoder và một vector trạng thái ẩn của encoder và trả về một giá trị vô hướng

Trang 29

Bước 3: Tính trọng số attention Áp dụng hàm softmax với đầu vào là điểm attention

Bước 4: Tính toán vector bối cảnh là tổng của các trọng số attention nhân với vector trạng thái ẩn của decoder tại time-step tương ứng

Cuối cùng, các vector attention dùng để đưa ra đầu ra được tính dựa trên vector bối cảnh và vector trạng thái ẩn ở decoder

Hình 2 7 Mô hình transformer

Trang 30

Một mô hình Transformer xử lý đầu vào có kích thước biến đổi bằng cách sử dụng các lớp tự chú ý thay vì sử dụng RNNs hoặc CNNs.

Cụ thể hơn một chút, tại sao Transformer lại mang lại sự hiệu quả tốt hơn RNN?.Đối với quá trình encode một câu thì RNNs sẽ cần một khoảng thời gian để đọc lần lượt từng từ trong câu, đối với 1 câu dài quá trình này có thể diễn ra khá lâu, như vậy độ phức tạp của encoder để xử lý một câu có độ dài N là O(N) Ngược lại, trong quá trình encode của transformer, các source tokens sẽ "quan sát" nhau (cơ chế self

attention) và cố gắng hiểu nhau trong ngữ cảnh của câu Và độ phức tạp của quá trình này chỉ là O(1).

Bảng dưới đây sẽ thể hiện sự khác biệt của transformer với các mô hình seq2seq, transformer hoàn toàn hoạt động dựa trên cơ chế attention

seq2seq seq2seq vớiattention

tương tác giữa encoder và decoder

b.Cơ chế self - attention

Self -attention chính là thành phần quan trọng nhất của transformer Sự khác biệtlà, trong khi cơ chế attention sẽ tính toán dựa trên trạng thái của decoder ở time-step hiện tại và tất cả các trạng thái ẩn của encoder Còn self-attention có thể hiểu là attention trong một câu, khi từng thành phần trong câu sẽ tương tác với nhau Từng token sẽ "quan sát" các tokens còn lại trong, thu thập ngữ cảnh của câu và cập nhập vector biểu diễn.

Trang 31

Hình 2 8 Cơ chế self – extension của transformer

Để xây dựng cơ chế self-attention ta cần chú ý đến hoạt động của 3 vector biểu diễn cho mỗi từ lần lượt là:

● Query: hỏi thông tin

● Key: trả lời rằng nó có một số thông tin● Value: trả về thông tin đó

Query được sử dụng khi một token "quan sát" những tokens còn lại, nó sẽ tìm kiếm thông tin xung quanh để hiểu được ngữ cảnh và mối quan hệ của nó với các tokens còn lại Key sẽ phản hồi yêu cầu của Query và được sử dụng để tính trọng số attention Cuối cùng, Value được sử dụng trọng số attention vừa rồi để tính ra vector đại diện (attention vector)

Hình 2 9 Mô tả về attension vector

Trang 32

c.Kiến trúc của Transformer

Tiếp theo ta sẽ đi tìm hiểu về các thành phần chính cấu tạo nên transformer Mô hình thực hiện chính xác những gì đã được giới thiệu ở trên Ở bên trái là encoder, thông thường có Nx = 6 layers chồng lên nhau Mỗi layer sẽ có multi-head attention như đã tìm hiểu và khối feed-forward Ngoài ra còn các các kết nối residual giống như trong mạng Resnet Ở bên phải là decoder, tương tự cũng có Nx = 6 layers chồng lên nhau Kiến trúc thì khá giống encoder những chỉ có thêm khối masked multi-head attention ở vị trí đầu tiên

Hình 2 10 Kiến trúc transformer

● Positional encoding: Transformer không có các mạng hồi tiếp hay mạng tích chập nên nó sẽ không biết được thứ tự của các token đầu vào Vì vậy, cần phải có cáchnào đó để cho mô hình biết được thông tin này Đó chính là nhiệm vụ của positional encoding Như vậy, sau bước nhúng từ (embedding layers) để thu được các tokens thì ta sẽ cộng nó với các vector thể hiện vị trí của từ trong câu.

Trang 33

● Lớp Normalization: Trong hình ảnh cấu trúc, có lớp "Add & Norm" thì từ Norm thể hiện cho lớp Normalization Lớp này đơn giản là sẽ chuẩn hóa lại đầu ra của multi-head attention, mang lại hiệu quả cho việc nâng cao khả năng hội tụ.

● Kết nối Residual: Kết nối residual: thêm đầu vào của một khối vào đầu ra của nó Với kết nối này giúp mạng có thể chồng được nhiều layers Như trên hình, kết nối residual sẽ được sử dụng sau các khối FFN và khối attention Như trên hình từ "Add" trong "Add & Norm" sẽ thể hiện cho kết nối residual.

● Khối Feed-Forward: Đây là khối cơ bản, sau khi thực hiện tính toán ở khối attention ở mỗi lớp thì khối tiếp theo là FFN Có thể hiểu là cơ chế attention giúp thu thập thông tin từ những tokens đầu vào thì FFN là khối xử lý những thông tin đó.

2.4.2 OpenAi Whisper (phục vụ chuyển đổi giọng nói)

OpenAI Whisper là một mô hình nhận dạng giọng nói mã nguồn mở được phát triển bởi OpenAI Nó được đào tạo trên một tập dữ liệu khổng lồ gồm 680.000 giờ âm thanh đa ngôn ngữ.Whisper có thể nhận dạng giọng nói của con người với độ chính xác cao, ngay cả trong điều kiện tiếng ồn và giọng nói khác nhau Nó cũng có thể dịch giữa các ngôn ngữ.

Whisper vẫn đang trong quá trình phát triển, nhưng nó đã được chứng minh là có tiềm năng ứng dụng rộng rãi.

Hình 2 11 Sơ đồ kiến trúc của OpenAi Whisper

Trang 34

2.5 Thực nghiệm

2.5.1 Dữ liệu thực nghiệm

Vì là hệ thống tư vấn tự động liên quan đến học viện Công nghệ Bưu chính Viễn thông vậy nên em sẽ sử dụng các thông tin có sẵn tại website của học viện Qua đó tổng hợp lại thành các câu hỏi và các câu trả lời tương ứng

Hình 2 12 Một số thông tin từ học viện

2.5.2 Phương pháp thực nghiệm

Để tiến hành huấn luyện dữ liệu, em thực hiện huấn luyện bằng học sâu với TensorFlow, Keras Các thông số đầu vào gồm có NUM_LAYERS, NUM_HEADS, UNITS, DROPOUT, embeddings_dim và VOCAB_SIZE đóng vai trò quan trọng trong việc xác định kiến trúc và đặc điểm hoạt động của encoder và decoder

NUM_LAYERS đại diện cho số lớp trong cả hai thành phần, có ảnh hưởng đến khả năng mô hình học mối quan hệ phức tạp NUM_HEADS là số đầu attention, cung cấp khả năng tập trung đồng thời vào các phần khác nhau của đầu vào UNITS là số chiều của các lớp ẩn, quyết định khả năng học biểu diễn phức tạp DROPOUT là tỷ lệ dropout, giúp ngăn chặn overfitting và cải thiện khả năng tổng quát hóa Ngoài ra, embeddings_dim là kích thước của không gian nhúng, ảnh hưởng đến khả năng biểu diễn từ ngữ của mô hình VOCAB_SIZE là kích thước của từ vựng, định rõ phạm vi từngữ mà mô hình có thể xử lý Tất cả các tham số này cần được lựa chọn sao cho phù hợp với đặc điểm của dữ liệu và yêu cầu của bài toán để đảm bảo mô hình hoạt động hiệu quả và có khả năng tổng quát hóa.

Trang 35

Ở chương tiếp theo, em sẽ trình bày về cấu trúc của hệ thống, phân tích và thiết kế của hệ thống xây dựng ứng dụng di động

Trang 36

Chương 3: Phân tích thiết kế hệ thống

Trong Chương 3, em sẽ trình bày việc phân tích và thiết kế cho hệ thống tư vấn tuyển sinh trên ứng dụng di động.

3 1 Phân tích hệ thống3.1.1 Biểu đồ usecase

3.1.1.1 Các Actor có mặt trong hệ thống

Mô tả về hệ thống: Hệ thống được xây dựng nhằm phục vụ cho công tác tư vấn tuyển sinh, định hướng nghề nghiệp và xem chỉ tiêu xét tuyển nhằm cung cấp những thông tin cần thiết về Học viện Công nghệ Bưu chính viễn thông bao gồm các thông tin về:

● Thông tin về trường

● Thông tin về ngành học, chương trình học, các yêu cầu đầu vào và cơ hội việc làm sau khi tốt nghiệp cẩu ngành học đó,

● Học sinh, sinh viên cũng có thể nắm bắt được thông tin về các quy trình cần thiết lúc nhập học như là hướng dẫn về quy trình nộp hồ sơ, nộp học phí và các vấn đề liên quan đến đăng ký tuyển sinh

● Thông tin chi tiết về học bổng, hỗ trợ tài chính và các nguồn tài trợ khác để giúp học sinh đạt được mục tiêu học tập của mình

Ngoài ra, hệ thống còn có chức năng tư vấn tự động (người dùng có thể chat hoặcsử dụng giọng nói để đưa ra yêu cầu) để có thể nắm thông tin về các khóa học, chươngtrình học, ngành nghề phù hợp với từng học sinh.

TT Tên Tiếng Việt Giải thíchNhóm khái niệm liên quan đến con người

1 Người dùng Người có tài khoản và thẩm quyền để đăng nhập vào hệthống, thực hiện các chức năng được cho phép.

2 Người quản lý

3 Sinh viên Người có tài khoản và thẩm quyền để đăng nhập vào hệthống Khách hàng có thể sử dụng các chức năng của một sinh viên trong hệ thống

Nhóm khái niệm liên quan đến đối tượng cần xử lý

4 Trường Là đối tượng chứa thông tin chi tiết về trường5 Ngành học Là đối tượng chứa thông tin chi tiết về ngành học 6 Chương trình học Là đối tượng chứa thông tin chi tiết về chương trình học7 chỉ tiêu là đối tượng chứa thông tin chi tiết về chỉ tiêu tuyển

Trang 37

8 Ngành nghề Là đối tượng chứa thông tin chi tiết về ngành nghề9 học bổng Là đối tượng chứa thông tin chi tiết về học bổng10 học phí Là đối tượng chứa thông tin chi tiết về học phí11 Quy trình nhập

Trang 38

3.1.1.3 Chức năng xem thông tin trường

Hình 3 2 Chức năng xem thông tin trường

3.1.1.4 Chức năng xem thông tin ngành

Hình 3 3 Chức năng xem thông tin ngành

Trang 39

3.1.1.5 Chức năng tư vấn tự động

Hình 3 4 Chức năng tư vấn tự động

3.1.1.6 Chức năng xem thông tin học phí

Hình 3 5 Chức năng xem thông tin học phí

Trang 40

3.1.1.7 Chức năng xem thông tin định hướng nghề nghiệp

Hình 3 6 Chức năng xem thông tin nghề nghiệp

3.1.1.8 Chức năng xem phương thức xét tuyển

Hình 3 7 Chức năng xem phương thức xét tuyển

Ngày đăng: 09/05/2024, 23:05

Tài liệu cùng người dùng

Tài liệu liên quan