MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Công việc kinh doanh buôn bán đã xuất hiện từ rất lâu, trải qua mỗi giai đoạn lịch sử nó mang một hình thức đặc thù riêng. Trước kia, khi các công cụ hỗ trợ công việc mua bán chưa phát triển mạnh, thì người kinh doanh mua bán chỉ diễn ra dưới hình thức mua bán trực tiếp. Từ khi khoa học công nghệ phát triển, nó đã tạo ra phát triển các loại hình thức mua bán mới, điển hình là mua bán trực tuyến.
Hình thức mua bán trực tuyến hỗ trợ đắc lực cho người kinh doanh tiếp xúc với được nhiều khách hàng, còn khách hàng thì công việc mua bán được diễn ra nhanh chóng, thuận lợi, tiết kiệm được thời gian… - Hiện nay, Thương Mại Điện Tử (TMĐT) đang được nhiều quốc gia quan tâm, coi là một trong những động lực phát triển chủ yếu của nền kinh tế. TMĐT đem lại những lợi ích tiềm tàng, giúp doanh nghiệp thu được thông tin phong phú về thị trường và đối tác, giảm chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ bạn hàng. - Việc mua hàng qua mạng chỉ với thủ tục đăng ký mua sắm đơn giản nhưng đem lại nhiều lợi ích: tiết kiệm và chủ động về thời gian, tránh khỏi những phiền phức khó chịu. Vậy nên việc mua bán hàng qua mạng đang rất được mọi người quan tâm.
Trên cơ sở các kiến thức được học trong nhà trường và quá trình tìm hiểu các ứng dụng trong thực tế, em đã quyết định chọn đề tài “Xây dựng ứng dụng đặt hàng Online”. - Phục vụ tốt hơn nhu cầu của khách hàng và quản lý của nhà hàng trong hoạt động kinh doanh. - Khách hàng chỉ cần các thao tác đơn giản trên điện thoại di động là có thể đặt hàng được ngay. 1 do an Mục đích của đề tài 2.
MỤC ĐÍCH CỦA ĐỀ TÀI Ứng dụng đặt hàng Online chạy trên nền Android được thực hiện dựa trên hai mục đích chính sau: - Thứ nhất là nghiên cứu các công nghệ lập trình như: lập trình ứng dụng với Android. - Thứ hai là phát triển ứng dụng có tính thực tiễn cao, có khả năng triển khai ứng dụng vào thực tế, giúp những người có nhu cầu mua bán thức ăn nhanh có thể thao tác dễ dàng và tiện lợi. Chúng em hy vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết hợp với sự tìm hiểu công nghệ của cá nhân, khóa luận tốt nghiệp của em sẽ đạt được mục đích mong đợi. 2 do an Đối tượng và phạm vi nghiên cứu 3.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3. Đối tượng nghiên cứu - Lập trình Android bằng Java. - Cơ sở dữ liệu Firebase Real Time Database, các API về bản đồ: Google Map. - Lĩnh vực phát triển: Ứng dụng đặt hàng Online.
Phạm vi nghiên cứu - Tìm hiểu về công nghệ được sử dụng trong đề tài: Lập trình Android bằng Java, Firebase. - Tìm hiểu các nghiệp vụ ứng dụng đặt hàng. - Tìm hiểu các nghiệp vụ liên quan để phát triển 1 ứng dụng hoàn chỉnh, có tính khả thi cao. 3 do an Kết quả dự kiến đạt được 4.
KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC - Hiểu được cách lập trình Android bằng Java và sử dụng cơ sở dữ liệu Firebase. - Hiểu được các thành phần cơ bản của Android. - Biết cách sử dụng các tính năng cơ bản của Firebase. - Hiểu được nghiệp vụ cơ bản của ứng dụng đặt hàng.
- Hiểu được cách làm việc nhóm: + Phân chia công việc. + Phân bố thời gian. + Thảo luận và đưa ra giải pháp để hoàn thành ứng dụng. - Xây dựng ứng dụng với các tính năng cơ bản nhất giúp: + Khách hàng: Tìm món ăn, xem thông tin món ăn, thêm món ăn vào giỏ hàng, xóa món ăn khỏi giỏi hàng, đặt hàng, bình luận về món ăn, thích món ăn, bỏ thích món ăn, theo dõi quá trình vận chuyển đơn hàng.
+ Quản lí: Quản lý người giao hàng, quản lý đơn hàng, quản lý món ăn. + Người giao hàng: Quản lí đơn hàng cần giao, xác định đường đi dễ dàng. 4 do an Chương 1: Cơ sở lý thuyết NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Khái niệm về Java và Lập trình Android bằng Java Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class).
Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy [1]. Java có những ưu điểm sau đây: - Hướng đối tượng rộng - Java có nền tảng riêng biệt - Thiết kế mẫu khá đơn giản - Tính bảo mật cao - Nhanh và mạnh [1] Android là hệ điều hành mã nguồn mở, dựa trên Linux Kernel, dành cho các thiết bị di động nói chung (điện thoại, máy tính bảng, đồng hồ thông minh, máy nghe nhạc…). Android không chỉ giới hạn trong phạm vi một hệ điều hành cho điện thoại! Nó có thể được nhà sản xuất cài đặt lên đồng hồ, máy nghe nhạc, thiết bị định vị GPS, thậm chí là ô tô (các thiết bị Android Auto). Hiện Android là một thương hiệu của Google.
Có khả năng tùy biến rất cao và có thể chạy trên nhiều thiết bị, nhiều kiến trúc vi xử lý (ARM / x86) [2]. 5 do an Chương 1: Cơ sở lý thuyết Kiến trúc hệ thống Android: [2] Hình 1. Kiến trúc hệ thống Android Tầng Applications: Là tầng chứa các ứng dụng Danh bạ, Gọi điện, Trình duyệt, Nghe nhạc… các ứng dụng này thường mua máy về chúng ta đã có sẵn rồi. Tầng Framework: Là tầng chứa các API để làm việc với hệ điều hành như lấy thông tin danh bạ, quản lý các Activity (Activity là gì thì giờ chúng ta chưa cần quan tâm, các bài sau sẽ giải thích kĩ), quản lý địa điểm, quản lý các View (cũng chưa cần quan tâm).
Tầng Libraries: Chứa các thư viện, API gần như là cốt lõi của Android, bao gồm bộ quản lý bề mặt cảm ứng (Surface Manager), OpenGL (phục vụ cho việc dựng đồ họa phức tạp)… Tầng Android Runtime: Chứa các thư viện lõi của Android và máy ảo Dalvik Virtual Machine (từ Android 4 trở lên chúng ta có thêm máy ảo ART). 6 do an Chương 1: Cơ sở lý thuyết Tầng Kernel: Là nhân lõi của hệ điều hành, chứa các tập lệnh, driver giao tiếp giữa phần cứng và phần mềm của Android. Android cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạn chế bảo mật được thực thi bởi khuôn khổ). Cơ chế này cho phép các thành phần tương tự sẽ được thay thế bởi người sử dụng. Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm: [2] - Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout… - Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó.
- Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files. - Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom alerts trong status bar. - Một “Activity Manager” được dùng để quản lý chu trình sống của ứng dụng và điều hướng các activity [2]. 7 do an Chương 1: Cơ sở lý thuyết 1.
Khái niệm về cơ sở dữ liệu Firebase 1. Giới thiệu về cơ sở dữ liệu Firebase Firebase là một nền tảng ứng dụng di động và web với các công cụ và hạ tầng được thiết kế để giúp các lập trình viên xây dựng các ứng dụng chất lượng cao. Là một cơ sở dữ liệu NoSQL được lưu và đồng bộ dữ liệu trên mây. Dữ liệu đượclưu trữ và đồng bộ hóa theo thời gian thực với mỗi client được kêt nối và vẫn khả dụng khi ứng dụng offline.
Khi bạn xây dựng ứng dụng đa nền tẩng với iOS, Android, và javascript SDK, tất cả các client của bạn chia sẽ một thể hiện Realtime Database và tự động tiếp nhận các thay đổi với dữ liệu mới nhất [3]. Các tính năng cơ bản của Firebase 1. Realtime Database – Cơ sở dữ liệu thời gian thực Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database tới tất cả các client theo thời gian thực. Cụ thể hơn là có thể xây dựng được client đa nền tảng (cross-platform client) và tất cả các client này sẽ cùng sử dụng chung một database đến từ Firebase và có thể tự động cập nhật mỗi khi dữ liệu trong database được thêm mới hoặc sửa đổi [4].
Tự động tính toán quy mô ứng dụng Khi ứng dụng muốn phát triển không cần lo lắng về việc nâng cấp máy chủ. Firebase sẽ xử lý tự động. Các máy chủ của Firebase quản lý hàng triệu kết nối đồng thời và hàng tỉ lượt truy vấn mỗi tháng [4]. Các tính năng bảo mật lớp đầu Tất cả dữ liệu được truyền qua một kết nối an toàn SSL với một chứng nhận 2048-bit.
Cơ sở dữ liệu truy vấn và việc xác nhận được điều khiển tại một cấp độ chi tiết sử dụng theo một số các quy tắc mềm dẻo security rules language. Tất cả các logic bảo mật dữ liệu của bạn được tập trung ở một chỗ để dễ dàng cho việc cập nhật và kiểm thử [4]. Làm việc offline Ứng dụng Firebase của bạn sẽ duy trì tương tác bất chấp một số các vấn đề về internet xảy ra. Trước khi bất kỳ dữ liệu được ghi đến server thì tất cả dữ liệu lập tức sẽ được viết vào một cơ sở dữ liệu Firebase ở local.