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
Trang 1Hộ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ỄNVĂN DUY1,PHANMINH ĐẠT1, TRẦNHẾ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 quanvàtrải nghiệmđịađiểm dulịch ngày càngtăng cao Tuy nhiên, việclựa chọn nơi đến phải phù hợp với điều kiện hiện có Vớivấn đề đóvà đồngthời cũng là những người
hẻ khaokhát có những chuyến đi ý nghĩa và trọn vẹn, cho nênnhómđã chọnnghiên cứu "Nghiên cứu và
nhậpvào như ngày, giờvàchiphí ứng dụng sửdụng các thuật toánGreedy,Collaborativeđể xửlídữliệu
và hiển thị ra kết quả phù hợp nhất Ngoài ra, ứngdụng có thể chạy được hên cả Android và ĨOSvới sự hỗ
hợ của Flutter framework và ngôn ngữ lậptrình Dartvà JavaScript
Từ khóa FlutterFramework, Greedy, Collaborative, JavaScript, Dart
RESEARCH AND DEVELOPMENT OF A MOBILE APPLICATION PROPOSING
TOUR PLANS
Abstract Currently, thedemand forvisiting andexperiencingtourist athactions is increasing However,
people whodesữemeaningful and completetrips Therefore, the topic of "Researching andDeveloping an
suitable tourist attractions and schedulehips based on informationinputtedby users such as dates, times,
suitable results Moreover, the application can runon both Android and iOS platforms with the support of theFlutter framework andprogramming languagesDartand JavaScript
Keywords Flutter Framework, Greedy, Collaborative, JavaScript, Dart
1 GIỚI THIỆU
Nhu cầu đi du lịch ngàymột tăng trưởng trong những năm gần đây Vớirất nhiều ứngdụ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ơitrênhành hình của mình Tuy nhiên,
đó chưađủ cho mộthành trìnhcủakhách hàng.Tại một khu vực tham quan córất nhiềudịchvụ, mỗi dịch
vụ lại có rấtnhiều lựa chọn Thêm vào đó, một khu vực cũng có nhiều điểmtham quan với thời gian, chi phí khác nhau Làm thế nào để chọn lựa được mộthành trình tham quan phù hợp với khách hàng? Với
phươngpháp thủ công là chọn lựa từngdị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ề đơngiản Trướcthực hạng đó,nhóm tác giả tiếp cận theo hướngxây dựng một hệ
hên GoogleMaps, các đánhgiátừTripadvisor Ngoài ra, hệ thống sẽhỗtrợ các chủkinhdoanh có thể đăng
Trang 2Hộ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ácnhàphát triển xây dựng các ứng dụngdi động, với ngôn ngửlập trình Dart Cho phéptạo ra các UIđẹp và linh hoạt, bao gồm cả các hiệu ứngphức tạp, với tốc độphản hồisiêunhanh Các công cụ tích hợpvà các gói bo sung như widget, plugin, thiếtkế mẫu, Flutterlà mộtlựa chọn không thể bỏquacho các nhà phát triển muốn xây dựngcác ứng dụng đa nền tảng
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ônggây trởngại
Hình 2 Platform NodeJS
MongoDB: MongoDB làmộthệ thống quản lý cơ sởdữ liệu phi quan hệ(NoSQL)mã nguồn mở phổ biế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, aggregationframework, tat cả đều giúpcho việc lấy vàsử dụng dữ liệu dễdàngvà hiệuquả hơn
Google Map API: Google Maps zAPI là mộtdị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ànmiễn phí.Dịch vụ này hỗ trợnhiều chứcnăng của Google đặc biệt làchứng năngtìm
dẫn người dùngcách bắt xe, chuyển tuyến cho cácphươngtiệncông cộngnhư xekhách,xe bus Tính nă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ácdữ liệu quan trọng để hệ thống
có thểsử dụng [2]
Trang 3Hộ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
View
Hình 4 Kiến trúc phần mềm
Controlller
Model
View: Sử dụng framework cho app đi động đểthực thigiao diện người dùng Sử dụng các phưong thức
HTTPđềkết nốivới Controllercủa server
Controller: Lấy dữliệutừ 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áchnhiệm lưu trữ cácdữ liệu từ phía View vào cosởdữ liệu
2.3 Thiết kế hệ thống
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ênhệth ổng Ngoài tácnhân “người dùng” còn có các tácnhân khác được môtả bên dưới
Trang 4Hộ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” đượcmở rộng thành một vàitrường hợp sử dụng tuỳ chọn-người
Hình 6 Use case địa điểm gợi ý
Trường họp sử dụng “đãng nhậphệ thống” đượcbao gồm (include) trong trường hợp sử dụng“Đánh giá
người dùng phải chứng thực tài khoản
Trang 5Hộ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ụngcần thiết như“nhập chi phí chuyến
Thuật toán đuợc sử dụng Greedy [4] [ 1]:
đó Các bước này sẽ lặp lại chođến khiđến điều kiện dùnghoặcđua ra được kết quả tưong thích
Với sơ đồ bên dưới chúng tacó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
2 Với dữ liệu người dùng nhập vàothuật toánsẽ chạy và chọnlụa chọntốt nhất từ tậphợpcáclựa chọn có thể
trìnhcho đến khi không còn lựa chọn nào còn lại
Giải thuật lọc Collabrative [3]:
địađiểm có sởthích tương tự
Trang 6Hội nghị Khoa học trẻ ỉần 5 nàm 2023(YSC2023)-ỈUH
Dựđoánđánh giá củangười dùngđốivới các mặt hàng chua đượcđánh giá
Hình 8 Luu đồ giải thuật Collabrative
Hệthống sẽ kiểm tra xem người dùngcóđộ tương tự với bấtkỳ người dùng nào khác không Nếu có độ
2.4 Thiết kế ứng dụng
ứng dụngđược xâydựngtrênFrameworkFlutter với ngônngữ lập trình Dart và Cơ sở dữ liệuđượcviết
Trang 7Hộ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
điền thông tin về thời gian cho chuyếnđivà 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ậpvào Người dùngcó thể đọc và tìmhiểu thêm chi tiết
Hình 10 Người dùng tìm kiếm điểm đến
Trang 8Hộ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
chuyến đi) có thể
Hình 12 Chọn ngày giờ và cho ra kết quả
Trang 9Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈƯH
th|c4< đi <jlí«n bơp »â b*n «M c*o«dế IM
Hình 13 Kết quả hiền thị được trả về những (Ịa điểm phù họp
Vớinhững thông tinđấnhập vào thì hệ thống see tính toán để đưa ra nhũng điểm đến phù họp với khoản
Xeni CN •-»*< cic
Hình 14 Hình ảnh xem chi tiết các điạ đềm
Trang 10Hội nghị Khoa học trẻ lần 5 nâm 2023(YSC2023)-ỈUH
Dang nhap tai
khoan
Hình 15 Màn hình đăng nhập hoặc đăng ký tài khoản
3 KỂT LUẬN
Sau cùng với tiêuchí ban đầu đề ra là phát triểnmột ứng dụng, mà ai ai cũng có thễ dùngvà thao tácmột
toán cho quá trình xửlí dữ liệu Đẻ đưa ra những kết quả tốt nhất
TÀI LIỆU THAM KHẢO
[1] Nguyễn Hạnh Phúc, “Cấu trúc dữ liệu và giải thuật tham lam” Khoa Công nghệ Thông tin-Truờng Đại học Hàng hải Việt Nam
[2] Shaun Quarton , 'New Google Maps Requirement," New Google Maps Requirement: How to Get Your Google Maps API Key, p 7, 2016
[3] Nguyen Hùng Dũng, Nguyen Thái Nghe; Hệ thống gọi ý sản phẩm trong bán hàng trụ c tuyến sử dụng kỹ thuật lọc cộng tác; Tạp chí Khoa học Truông Đại học cằn Thơ, số 3 la (2014), trang 36-51
[4] Brilliant, "Greedy Algorithms," Greedy Algorithms, p 6, 2022
[5] TS.Hoang Quang, “Phân tích thiết kế thuật toán” Truông đại học Huế - Trường Đại học Khoa học, thang 11-2019 [6] Bạch Ngọc Toàn , 'Nghiên cứu xây dụng úng dụng Mobile vói Framework Flutter” p6.2022