Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố

Ngoài dữ liệu chính là của kho dữ liệu, thì ứng dụng còn tích hợp các phƣơng thức của Google MAP nhằm giúp ngƣời dùm tìm kiếm các địa điểm công cộng, mang tính chất chỉ đƣờng và tham khảo. Google MAP chính là một hệ thống Web Service về toàn bộ bản đồ trên thế giới, với kho dữ liệu phong phú và hệ thống ngƣời dùng đông đảo, thƣờng xuyên cập nhập. Google MAP API là các phƣơng thức truy cập tới kho dữ liệu này và hoàn toàn đƣợc cung cấp miễn phí cho các nhà phát triển và các lập trình viên.

pdf21 trang | Chia sẻ: truongthanhsp | Lượt xem: 1548 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố MỤC LỤC LỜI CẢM ƠN ............................................... ERROR! BOOKMARK NOT DEFINED. LỜI CAM ĐOAN ......................................... ERROR! BOOKMARK NOT DEFINED. NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪNERROR! BOOKMARK NOT DEFINED. PHIẾU DUYỆT ĐỒ ÁN TỐT NGHIỆP .... ERROR! BOOKMARK NOT DEFINED. MỤC LỤC ....................................................................................................................... 1 DANH MỤC HÌNH ẢNH .............................................................................................. 3 DANH MỤC BẢNG ....................................................................................................... 4 MỞ ĐẦU ......................................................................................................................... 5 CHƢƠNG 1. TỔNG QUAN ĐỀ TÀI .......................................................................... .6 1.1 Giới thiệu đề tài ................................................................................................... .6 1.2. Mục đích và ý nghĩa ........................................................................................... 7 1.2.1. Mục đích ...................................................................................................... 7 1.2.2. Ý nghĩa ......................................................................................................... 7 1.3. Triển khai đề tài .................................................................................................. 7 1.3.1. Các bƣớc thực hiện ...................................................................................... 7 1.3.2. Mục tiêu cần đạt đƣợc .................................................................................. 8 1.4. Phạm vi ............................................................................................................... 8 1.5. Bố cục luận văn .................................................................................................. 8 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT ............................................................................ 10 2.1. Hệ điều hành iOs .............................................................................................. 10 2.1.1. Khái niệm ................................................................................................... 10 2.1.2. Các đặc tính ................................................................................................ 10 2.1.3. Kiến trúc hệ điều hành iOS ........................................................................ 11 2.2. Ngôn ngữ lập trình Objective – C .................................................................... 13 2.2.1. Giới thiệu ................................................................................................... 13 2.2.2. Các thành phần ........................................................................................... 14 2.2.3. Các thế mạnh .............................................................................................. 14 2.2.4. Môi trƣờng lập trình Xcode ....................................................................... 15 2.3. WebService ...................................................................................................... 16 2.3.1. Giới thiệu ................................................................................................... 16 2.3.2. Kiến trúc ..................................................................................................... 17 2.3.3. Hoạt động ................................................................................................... 18 CHƢƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................................................. 20 3.1. Phân tích yêu cầu .............................................................................................. 20 3.1.1. Mô tả bài toán ............................................................................................ 20 3.1.2. Phân tích yêu cầu bài toán ......................................................................... 20 3.1.3. Yêu cầu phi chức năng ............................................................................... 23 Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố 3.1.4. Các chức năng chính của hệ thống ............................................................ 24 3.2. Phân tích thiết kế hệ thống ............................................................................... 26 3.2.1. Biểu đồ ca sử dụng: .................................................................................... 26 3.2.2. Biểu đồ tuần tự ........................................................................................... 31 3.2.3. Biểu đồ hoạt động: ..................................................................................... 35 3.2.4. Biểu đồ lớp ................................................................................................. 38 3.2.5. Thiết kế cơ sở dữ liệu ................................................................................. 39 CHƢƠNG 4. TRIỂN KHAI VÀ THỰC NGHIỆM CHƢƠNG TRÌNH ..................... 41 4.1. Triển khai chƣơng trình .................................................................................... 41 4.1.1. Hệ thống Server ......................................................................................... 41 4.1.2. Ứng dụng trên di động ............................................................................... 44 4.2. Các thuật toán đƣợc sử dụng ........................................................................... 48 4.2.1. Thuật toán lấy dữ liệu và hiển thị ngƣời dùng trên bản đồ ........................ 48 4.2.2. Thuật toán lấy lọc lấy thông tin và vị trí ngƣời trợ giúp hoặc ngƣời cần trợ giúp ................................................................................................................. 48 4.3. THỰC NGHIỆM CHƢƠNG TRÌNH .............................................................. 50 4.3.1. Kết quả triển khai trên Webservice ............................................................ 50 4.3.2. Kết quả triển khai ứng dụng trên điện thoại di động ................................. 51 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .................................................................. 57 I. Kết luận .............................................................................................................. 57 1. Kết quả đạt đƣợc ................................................................................................ 57 2. Hạn chế .............................................................................................................. 57 II. Hƣớng phát triển ............................................................................................... 58 PHỤ LỤC ..................................................................................................................... .59 TÓM TẮT LUẬN VĂN TỐT NGHIỆP .................................................................... .60 TÀI LIỆU THAM KHẢO ......................................................................................... ..61 Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố DANH MỤC HÌNH ẢNH Hình 1. Kiến trúc iOS ..................................................................................................... 11 Hình 2 : Chồng giao thức của dịch vụ Web ................................................................... 17 Hình 3 : Mô hình hoạt động của Web service ................................................................ 18 Hình 4. Biểu đồ ca sử dụng tổng thể .............................................................................. 26 Hình 5. Biểu đồ tuần tự - Đăng ký ................................................................................. 31 Hình 6. Biểu đồ tuần tự - Đăng nhập ............................................................................. 31 Hình 7. Biểu đồ tuần tự - chỉnh sửa thông tin cá nhân .................................................. 32 Hình 8. Biểu đồ tuần tự - Xem thông tin địa điểm ......................................................... 32 Hình 9. Biểu đồ tuần tự - Tra cứu địa điểm ................................................................... 33 Hình 10. Biểu đồ tuần tự - Gửi yêu cầu trợ giúp ........................................................... 33 Hình 11. Biểu đồ tuần tự - Nhận yêu cầu trợ giúp ......................................................... 34 Hình 12. Biểu đồ tuần tự - Phản hồi ............................................................................... 34 Hình 13. Biểu đồ hoạt động – Đăng ký .......................................................................... 35 Hình 14. Biểu đồ hoạt động – Đăng nhập ...................................................................... 35 Hình 15. Biểu đồ hoạt động – Quản lý thông tin cá nhân .............................................. 35 Hình 16. Biểu đồ hoạt động – Chỉnh sửa thông tin cá nhân .......................................... 35 Hình 17. Biểu đồ hoạt động – Xem địa điểm ................................................................. 36 Hình 18. Biểu đồ hoạt động – Tra cứu địa điểm ............................................................ 36 Hình 19. Biểu đồ hoạt động – Gửi yêu cầu trợ giúp ...................................................... 37 Hình 20. Biểu đồ hoạt động – Phản hồi trợ giúp ........................................................... 37 Hình 21. Biểu đồ lớp ...................................................................................................... 38 Hình 22. Mô hình cơ sở dữ liệu quan hệ ........................................................................ 39 Hình 23. Màn hình Home Apps trên Webservice .......................................................... 42 Hình 24. Tạo một Class (Bảng) cho cơ sở dữ liệu ......................................................... 42 Hình 25. Tạo một cột cho bảng ...................................................................................... 43 Hình 26. Push Notification từ Webservice .................................................................... 43 Hình 27. Sơ đồ kết nối giữa ứng dụng với Webservice ................................................. 45 Hình 28. Sơ đồ nhận dữ liệu từ Webservice của ứng dụng ........................................... 46 Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố DANH MỤC BẢNG Bảng 1 : Bảng các chức năng đăng ký, đăng nhập......................................................... 24 Bảng 2 : Bảng các chức năng quản lý thông tin cá nhân ............................................... 24 Bảng 3 : Bảng các chức năng gọi trợ giúp ..................................................................... 24 Bảng 4 : Bảng các chức năng trợ giúp ........................................................................... 25 Bảng 5 : Bảng các chức năng phản hồi .......................................................................... 25 Bảng 6. Ca sử dụng đăng ký .......................................................................................... 27 Bảng 7. Ca sử dụng đăng nhập ....................................................................................... 27 Bảng 8. Ca sử dụng quản lý thông tin cá nhân .............................................................. 28 Bảng 9. Ca sử dụng chỉnh sửa thông tin cá nhân ........................................................... 28 Bảng 10. Ca sử dụng gửi yêu cầu trợ giúp ..................................................................... 29 Bảng 11. Ca sử dụng nhân yêu cầu trợ giúp .................................................................. 29 Bảng 12. Ca sử dụng phản hồi ....................................................................................... 30 Bảng 13. Bảng cơ sở dữ liệu - User ............................................................................... 40 Bảng 14. Bảng cơ sở dữ liệu - Nhóm trợ giúp .............................................................. 40 Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố CHƢƠNG 1. TRIỂN KHAI VÀ THỰC NGHIỆM CHƢƠNG TRÌNH 1.1. TRIỂN KHAI CHƢƠNG TRÌNH 1.1.1. Hệ thống Server 1.1.1.1 Môi trường triển khai Hệ quản trị cơ sở dữ liệu : sử dụng dịch vụ đám mây Parse. Giao tiếp với ứng dụng quan ParseSDK. 1.1.1.2 Cài đặt cơ sở dữ liệu Cài đặt cơ sở dữ liệu thông qua 2 bƣớc:  Bƣớc 1 : Tạo cơ sỡ dữ liệu trên của server.  Bƣớc 2 : Import file cơ sở dữ liệu vào đám mây, tùy chỉnh các thông tin cho phù hợp. 1.1.1.3 Cài đặt WebService Cài đặt webservice thông qua các bƣớc sau :  Bƣớc 1 : Đăng ký tài khoản sử dụng Parse. Vào để đăng ký 1 tài khoản. • Sau đó đăng nhập vào Parse rồi vào mục Dashboard (https://www.parse.com/apps) để thiết lập một số thông tin:  Bƣớc 2 : Tạo mới 1 ứng dụng (App) và đặt tên cho nó, ví dụ: DoAnTN  Bƣớc 3 : Thiết lập thông tin cho ứng dụng, lấy Application ID và JavaScript Key  Bƣớc 4 : Tạo cơ sở dữ liệu và bắt đầu kết nối dữ liệu với ứng dụng 1.1.1.4 Khai thác WebService Link để thao tác với Web service: https://www.parse.com/apps Lƣu trữ dữ liệu trên Parse đƣợc xây dựng xung quanh các ParseObject. Mỗi ParseObject chứa cặp khóa-giá trị của dữ liệu JSON-tƣơng thích. Với dữ liệu này chúng ta không cần phải xác định trƣớc những gì tồn tại trên mỗi phím ParseObject. Bạn chỉ cần đặt bất cứ điều gì giá trị khóa cặp mình muốn, và phụ trợ của Parse sẽ lƣu giữ nó. Ví dụ, giả sử đang theo dõi điểm số cao cho một trò chơi. Một PFObject duy nhất có thể chứa: Điểm số: 1337, playername: "Sean Plott", cheatMode: false Phím phải đƣợc chuỗi chữ và số. Các giá trị có thể là chuỗi, số, các phép toán luận, hoặc thậm chí các mảng và từ điển - bất cứ điều gì mà có thể là JSON mã hóa. Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố Mỗi ParseObject có một tên lớp học mà chúng ta có thể sử dụng để phân biệt các loại dữ liệu khác nhau. Để lƣu một dữ liệu: giao diện tƣơng tự nhƣ lƣu một NSMutableDictionary, cộng với phƣơng pháp saveInBackground Hình 23. Màn hình Home Apps trên service Hình 24. Tạo một Class (Bảng) cho cơ sở dữ liệu Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố Hình 25. Tạo một cột cho bảng Hình 26. Bảng Push Notification từ service Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố 1.1.2. Ứng dụng trên di động Ứng dụng trên điện thoại di động iPhone là chƣơng trình khai thác kho dữ liệu và chƣơng trình này đƣợc hệ thống cung cấp nên có thêm các chức năng đăng tải thông để xây dựng kho dữ liệu. Tên ứng dụng trên điện thoại di động iPhone : Ngƣời Việt thân thiện 1.1.2.1 Môi trường triển khai  Ngôn ngữ lập trình : Objective-C  Thiết bị : điện thoại di động iPhone, iPop Touch, iPad  Nền tảng hệ điều hành di động : iOS 7.0  Hệ điều hành phát triển : MacOS 10.10.3  Công cụ phát triển : Xcode 6.2 1.1.2.2 Cài đặt ứng dụng Cài đặt ứng dụng thông qua 2 nguồn chính:  Download thông qua FTP và tiến hành đồng bộ ứng dụng vào thiết bị.  Download thông qua App Store 1.1.2.3 Giao diện ứng dụng Giao diện ứng dụng làm theo chuẩn iPhone: Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố Trong đó:  Vùng 1 là Navigation bar : chịu trách nhiệm hiển thị tiêu đề, chuyển hƣớng và các action thao tác chính trên một màn hình.  Vùng 2 là View : hiển thị nội dung, các thao tác, nhập xuất..v..v..  Vùng 3 là Toolbar : Luồng màn hình theo các nhóm chức năng 1.1.2.4 Thao tác dữ liệu với Webservice Ứng dụng đƣợc xây dựng trên điện thoại di động nên việc lƣu trữ dữ liệu rất khó khăn khi lƣợng dữ liệu lớn và phức tạp. Và để tăng tốc độ xử lý dữ liệu nên phần dữ liệu chính là Web Service của kho dữ liệu đặt trên Server. Kết nối với Server thông qua sơ đồ sau: Hình 27 : Sơ đồ kết nối giữa ứng dụng với Server Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố Sau khi kết nối thành công với Web Service thì Web Service sẽ trả về một response về lại ứng dụng, việc xử lý sự kiện thông qua sơ đồ sau: Hình 28: Sơ đồ nhận dữ liệu từ Web Service của ứng dụng Dữ liệu trả về theo định dạng XML, việc phân tích dữ liệu XML sử dụng đối tƣợng NSXMLParser. 1.1.2.5 Ứng dụng google MAP API vào triển khai ứng dụng Ngoài dữ liệu chính là của kho dữ liệu, thì ứng dụng còn tích hợp các phƣơng thức của Google MAP nhằm giúp ngƣời dùm tìm kiếm các địa điểm công cộng, mang tính chất chỉ đƣờng và tham khảo. Google MAP chính là một hệ thống Web Service về toàn bộ bản đồ trên thế giới, với kho dữ liệu phong phú và hệ thống ngƣời dùng đông đảo, thƣờng xuyên cập nhập. Google MAP API là các phƣơng thức truy cập tới kho dữ liệu này và hoàn toàn đƣợc cung cấp miễn phí cho các nhà phát triển và các lập trình viên. Kết thúc Lưu trữ dữ liệu vào đối tượng Bắt đầu ĐúngSai Khởi tạo đối tượng nhận Response Kết nối nhận dữ liệu Nhận dữ liệu trả về Hũy kết nối Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố Ứng dụng khai thác 2 phần chính của Google MAP  Google MAP API Web Service: chứa các request để lấy thông tin các về một địa điểm, bao gồm : kinh tuyến, vĩ tuyến, tên, quốc gia...  Google Place API : chứa các request để lấy thông tin nhiều địa điểm xung quanh 1 vị trí xác đinh. Các địa điểm là các địa điểm công cộng hoặc có thể phân ra làm nhiều loại khác nhau, nhƣ : nhà hàng, bệnh viện, khách sạn...  Truy cập Google MAP tƣơng tự nhƣ việc kết nối Web Service của kho dữ liệu. Kiểu dữ liệu trả về chính của Google MAP là XML và JSON, nên việc phân tích dữ liệu của Google MAP cũng tƣơng tự nhƣ việc phân tích dữ liệu XML trả về của kho dữ liệu 1.1.2.6 Các nhóm chức năng chính của ứng dụng  Ngƣời dùng  Đăng ký  Đăng nhập  Quên mật khẩu  Địa điểm  Tìm kiếm các địa điểm  Tra cứu các địa điểm  Xem thông tin địa điểm  Hệ thống  Gởi phản hồi về địa điểm  Gởi phản hồi về hệ thống  Sử dụng Google MAP  Tìm kiếm các địa điểm công cộng  Lấy vị trí địa điểm trên bản đồ Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố 1.2. CÁC THUẬT TOÁN ĐƢỢC SỬ DỤNG 1.2.1. Thuật toán lấy dữ liệu và hiển thị ngƣời dùng trên bản đồ  Mỗi ngƣời dùng có một ID riêng và vị trí hiện tai của mình.  Vị trí sẽ đƣợc gửi lên server 10s một lần.  Khi một ngƣời dùng đăng nhập thành công vào ứng dụng. Sẽ lấy vị trí của những ngƣời xung quanh.  Tạo một animation hiển thị vị trí ngƣời khác xung quanh mình với chu kỳ 10 giây.  Tức là cứ 10 giây ngƣời dùng sẽ gửi vị trí của mình lên server một lần đồng thời lấy vị trí của những ngƣời khác về. x=1; if (giay=10x) then sendViTri( ) and getViTriNguoiDung( ); x++; 1.2.2. Thuật toán lấy lọc lấy thông tin và vị trí ngƣời trợ giúp hoặc ngƣời cần trợ giúp và gửi Push Notification.  Khi gặp sự cố. Ngƣời cần trợ giúp tạo ra một phiên trợ giúp bằng cách nhập thông tin trợ giúp.  Lấy 5 ngƣời xung quanh gần nhất để gửi push notification bằng cách lọc và tính khoảng cách giữa các địa điểm so với mình. Địa điểm đƣợc phân biệt bằng thuộc tính vĩ độ latitude và kinh độ longitude. x=location(Nguoidung); SELECT FROM User Kết quả: sẽ là một mảng chứa toàn bộ User; For i=0 in mangUser{ y=location(User); distance= khoảng cách từ x->y; } Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố  Truy cập vào bảng User lấy đƣợc thông tin, mỗi ngƣời dùng sẽ có một device Token. Device token giống nhƣ một số điện thoại, do đó mỗi ngƣời sẽ có một device token riêng  Gửi push notification thông qua device token của mỗi ngƣời dùng.  Sau 30 giây nếu không có phản hồi nào từ ngƣời dùng. Hệ thống s