MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI XÂY DỰNG ỨNG DỤNG ĐA NỀN TẢNG TAXI APP Sinh viên thực hiệ[.]
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐA NỀN TẢNG TAXI APP Sinh viên thực : LÊ ĐÌNH TRỌNG PHẠM ANH TÚ Giảng viên hướng dẫn : TS LÊ TÂN Lớp : 17IT3 Đà nẵng, tháng 05 năm 2021 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐA NỀN TẢNG TAXI APP Đà Nẵng, tháng 05 năm 2021 LỜI CẢM ƠN Trên thực tế khơng có thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian từ bắt đầu học tập giảng đường đại học đến nay, em nhận nhiều quan tâm, giúp đỡ Thầy Cơ, gia đình bạn bè Với lịng biết ơn sâu sắc nhất, em xin gửi đến Thầy Cô Trường Đại Học Công Nghệ Thông Tin Truyền Thông Việt Hàn với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho em Em xin chân thành cám ơn thầy TS Lê Tân tận tình hướng dẫn em trình làm đồ án, điều cần ý làm ứng dụng Trong thời gian làm đồ án em có nhiều kiến thức kinh nghiệm lập trình, hướng dẫn thầy hướng dẫn, chúng em thu nhiều kiến thức bổ ích, mà cịn tích lũy nhiều kinh nghiệm hữu ích cho cơng việc sau Mặc dù cố gắng hoàn thiện báo cáo đồ án với tất nỗ lực, nhiên, chưa có nhiều kinh nghiệm việc làm ứng dụng di động, thời gian có hạn, kiến thức hạn chế nên báo cáo chắn khơng thể tránh khỏi thiếu sót Chúng em mong nhận quan tâm, thông cảm đóng góp q báu thầy bạn để báo cáo ngày hồn thiện Sau cùng, em xin kính chúc thầy cô Trường Đại Học Công Nghệ Thông Tin Truyền Thông Việt - Hàn dồi sức khỏe để tiếp tục truyền đạt kiến thức cho hệ mai sau MỞ ĐẦU Hiện nay, phát triển công nghệ thông tin nước ta bước vào thời kỳ với việc triển khai rộng rãi ứng dụng tin học vào nhu cầu người dân Khồng cịn nghi ngờ vai trị công nghệ thông tin đời sống, khoa học kĩ thuật, kinh doanh, mặt xã hội, cá nhân Trong sống việc sử dụng ứng dụng điện thoại di động ngày trở nên phổ biến, từ ứng dụng trò chơi đến ứng dụng, phục vụ cho nhu cầu sống hàng ngày mua sắm, đọc báo, xem phim… Hiện việc lại phương tiện công cộng ngày trở nên phổ biến, đặc biệt taxi ứng dụng kết nối hành khách lái xe giúp việc lại trở nên dễ dàng thuận tiện cần thiết, giúp nhu cầu sống người nâng cao Được đồng ý nhà trường giáo viên hướng dẫn em thực đồ án chuyên ngành là: Xây dựng ứng dụng gọi xe taxi Ứng dụng giúp cho người dùng tìm xe, gọi xe, biết chi phí Là ứng dụng tính tiền quãng đường thông qua google maps nhiều tiện ích khác Bằng cố gắng nỗ lực thân đặc biệt giúp đỡ tận tình, chu đáo thầy TS Lê Tân em hoàn thành đồ án thời hạn Do thời gian làm đồ án có hạn trình độ cịn nhiều hạn chế nên khơng thể tránh khỏi thiếu sót Em mong nhận dược đóng góp thầy để đồ án hồn thiện Em xin chân thành cảm ơn! NHẬN XÉT (Của giảng viên hướng dẫn) MỤC LỤC Chương PHÁT BIỂU BÀI TOÁN 1.1 Giới thiệu đề tài xây dựng ứng dụng gọi xe 1.1.1 Quy trình nghiệp vụ 1.1.2 Những khó khăn, thuận lợi .1 1.1.3 Bài toán quản lý hệ thống gọi xe 1.2 Những công nghệ áp dụng Chương TỔNG QUAN 2.1 Giới thiệu đề tài: 2.2 Mục đích nghiên cứu: .5 2.3 Phương pháp nghiên cứu: Chương CƠ SỞ LÝ THUYẾT 3.1 Flutter 3.1.1 Giới thiệu Flutter: 3.1.2 Mơ hình cấu tạo nên project Flutter 3.1.3 Ưu điểm Flutter 3.1.4 Các thành phần quan trọng Flutter 3.2 Dart 11 3.2.1 Giới thiệu ngôn ngữ Dart .11 3.2.2 Đặc điểm ngôn ngữ Dart: 12 3.2.3 Những ưu điểm Dart: .12 3.2.4 Cài đặt Dart 12 Chương PHÂN TÍCH THIẾT KẾ HỆ THỐNG 13 4.1 Khảo sát phân tích toán 13 4.1.1 Khảo sát phân tích trạng 13 4.1.2 Phân tích toán 15 4.1.3 Đặc tả yêu cầu hệ thống 15 4.1.4 Biểu đồ 16 4.1.5 Mô tả chức .17 4.1.6 Phân tích u cầu (Mơ hình xử lý DFD) 18 Chương THIẾT KẾ ỨNG DỤNG .21 5.1 Welcome Page 21 5.2 Login Pages 22 5.3 Sign Up Pages 23 5.4 Lưu thông tin lên Firebase 23 5.5 Home Pages, Menu 24 5.6 Lộ trình 25 5.7 Tính cước đường 25 Chương KẾT LUẬN 26 6.1 Kết đạt đề tài 26 6.2 Hạn chế đề tài 26 6.3 Hướng phát triển đề tài 26 DANH MỤC HÌNH Hình Mơ hình cấu tạo nên project Flutter Hình Biểu đồ ngữ cảnh 16 Hình Biểu đồ phân rã chức 17 Hình Sơ đồ luồng mức đỉnh 18 Hình Quản lý khách hàng 19 Hình Quản lý tài xế 19 Hình Quản lý chuyến 20 Hình Quản lý toán 20 Hình Welcome Page .21 Hình 10 Login Page 22 Hình 11 Sign Up Page .23 Hình 12 Lưu liệu Firebase 23 Hình 13 Home Page Hình 14 Menu .24 Hình 15 Lộ trình .25 Hình 16 Phí cước 25 Chương PHÁT BIỂU BÀI TOÁN 1.1 Giới thiệu đề tài xây dựng ứng dụng gọi xe Trong sống việc sử dụng ứng dụng điện thoại di động ngày trở nên phổ biến, từ ứng dụng trò chơi đến ứng dụng phục vụ cho nhu cầu sống hàng ngày mua sắm, đọc báo, xem phim… em muốn giới thiệu ứng dụng phục vụ cho nhu cầu lại người Giúp nhu cầu sống người nâng cao Ứng dụng giúp cho người dùng tìm xe, gọi xe, biết chi phí Là ứng dụng tính tiền quãng đường đượcthông qua Google maps nhiều tiện ích khác Mặc dù cố gắng hạnchế mặt thời gian trình độ nên ứng dụng cịn nhiều sai sót chưa hồn chỉnh, mong thầy thơng cảm góp ý cho em 1.1.1 Quy trình nghiệp vụ Hệ thống gọi xe xe taxi theo kiểu truyền thống khách hàng có nhu cầu lại taxi Thì phải gọi điện đến số tổng đài hãng xe taxi mà khách hàng biết Khi khách hàng gọi đến tổng đài tổng đài viên tiếp nhận yêu cầu khách hàng tổng đài viên thông báo đến tất xe hãng thông tin có khách hàng địa khách hàng Khi đó, lái xe chấp nhận xácnhận lại với tổng đài viên, tổng đài viên chấp nhận lái xe đến địa cung cấp để đón khách Lái xe đến đón khách đến vị trí mà khách yêu cầu Số tiền tính đồng hồ xe theo số km thực tế nhân với giá quãng đường cộng với giá mở cửa 1.1.2 Những khó khăn, thuận lợi Những khó khăn: o Quy trình gọi xe theo hệ thống cũ gây khó khăn cho việc gọi xe lại Khi khách hàng gọi điện lên tổng đài để đặt xe làm cho khách hàng thêm tiền điện thoại, đồng thời tốn thời gian cho khách hàng lái xe chọn phải thông qua tổng đài để đặt xe Khách hàng khơng có nhiều loại xe hạng xe để chọn Khách hàng so sánh giá hạng xe với để chọn xe có giá phù hợp với nhu cầu Khách hàng khơng thể biết số tiền mà phải trả cho quãng đường mà thời gian số km Hành khách thấy có lái xe đến chỗ khơng Lái xe khơng thể thấy thơng tin hành khách khơng biết vị trí điểm đón điểm đến khách hàng thông tin liên hệ với hành khách, mà phải thông qua tổng đài Lái xe, hành khách thấy cung đường mà Quy trình gọi xe theo hệ thống gọi xe ứng dụng xây dựng tảngandroid có khó khăn như: Khó khăn cho việc tính tốn thời gian, qng đường, vị trí hành khách lái xe thông qua Google Những thuận lợi: o Đáp ứng nhu cầu khách hàng cách nhanh o Tiếp kiệm chi phí, thời gian cho khách hàng o Giúp lái xe thuận tiện đón khách, có nhiều hội có khách hàng o Có nhiều ưu đãi, khuyến cho khách hàng lái xe 1.1.3 Bài toán quản lý hệ thống gọi xe Hệ thống gọi xe tảng android khách hàng có nhu cầu lại Khách hàng cần mở ứng dụng lên chọn điểm đón, điểm đến nhấn nút yêu cầu xe, có xe để Đồng thời khách hàng cịn xem trước giá cước theo ước tính hạng xe Khách hàng chọn với nhiều hạng xe khác Mỗi loại lại gồm nhiều loại xe để chọn Khách hàng xem trực tiếp thơng tin lái xe, thơng tin cước hạng xe mà chọn cịn thấy xe gần để chọn trực tiếp hạng xe lái xe mà thích, xe bận hệ thống tự động gọi xe khác Đồng thời khách hàng cịn xem cước ước tính, thời gian ước tính quãng đường ngắn theo google map Lái xe thấy thơng tin khách hàng khách hàng yêu cầu xe lái xe đến điểm đón mà khách hàng chọn để đón khách Sau đón khách đến địa mà khách hàng chọn lái xe bấm vào nút hoàn tất chuyến để kết thúc chuyến Khi hình tốn hiển thị lên cho lái xe Màn hình tốn bao gồm thơng tin số tiền tính theo số km đo google map, phí khác có phí cầu đường Sau lái xe yêu cầu toán biên lai toán hiển thị lên cho khách hàng, khách hàng xem thơng tin tốn tiền mặt cho lái xe Bài toán quản lý hệ thống gọi xe phải khắc phục khó khăn q trình gọi xe theo hệ thống cũ Như hệ thống phải giải tốn để khơng gây tốn thời gia cho khách hàng lái xe Giảm thiểu chi phí cho khách hàng, cho phép khách hàng có nhiều lựa chọn việc lại có nhiều hạng xe loại xe Cung cấp thông tin lái xe hành khách yêu cầu xe để đảm bảo an toàn, an tâm hành khách Cung cấp thông tin vê bảng giá hạng xe, cước ước tính quãng đường mà hành khách chọn hạng xe Làm để hiển thị vị trí hành khách, lái xe,thời gian, số km cách trực quan 1.2 Những công nghệ áp dụng Để lập trình ứng dụng tảng android ta cần sử dụng công nghệ phần mềm sau: Dart: ngơn ngữ lập trình hướng đối tượng Google phát triển(OOP) Flutter: UI framework Google tạo giao diện chất lượng cao Android studio: mơi trường phát triển tích hợp (IDE) thức dành chophát triển tảng Android cung cấp miễn phí google Firebase Chương TỔNG QUAN 2.1 Giới thiệu đề tài: Tại chọn Flutter mà ngôn ngữ khác? Nếu bạn tìm kiếm phương pháp thay để phát triển ứng dụngAndroid, bạn nên cân nhắc thử Flutter Google, framework dựatrên ngôn ngữ lập trình Dart Các ứng dụng xây dựng với Flutter phân biệt vớinhững ứng dụng xây dựng cách sử dụng Android SDK, vềgiao diện hiệu suất Hơn nữa, với tinh chỉnh nhỏ, chúng có thểchạy thiết bị iOS Phát triển ứng dụng thống nhất: Flutter có công cụ thư viện đểgiúp bạn dễ dàng đưa ý tưởng vào sống iOS vàAndroid Nếu bạn chưa có kinh nghiệm phát triển thiết bị di động, thìFlutter cách dễ dàng nhanh chóng để xây dựng ứng dụng diđộng tuyệt đẹp Nếu bạn nhà phát triển iOS Android có kinhnghiệm, bạn sử dụng Flutter cho View bạn tận dụngnhiều code Java / Kotlin / ObjC / Swift có bạn Framework đại reactive: Dễ dàng tạo giao diện người dùng củabạn với framework đại, reactive Flutter tập hợp platform,layout widget phong phú Giải thách thức giao diện ngườidùng khó khăn bạn với API mạnh mẽ linh hoạt cho 2D,animation, gesture, hiệu ứng UI đẹp biểu cảm: Thỏa mãn người dùng bạn với widget built-in đẹp mắt Flutter theo Material Design Cupertino (iOS-flavor),các API chuyển động phong phú, scroll tự nhiên mượt mà tự nhận thứcđược tảng Chạy 60 fps, giao diện Người dùng tạo với Flutter thực thi tốt nhiều so với nhữngứng dụng tạo với framework phát triển đa tảng khácchẳng hạn React Native Ionic Một số lí khiến bạn hứngthú với Flutter: o Flutter sử dụng Dart, ngơn ngữ nhanh, hướng đối tượng vớinhiều tính hữu ích mixin, generic, isolate, static type o Flutter có thành phần UI riêng nó, với chế đểkết xuất chúng tảng Android iOS Hầu hết thànhphần giao diện người dùng, sẵn dùng, phù hợp với nguyêntắc Material Design o Các ứng dụng Flutter phát triển cách4 sử dụngIntelliJ IDEA, IDE giống với Android Studio Hiện có nhiều ngơn ngữ hổ trợ đa tảng tên lớn phải nhắc đến React Native Các công ty lớn UberEats, Discord Facebook chuyển sang React Native – phần tất yếu dịch chuyển công nghệ Nhưng Google không chịu thua Họ nhận thấy độ phủ sóng React Native Sau năm nghe ngóng, Google cho mắt phiên alpha Flutter Hỗ trợ hot reload: Thông thường với lập trình Android Android Studio Mỗi lần chúng tathay đổi dịng code phải build chạy lại ứng dụng.Hot reload giúp build lại ứng dụng reload lạimàn hình thay đổi code mà Điều tiết kiệm nhiều thời giancho developer Code structure: Ngược với React Native, Flutter khơng tách biệt data, style, templates.Mình biết bạn cảm thấy kì lạ bạn quen với React native.Tuy nhiên, cách tiếp cận thuận tiện nhiều người chấp thuận Flutter không cần thêm ngôn ngữ tạo giao diện JSX XMLhay công cụ đặc biệt để tạo layout.Khi sử dụng Flutter, bạn tiết kiệm thời gian không cần phảichuyển từ chế độ thiết kế sang code ngược lại Flutter cho phép bạn làmmọi thứ hình Ngồi ra, tất cơng cụ cần thiết đềucó thể truy cập từ vị trí Cài đặt mơi trường phát triển: Flutter đơn giản hóa q trình cài đặt Framework cung cấpmột cơng cụ hữu ích để kiểm tra lỗi hệ thống gọi ” Flutter doctor” Hiệu suất sử dụng: Flutter kiến trúc cho phép xây dựng ứng dụng native, cóhiệu suất nhanh Bởi Flutter khơng cần cầu nối, hoạt độngnhanh nhiều Do đó, Flutter chạy animation với 60 khung hình/giây 2.2 Mục đích nghiên cứu: Cũng cố nắm kiến thức lập trình di động Tạo phần mềm ứng dụng vào thực tế Phương pháp để xây dựng ứng dụng Biết cách để tiếp cận ngôn ngữ Nắm kiến thức Android Studio 2.3 Phương pháp nghiên cứu: Thu thập tham khảo tài liệu trang web Tham khảo ý kiến giảng viên hướng dẫn để hoàn thiện phần mềm Xây dựng phần mềm với công cụ hỗ trợ Flutter ngôn ngữ Dart Chương CƠ SỞ LÝ THUYẾT 3.1 Flutter 3.1.1 Giới thiệu Flutter: Flutter Framework viết ngôn ngữ Dart Flutter sinh Cross-platform framework khác với Cross-platform tại, Flutter viết mã build đoạn mã thực thi tương ứng cácthiết bị khác thay build thành đoạn mã tối ưu chạy môi trường trung gian Flutter viết chia làm hai tầng Tầng sử dụng ngôn ngữ cung cấp đoạn mã xây dựng lên ứng dụng Flutter Các đoạn mã cung cấp phương tiện để thay đổi chỉnh sửa chúng Từ giúp ứng dụng lập trình viên tùy chỉnh theo mong muốn Tầng Application giúp lập trình viên thay đổi mã nguồn ứng dụng thời điểm compile time Tầng thứ hai Flutter nằm sâu bên viết C++ Tầng Shell chứa công tụ trợ giúp ứng dụng Flutter trình chạy Nổibật cần lưu ý tầng máy ảo Dart VM Khái niệm máy ảo khái niệm ứng dụng chạy song song với mã nguồn phần ứng dụng Flutter SDK dành cho thiết bị di động Google để tạo giao diện native chất lượng cao iOS Android thời gian ngắn Flutter làm việc với source code có sẵn, sử dụng nhà phát triển tổ chức khắp giới, đồng thời open-source miễn Tải FULL (33 trang): https://bit.ly/3utTerL phí Dự phịng: fb.com/TaiHo123doc.net Flutter có cơng cụ thư viện để giúp bạn dễ dàng đưa ý tưởng vào sống iOS Android Nếu bạn chưa có kinh nghiệm phát triển thiết bị di động, Flutter cách dễ dàng nhanh chóng để xây dựng ứng dụng di động tuyệt đẹp Nếu bạn nhà phát triển iOS Android có kinh nghiệm, bạn sử dụng Flutter cho View bạn tận dụng nhiều code Java / Kotlin / ObjC / Swift có bạn Flutter sử dụng Dart, ngôn ngữ nhanh, hướng đối tượng với nhiều tính hữu ích mixin, generic, isolate, static type Flutter có thành phần UI riêng nó, với chế để kết xuất chúng tảng Android iOS Hầu hết thành phần giao diện người dùng sẵn dùng, phù hợp với nguyên tắc Material Design 3.1.2 Mơ hình cấu tạo nên project Flutter Hình Mơ hình cấu tạo nên project Flutter Phần lớn là: My App Bên Material App có thuộc tính: title, theme, home Trong đó, tên title có ý nghĩa tương đương với Android@string/app_name để đặt AndroidManifest với thuộc tínhapplication:android: name, hay với iOS Product Name, hay chí Identity#Display name Tên theme có vai trị tương tự phần theme values / styles Android Cuối home Vai trò tên tương ứng với việc bạn định nghĩa Activity Scaffold: đóng vai trị phần để bố trí thành phần khác theo phong Material Design hay Material Theming Nếu bạn quen với việc viết ứng dụng Android theo phong cách mặc định Google cung cấp thơng qua theme Theme.AppCompat hay android:Theme.Material bạn khơng cịn lạ với Scaffold Nó 9762460 ... CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐA NỀN TẢNG TAXI APP Đà Nẵng, tháng 05 năm 20 21 LỜI CẢM ƠN Trên thực tế khơng có thành công... nâng cao Được đồng ý nhà trường giáo viên hướng dẫn em thực đồ án chuyên ngành là: Xây dựng ứng dụng gọi xe taxi Ứng dụng giúp cho người dùng tìm xe, gọi xe, biết chi phí Là ứng dụng tính tiền... 24 5.6 Lộ trình 25 5.7 Tính cước đường 25 Chương KẾT LUẬN 26 6.1 Kết đạt đề tài 26 6 .2 Hạn chế đề tài 26 6.3 Hướng phát triển đề tài