Tải bản đầy đủ (.pdf) (81 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.93 MB, 81 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>KHOA CÔNG NGHỆ THÔNG TIN</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>LỜI CẢM ƠN</b>

Đầ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è, đã ln 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à hồ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!

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

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

<small>2.1 Yêu cầu tư vấn tuyển sinh tự động...24</small>

<small>2.2 Nguyên lý hoạt động...24</small>

<small>2.2.1 Nguyên lý hoạt động của speech to text...24</small>

<small>2.2.2 Nguyên lý tư vấn tự động...25</small>

<small>2.3 Xử lý bài tốn với mơ hình seq2seq và cơ chế attention...26</small>

<small>2.3.1 Giới thiệu mơ hình Sequence-to-Sequence...26</small>

<small>2.3.2 Giới thiệu cơ chế attention...27</small>

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

<small>Chương 4: Thiết kế cơ sở dữ liệu...66</small>

<small>Kết luận chung...71</small>

<small>Phụ lục: Cài đặt và triển khai...72</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC CÁC HÌNH</b>

<small>Hình 1. 2 Mơ hình tổng qt hệ thống15Hình 1. 3 Kiến trúc Clean Architecture17</small>

<small>Hình 1. 4 Mơ hình MVVM 19</small>

<small>Hình 2. 1 Mơ hình xử lý...24</small>

<small>Hình 2. 2 Nguyên lý hoạt động speech to text...25</small>

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

<small>Hình 2. 4 Mơ tả về việc huấn luyện trước...26</small>

<small>Hình 2. 5 Mơ hình Encoder - Decoder...27</small>

<small>Hình 2. 6 Cơ chế extension...27</small>

<small>Hình 2. 7 Mơ hình transformer...28</small>

<small>Hình 2. 8 Cơ chế self – extension của transformer...30</small>

<small>Hình 2. 9 Mơ tả về attension vector...30</small>

<small>Hình 2. 10 Kiến trúc transformer...31</small>

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

<small>Hình 2. 12 Một số thơng tin từ học viện...33</small>

<small>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</small>

<small>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</small>

<small>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</small>

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

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

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. Ngồ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.

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

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, 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.

Ngồ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.

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

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

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

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

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

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, …

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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 q 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 q 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.

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

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.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>1.1.3.1 Phần dành cho người dùng cuối</b>

● Đă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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

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

● 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… →

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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 xố 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 xố → 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 xố 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 xố → hệ thống cho phép xác nhận xóa → người quản trị xác nhận xố 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 xố 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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

thơng tin ngành nghề nghiệp cần xố → 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 xố 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 xố → 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 xố 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 xố → 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 xố 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 xố → 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 xố 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 xố → 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 xố 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 xố → 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

<b>1.2 Thiết kế tương tác</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i><b><small>Hình 1. 1: Tổng quát hệ thống</small></b></i>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>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 qt hệ thống</b>

<i><b><small>Hình 1. 2 Mơ hình tổng qt hệ thống</small></b></i>

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

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

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

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

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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.

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

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

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>1.3.3 Kiến trúc phần mềm</b>

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

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 ngồi. Ngun tắc này đượcminh hoạ như sau:

<i><b><small>Hình 1. 3 Kiến trúc Clean Architecture</small></b></i>

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 ngồ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…

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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 xun, việc tn 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à ngun tắc của mơ hình.

<b>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>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i><b><small>Hình 1. 4 Mơ hình MVVM</small></b></i>

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

<b>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 </b>

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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>1.3.4 Cơng nghệ triển khai hệ thống1.3.4.1 Phía server</b>

<b>1.3.4.1.1. Flask</b>

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 u cầu nhiều dependencies bên ngồ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

<b>1.3.4.1.2 SQLite</b>

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ế.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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

<b>1.3.4.2 Phía Client1.3.4.2.1 Android Studio</b>

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.

<b>1.3.4.2.2 Android Jetpack</b>

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

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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.

<b>1.3.4.2.3 Coroutine</b>

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.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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 ngun, 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.

<b>1.3.4.2.5 Databinding</b>

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.

<b>1.4 Tổng kết chương</b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="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 tố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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

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

Để 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

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

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

<i><b><small>Hình 2. 1 Mơ hình xử lý</small></b></i>

<b>2.2 Ngun lý hoạt động</b>

Để 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

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

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

<b>a. Quy trình xử lý âm thanh</b>

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.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Tiếp theo, âm thanh được phân tích: Cơng nghệ sử dụng các thuật tố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>b. Nhận dạng giọng nói và trích xuất thơng tin</b>

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

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

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

<i><b><small>Hình 2. 2 Nguyên lý hoạt động speech to text</small></b></i>

<b>2.2.2 Nguyên lý tư vấn tự động</b>

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ừ khố 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 tồ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.

<i><b><small>Hình 2. 3 Ví dụ về ngun lý hoạt động của mơ hình ngơn ngữ</small></b></i>

Để 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

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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ì.

<i><b><small>Hình 2. 4 Mô tả về việc huấn luyện trước</small></b></i>

<b>2.3 Xử lý bài tốn với mơ hình seq2seq và cơ chế attention</b>

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ừ khố 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.

<b>2.3.1 Giới thiệu mơ hình Sequence-to-Sequence</b>

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 tồ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 tồ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ự đốnchuỗi đích.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<i><b><small>Hình 2. 5 Mơ hình Encoder - Decoder</small></b></i>

<b>2.3.2 Giới thiệu cơ chế attention</b>

Khi sử dụng mơ hình seq2seq truyền thống, bộ mã hóa (Encoder) của nó phải chứa tồ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

<i><b><small>Hình 2. 6 Cơ chế extension</small></b></i>

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

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="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

<i><b><small>Hình 2. 7 Mơ hình transformer</small></b></i>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="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>b.Cơ chế self - attention</b>

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 tố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.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<i><b><small>Hình 2. 8 Cơ chế self – extension của transformer</small></b></i>

Để 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)

