Trướcthực hạng đó,nhóm tác giả tiếp cận theo hướngxây dựng một hệthốngcó khả năng gợi ý được hành trình du lịch dựa trên dữ liệu đầuvào củakhách hàng: chi phí, dựkiến.Hệthống sẽ có những
Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH YSC5.F118 NGHIÊN CỨU XÂY DựNG ỨNG DỤNG DI ĐỘNG ĐÈ XUẤT KẾ HOẠCH CHUYẾN THAM QUAN NGUYỄN VĂN DUY1, PHAN MINH ĐẠT1, TRẦN HẾN PHÁT1 }Khoa Công nghệ Điện tử, Trường Đại học Công nghiệp Thành phổ Hồ Chỉ Minh nguyenvanduy@iuh edu.vn Tóm tắt Hiện nay, nhu cầu tham quan và trải nghiệm địa điểm du lịch ngày càng tăng cao Tuy nhiên, việc lựa chọn nơi đến phải phù hợp với điều kiện hiện có Với vấn đề đó và đồng thời cũng là những người hẻ khao khát có những chuyến đi ý nghĩa và trọn vẹn, cho nên nhóm đã chọn nghiên cứu "Nghiên cứu và phát hiển ứng dụng di động đề xuất kế hoạch chuyến tham quan" cho dự án lần này Mục tiêu của nghiên cứu là đưa ra các địa điểm du lịch phù hợp và lên lịch trình cho chuyến đi dựa trên thông tin người dùng nhập vào như ngày, giờ và chi phí ứng dụng sử dụng các thuật toán Greedy, Collaborative để xử lí dữ liệu và hiển thị ra kết quả phù hợp nhất Ngoài ra, ứng dụng có thể chạy được hên cả Android và ĨOS với sự hỗ hợ của Flutter framework và ngôn ngữ lập trình Dart và JavaScript Từ khóa Flutter Framework, Greedy, Collaborative, JavaScript, Dart RESEARCH AND DEVELOPMENT OF A MOBILE APPLICATION PROPOSING TOUR PLANS Abstract Currently, the demand for visiting and experiencing tourist athactions is increasing However, choosing a destination must be suitable for the current conditions This is a common concern among young people who desữe meaningful and complete trips Therefore, the topic of "Researching and Developing an Application for Proposed Tour Plan" has been chosen for this project The goal of the project is to provide suitable tourist attractions and schedule hips based on information inputted by users such as dates, times, and costs The application uses Greedy and Collaborative algorithms to process data and display the most suitable results Moreover, the application can run on both Android and iOS platforms with the support of the Flutter framework and programming languages Dart and JavaScript Keywords Flutter Framework, Greedy, Collaborative, JavaScript, Dart 1 GIỚI THIỆU Nhu cầu đi du lịch ngày một tăng trưởng trong những năm gần đây Với rất nhiều ứng dụng trong và ngoài nước đang được người dùng sử dụng hước mỗi chuyến đi như: Agoda, Booking, Traveloka Đó là các hệ thống hỗ trợ người dùng booking các dịch vụ ăn ở, lưu trú, vui chơi trên hành hình của mình Tuy nhiên, các hệ thống hiện tại vẫn chỉ cung cấp các dịch vụ riêng lẻ hoặc có kết hợp được vài dịch vụ với nhau Điều đó chưa đủ cho một hành trình của khách hàng Tại một khu vực tham quan có rất nhiều dịch vụ, mỗi dịch vụ lại có rất nhiều lựa chọn Thêm vào đó, một khu vực cũng có nhiều điểm tham quan với thời gian, chi phí khác nhau Làm thế nào để chọn lựa được một hành trình tham quan phù hợp với khách hàng? Với phương pháp thủ công là chọn lựa từng dịch vụ rồi tổng hợp lại, cách này sẽ mất thời gian, chọn được các dịch vụ tốt không hề đơn giản Trước thực hạng đó, nhóm tác giả tiếp cận theo hướng xây dựng một hệ thống có khả năng gợi ý được hành trình du lịch dựa trên dữ liệu đầu vào của khách hàng: chi phí, dự kiến Hệ thống sẽ có những kế thừa từ dữ liệu của các hệ thống khách như: điểm tham quan đã được niêm yết hên Google Maps, các đánh giá từ Tripadvisor Ngoài ra, hệ thống sẽ hỗ trợ các chủ kinh doanh có thể đăng ký lên hệ thống Những kết quả gợi ý sẽ giúp người dùng có các lựa chọn tốt, tiết kiệm được thời gian © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh 181 Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-IUH 2 THIÉT KẾ HỆ THỐNG 2.1 Các công nghệ đưực sử dụng Flutter: là một framework đa nền tảng để giúp các nhà phát triển xây dựng các ứng dụng di động, với ngôn ngử lập trình Dart Cho phép tạo ra các UI đẹp và linh hoạt, bao gồm cả các hiệu ứng phức tạp, với tốc độ phản hồi siêu nhanh Các công cụ tích hợp và các gói bo sung như widget, plugin, thiết kế mẫu, Flutter là một lựa chọn không thể bỏ qua cho các nhà phát triển muốn xây dựng các ứng dụng đa nền tảng một cách dễ dàng và hiệu quả [6] Hình 1 Framework Flutter NodeJS: NodeJS giúp cho các ứng dụng được xử lý hiệu quả với tốc độ vượt trội và không gây trở ngại cho hệ thống Ngoài ra, NodeJS còn cung cấp kho lưu trữ npm với hàng ngàn các gói mã nguồn mở giúp các nhà phát triển dễ dàng thực hiện các tác vụ phức tạp một cách nhanh chóng và thuận tiện Hình 2 Platform NodeJS MongoDB: MongoDB là một hệ thống quản lý cơ sở dữ liệu phi quan hệ (NoSQL) mã nguồn mở phổ biến Nó sử dụng các tài liệu JSON để lưu trữ dữ liệu, thay vì các bảng và hàng trong kiểu dữ liệu quan hệ truyền thống Ngoài ra, MongoDB còn cung cấp nhiều tính năng khác như: tìm kiếm full-text, index đa mức, aggregation framework, tat cả đều giúp cho việc lấy và sử dụng dữ liệu dễ dàng và hiệu quả hơn Google Map API: Google Maps zAPI là một dịch vụ sử dụng ứng dụng vào công nghệ bản đồ trực tuyến trên web hoàn toàn miễn phí Dịch vụ này hỗ trợ nhiều chức năng của Google đặc biệt là chứng năng tìm đường và chỉ đường, hiển thị bản đồ, các tuyến đường tối ưu cho từng loại phương tiện Nó cũng hướng dẫn người dùng cách bắt xe, chuyển tuyến cho các phương tiện công cộng như xe khách, xe bus Tính năng cũng tích hợp bản đồ các địa điểm quan trọng như trường học, bệnh viện, cây xăng, ngân hàng, cây zATM trong khu vực của người dùng và trên toàn thế giói Với dữ liệu sẵn có từ Google Map được người dùng cập nhật lên có đầy đủ thông tin: địa điểm, thời gian, phí dịch vụ Đây là các dữ liệu quan trọng để hệ thống có thể sử dụng [2] 182 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈUH Hình 3 Google Map API 2.2 Kiến trúc phần mềm Kiến trúc MVC sẽ được chia làm 3 phần đúng theo tên viết tắt của nó là: View - Model - Controller View Controlller Model Hình 4 Kiến trúc phần mềm View: Sử dụng framework cho app đi động để thực thi giao diện người dùng Sử dụng các phưong thức HTTPđề kết nối với Controller của server Controller: Lấy dữ liệu từ Model đề xây dựng các RESTful API đề View có thề truy cập được và lấy dữ liệu hiển thị ra giao diện Model: Chịu trách nhiệm lưu trữ các dữ liệu từ phía View vào co sở dữ liệu 2.3 Thiết kế hệ thống Use case tồng quát của hệ thống Tác nhân “người dùng” sử dụng hệ thống đề đặt hàng Các trường hợp sử dụng ở dạng tồng quát này là “xem điểm đến”, “Yeu cau”, “Chon di em den” và “đăng ký thành viên” Truông hợp sử dụng “xem điểm đến” có thể được sử dụng bởi người dùng chỉ khi người dùng chỉ muốn tìm và xem điềm đến Trường hợp sử dụng này cũng có thể được sử dụng như là một phần của trường họp sử dụng “Yeu cau” Trường hợp sử dụng “đăng ký thành viên” cho phép người đùng đăng ký trên hệ th ổng Ngoài tác nhân “người dùng” còn có các tác nhân khác được mô tả bên dưới © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh 183 Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH Hình 5 Use case tổng quát Trường hợp sử dụng “Xem điểm đến” được mở rộng thành một vài trường hợp sử dụng tuỳ chọn - người dùng có thể tìm kiếm điểm đến, xem chi tiết điểm đến, xem những địa điểm tương tự với điếm đến đanh giá và đánh giá cho điểm đến, xem những điểm đến gợi ý cho người dùng và thêm điểm đến vào mục lưu Tất cả các trường hợp sử dụng này là trường họp sử dụng mở rộng (extend) bởi vì chúng cung cấp một số chức năng tuỳ chọn cho phép người dùng tìm điểm đến (6) Hình 6 Use case địa điểm gợi ý Trường họp sử dụng “đãng nhập hệ thống” được bao gồm (include) trong trường hợp sử dụng “Đánh giá sản phẩm”, “xem địa điểm gọi ý” và "thêm điểm đến vào mục lưu” bởi vì các thành phần này yêu cầu người dùng phải chứng thực tài khoản 184 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈƯH Trường hợp sử dụng “ Yeu cau” bao gồm một vài trường họp sử dụng cần thiết như “nhập chi phí chuyến dí, nhập khoảng thời gian” Khách hàng phải chứng thực tài khoản Điều này có thể được thực hiện thông qua đăng nhập người dùng (login page) Thuật toán đuợc sử dụng Greedy [4] [ 1]: Phưong pháp thiết kế thuật toán trong đó các quyết đỉnh được đưa ra dựa trên việc lụa chọn tối ưu/nhỏ nhất/tốt nhất ở mỗi bước, mà không quan tâm đến tương lai hoặc sự ảnh hưởng của các quyết định trước đó Các bước này sẽ lặp lại cho đến khi đến điều kiện dùng hoặc đua ra được kết quả tưong thích Với sơ đồ bên dưới chúng ta có thể hình dung được cách mà thuật toán chạy như thế nào Hỉnh 7 Luu đồ thuật toán Greedy trong ứng dụng Sơ đồ trên bao gồm các bước cơ bản của thuật toán Greedy được áp dụng: 1 Khỏi tạo một tập họp một list danh sách các địa điểm 2 Với dữ liệu người dùng nhập vào thuật toán sẽ chạy và chọn lụa chọn tốt nhất từ tập hợp các lựa chọn có thể 3 Thêm lựa chọn tốt nhất vào tập họp kết quả 4 Loại bỏ các lụa chọn những điểm đến không còn khả dĩ 5 Kiểm tra xem còn lựa chọn nào không trong tập hợp có thể không Nếu có, quay lại bước 2 và lặp lại quá trình cho đến khi không còn lựa chọn nào còn lại 6 Kết thúc thuật toán và trả về tập hợp kết quả Giải thuật lọc Collabrative [3]: Tính toán sự tương đồng giữa các cặp người dùng hoặc địa điểm • Áp dụng các chỉ số hình học, thống kê hoặc ngữ nghĩa để tính toán độ tương đồng giữa các cặp người dùng hoặc địa điểm Sử dụng các thuật toán clustering hoặc classification để phân nhómngưòi dùng hoặc địa điểm có sở thích tương tự © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh 185 Hội nghị Khoa học trẻ ỉần 5 nàm 2023(YSC2023)-ỈUH Dự đoán đánh giá của người dùng đối với các mặt hàng chua được đánh giá • Dựa trên đánh giá của người dùng trước đó, kết hợp với thông tin về độ tương đồng giữa người dùng hoặc địa điểm, thuật toán sẽ tính toán dự đoán đanh giá cho các địa điểm Hình 8 Luu đồ giải thuật Collabrative Giải thuật này dùng để hiển thị các địa đỉểm gợi ý cho người dùng Hệ thống sẽ kiểm tra xem người dùng có độ tương tự với bất kỳ người dùng nào khác không Nếu có độ tưong tự với người dùng khác, hệ thống lại kiểm tra tiếp có địa điểm được người dùng có độ tương tự với người dùng đang xét đánh giá không Nếu có, hệ thống sẽ dự đoán độ thích của người dùng trên các địa điểm theo giải thuật lọc cộng tác Ngược lại, dự đoán độ thích của người dùng trên các địa điểm dựa vào các thuộc tính như thời gian và chi phí mà người dùng đã cung cấp Nếu không có độ tương tự với người dùng khác, hệ thống kiểm tra có thông tín về địa điểm mà người dùng thích Nếu có, dự đoán độ thích của người dùng trên các điểm đến dựa vào các thuộc tính như thời gian chi phí địa điểm Ngược lại, sẽ hiển thị các điểm đến được đến nhiều nhất và các điểm đến được ưa thích nhất cho người dùng (3)(5) 2.4 Thiết kế ứng dụng ứng dụng được xây dựng trên Framework Flutter với ngôn ngữ lập trình Dart và Cơ sở dữ liệu được viết bằng platform NodeJS được xây dựng trên môi trường JavaScript Runtime Có thể chạy được trên các nền tảng khác nhau như Android và iOS 186 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh Hội nghị Khoa học trẻ lần 5 nam 2023(YSC2023)-ỈUH Hình 9 Lưu đồ thiết kế của ứng dụng 2.5 Giao diện ứng dụng Để thuận tiện cho việc tìm điểm đến, chúng tôi đã trực quan hóa hiển thị các thông tin điểm đến lên giao diện để người dùng dễ dàng sử dụng Các địa điểm sẽ được hiển thị theo sắp xếp từ đánh giá người dùng (từ các lượt thả tim) Các tim này sẽ được gửi về từ phản hồi cửa ngưòi đã trải nghiệm điểm đến trước đó Số lượng thả tim càng nhiều thì sẽ được hiển thị trên đề xuất Khi bấm vào tìm kiếm, người dùng sẽ được điền thông tin về thời gian cho chuyến đi và chi phí hiện có Sau đó hệ thống sẽ trả về một loạt các địa điểm phù hợp với thời gian và chi phí mà người dùng nhập vào Người dùng có thể đọc và tìm hiểu thêm chi tiết về điểm đến Hình 10 Người dùng tìm kiếm điểm đến Sau khi người dùng đăng nhập trên ứng dụng sẽ được chuyển đến màng hình chính Ở đây có thể tim kiếm các điểm đến mong muốn hoặc chọn nhũng điểm đến xu hướng © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh 187 Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈƯH Nhập vào thời gian dự đ|nh cho chuyến đi dài ngày Hình 11 Người dùng nhập thông tin để lên lịch cho chuyến đi Tiếp theo sau khi đã chọn được địa điểm Người dùng sẽ được chuyển tiếp đến màn hình lên lịch cho chuyến đi Với các thông tin nhập vào là giờ (nếu đi trong ngày), ngày (nếu đi dài ngày) và chi phí (khoản tiền cho chuyến đi) có thể Hình 12 Chọn ngày giờ và cho ra kết quả 188 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈƯH th|c4< đi