Đại học là cánh cửa mà mỗi chúng ta đều mơ ước đặt chân vào khi kết thúc quãng đường mười hai năm đèn sách. Một số bạn được gia đình định hướng sẽ học ngành gì, một số bạn đi theo ngành mà mình đam mê từ rất lâu. Tuy nhiên, cũng có một phần đông bạn trẻ chưa biết mình sẽ học gì và thi vào đâu trong khi có quá nhiều ngành nghề cũng như trường đại học. Đó cũng là nỗi trăn trở của thí sinh và gia đình khi đưa ra quyết định chọn trường, chọn ngành sao cho phù hợp với sức học cũng như tính cách, sở thích.“Hệ thống hỗ trợ tư vấn tuyển sinh” (tên đại diện là HiFuture) ra đời với mục đích cung cấp những tiện ích nhằm hỗ trợ các bạn thí sinh và phụ huynh trong việc chọn trường, chọn ngành. Bên cạnh đó, việc tích hợp tư vấn tuyển sinh của các trường đại học trên toàn quốc vào một website sẽ giúp người dùng dễ dàng tìm kiếm thông tin đểđưa ra những quyết định phù hợp cũng như công tác tuyển sinh tại các trường đại học trở nên thuận tiện hơn.
GIỚI THIỆU
Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là thực trạng tuyển sinh của các trường đại học và cao đẳng tại Việt Nam, bao quát nhu cầu tìm kiếm ngành học và sự biến động điểm thi qua các năm của thí sinh, cùng với thông tin tuyển sinh được đăng tải trên các trang web tuyển sinh đại học - cao đẳng Nghiên cứu cũng phân tích sự phân bố của các trường đại học - cao đẳng trên toàn quốc và vai trò của các nguồn thông tin tuyển sinh trong quá trình ra quyết định chọn ngành và chọn trường của thí sinh.
Phạm vi nghiên cứu
Phạm vi đề tài tập trung vào quản lý gợi ý trường học, gợi ý ngành học phù hợp với hồ sơ người dùng, so sánh điểm giữa các chương trình và ngành để hỗ trợ lựa chọn, đồng thời cung cấp tư vấn trực tuyến cho thí sinh Nghiên cứu cũng khai thác diễn đàn hỏi đáp để người dùng trao đổi thông tin và kinh nghiệm, tích hợp bản đồ vị trí các trường nhằm thuận tiện cho việc định vị và lên kế hoạch học tập, và tổng hợp bài viết của các trường để phân tích thông tin tuyển sinh, chương trình đào tạo và xu hướng giáo dục.
• Phân tích yêu cầu: thực hiện khảo sát thực trạng, phân tích đánh giá thực trạng, đặc tả yêu cầu xây dựng hệ thống
• Thiết kế: yêu cầu chức năng; phân tích và thiết kế các mô hình hệ thống: CDM, PDM
• Cài đặt: ngôn ngữ lập trình PHP (Laravel Framework); thư viện: Voyager, Firebase; hệ quản trị CSDL: MySQL; máy chủ web: Nginx
Để nắm vững kiến thức nền tảng, người học cần nắm vững cơ sở lý thuyết về phân tích và thiết kế hệ thống thông tin, hiểu rõ vai trò của hệ quản trị CSDL MySQL và tích lũy kiến thức xây dựng Web với HTML, PHP, JavaScript, jQuery và CSS để phát triển ứng dụng web hiệu quả.
• Phần mềm, công cụ để phát triển hệ thống: trình duyệt web Google Chrome; các Framework: Laravel, Bootstrap; thư viện: jQuery, ZingChart, Firebase
Đề tài đóng góp quan trọng vào việc đa dạng hóa nguồn tài liệu nghiên cứu cho sinh viên Đại học Cần Thơ nói chung và cho Khoa Công nghệ thông tin và Truyền thông nói riêng, đặc biệt trong lĩnh vực lập trình web Nó cũng là tài liệu tham khảo cho các sinh viên khóa sau khi tiếp tục nghiên cứu về web Nội dung của đề tài giúp hiểu sâu về Firebase để xây dựng ứng dụng chat phục vụ cho lập trình web và mobile Bên cạnh đó, đề tài góp phần cải thiện và nâng cao kỹ năng lập trình, đồng thời giới thiệu cách sử dụng các framework nhằm đơn giản hóa quá trình phát triển phần mềm.
Bố cục của đề tài gồm các phần và các chương mục chính:
Phần 1: Giới thiệu: trình bày về các vấn đề, lịch sử giải quyết, mục tiêu, đối tượng và phạm vi nghiên cứu của đề tài, nội dung nghiên cứu, những đóng góp chính Cuối phần 1 là phần giới thiệu nội dung của từng chương trong quyển luận văn này
Phần 2: Nội dung gồm 3 chương chính:
Chương 1: Giới thiệu tổng quan đề tài về đặc tả và các chức năng chính của hệ thống
Chương 2: Trình bày thiết kế và cài đặt giải pháp, giới thiệu các công nghệ sử dụng, sơ đồ usecase, cơ sở dữ liệu và trình bày chức năng của từng phần trong hệ thống
Chương 3: Trình bày mục tiêu kiểm thử, các kịch bản kiểm thử và kết quả kiểm thử
Phần 3: Kết luận: Tổng kết kết quả đạt được và đề xuất hướng phát triển trong tương lai.
NỘI DUNG
HiFuture - “Hệ thống hỗ trợ tư vấn tuyển sinh” là trang web cung cấp các chức năng phục vụ cho việc tư vấn tuyển sinh Hệ thống bao gồm 6 chức năng chính cho người dùng: gợi ý trường, so sánh điểm, tư vấn trực tuyến, diễn đàn hỏi đáp, bản đồ và bài viết được đăng tải của các trường Hệ thống được xây dựng hướng đến các nhóm người dùng “Khách”, “Thành viên”, “Tư vấn viên” và “Quản trị viên”
Khi khách truy cập website, họ có thể làm khảo sát trắc nghiệm khám phá tính cách để được gợi ý trường và ngành phù hợp Sau khi xác định ngành, khách có thể so sánh điểm giữa các trường và giữa các năm trong cùng ngành để tìm trường phù hợp nhất Nhờ bản đồ trường đại học trên Google Maps, khách có thể tìm đường từ vị trí của mình đến trường một cách dễ dàng Bên cạnh đó, cổng thông tin tuyển sinh cho phép khách theo dõi tin tức tuyển sinh và các bài viết do các trường đăng tải Để sử dụng các chức năng nâng cao, khách cần đăng ký tài khoản và trở thành thành viên với đầy đủ thông tin tên, email và mật khẩu; thành viên có thể cập nhật thông tin sau khi đăng ký Sau khi đăng nhập, thành viên có thể like, bình luận hoặc trả lời bình luận, đánh giá trường và ngành học, tham gia trò chuyện trực tuyến, đặt câu hỏi và trả lời câu hỏi.
Mọi bình luận của người dùng trên các bài viết hoặc trên các trang chi tiết về trường và ngành sau khi gửi sẽ ở trạng thái chờ duyệt; chỉ khi được Tư vấn viên của trường phê duyệt, bình luận mới xuất hiện trên hệ thống.
Mỗi trường đại học sẽ được cấp một tài khoản dành cho Tư vấn viên để thực hiện các chức năng quan trọng như cập nhật chi tiết thông tin trường, đăng bài viết và tin tuyển sinh, trả lời các câu hỏi trên diễn đàn hỏi đáp liên quan tới trường (câu hỏi được thông báo qua email của tư vấn viên), tham gia trò chuyện trực tuyến với thí sinh khi có nhu cầu tư vấn và quản lý các bình luận liên quan đến trường.
Người dùng có thể đóng góp ý kiến hoặc liên hệ với quản trị viên để yêu cầu cung cấp tài khoản "Tư vấn viên" cho trường, thông qua form liên hệ trên website của trường.
“Quản trị viên” sau khi đăng nhập sẽ có quyền thao tác trên toàn bộ hệ thống cũng như thực hiện các tương tác với cơ sở dữ liệu
1.2 CÁC CHỨC NĂNG CỦA HỆ THỐNG
Hệ thống bao gồm các chức năng chính sau:
• Khách: đăng ký, thực hiện khảo sát trắc nghiệm tính cách để được gợi ý trường học, ngành học, so sánh điểm giữa các năm của các trường thông
THIẾT KẾ CÀI ĐẶT VÀ GIẢI PHÁP
CƠ SỞ LÝ THUYẾT
Đây là nền tảng phát triển ứng dụng theo mô hình serverless (không máy chủ), dành cho thiết bị di động và web, cung cấp cho nhà phát triển một bộ công cụ và dịch vụ toàn diện để xây dựng các ứng dụng client chất lượng cao bằng cách sử dụng các API mà không cần quan tâm đến việc cấu hình máy chủ.
Các dịch vụ nổi bật của Firebase:
• Real-time Database: cho phép lưu trữ và đồng bộ dữ liệu theo thời gian thực với kiểu dữ liệu NoSQL
Xác thực giúp xây dựng chức năng đăng nhập mà không cần lưu trữ dữ liệu đăng ký riêng của người dùng Với Firebase Authentication, bạn có thể triển khai nhiều phương pháp xác thực phổ biến như email và mật khẩu, số điện thoại, hoặc đăng nhập bằng tài khoản Google, Facebook, Twitter và các nhà cung cấp khác Việc tích hợp Firebase Authentication giúp người dùng đăng nhập nhanh chóng, an toàn và dễ quản lý danh tính trên ứng dụng, đồng thời tối ưu hóa quá trình phát triển và cải thiện trải nghiệm người dùng của bạn.
• Storage: hỗ trợ tải lên các nội dung đa phương tiện như: văn bản, hình ảnh, video, âm thanh
• Xây dựng ứng dụng nhanh mà không tốn thời gian, nhân lực để quản lý hệ thống và cơ sở hạ tầng phía sau
Quản lý cấu hình và thiết lập các ứng dụng Firebase được thiết kế trên giao diện website đơn giản, trực quan, giúp người dùng dễ dàng làm việc với các dự án Firebase Cung cấp các chức năng phân tích, báo cáo hoạt động và báo cáo các sự cố để người dùng có thể dễ dàng phát triển và định hướng ứng dụng của mình một cách hiệu quả.
Firebase là nền tảng do Google hỗ trợ và cung cấp trên nền tảng hạ tầng phần cứng và quy mô rộng khắp toàn cầu, được tin dùng bởi các ứng dụng lớn như Trivago, Wattpad, Alibaba, Venmo và Duolingo.
2.1.2 Giới thiệu Google Maps API
Google Maps là một dịch vụ ứng dụng bản đồ trực tuyến miễn phí do Google cung cấp, cho phép người dùng dò đường và chỉ đường một cách nhanh chóng Ứng dụng hiển thị bản đồ đường sá và đề xuất các tuyến đường tối ưu cho từng loại phương tiện, từ ô tô đến đi bộ Nó hỗ trợ bắt xe và chuyển tuyến cho các loại phương tiện công cộng như xe buýt, xe khách, giúp lên kế hoạch di chuyển dễ dàng Ngoài ra, Google Maps cho phép tìm kiếm và khám phá các địa điểm quan trọng như doanh nghiệp, trường học, bệnh viện, cây ATM và nhiều địa điểm khác trên khắp thế giới Với tính năng tiện ích và cập nhật liên tục, Google Maps là công cụ không thể thiếu cho chuyến đi và quản lý lộ trình hàng ngày.
Maps API là một phương thức cho phép nhúng Google Maps vào website một cách dễ dàng thông qua các thẻ javascript
2.1.3 Các công nghệ sử dụng khác
Laravel là một PHP framework mã nguồn mở và miễn phí được Taylor Otwell phát triển nhằm hỗ trợ xây dựng ứng dụng web theo kiến trúc Model-View-Controller (MVC) Laravel nổi bật với cú pháp dễ hiểu, rõ ràng và hệ thống đóng gói Modular cùng khả năng quản lý gói phụ thuộc hiệu quả, giúp tăng tốc phát triển và bảo trì ứng dụng Framework cung cấp nhiều cách truy cập vào các cơ sở dữ liệu quan hệ và tích hợp nhiều tiện ích hỗ trợ triển khai, vận hành và mở rộng ứng dụng, từ đó tối ưu hóa quy trình phát triển và bảo trì dự án.
Voyager: là công cụ giúp xây dựng giao diện quản trị cho ứng dụng Laravel
Voyager làm cho quá trình quản trị dễ dàng hơn bằng cách cung cấp các thao tác thêm, chỉnh sửa và xóa dữ liệu, đồng thời cho phép người dùng tạo menu tùy chỉnh và thực thi nhiều tác vụ quản trị khác một cách linh hoạt.
PHP (Hypertext Preprocessor) là ngôn ngữ lập trình kịch bản mã nguồn mở chủ yếu được dùng để phát triển các ứng dụng máy chủ, rất phù hợp với web và có thể dễ dàng nhúng vào trang HTML Được tối ưu hóa cho các ứng dụng web, PHP có tốc độ nhanh, nhỏ gọn, cú pháp gần giống C và Java, dễ học và rút ngắn thời gian xây dựng sản phẩm so với các ngôn ngữ khác Vì vậy PHP đã nhanh chóng trở thành một trong những ngôn ngữ lập trình web phổ biến nhất thế giới.
CSS (Cascading Style Sheets): thường được sử dụng với HTML để tùy chỉnh giao diện người dùng
HTML (Hyper Text Markup Language – Ngôn ngữ đánh dấu siêu văn bản) được xem là xương sống của một trang web, dùng để định dạng và hiển thị văn bản trên trình duyệt Cha đẻ của HTML là Tim Berners-Lee, người khai sinh ra World Wide Web và là chủ tịch của World Wide Web Consortium (W3C – tổ chức thiết lập các chuẩn trên môi trường Internet).
JavaScript là ngôn ngữ lập trình kịch bản giúp tạo ra tính tương tác giữa người dùng và website jQuery là thư viện JavaScript được viết dựa trên JavaScript, giúp đơn giản hóa việc viết mã JavaScript và tăng hiệu quả phát triển web Đây là một thư viện mã nguồn mở được phát triển bởi John Resig, với phiên bản đầu tiên ra đời vào tháng 8 năm 2006.
Bootstrap là một CSS framework do Twitter phát triển, cung cấp tập hợp các selector, thuộc tính và giá trị có sẵn nhằm giúp nhà phát triển tiết kiệm thời gian khi xây dựng giao diện người dùng cho dự án.
Ajax, viết tắt của Asynchronous JavaScript And XML, là phương thức trao đổi dữ liệu giữa trình duyệt và máy chủ theo cách bất đồng bộ để cập nhật một hoặc nhiều phần của trang web mà không cần tải lại toàn bộ trang Nhờ đó, các yêu cầu dữ liệu được gửi và nhận để cập nhật nội dung hoặc giao diện người dùng mà không làm gián đoạn trạng thái trang hiện tại Ajax thường sử dụng JavaScript để gửi các yêu cầu bất đồng bộ và nhận dữ liệu ở định dạng XML, JSON hoặc HTML, giúp tăng tính tương tác và trải nghiệm người dùng đồng thời giảm tải băng thông so với tải lại toàn bộ trang Đây là nền tảng của các ứng dụng web động hiện đại, cho phép cập nhật nội dung một cách linh hoạt và nhanh chóng mà người dùng không phải reload trang.
Font Awesome: thư viện chứa các icon hay sử dụng trong website Được xây
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở được nhiều nhà phát triển ưa chuộng trong quá trình phát triển ứng dụng Với tốc độ xử lý nhanh và tính bảo mật cao, MySQL là lựa chọn lý tưởng cho các ứng dụng có kết nối cơ sở dữ liệu trên Internet.
PowerDesigner là phần mềm hỗ trợ đắc lực trong việc thiết kế các mô hình dữ liệu quan hệ, bao gồm CDM (Conceptual Data Model - Mô hình dữ liệu ở mức khái niệm), LDM (Logical Data Model - Mô hình dữ liệu ở mức logic) và PDM (Physical Data Model - Mô hình dữ liệu ở mức vật lý) Công cụ này giúp xác định cấu trúc dữ liệu, thiết kế các thực thể và mối quan hệ, đồng thời quản lý quá trình chuẩn hóa và chuyển đổi giữa các cấp độ mô hình để đảm bảo tính nhất quán và khả năng mở rộng của hệ thống thông tin Với PowerDesigner, người dùng có thể tối ưu vòng đời dự án bằng cách sinh tài liệu mô hình đầy đủ và theo dõi mọi thay đổi giữa CDM, LDM và PDM.
Mô hình dữ liệu mức vật lý)
Rateyo: thư viện hỗ trợ tạo đánh giá kiểu sao
ZingChart là thư viện biểu đồ hàng đầu với hơn 100 loại biểu đồ, tích hợp các tính năng thuận tiện như phóng to biểu đồ và xuất khẩu sang các định dạng phổ biến như png, jpg và pdf, giúp người dùng trình bày dữ liệu một cách trực quan và chuyên nghiệp cho báo cáo và trình diễn.
SƠ ĐỒ USECASE
Hình 1: Sơ đồ usecase Quản trị viên [11]
Quản trị viên là người có quyền thao tác trên toàn bộ hệ thống và thực hiện các tương tác trực tiếp với cơ sở dữ liệu, bao gồm đăng nhập, quản lý người dùng và quản lý phân quyền; chịu trách nhiệm quản lý toàn diện các thành phần của hệ thống như quản lý trường học, quản lý trường cha và hệ đào tạo của trường, quản lý tỉnh thành, vị trí, khu vực và phương thức đào tạo; quản trị viên còn đảm nhiệm quản lý hệ đào tạo theo ngành, năm học, điểm thi, nhóm ngành học, ngành học, môn học và tổ hợp môn, quản lý đánh giá, quản lý câu hỏi và chủ đề của câu hỏi, quản lý phản hồi, quản lý thể loại của bài viết, quản lý bài viết và bình luận; đồng thời quản lý các câu hỏi và tính cách theo khung MBTI và Holland, bao gồm quản lý câu hỏi MBTI, quản lý tính cách MBTI, quản lý câu hỏi Holland, quản lý đáp án Holland và quản lý tính cách Holland.
Quản lý Nhóm ngành học
Quản lý Tổ hợp môn
Quản lý Đánh giá Quản lý Câu hỏi Quản lý Chủ đề
(của Câu hỏi) Quản lý Phản hồi Quản lý Thể loại
(của Bài viết) Quản lý Bài viết Quản lý Phân quyền Quản lý Người dùng Quản lý Vị trí Quản lý Trường học Quản lý Bình luận Đăng nhập
Quản lý Hệ đào tạo Ngành
Quản lý Phương thức đào tạo
Quản lý Câu hỏi MBTI Quản lý Tính cách Quản lý Hệ đào tạo Trường Quản lý Tỉnh thành
(Holland) Quản lý Đáp án
(Holland) Quản lý Tính cách
Hình 2: Sơ đồ usecase Tư vấn viên
Mỗi trường đại học được cấp một tài khoản Tư vấn viên để đăng nhập hệ thống và thực hiện các chức năng như quản lý bình luận trường (duyệt và trả lời bình luận), cập nhật chi tiết trường, quản lý bình luận bài viết (duyệt và trả lời bình luận), đăng tin tuyển sinh hoặc cập nhật tin tức của trường, trả lời các câu hỏi liên quan đến trường và trò chuyện trực tuyến.
Hình 3: Sơ đồ usecase Khách
Quản lý Bình luận Trường
Quản lý Bình luận Bài viết
Trả lời Câu hỏi Đăng tin tuyển sinh
Cập nhật chi tiết Trường
Khách Thao tác Bài viết
Tìm kiếm Bài viết Đăng ký
Gợi ý Trường học, Ngành học
Khảo sát trắc nghiệm tính cách MBTI
Hỏi đáp Tìm kiếm Hỏi đáp
Thao tác Bản đồ Định vị và chỉ đường
Khảo sát trắc nghiệm sở thích Holland
Khách là người vừa truy cập và sử dụng các chức năng trên hệ thống mà không cần đăng nhập, bao gồm đăng ký tài khoản, so sánh điểm, tìm kiếm và nhận chỉ đường khi thao tác với bản đồ, tìm kiếm các câu hỏi, xem và tìm kiếm các bài viết, đồng thời tham gia khảo sát trắc nghiệm Holland về sở thích hoặc khảo sát tính cách MBTI để gợi ý trường học và ngành học phù hợp.
Hình 4: Sơ đồ usecase Thành viên
Khi đã đăng ký tài khoản, người dùng sẽ trở thành “Thành viên” và có thể thực hiện đầy đủ các chức năng của người dùng “Khách” cũng như các chức năng nâng cao như thích bài viết, bình luận bài viết, đặt câu hỏi, trả lời câu hỏi, thích câu hỏi/phản hồi, tham gia trò chuyện trực tuyến, và xếp hạng trường học, ngành học thông qua đánh giá.
2.3 THIẾT KẾ CƠ SỞ DỮ LIỆU
2.3.1 CDM - Mô hình dữ liệu mức quan niệm
Mô hình dữ liệu được thiết kế gồm 28 thực thể [12] (được minh họa chi tiết trong phần “Phụ lục”)
Thao tác Bài viết Tìm kiếm Trường
Tìm kiếm Bài viết Đăng nhập
Gợi ý Trường học, Ngành học
Khảo sát trắc nghiệm tính cách MBTI
Trò chuyện trực tuyến Đặt câu hỏi
Xếp hạng Trường học Xếp hạng Ngành học
Like Bài viết Like Câu hỏi
Thao tác Bản đồ Định vị và chỉ đường
Khảo sát trắc nghiệm sở thích Holland
DI EM THI _NA M HO C DI EM THI _NG ANH NG ANH_ NHO M NG ANH
MO N_ TH MO N NG ANH_ THM O N BI NH LU AN _N G AN H BI NH LU AN _BAI VI ET
RA TI NG _NG ANH
Trong hệ thống đánh giá hiện hành, đánh giá người dùng đóng vai trò quan trọng khi người dùng có thể đánh giá bài viết và bình luận, giúp xác định chất lượng nội dung và trải nghiệm người đọc Các thước đo sẽ tính trung bình cho mỗi bài viết và cho mỗi người dùng, từ đó xác định mức độ ảnh hưởng, độ tin cậy và thứ tự hiển thị nội dung tương ứng với thể loại Việc tối ưu hóa SEO cho nội dung phụ thuộc vào việc tích hợp các từ khóa như đánh giá người dùng, đánh giá bài viết, bình luận, trung bình, người dùng, bài viết và thể loại.
CA UHO I_ NG UO IDUNG
TR UO NG _N G UO ID UN G NG UO IDUNG _P HA NQ UY EN
PH AN HO I_ NG UO ID UN G PH AN HO I_ CAU HO I
RA TI NG _P HA NHO I RA TI NG _T RUO NG
RA TI NG _CA UHO I VI TR I_ TR UO NG NG ANH_ TRUO NG NG ANH_ HDT NG ANH
TR UO NG _P TD AO TA O
TR UO NG _C HA _TR UO NG
TR UO NG _H DTTR UO NG VI TR I_ TI NH TH AN H
TR UO NG _TI NH TH AN H
TI NH TH AN H_ KH UV UC TC M BTI _N HO M NG AN H TC HL _N HO M NG AN H DA PA NHL _T INHCA CHHL DA PA NHL _CA UHO IHL
NA M _HO C NA M _HO C_ ID NA M _HO C NA M _HO C_ CRE AT ED_ AT NA M _HO C_ UP DA TE D_ AT
This article outlines a simple database schema for recording exam scores It uses a VARCHAR(30) field (likely for the DIEM_THI identifier or description) alongside a numeric field SO_DIEM to store the score Standard TIMESTAMP columns, CREATED_AT and UPDATED_AT, track when each record was created and last updated The design keeps exam results organized, easily queryable, and maintains data integrity through precise timestamps.
The text appears to define a database schema for an English group, listing key fields such as the English group ID, English group name, and the English group slug It also includes standard timestamp fields, created_at and updated_at, to track record creation and modification, along with data types like float and timestamp Overall, this snippet maps the data structure and metadata for managing English groups in a system.
Bài viết mô tả bảng bình luận với các trường chính và giới hạn ký tự cho từng trường Các trường phổ biến gồm: id bình luận, nội dung bình luận, created_at, updated_at, trạng thái và reply_id; nội dung bình luận được giới hạn ký tự (30, 100 ký tự) tùy từng trường để đảm bảo dữ liệu ngắn gọn và dễ quản lý Created_at ghi nhận thời điểm tạo bình luận, updated_at lưu thời điểm cập nhật cuối cùng; trạng thái (trạng thái bình luận) dùng để thể hiện tình trạng hoạt động của bình luận; reply_id liên kết bình luận với bình luận khác hoặc chuỗi trả lời Tóm lại, bài viết nhấn mạnh vai trò của tên trường và giới hạn ký tự để tối ưu lưu trữ và khả năng tra cứu trong hệ quản trị bình luận.
This MongoDB document schema defines two key identifier fields and timestamps for auditing MON_ID and MON_TEN are stored as variable-length character strings up to 30 characters, giving compact and readable IDs MON_CREATED_AT and MON_UPDATED_AT are timestamp fields that record when each document is created and last updated The schema also accommodates additional fields, such as text and integer types, to support various data requirements With this structure, you get efficient indexing, consistent data types, and a clear, SEO-friendly model description for developers and search engines alike.
Key elements of the data schema include two VARCHAR fields, one limited to 30 characters and another to 100 characters, allowing concise yet flexible text storage Each record is automatically timestamped with created_at and updated_at to capture when it was created and last modified, ensuring a reliable audit trail The structure appears to revolve around the TO_HOP_MON table (with MON identifiers), providing clear data relationships and straightforward updates Together, these components deliver a compact, searchable data model that balances efficient storage with traceable history.
An image metadata table is defined with variable-length character fields to store essential attributes efficiently: image_id as a 30-character string and image_code as a 100-character string, alongside timestamp fields created_at and updated_at to record when each row is created or modified The schema also includes TEN_ANH for the image name and MO_TA for a description, providing clear identification and searchable metadata for image management This structure enables reliable querying, easy localization, and scalable handling of large image catalogs.
Va ria bl e ch ar act er s ( 30 ) Va ria bl e ch ar act er s ( 30 ) Va ria bl e ch ar act er s ( 10 0) Te xt Ti m es ta m p Ti m es ta m p
RA TI NG RA TI NG _I D RA TI NG _S O _DA NH_ G IA RA TI NG _CRE AT ED_ AT RA TI NG _UP DA TE D_ AT
Dữ liệu trường học được lưu trữ với các trường cơ bản như TRUONG_ID, TRUONG_MA_TRUONG và TRUONG_TEN_TRUONG để nhận diện và hiển thị tên trường một cách rõ ràng Mã trường, slug URL và địa chỉ (TRUONG_SLUG, TRUONG_DIA_CHI) giúp tối ưu hóa SEO và khả năng tìm kiếm trên website Các kênh liên hệ như TRUONG_WEBSITE, TRUONG_FACEBOOK và TRUONG_EMAIL được tích hợp để người dùng dễ dàng liên hệ và tra cứu thông tin chi tiết (TRUONG_THONG_TIN_CHI_TIET) Thêm vào đó, thông tin vị trí (TRUONG_TINH_TP) và các trường thời gian như TRUONG_CREATED_AT và TRUONG_UPDATED_AT cho phép quản trị theo dõi nguồn gốc và lịch sử thay đổi Các trường ký tự ngắn (varchar(30)) được dùng để đảm bảo dữ liệu gọn gàng, nhất quán và dễ quản lý, từ đó nâng cao hiệu quả SEO và trải nghiệm người dùng khi tìm kiếm tên trường, địa chỉ, website hay các kênh mạng xã hội.
This article outlines a typical user table schema for authentication, listing fields such as user_id (integer) and username stored as varchar(30) It also defines email as varchar(100), a password field to hold the hashed password, and an email_verified_at timestamp that records when the user's email was confirmed A remember_token enables persistent sessions, while created_at and updated_at timestamps track when the account was created and last modified Additional status information is included to manage the user lifecycle In essence, the design covers the core authentication attributes needed by web applications: user ID, login name, email, password hash, email verification time, remember token, status, and audit timestamps.
This template defines a blog post entity with variable-length fields and timestamp metadata, outlining essential attributes such as an integer ID, a title, a short description, a URL slug, the main content, and a status flag, along with created_at and updated_at timestamps It specifies character limits for the variable character fields—for example 30 characters for the title and around 100 characters for the description, slug, and other metadata—to guide content length and support SEO best practices The database columns mirror common CMS naming conventions in Vietnamese: BAI_VIET_ID, BAI_VIET_TIEU_DE, BAI_VIET_SLUG, BAI_VIET_NOI_DUNG, BAI_VIET_TRANG_THAI, BAI_VIET_CREATED_AT, BAI_VIET_UPDATED_AT By using these fields, editors can craft SEO-friendly posts with precise metadata, ensuring easy indexing and consistent content management.
Database Schema Overview: The model includes four variable character fields with specific length constraints—30, 100, 100, and 200 characters respectively—to efficiently store short identifiers and descriptions It also defines a text field for longer content, an integer field for numeric values, and two timestamp fields to capture creation and modification times This combination supports flexible data entry while maintaining data integrity, and the timestamps enable precise auditing and chronological queries.
CHỨC NĂNG CỦA TỪNG PHẦN TRONG HỆ THỐNG
Hình 7:Lưu đồ giải thuật chức năng gợi ý trường
Khám phá khả năng tiềm ẩn của mỗi cá nhân để từ đó chọn công việc và môi trường làm việc phù hợp; vì vậy chức năng gợi ý trường được phát triển tích hợp Trắc nghiệm tính cách MBTI và Trắc nghiệm sở thích Holland nhằm gợi ý ngành nghề và môi trường làm việc phù hợp với đặc điểm cá nhân Kết quả gợi ý được tham khảo từ điểm chuẩn đại học gần nhất, cụ thể là năm 2019.
Ở bước đầu sử dụng chức năng gợi ý trường, hệ thống sẽ hiển thị hai bài khảo sát trắc nghiệm để người dùng quan tâm có thể tham gia khảo sát hoặc nhấn nút bỏ qua nếu không có nhu cầu, giúp tối ưu trải nghiệm người dùng và tiết kiệm thời gian.
Người dùng được gợi ý trường học và ngành học bằng cách chọn nhóm ngành (nếu thực hiện khảo sát, hệ thống sẽ lọc nhóm ngành phù hợp với tính cách người dùng), chọn phương thức đào tạo, chọn tổ hợp môn và nhập điểm dự kiến, sau cùng là nhấn nút tìm kiếm Hệ thống sẽ tìm kiếm trong cơ sở dữ liệu với các tham số đã nhập Nếu kết quả bằng 0 sẽ hiển thị thông báo không tìm thấy kết quả; ngược lại, sẽ hiển thị danh sách trường kèm theo số ngành phù hợp (nhấn vào số ngành để xem tên ngành và mức điểm), nhấn vào trường để được chuyển đến trang chi tiết trường, đồng thời vị trí các trường đã được lọc sẽ hiển thị trên Google Maps.
2.4.2 Chức năng so sánh điểm
Hình 8: Lưu đồ giải thuật chức năng so sánh điểm
Sau khi đã xác định được ngành học phù hợp với tính cách và sở thích, bước tiếp theo là chọn trường phù hợp với khả năng học vấn của bạn Chức năng so sánh điểm hỗ trợ quyết định bằng cách hiển thị biểu đồ cột và danh sách điểm chuẩn các trường theo từng năm, giúp bạn dễ dàng cân nhắc mức độ phù hợp và xu hướng cạnh tranh giữa các trường để lựa chọn tối ưu.
Chức năng so sánh điểm được thực hiện theo hai cách: một là nhập tên ngành mong muốn vào ô input, sau đó chọn hệ đào tạo, chọn phương thức đào tạo, xác định khoảng điểm dự kiến và nhấn nút so sánh; hai là chọn nhóm ngành, hệ đào tạo và phương thức đào tạo, sau đó chọn ngành và khoảng điểm rồi nhấn nút so sánh Dữ liệu sẽ được trích xuất phù hợp với các tham số đã nhập và hiển thị trên biểu đồ cột (có thể ẩn một cột nếu người dùng muốn xem điểm số của chỉ một năm) và danh sách bên dưới để xem kết quả chi tiết.
2.4.3 Chức năng trò chuyện trực tuyến
Google Firebase được sử dụng cho chức năng trò chuyện trực tuyến, với Real-time Database dùng để gửi và nhận tin nhắn, quản lý danh sách bạn bè và các dữ liệu liên quan, đồng thời Storage đảm nhiệm việc lưu trữ tệp tin và hình ảnh cho người dùng.
Hình 9: Cấu trúc người dùng trong Real-time Database
Dữ liệu của Real-time Database được biểu diễn dưới dạng cây JSON Khi người dùng kích hoạt chức năng trò chuyện trực tuyến, ứng dụng ở phía client sẽ dò tìm trong Real-time Database để xác định nút có username trùng với username đã đăng ký của người dùng (ví dụ: camtien, dhct, dhtd, …).
Giả sử có người dùng đăng nhập với username là camtien, khi đó dữ liệu từ nút tuvantuyensinh-2f6f0 > camtien sẽ được đọc:
Hình 10: Cấu trúc người dùng trong Real - time Database (2)
Khi có một tin nhắn mới được thêm vào:
+ Nút message (camtien > contact > dhct > message) sẽ lưu thông tin của tin nhắn đó bằng một khóa độc lập cùng bộ các thuộc tính:
• content: nội dung tin nhắn
• read: trạng thái đọc tin nhắn, nhận 2 giá trị true/false
• time: thời gian gửi tin, được chuyển về dạng số nguyên
• type: kiểu tin nhắn với “text” là dạng tin văn bản, “image” là dạng hình ảnh
• user: tên người dùng đã gửi tin nhắn
+ Nút config sẽ cập nhật tên người dùng gửi tin nhắn cuối cùng vào thuộc tính lastuser
Hình 11: Cấu trúc tin nhắn trong Real - time Database
Danh sách người dùng đã nhắn tin được lưu trữ ở nút camtien > friendlist, thể hiện thông qua giao diện sau:
Hình 12: Danh sách người dùng đã nhắn tin
Trên Firebase, ngoài tên người dùng, bộ thuộc tính sau sẽ được cập nhật khi có người dùng gửi tin nhắn:
• message_time: thời gian gửi tin nhắn gần nhất
• message_unread: số tin nhắn chưa đọc
• message_user: người dùng gửi tin nhắn gần nhất
• user-time: thời gian người dùng gửi tin nhắn
Hình 13: Cấu trúc bạn bè đã chat trong Real - time Database
Chức năng trò truyện trực tuyến được cụ thể hóa theo lưu đồ dưới đây:
Hình 14: Lưu đồ giải thuật chức năng trò chuyện trực tuyến
Chức năng trò chuyện trực tuyến dành cho Tư vấn viên và Thành viên sẽ hiển thị thông báo yêu cầu đăng nhập khi người dùng chưa đăng nhập Nếu người dùng đồng ý, hệ thống sẽ chuyển đến trang đăng nhập để tiếp tục trò chuyện; ngược lại, quá trình truy cập sẽ kết thúc và người dùng rời khỏi chức năng trò chuyện.
Khi người dùng đã đăng nhập và vào chức năng trò chuyện trực tuyến, hệ thống sẽ thiết lập cấu hình kết nối với Firebase và tải danh sách người dùng đã trò chuyện Người dùng ở vai trò Thành Viên muốn tạo cuộc trò chuyện mới cần chọn Trường muốn được tư vấn, sau đó bấm nút Bắt đầu trò chuyện để hệ thống tạo cây dữ liệu liên kết giữa Thí Sinh và Trường trên Firebase Danh sách người dùng tham gia trò chuyện sau đó được tải lại để cập nhật thông tin tin nhắn mới Để gửi tin nhắn, người dùng ở vai trò Tư vấn viên hoặc Thành viên cần chọn người trò chuyện trong danh sách, nhập nội dung tin nhắn và nhấn phím Enter để hệ thống thêm chuỗi tin nhắn vừa nhập vào cây dữ liệu trên Firebase.
2.4.4 Chức năng diễn đàn hỏi đáp các trường,… được chia sẻ cùng nhau và được tư vấn viên hỗ trợ trả lời các thắc mắc đó tại diễn đàn hỏi đáp
Hình 15: Lưu đồ giải thuật thêm câu hỏi
Người dùng chưa đăng nhập chỉ được phép xem và tìm kiếm câu hỏi Để đặt và trả lời câu hỏi, sẽ có thông báo yêu cầu đăng nhập, nếu đồng ý sẽ chuyển đến trang đăng nhập, ngược lại quá trình kết thúc Đối với chức năng thêm câu hỏi trong diễn đàn hỏi đáp được thể hiện cụ thể ở Hình 15, người dùng đã đăng nhập có thể đặt câu hỏi bằng cách nhập tiêu đề, chọn chủ đề (có thể chọn trường cần hỏi), nhập nội dung và nhấn nút “Đặt câu hỏi” Câu hỏi sau đó sẽ được lưu vào cơ sở dữ liệu và người dùng sẽ được chuyển đến trang hỏi đáp Nếu người dùng có chọn trường, một thông báo sẽ được gửi đến email Tư vấn viên của trường Đối với chức năng trả lời câu hỏi trong diễn đàn hỏi đáp được thể hiện cụ thể ở Hình 16, người dùng đã đăng nhập cần nhập nội dung cần trả lời sau đó nhấn nút
“Gửi phản hồi” Dữ liệu phản hồi sẽ được lưu, trang chi tiết câu hỏi sẽ được tải lại kèm phản hồi đã gửi
Hình 16: Lưu đồ giải thuật trả lời câu hỏi
Hiển thị bản đồ với tâm ở vĩ độ 16.143123 kinh độ 107.599573 (để hiển thị toàn cảnh quốc gia Việt Nam):
Hiển thị vị trí các trường có trong CSDL:
Chức năng chỉ đường trong bản đồ
Chuyển sang giao thức https cho ứng dụng Laravel bằng lệnh valet secure laravel
Viết Lấy vị trí hiện tại:
Vẽ đường đi từ vị trí hiện tại đến điểm đã click:
Hình 17: Lưu đồ giải thuật chức năng bản đồ
Vị trí các trường đại học tại Việt Nam được thể hiện trên bản đồ, giúp người dùng xem vị trí và địa điểm một cách trực quan Để tìm một trường cụ thể, hãy nhập tên trường vào ô input hoặc lọc trường theo hai tham số: loại trường và khu vực; danh sách các trường phù hợp sẽ được hiển thị ngay bên dưới.
Chọn trường để hiển thị tất cả vị trí của trường trên bản đồ Khi bạn chọn một vị trí, bản đồ sẽ tự động điều hướng đến vị trí vừa chọn Nhấn nút để hệ thống lấy vị trí hiện tại của người dùng và vẽ đường đi từ vị trí hiện tại đến vị trí đã chọn.
Đây là những tin tức tuyển sinh được Tư vấn viên đăng tải nhằm giúp người đọc hiểu rõ hơn về trường và nắm bắt các thông tin liên quan đến trường Bài viết cung cấp các nội dung tuyển sinh cập nhật, giới thiệu chương trình đào tạo, điều kiện nhập học và các yếu tố liên quan để độc giả có cái nhìn tổng quan và đưa ra quyết định học tập phù hợp.
Trong Hình 18: Lưu đồ giải thuật danh sách bài viết, quá trình gửi bình luận bắt buộc người dùng đăng nhập Nội dung bình luận khi gửi sẽ được lưu vào CSDL với trạng thái trang_thai = 0 (chờ duyệt) và hệ thống sẽ trả về thông báo gửi bình luận thành công cho người dùng Tư vấn viên sẽ là người phê duyệt để quyết định xem bình luận có được hiển thị trên bài viết hay không.
Hình 19: Lưu đồ giải thuật chức năng bình luận, trả lời bình luận bài viết