<i><b><small>Hình 2. 9 Mơ tả về attension vector</small></b></i>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<b>c.Kiến trúc của Transformer</b>

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. Ngồ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

<i><b><small>Hình 2. 10 Kiến trúc transformer</small></b></i>

● 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.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="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 tố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 đó.

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

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 q 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.

<i><b><small>Hình 2. 11 Sơ đồ kiến trúc của OpenAi Whisper</small></b></i>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<b>2.5 Thực nghiệm</b>

<b>2.5.1 Dữ liệu thực nghiệm</b>

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

<i><b><small>Hình 2. 12 Một số thông tin từ học viện</small></b></i>

<b>2.5.2 Phương pháp thực nghiệm</b>

Để 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 qt hóa. Ngồ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.

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

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

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.

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

<b>3.1.1.1 Các Actor có mặt trong hệ thống</b>

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.

Ngồ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 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

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<b>3.1.1.3 Chức năng xem thơng tin trường</b>

<i><b><small>Hình 3. 2 Chức năng xem thơng tin trường</small></b></i>

<b>3.1.1.4 Chức năng xem thơng tin ngành</b>

<i><b><small>Hình 3. 3 Chức năng xem thông tin ngành</small></b></i>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<b>3.1.1.5 Chức năng tư vấn tự động</b>

<i><b><small>Hình 3. 4 Chức năng tư vấn tự động</small></b></i>

<b>3.1.1.6 Chức năng xem thơng tin học phí</b>

<i><b><small>Hình 3. 5 Chức năng xem thơng tin học phí</small></b></i>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

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

<i><b><small>Hình 3. 6 Chức năng xem thơng tin nghề nghiệp</small></b></i>

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

<i><b><small>Hình 3. 7 Chức năng xem phương thức xét tuyển</small></b></i>

</div>

×