Hiện nay nhu cầu mong muốn giao lưu kết bạn càng ngày càng cao đặc biệt với những người có chung sở thích và đặc biệt hơn nữa là chung sở thích đi phượt. “Phượt” – Chắc hẳn hiện nay không ai là không nghe nhiều tới từ ngữ phổ biến này. DU LỊCH BỤI hay còn gọi là PHƯỢT là bạn tự chọn phương tiện cho mình, đi bất cứ đâu mà bạn muốn và có thể đi một mình hay đi một nhóm người.Hầu hết các dân phượt tham gia phượt đôi khi không có kế hoạch, không biết mình đi đâu và không biết mình đi đường nào, đơn giản là họ muốn khám phá, muốn thử sức và muốn tìm tòi những thứ mình chưa biết. Điều này một mặt khá tốt, tuy nhiên việc đi không nắm rõ lộ trình cũng sẽ gây nguy hiểm rất nhiều.Hiện nay cũng đã xuất hiện một vài ứng dụng trên android hỗ trợ để giảm thiểu rủi do cho dân phượt như: Google maps, GPS Status Toolbox, Smart Compass, Smart Measure, My Track,… Với mong muốn tạo một ứng dụng trên android kết hợp việc du lịch và mạng xã hội, chúng tôi nghiên cứu và phát triển một phần mềm có tên WeGo. Trong khóa luận này tôi xây dựng một phần mềm trên android nhằm phục vụ mục đích của những người thích đi phượt hay đi du lịch. Với ứng dụng, mọi người có thể tham gia hay tạo một tour về thời gian, địa điểm, tự xây dựng lộ trình đi của mình, đánh dấu các điểm đã đi qua, theo dõi thành viên trong nhóm tránh lạc nhau……Ứng dụng này có chức năng đơn giản nhưng đã được xây dựng một cách khá hoàn thiện, từ quá trình xử lý dữ liệu trên server, liên kết dữ liệu giữa server và client, về giao diện và cả tính năng mở rộng,…. Giúp người dùng có thể đơn giản khi sử dụng, từ đó giúp cho người dùng, đặc biệt là dân phượt tham gia các chuyến đi tốt hơn.
+ ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Khuất Thanh Sơn MẠNG XÃ HỘI DU LỊCH DỰA TRÊN VỊ TRÍ, ĐỊA ĐIỂM KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin HÀ NỘI – 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Khuất Thanh Sơn MẠNG XÃ HỘI DU LỊCH DỰA TRÊN VỊ TRÍ, ĐỊA ĐIỂM KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thông tin Cán hướng dẫn: ThS.Vũ Quang Dũng Cán đồng hướng dẫn: CN Bùi Đức Hiếu HÀ NỘI – 2016 LỜI CẢM ƠN Trước tiên, xin gửi lời cảm ơn thầy cô cán trường đại học Công Nghệ - Đại học Quốc Gia Hà Nội đặc biệt thầy cô giáo thuộc khoa CNTT dạy bảo tận tình ln điều kiện thuận lợi cho học tập nghiên cứu suốt năm đại học Tôi xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo ThS Vũ Quang Dũng người tận tình hướng dẫn đóng góp ý kiến quý báu suốt q trình thực khóa luận tốt nghiệp Đồng thời, xin cảm ơn anh Bùi Đức Hiếu, anh Dương Mạnh Tình Samsung Vietnam Mobile R&D Centre(SVMC) - Cty Samsung cho gợi ý lời khuyên giúp tơi hồn thiện đề tài Tơi gửi tới lời cảm ơn đến bạn Ngô Quang Đại (Lớp K57CC- Đại học Công Nghệ, Đại học quốc gia Hà Nội) người bạn đồng hành với tơi khóa luận Khóa luận tơi khơng thể thực thiếu bạn Cuối cùng, muốn gửi lời cảm ơn đến gia đình bạn bè, đặc biệt bố mẹ, người khơng quản khó khăn, vất vả nuôi ăn học để trở thành người ngày hôm Tôi xin chân thành cảm ơn! TĨM TẮT Tóm tắt: Hiện nay, có nhiều người đặc biệt bạn trẻ ham muốn tham quan địa danh đất nước để hiểu thêm lịch sử tìm tòi vẻ đẹp đất nước Tuy nhiên khơng người gặp nhiều khó khăn từ việc đăng kí tham gia phượt, di chuyển dễ lạc hay gặp cố Bên cạnh việc phát triển mạnh mẽ cơng nghệ thơng tin đặc biệt dòng điện thoại smartphone mà hầu hết có Xuất phát từ ý tưởng muốn đơn giản hỗ trợ bạn trẻ có đam mê “phượt”, tơi mong muốn viết nên phần mềm để hỗ trợ “Dân phượt” tham gia chuyến Do vậy, đề tài khóa luận tơi muốn giới thiệu phần mềm ứng dụng hỗ trợ dân phượt Android Nội dung khóa luận tập trung trình bày đặc điểm kiến trúc MVC, mơ hình kiến trúc hướng dịch vụ (SOA–Service Oriented Architectural), tính ưu việt ứng dụng “We Go”, bước tiến hành sử dụng ứng dụng Từ khóa: MVC, SOA LỜI CAM ĐOAN Tơi xin cam đoan kết trình bày khóa luận tơi thực hướng dẫn ThS.Vũ Quang Dũng Tất tham khảo nghiên cứu liên quan nêu rõ nguồn gốc cách rõ ràng từ danh mục tài liệu tham khảo khóa luận Khóa luận khơng chép tài liệu, cơng trình nghiên cứu từ người khác mà không rõ mặt tài liệu tham khảo Các thống kê, kết trình bày khóa luận lấy từ thực nghiệm chạy chương trình Nếu tơi sai tơi hồn tồn chịu trách nhiệm theo quy định trường Đại học Công Nghệ - Đại học quốc gia Hà Nội Hà Nội, ngày 17 tháng năm 2016 Sinh viên Khuất Thanh Sơn MỤC LỤC DANH SÁCH KÍ HIỆU, CHỮ VIẾT TẮT STT Kí tự viết tắt SOA Service Oriented Architectural Là mơ hình kiến trúc hướng dịch vụ MVC Model View Controller Là mơ hình kiến trúc phần mềm với ba phần chính: Model, View, Controlelr XMLHttp Request Là API sử dụng Javascript, VBScript,… một ngơn ngữ kịch trình duyệt web khác để chuyển thao tác liệu XML đến từ máy chủ web sử dụng phương thức HTTP JavaScript Object Noattion Là định dạng hoán vị liệu nhanh Chúng dễ dàng cho đọc viết Dễ dàng cho thiết bị phân tích phát sinh XHR JSON Viết đầy đủ Giải thích DANH SÁCH HÌNH VẼ Chương 1: Mở đầu 1.1 Đặt vấn đề Hiện nhu cầu mong muốn giao lưu kết bạn ngày cao đặc biệt với người có chung sở thích đặc biệt chung sở thích phượt “Phượt” – Chắc hẳn không không nghe nhiều tới từ ngữ phổ biến DU LỊCH BỤI hay gọi "PHƯỢT" bạn tự chọn phương tiện cho mình, đâu mà bạn muốn hay nhóm người Hầu hết dân phượt tham gia phượt khơng có kế hoạch, khơng biết đâu khơng biết đường nào, đơn giản họ muốn khám phá, muốn thử sức muốn tìm tòi thứ chưa biết Điều mặt tốt, nhiên việc khơng nắm rõ lộ trình gây nguy hiểm nhiều Hiện xuất vài ứng dụng android hỗ trợ để giảm thiểu rủi cho dân phượt như: Google maps, GPS Status & Toolbox, Smart Compass, Smart Measure, My Track,… Với mong muốn tạo ứng dụng android kết hợp việc du lịch mạng xã hội, nghiên cứu phát triển phần mềm có tên WeGo Trong khóa luận tơi xây dựng phần mềm android nhằm phục vụ mục đích người thích phượt hay du lịch Với ứng dụng, người tham gia hay tạo tour thời gian, địa điểm, tự xây dựng lộ trình mình, đánh dấu điểm qua, theo dõi thành viên nhóm tránh lạc nhau…… Ứng dụng có chức đơn giản xây dựng cách hoàn thiện, từ trình xử lý liệu server, liên kết liệu server client, giao diện tính mở rộng,… Giúp người dùng đơn giản sử dụng, từ giúp cho người dùng, đặc biệt dân phượt tham gia chuyến tốt 1.2 Xác định yêu cầu chương trình thực nghiệm Đề tài khóa luận “Mạng xã hội du lịch dựa vị trí, địa điểm” nằm dự án phát triển công ty Samsung liên kết trực tiếp với trường ĐH Công nghệ ĐHQGHN, nhóm phát triển dự án có hai thành viên Khuất Thanh Sơn (K57CB) Ngô Quang Đại (K57CC) Theo yêu cầu mục đích cụ thể, hai thành viên nhóm nghiên cứu đề tài phân chia rõ ràng cơng việc, khóa luận tơi có tham khảo khóa luận tốt nghiệp “Xây dựng mạng xã hội địa điểm cho du lịch (Location base social network for travelling) ” bạn Ngô Quang Đại, nhiên dựa yêu cầu riêng thành viên nên khóa luận tơi có trình bày có khác so với khóa luận bạn Đại Bài tốn tóm tắt đơn giản sau: Yêu cầu 1: Nghiên cứu android kiến trúc MVC android: • Tìm hiểu kiến trúc MVC (Model – View – Controler) áp dụng vào ứng dụng • Xây dựng ứng dụng theo cấu trúc MVC, đầy đủ tính tính mở rộng Yêu cầu 2: Tìm hiểu Google map API ứng dụng: • Đưa vị trí người dùng hay nhóm người dùng vào map • Cập nhật vị trí người xung quanh • Marker lại vị trí địa điểm qua, lưu lại thơng tin lên server Như khóa luận này, đưa phương pháp xây dựng ứng dụng chạy tảng Android đáp ứng vấn đề nêu 1.3 Mục đích ý nghĩa đề tài Đề tài giúp hoàn thiện kĩ liên quan tới lập trình java lập trình Android, hiểu thêm mơ hình MVC, áp dụng vào tốn thực tế Đề tài giúp hiểu thêm GoogleMap API, hiểu áp dụng vào việc xác định vị trí, tính tốn hướng lội trình, ứng dụng vào tốn Bên cạnh đó, đề tài giúp hiểu việc mối quan hệ Client – Server, tạo sở liệu, củng cố kiến thức liên quan tới Server lập trình PHP Đề tài giúp nâng cao kiến thức thiết kế giao diện người dùng, quy trình cách thức lập trình, nâng cao úng dụng vào thực tế mơn học phân tích thiết kế Đề tài đưa toán cách thức q trình thiết lập, hồn thiện tốn, đưa ứng dụng hồn chỉnh hỗ trợ tốt cho việc phục vụ mục đích người thích phượt hay du lịch Tơi hi vọng đề tài khóa luận tài liệu tham khảo hữu ích cho người sau 10 Preconditions:(Điều kiện đầu) - ND đăng nhập PostConditions:(Điều kiện cuối) - ND xem danh sách thành viên vị trí thành viên Main Success Scenario: (Kịch chính) Ste p User System - Ở hình Tour trường menu bên trái, ND click “Bản đồ” button - ND click vào hiển thị thành viên nhóm - ND click “Tìm kiếm” button - Chuyển sang hình Map Alternative Scenario: (Kịch thay thế) N/A Exceptions: (Trường hợp ngoại lệ) N/A Relationships: (Mối quan hệ) With use case: - UC-001: Login UC–007 : Map Business Rules: (Yêu cầu) N/A 44 - Hiển thị vị trí thành viên nhóm - Chuyển sang hình tìm kiếm hiển thị thơng số lọc: vị trí trạm xăng, vị trí nhà nghỉ, ATM,… 4.2 Biểu đồ tuần tự: 4.2.1 Đăng kí Hình 4.2: Biểu đồ ca sử dụng đăng kí thành viên 4.2.2 Đăng nhập Hình 4.3: Biểu đồ ca sử dụng đăng nhập 45 4.3 Thiết kế sở liệu 4.3.1 Cấu trúc sở liệu Tôi tập chung mô tả biểu đồ lớp liên quan đến phần chức tơi làm: Hình 4.4: Cấu trúc sở liệu 4.3.2 Các liên kết sở liệu • Tours, member_Tour, date_time, location: tours member_tour có quan hệ (m-n) tour có nhiều người người tham gia nhiều tour Tours date_time có quan hệ (n-1) tour có thời gian bắt đầu kết thúc định khoảng thời gian có nhiều tour Tours location có mối quan hệ (m-1) tour có lộ trình định, lộ trình có nhiều tour người sử dụng khác tạo • User,Tours, member_Tour, date_time, location: User va Tours có quan hệ (1-m) người sử dụng tham gia vào nhiều tour gối đầu không trùng nhau, User date_time có mối quan hệ (m-n) user tham gia thời gian khác không trùng lặp (thời gian tổ chức tour gối đầu) khoảng thời gian có nhiều user tham gia, User 46 location có mối quan hệ (m-1) user thời điểm có vị trí xác định vị trí có nhiều user khác 4.4 Thiết kế Webservices với JSON Tôi tập chung mô tả biểu đồ lớp liên quan đến phần chức làm Chỉ đơn giản dịch vụ web cung cấp liệu cho Mobile Application Dữ liệu lấy Database Server chuỗi JSON Mobile dùng phương thức get vòng lặp để gửi yêu cầu đến Webservices Khi nhận yêu cầu webservices kết nối đến Database Server lấy thông tin Mobile Application cần Sau dùng dịch vụ xml JSON để trả cho Mobile Application [6] Database Server GET Mobile Application SQL Request Webservices JSON JSON: JavaScript Object Noattion Hình 4.5 : Giao tiếp Webservices Ví dụ: Listing 4: Một đoạn JSONParser 47 Khi Mobile dùng phương thức get vòng lặp để gửi yêu cầu đến Webservices, gửi lên server chuỗi JSON, webservices kết nối đến Database Server lấy thông tin Mobile Application cần Sau gửi đoạn JSON lại Ứng dụng giải mã JSON lấy thơng tin u cầu Ví dụ đăng nhập facebook giao diện ứng dụng: Từ code có sau facebook redirect về, ta gửi code, clientID, client sescret lên graph API để request AccessToken, kết trả có dạng: access_token={access-token}&expires={seconds-til-expiration} Ta dùng hàm substring để cắt chuỗi access-token từ chuỗi trả Ở đây, ta gửi AccessToken lên server để lấy thông tin người dùng Thông tin trả dạng Json, ta dùng Gson để parse Gửi code lấy, ta lấy kết trả từ facebook API, xử lý chuỗi ta access token Hình 4.6: AccessToken 48 Gửi token lên, ta lấy chuỗi json chứa thông tin user: Ta parse chuỗi thành object, sau xử lý (Lưu xuống database, login) Hình 4.7 : Database trước bấm vào Login via Facebook: Hình 4.8 : Database sau login Như ta hiểu rõ cách thức hoạt động Server: nhận AccessToken yêu cầu trả chuỗi JSON để client (Ở Mobile App) xử lí lấy thơng tin cần thiết 49 Chương 5: Kết thực nghiệm 5.1 Môi trường thực nghiệm Thiết bị: Samsung glaxy A7 2016 Hệ điều hành: Android 5.1.1 5.2 Kết thực nghiệm Khởi động ứng dụng thao tác chức ứng dụng: Trong khóa luận tơi thực nghiệm chức tơi làm, chức khác thực nghiệm khóa luận bạn Ngô Quang Đại [10] 50 5.2.1 Đăng nhập, đăng kí: Tiến hành đăng kí với tài khoản mới, đăng nhập với tài khoản có liên kết với tài khoản google: Tình trạng: Tốt Thơng tin đăng kí cập nhật lên server đăng nhập thành công 51 52 5.2.2 Giao diện hình chính: Được mơ tả khóa luận tốt nghiệp bạn Ngơ Quang Đại [10] 5.2.3 Cập nhật thông tin cá nhân Thông tin ban đầu khởi tạo chưa đầy đủ, người dùng thay đổi thơng tin Tình trạng: thơng tin cá nhân, mật người dùng cập nhật đầy đủ hiển thị sác sau người dùng sử dụng Được mơ tả khóa luận tốt nghiệp bạn Ngô Quang Đại [10] 5.2.4 Tạo chuyến Tạo chuyến với đầy đủ thông tin: Tình trạng: Map hoạt động tốt, đưa vị trí xác, tính tốn thơng số liên quan đầy đủ Các thông tin cập nhật lên server trả với thông tin Được mô tả khóa luận tốt nghiệp bạn Ngơ Quang Đại [10] Sau thơng tin gửi lên server, có kết trả cập nhật lên ứng dụng 5.2.5 Tham gia chuyến Tham gia vào chuyến có sẵn ứng dụng: Tình trạng: Ứng dụng hoạt động tốt trả kết qủa tham gia Không có lỗi người dùng thao tác nhiều lần ứng dụng Server ứng dụng cập nhật kết người sử dụng thao tác Được mô tả khóa luận tốt nghiệp bạn Ngơ Quang Đại [10] 5.2.6 Thành viên nhóm tìm kiếm thành viên Chức ứng dụng cho phép người dùng hiển thị vị trí thành viên nhóm: 53 54 5.3 Nhận xét đánh giá Từ kết thu từ thực nghiệm cho thấy ứng dụng chạy ổn định, khơng có sai sót kĩ thuật nhiều Ứng dụng chạy ổn định bước đầu cho thấy khả ứng dụng hỗ trợ cho người mạng xã hội Ứng dụng đảm bảo đầy đủ chức tính đặt ra: tạo nhóm hay tham gia vào chuyến đi, tìm kiếm thành viên nhóm, hiển thị vài tính nâng cao: 55 Kết luận định hướng phát triển I Kết luận tổng kết nội dung đề tài: Đề tài mang tên: “Mạng xã hội du lịch dựa vị trí, địa điểm” ứng dụng android với tên gọi khác: Location based social network for travelling (Ứng dụng WeGo) Nội dung đề tài xây dựng ứng dụng android hỗ trợ cho hay nhóm người u thích du lịch tham gia Tour du lịch giúp quản lí thành viên nhóm tham gia chuyến dài Hiện di động sử dụng hệ điều hành Android Việt Nam chưa nhiều phát triển, chiếm cảm tình từ người sử dụng Việc phát triển ứng dụng di động sử dụng hệ điều hành Android có tiềm Các chức ứng dụng xây dựng theo yêu cầu đề tài Ứng dụng giúp cho ta xác định vị trí đứng vị trí người bạn Vị trí cập nhật tay di động có thiết bị GPS theo không gian thời gian xác định Nhờ vào Google Map ta có đồ địa lí xác để hiển thị vị trí mà người dùng chọn Đối với thiết bị di động vị trí thay đổi người dùng di chuyển Có thể coi ứng dụng đồ cầm tay giúp khơng bị lạc đường II • • • • Các bước thực hiện: Phân tích yêu cầu đề Thiết kế hệ thống, ứng dụng Lập trình ứng dụng Mobile cụ thể hệ điều hành Android Thử nghiệm điện thoại thực người dùng thực III Kết đạt được: Hiện chúng tơi xây dựng gần hồn thiện ứng dụng chạy Mobile cụ thể hệ điều hành Android Có chức sau: • Đăng nhập, đăng kí tài khoản • Cập nhật thơng tin cá nhân • Cập nhật vị trí người dùng tham gia vào ứng dụng Vị trí người dùng cập nhật tay lưu vào cở sở liệu • Tham gia Tour, xem thơng tin Tour, tạo Tour 56 • Hiển thị danh sách thông tin thành viên Tour, hiển thị Tour họ tham gia thông tin • Hiển thị vị trí thành viên nhóm • Theo dõi map lộ trình Tour • Tạo Server Database Server để lưu giữ xử lý thông tin người dùng IV Định hướng phát triển: Ứng dụng mang tính cộng đồng, dành cho tất người Tham gia ứng dụng dễ dàng hiệu đem lại cao.Ứng dụng đồng Facebook, GooglePlus, giúp biến ứng dụng thành mạng xã hội người thích tham gia du lịch Tham gia vào Tour hay tự tạo Tour, hỗ trợ quản lí thành viên giúp cho chuyến an toàn hơn.Xác định vị trí bạn bè hay vị trí nhanh tiện lợi Rất nhiều thứ mở cho Đặc biệt mở rộng ứng dụng cho ngành ví dụ taxi, trạm xăng nhà hàng ăn nhanh,quầy rút tiền ATM,… Mọi người phượt thường xe máy đoạn đường dài vấn đề hết xăng đương nhiên xả ra, phát triển ứng dụng giúp người xác định lộ trình gần xăng thơng qua việc marker trạm xăng map Các lĩnh vực áp dụng ứng dụng mạng xã hội địa điểm vào có tiềm ngành khai thác hay ngành công an để hỗ trợ việc quản lí thành viên nhóm tránh lạc Hiện ứng dụng hoạt động tốt yêu cầu phải có GPRS 3G, hướng phát triển tương lai ứng dụng sử dụng offline thơng qua SQLite để phục vụ người sử dụng khơng có mạng mà cần GPS Hiện ứng dụng tương tự chức hạn hẹp Với hiệu trước mắt việc phát triển ứng dụng điều cần làm chắn có tương lai 57 Tài liệu tham khảo [1]: “Java giới thiệu”, [Online] Available https://docs.oracle.com/javase/tutorial/ [2]: “Android giới thiệu Android”, [Online] Available http://www.vietnamandroid.com/gioi-thieu [3]: “15 Ứng dụn android tốt ”, [Online] Available http://ictnews.vn/cntt/phan-mem/15-ung-dung-android-tot-nhat-tu-truoc-den-nay118055.ict [4]: “Mơ hình MVC java”, [Online] Available http://iviettech.vn/blog/4632-cai-dat-mo-hinh-mvcmodel-view-controller-trongjava.html [5]: “Mạng xã hội địa điểm Facebook”, [Khóa Luận tốt nghiệp CN Nguyễn Hồng Hải] [6]: Tài liệu online, [Online] Available http://expressmagazine.net/development/2634/thuc-hien-chuc-nang-login-vao-ungdung-bang-tai-khoan-facebook [7]: “Tìm Hiểu Về Google Map Api”, [Online] Available https://viblo.asia/nguyenhoa/posts/ZWApGxJ3R06y [8]: “Giới thiệu ngôn ngữ lập trình PHP hướng dẫn cài đặt”, [Online] Available http://hoclaptrinhweb.org/lap-trinh/hoc-php/227-bai-1-gioi-thieu-ve-ngon-ngu-laptrinh-php-va-huong-dan-cai-dat.html [9]: “Giới thiệu hệ quản trị sở liệu MySQL”, [Online] Available http://kungfuphp.com/php-co-ban/gioi-thieu-ve-he-quan-tri-co-so-du-lieu-mysql.html [10]: “Xây dựng mạng xã hội địa điểm cho du lịch (Location base social network for travelling)”, [Khóa Luận tốt nghiệp CN Ngơ Quang Đại] 58