1. Trang chủ
  2. » Luận Văn - Báo Cáo

BTL Xây dựng ứng dụng mua bán trao đổi đồ cũ trên Android

62 468 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 3,75 MB
File đính kèm source code.zip (6 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình ứng dụng mua bán trao đổi đồ cũ trên Android sử dụng Firebase, Có source code cả phía server và localỨng dụng được xây dựng khá hoàn chỉnh cùng phân tích thiết kế đầy đủLiên hệ HuanTD1 sđt :0945011196

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: KỸ THUẬT PHẦN MỀM

ĐỀ TÀI

XÂY DỰNG ỨNG DỤNG MUA BÁN TRAO ĐỔI ĐỒ CŨ TRÊN ANDROID

Giáo Viên Hướng Dẫn : Ths Nguyễn Thái Cường

Sinh Viên Thực Hiện : Tạ Đăng Huân

Hà Nội - 2018

1

Trang 2

NHẬN XÉT, CHO ĐIỂM, ĐÁNH GIÁ

(Của giảng viên hướng dẫn)

Điểm (Bằng chữ )

Đồng ý/Không đồng ý cho SV bảo vệ trước hội đồng chấm đồ án tốt nghiệp.

Hà Nội, Ngày Tháng Năm 2018

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

Trang 3

Điểm (Bằng chữ )

Đồng ý/Không đồng ý cho SV bảo vệ trước hội đồng chấm đồ án tốt nghiệp.

Hà Nội, Ngày Tháng Năm 2018

Lời nói đầu

Trong thời buổi công nghệ phát triển, mua sắm trực tuyến đã trở thành một nhu cầu không thể thiếu của mọi người Tuy vậy, không phải lúc nào mọi người cũng có thể sử dụng máy tính để vào các trang web mua sắm Ngược lại bằng việc sử dụng điện thoại di động, muốn truy cập website phải thực hiện nhiều thao tác từ tìm kiếm trang web, chờ truy cập, chưa kể website đó nếu chưa làm chuẩn di động sẽ rất khó theo dõi Thay vì tìm kiếm và mua sản phẩm trên website, rất nhiều người đã sử dụng app trên điện thoại di động để mua hàng Từ đó em đã hướng tới đến đề tài

“Xây dựng ứng dụng mua bán trao đổi đồ cũ trên hệ điều hành Android” Ứng

dụng cho phép người sử dụng có thể đăng bán những sản phẩm mình có cũng như tìm kiếm, mua sắm những sản phẩm mình cần một cách nhanh chóng và tiện lợi nhất Là một kênh rao vặt trung gian, kết nối người bán và người mua bằng những giao dịch đơn giản, tiện lợi, nhanh chóng, an toàn Người dùng dễ dàng mua bán,

Trang 4

mọi mặt hàng, dù đó là đồ cũ hay đồ mới ở các lĩnh vực như xe cộ, đồ dùng cánhân, đồ điện tử, ngay trên điện thoại của mình chỉ với kết nối Internet.

Em xin trân trọng cảm ơn ThS Nguyễn Thái Cường - Khoa Công Nghệ ThôngTin trường Đại học Công Nghiệp Hà Nội đã hỗ trợ trong suốt quá trình thực hiện đềtài này

Mặc dù đã rất cố gắng nhưng trong quá trình thực hiện sẽ không tránh khỏinhững sai sót, rất mong được sự phản hồi và góp ý của thầy cô và các bạn đọc Emxin chân thành cảm ơn!

Trang 5

Mục Lục

Mục Lục 2

Danh sách các hình ảnh 6

Danh sách các bảng 8

CHƯƠNG I TỔNG QUAN 9

I) Giới thiệu đề tài 9

II) Phương pháp triển khai 9

CHƯƠNG II CƠ SỞ LÝ THUYẾT 11

I) Tổng quan về Android 11

1 Giới thiệu 11

2 Kiến trúc của hệ điều hành Android 11

2.1 Tầng Linux Kernel 12

2.2 Libraries 12

2.3 Android Runtime 13

2.4 Application Framework 13

2.5 Tầng Application 13

3 Công cụ Android Studio 13

4 Mô hình lập trình MVC 14

II) Tổng quan về Firebase 16

1 Giới thiệu 16

2 Kiến trúc của Firebase 16

3 Lợi ích khi sử dụng Google Firebase 17

4 Các tính năng cơ bản của Firebase 19

5 Realtime Database trong FireBase 21

Trang 6

6 Xác thực người dùng FireBase Authentication 24

CHƯƠNG III PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 25

I) Các chức năng của ứng dụng 25

1 Quản lý tài khoản 25

2 Tìm kiếm sản phẩm 25

3 Xem sản phẩm 25

4 Trao đổi sản phẩm 25

5 Đăng bán sản phẩm 25

II) Biểu đồ Usecase 26

1.1 Biểu đồ Usecase tổng quát 26

2 Đặc tả các Usecase 27

2.1 Đặc tả Usecase “Đăng nhập” 27

2.2 Đặc tả Usecase “Xem thông tin tài khoản” 28

2.3 Đặc tả Usecase “Sửa thông tin tài khoản” 29

2.4 Đặc tả Usecase “Đăng xuất” 30

2.5 Đặc tả Usecase “Đăng bán sản phẩm” 31

2.6 Đặc tả Usecase “Tìm kiếm theo tên” 32

2.7 Đặc tả Usecase “Tìm kiếm theo khu vực” 33

2.8 Đặc tả Usecase “Tìm kiếm theo loại sản phẩm” 34

2.9 Đặc tả Usecase “Xem sản phẩm” 35

2.10 Đặc tả Usecase “Liên lạc người bán” 36

2.11 Đặc tả Usecase “Quan tâm sản phẩm” 37

2.12 Đặc tả Usecase “Sửa thông tin sản phẩm” 38

2.13 Đặc tả Usecase “Tra cứu sản phẩm đang đăng bán” 39

2.14 Đặc tả Usecase “Tra cứu sản phẩm đang đăng quan tâm” 40

Trang 7

2.15 Đặc tả Usecase “Trao đổi sản phẩm” 41

III) Biểu đồ hoạt động 42

IV) Biểu đồ thực thể quan hệ 45

V) Biểu đồ lớp 45

1 Danh sách các lớp 45

1.1 Lớp “User” (Người dùng) 45

1.2 Lớp “SanPham” (Sản phẩm) 46

1.3 Lớp “DanhMuc” (Danh mục sản phẩm) 46

1.4 Lớp “Anh” (Ảnh) 46

1.5 Lớp “KhuVuc” (Khu vực) 46

1.6 Lớp “Tinh” (Tỉnh) 47

VI) Thiết kế giao diện 48

1 Giao diện màn hình Đăng nhập 48

2 Giao diện màn hình nhập mã OTP 48

3 Giao diện màn hình chính 49

4 Giao diện màn hình thông tin người dùng 49

5 Giao diện menu 50

6 Giao diện màn hình thông tin sản phẩm 50

7 Giao diện chọn loại sản phẩm 51

8 Giao diện chọn khu vực 51

9 Giao diện đăng bài 52

10 Giao diện màn thêm hình ảnh 52

11 Giao diện màn hình nhập giá tiền 53

12 Giao diện màn hình nhập tiêu đề cho sản phẩm 53

13 Giao diện màn hình nhập thông tin chi tiết sản phẩm 54

Trang 8

14 Giao diện màn hình quản lý sản phẩm đã đăng và yêu thích 54

15 Giao diện màn hình tìm kiếm sản phẩm 55

KẾT LUẬN 56

I) Kết quả đạt được 56

II) Hạn chế 56

III) Hướng phát triển 57

Tài liệu tham khảo 58

Trang 9

Danh sách các hình ảnh

Hình 1 Kiến trúc hệ điều hành Android 11

Hình 2 Cấu trúc lớp MVC (Model-View-Controller) 14

Hình 3 Luồng xử lý trong mô hình MVC 15

Hình 4 Biểu đồ kiến trúc Firebase 16

Hình 5 Các tính năng cơ bản của Firebase 19

Hình 6 Biểu đồ Use case tổng quát 26

Hình 7 Biểu đồ hoạt động đăng ký tài khoản 42

Hình 8 Biểu đồ hoạt động đăng nhập 42

Hình 9 Biểu đồ hoạt động đăng bán sản phẩm 43

Hình 10 Biểu đồ hoạt động tìm kiếm sản phẩm 43

Hình 11 Biểu đồ hoạt động xem thông tin sản phẩm 44

Hình 12 Biểu đồ hoạt động xem thông tin tài khoản 44

Hình 13 Mô hình thực thể quan hệ hệ thống mua bán trao đổi đồ cũ 45

Hình 14 Giao diện màn hình đăng nhập 48

Hình 15 Giao diện màn hình đăng ký 48

Hình 16 Giao diện màn hình chính 49

Hình 17 Giao diện màn hình thông tin người dùng 49

Hình 18 Giao diện menu khi đã đăng nhập 50

Hình 19 Giao diện màn hình thông tin sản phẩm 50

Hình 20 Giao diện chọn loại sản phẩm 51

Hình 21 Giao diện chọn khu vực 51

Hình 22 Giao diện đăng bài 52

Hình 23 Giao diện thêm hình ảnh cho bài đăng 52

Hình 24 Giao diện màn hình nhập giá tiền 53

Trang 10

Hình 25 Giao diện màn hình nhập tiêu đề cho sản phẩm 53

Hình 26 Giao diện màn hình nhập thông tin chi tiết sản phẩm 54

Hình 27 Giao diện màn hình quản lý sản phẩm đã đăng và yêu thích 54

Hình 28 Giao diện màn hình tìm kiếm sản phẩm 55

Trang 11

Danh sách các bảng

Bảng 1 Đặc tả Use case đăng nhập 27

Bảng 2 Đặc tả Use case xem thông tin tài khoản 28

Bảng 3 Đặc tả Use case sửa thông tin tài khoản 29

Bảng 4 Đặc tả Use case đăng xuất 30

Bảng 5 Đặc tả Use case đăng bán sản phẩm 31

Bảng 6 Đặc tả Use case tìm kiếm theo tên 32

Bảng 7 Đặc tả Use case tìm kiếm theo địa điểm 33

Bảng 8 Đặc tả Use case tìm kiếm theo loại sản phẩm 34

Bảng 9 Đặc tả Use case xem sản phẩm 35

Bảng 10 Đặc tả Use case liên lạc với người bán 36

Bảng 11 Đặc tả Use case quan tâm sản phẩm 37

Bảng 12 Đặc tả Use case sửa thông tin sản phẩm 38

Bảng 13 Đặc tả Use case tra cứu sản phẩm đã đăng bán 39

Bảng 14 Đặc tả Use case tra cứu sản phẩm đã quan tâm 40

Bảng 15 Đặc tả Use case trao đổi sản phẩm 41

Bảng 16 Danh sách các thuộc tính Lớp Người dùng 45

Bảng 17 Danh sách các phương thức Lớp Người dùng 45

Bảng 18 Danh sách các thuộc tính lớp Sản Phẩm 46

Bảng 19 Danh sách các phương thức Lớp Sản Phẩm 46

Bảng 20 Danh sách các thuộc tính lớp Danh mục 46

Bảng 21 Danh sách các thuộc tính lớp Ảnh 46

Bảng 22 Danh sách các thuộc tính lớp Khu Vực 47

Bảng 23 Danh sách các thuộc tính lớp Tỉnh 47

Trang 12

CHƯƠNG I TỔNG QUAN I) Giới thiệu đề tài

o Tên đề tài: Xây dựng ứng dụng mua bán trao đổi đồ cũ trên Android.

o Tóm tắt

Hiện nay, thương mại điện tử đang được nhiều quốc gia quan tâm, coi là một trongnhững động lực phát triển chủ yếu của nền kinh tế cũng như việc mua sắm trực tuyến đãtrở thành một nhu cầu không thể thiếu của mọi người Việc mua bán hàng qua mạngđem lại rất nhiều lợi ích: tiết kiệm và chủ động về thời gian, vượt qua giới hạn địa lý, dễdàng kết nối giữa người mua và người bán, tăng tính cạnh tranh, dễ dàng so sánh giá cả.Cùng với đó, điện thoại di động thông minh ngày càng phổ biến, mọi người hoàn toàn

có thể thực hiện mua bán trực tuyến ngay trên thiết bị của mình Tuy vậy, bằng việc sửdụng điện thoại di động, muốn truy cập các website mua bán trực tuyến phải thực hiệnnhiều thao tác từ tìm kiếm trang web, chờ truy cập, chưa kể website đó nếu chưa chuẩn

di động sẽ rất khó theo dõi Từ đó em đã hướng tới đến đề tài “Xây dựng ứng dụng muabán trao đổi đồ cũ trên hệ điều hành Android” Ứng dụng là một kênh rao vặt trung gian,kết nối người bán và người mua bằng những giao dịch đơn giản, tiện lợi, nhanh chóng,

an toàn

o Mục đích

 Nghiên cứu, tìm hiểu quy trình phát triển ứng dụng trên nền tảng hệ điều hành

di động Android

người dùng đăng bán các sản phẩm của mình cũng như tìm kiếm những sảnphầm quan tâm

ứng dụng tương tác thời gian thực

II) Phương pháp triển khai

Phương pháp triển khai ứng dụng được thực hiện tuần tự theo các bước sau:

 Nghiên cứu cơ sở lý thuyết về phát triển một ứng dụng Android

 Nghiên cứu cơ sở lý thuyết về Firebase, cách triển khai, áp dụng API trên vàoxây dựng ứng dụng

Trang 13

 Khảo sát, phân tích, thiết kế hệ thống ứng dụng mua bán trực tuyến đầy đủcác nghiệp vụ cơ bản của một ứng dụng mua bán trực tuyến.

 Tiến hành xây dựng ứng dụng và viết các tài liệu liên quan

 Báo cáo đề tài

Trang 14

CHƯƠNG II CƠ SỞ LÝ THUYẾT I) Tổng quan về Android

1 Giới thiệu

Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị

di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Trước đây,Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua lại vàonăm 2005) Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008 Từ đó,Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tínhnăng mới và sửa các lỗi trong những lần phát hành trước với phiên bản mới nhất hiệnnay là 8.1 Oreo Tính đến vào quý 2 năm 2017 Android chiếm 87,7% thị phần điệnthoại thông minh trên toàn thế giới

Android được xây dựng cho phép các nhà phát triển tạo ra các ứng dụng di động hấpdẫn tận dụng tối đa các tính năng của một chiếc điện thoại di động thông minh Nó cungcấp một loạt các thư viện hỗ trợ nhà phát triển xây dựng các ứng dụng phong phú Vớimột cộng đồng lớn mạnh, giúp cho người mới học dễ dàng tiếp cận

2 Kiến trúc của hệ điều hành Android

Hệ điều hành Android là 1 ngăn xếp các thành phần phần mềm, được chia thành 5 phần

và 4 lớp chính như trong hình bên dưới

Hình 1 Kiến trúc hệ điều hành Android

Trang 15

2.1 Tầng Linux Kernel

Dưới cùng là lớp Linux - Linux 3.6 cùng với khoảng 115 bản vá Lớp này cung cấp mộtcấp độ trừu tượng giữa phần cứng của thiết bị và các thành trình điều khiển phần cứngthiết yếu như máy ảnh, bàn phím, màn hình hiển thị Đồng thời, hạt nhân (kernel) còn

xử lý tất cả các thứ mà Linux có thể làm tốt như mạng kết nối và 1 chuỗi các trình điềukhiển thiết bị, giúp cho giao tiếp với các thiết bị ngoại vi dễ dàng hơn

2.2 Libraries

Đây là các thư viện dựa trên Java phục vụ cho việc phát triển Android Ví dụ của cácthư viện này bao gồm các thư viện ứng dụng dùng để xây dựng giao diện người dùng,

vẽ đồ họa hay truy cập cơ sở dữ liệu Một số thư viện chính của Android:

- android.app - Cung cấp quyền truy cập vào ứng dụng và là nền tảng của tất cả

ứng dụng Android

- android.content - Cung cấp quyền truy cập nội dung (content), truyền tải thông

điệp giữa các ứng dụng hay các thành phần của ứng dụng

- android.database – Được sử dụng để truy cập dữ liệu của content provider và cơ

sở dữ liệu SQLite

- android.opengl - giao diện các phuơng thức Java để sử dụng OpenGL ES

- android.os - Cung cấp các ứng dụng với quyền truy cập vào các dịch vụ của hệ

điều hành bao gồm thông điệp, các dịch vụ hệ thống và các giao tiếp nội tại

- android.text – Được sử dụng để hiển thị và điều chỉnh chữ trên màn hình thiết bị.

- android.view - Các thành phần cơ bản trong việc xây dựng giao diện người dùng

của ứng dụng

- android.widget - Tập các thành phần giao diện người dùng đã được xây dựng sẵn

như các nút, các nhãn (label), list view,

- android.webkit - Tập các lớp cho phép xây dựng khả năng duyệt web.

Trang 16

2.3 Android Runtime

Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ hai từ dưới lên Phần này cung cấpmột bộ phận quan trọng là Dalvik Virtual Machine - là một Java Virtual Machine đượcthiết kế đặc biệt để tối ưu cho Android Dalvik VM sử dụng các đặc trưng của nhânLinux như quản lý bộ nhớ và đa luồng, những thứ mà đã có sẵn trong Java Dalvik VMgiúp mọ ứng dụng Android chạy trong tiến trình riêng của nó, với các thể hiện(instance) riêng của Dalvik virtual Machine Android Runtime cũng cung cấp một tậpcác thư viện chính giúp các nhà phát triển ứng dụng Android có thể viết ứng dụngAndroid bằng Java

2.4 Application Framework

Lớp Android Framework cung cấp các dịch vụ cấp độ cao hơn cho các ứng dụng dướidạng các lớp Java Các nhà phát triển ứng dụng được phép sử dụng các dịch vụ nàytrong ứng dụng của họ

Android Framework bao gồm các dịch vụ chính sau:

- Activitty Manager - Kiểm soát tất cả khía cạnh của vòng đời ứng dụng và

ngăn xếp các Activity

- Content Providers - Cho phép các ứng dụng chia sẽ dữ liệu với các ứng dụng

khác

- Resource Manager - Cung cấp quyền truy cập vào các tài nguyên như các

chuỗi, màu sắc, các layout giao diện người dùng

- Notifications Manager - Cho phép các ứng dụng hiển thị cảnh báo và các

thông báo cho người dùng

- View System - Tập các thành phần giao diện (view) được sử dụng để tạo giao

diện người dùng

2.5 Tầng Application

Lớp trên cùng của kiến trúc là Application Các ứng dụng bạn tạo ra sẽ được cài đặt trênlớp này Ví dụ như: Danh bạ, nhắn tin, trò chơi

3 Công cụ Android Studio

Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triểnnền tảng Android Nó được ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/

O Android Studio được phát hành miễn phí theo giấy phép Apache Licence 2.0 Dựa

Trang 17

trên phần mềm IntelliJ IDEA của JetBrains, Android Studio được thiết kế đặc biệt đểphát triển ứng dụng Android Nó hỗ trợ các hệ điều hành Windows, Mac OS X vàLinux, và là IDE chính thức của Google để phát triển ứng dụng Android gốc để thay thếcho Android Development Tools (ADT) dựa trên Eclipse Phiên bản mới nhất củaAndroid Studio hiện nay là 3.1.

4 Mô hình lập trình MVC

Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hìnhthiết kế được sử dụng trong kỹ thuật phần mềm Nó giúp cho các developer tách ứngdụng của họ ra 3 thành phần khác nhau Model, View và Controller Mỗi thành phần cómột nhiệm vụ riêng biệt và độc lập với các thành phần khác

Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phươngthức xử lý Chẳng hạn thành phần này sẽ nhận request từ View để thao tác trực tiếp vớiModel

Hình 2 Cấu trúc lớp MVC (Model-View-Controller)

Trang 19

1.2 MVC làm việc như thế nào?

Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:

- User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi.

- Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model.

- Model nhận thông tin và thực thi các yêu cầu.

- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại cho

người dùng

Hình 3 Luồng xử lý trong mô hình MVC

1.3 Ưu điểm và nhược điểm của MVC

Trang 20

II) Tổng quan về Firebase

2 Kiến trúc của Firebase

Hiện nay Firebase không giới hạn chỉ là một cơ sở dữ liệu Firebase bây giờ là mộtchiếc dù cho toàn bộ sản phẩm có khả năng hoạt động như một dịch vụ phụ trợ(Backend as a Service) Nó cho phép bạn tất cả mọi thứ bạn cần để xây dựng và pháttriển ứng dụng của mình, tất cả ở cùng một nơi [2]

Hình 4 Biểu đồ kiến trúc Firebase Chú giải :

App Engine : nền tảng ứng dụng cho phép theo dõi, cập nhật và cân chỉnh môi trường lưu trữ.

Mô hình sử dụng Firebase ở trên với một kiến trúc hai tầng, trong đó các ứng dụng diđộng và Firebase đều thao tác dữ liệu trực tiếp Điều này tạo ra sự khác biệt quan trọngtrong cách xử lý xác thực và bảo mật dữ liệu Dữ liệu được update từ một thiết bị, thôngqua Firebase tự động đồng bộ dữ liệu thời gian thực trên nhiều thiết bị Google AppEngine mang đến một nền tảng ứng dụng cho phép theo dõi, cập nhật và cân chỉnh môi

Trang 21

trường lưu trữ, tất cả những gì bạn cần làm là viết mã dịch vụ phụ trợ di động của bạn.Trong Firebase, bạn chỉ định chứng thực và xác nhận hợp lệ như là các quy tắc khai báotrong giao diện web Firebase, mà không cần phải viết mã Firebase là nền tảng đượcquản lý đầy đủ để xây dựng ứng dụng iOS, Android và web cung cấp đồng bộ hóa dữliệu, dịch vụ xác thực, nhắn tin, lưu trữ tệp, phân tích và hơn thế nữa Bắt đầu vớiFirebase là một cách hiệu quả để xây dựng hoặc thử nghiệm dịch vụ phụ trợ di động.

3 Lợi ích khi sử dụng Google Firebase

Triển khai ứng dụng cực nhanh

Với Firebase bạn có thể giảm bớt rất nhiều thời gian cho việc viết các dòng code đểquản lý và đồng bộ cơ sở dữ liệu, mọi việc sẽ diễn ra hoàn toàn tự động với các API củaFirebase Không chỉ có vậy Firebase còn hỗ trợ đa nền tảng nên bạn sẽ càng đỡ mất thờigian rất nhiều khi ứng dụng bạn muốn xây dựng là ứng dụng đa nền tảng

Không chỉ nhanh chóng trong việc xây dựng database, Google Firebase còn giúp ta đơngiản hóa quá trình đăng kí và đăng nhập vào ứng dụng bằng các sử dụng hệ thống xácthực do chính Firebase cung cấp

Bảo mật

Firebase hoạt động dựa trên nền tảng cloud và thực hiện kết nối thông qua giao thức bảomật SSL, chính vì vậy bạn sẽ bớt lo lắng rất nhiều về việc bảo mật của dữ liệu cũng nhưđường truyền giữa client và server Không chỉ có vậy, việc cho phép phân quyền ngườidùng database bằng cú pháp javascipt cũng nâng cao hơn nhiều độ bảo mật cho ứngdụng của bạn, bởi chỉ những user mà bạn cho phép mới có thể có quyền chỉnh sửa cơ sở

dữ liệu

Tính linh hoạt và khả năng mở rộng

Sử dụng Firebase sẽ giúp bạn dễ dàng hơn rất nhiều mỗi khi cần nâng cấp hay mở rộngdịch vụ Ngoài ra firebase còn cho phép bạn tự xây dựng server của riêng mình để bạn

có thể thuận tiện hơn trong quá trình quản lý

Việc Firebase sử dụng NoSQL, giúp cho database của bạn sẽ không bị bó buộc trongcác bảng và các trường mà bạn có thể tùy ý xây dựng database theo cấu trúc của riêngbạn

Trang 22

Sự ổn định

Firebase hoạt động dựa trên nền tảng cloud đến từ Google vì vậy hầu như bạn khôngbao giờ phải lo lắng về việc sập server, tấn công mạng như DDOS, tốc độ kết nối lúcnhanh lúc chậm, bởi đơn giản là Firebase hoạt động trên hệ thống server của Google.Hơn nữa nhờ hoạt động trên nền tảng Cloud nên việc nâng cấp, bảo trì server cũng diễn

ra rất đơn giản mà không cần phải dừng server để nâng cấp như truyền thống

Giá thành

Google Firebase có rất nhiều gói dịch vụ với các mức dung lượng lưu trữ cũng như băngthông khác nhau với mức giá dao động từ Free đến $1500 đủ để đáp ứng được nhu cầucủa tất cả các đối tượng Chính vì vậy bạn có thể lựa chọn gói dịch vụ phù hợp nhất vớinhu cầu của mình Điều này giúp bạn tới ưu hóa được vốn đầu tư và vận hành của mìnhtùy theo số lượng người sử dụng Ngoài ra bạn còn không mất chi phí để bảo trì, nângcấp, khắc phục các sự cố bởi vì những điều này đã có Firebase lo

Trang 23

4 Các tính năng cơ bản của Firebase

Firebase cung cấp các công cụ để phát triển các ứng dụng chất lượng cao, cho phép pháttriển cơ sở người dùng và hỗ trợ kiếm được nhiều tiền hơn Các tính năng của Firebaseđược nêu trong hình dưới đây:

Hình 5 Các tính năng cơ bản của Firebase

Dưới đây chúng ra sẽ tìm hiểu một số tính năng thường được sử dụng nhất:

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 Chúng ta 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ớihoặc sửa đổi Ngoài ra Firebase còn cho phép bạn phân quyền một các đơn giản bằng cúpháp tương tự như javascript.[3]

Khi ứng dụng của bạn muốn phát triển, bạn không cần lo lắng về việc nâng cấp máychủ Firebase sẽ xử lý việc tự động cho bạn Các máy chủ của Firebase quản lý hàngtriệu kết nối đồng thời và hàng tỉ lượt truy vấn mỗi tháng

 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

Trang 24

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 tập trung ở một nơi để dễ dàng cho việc cập nhật và kiểm thử.

 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ề internetxả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ẽ đượcviết vào một cơ sở dữ liệu Firebase ở local Ngay khi có thể kết nối lại, Client đó sẽnhận bất kỳ thay đổi mà nó thiếu và đồng bộ hoá nó với trạng thái hiện tại server

Firebase Authentication - Hệ thống xác thực của Firebase

Với Firebase, bạn có thể dễ dàng xác thực người dùng từ ứng dụng của bạn trênAndroid, iOS và JavaScript SDKs chỉ với một vài đoạn mã Firebase đã xây dựng chứcnăng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, vàxác thực nạc danh Các ứng dụng sử dụng chức năng xác thực của FireBase có thể giảiquyết được vấn đề khi người dùng đăng nhập, nó sẽ tiết kiện thời gian và rất nhiều cácvấn đề phức tạp về phần backend Hơn nữa bạn có thể tích họp xác thực người dùng vớicác chức năng backend đã có sẵn sử dụng custom auth tokens

Firebase Hosting

Phát triển ứng dụng web của bạn trong thời gian ngắn với các hosting tĩnh đã được cungcấp sẵn Tất cả các kết nối được phân phối qua SSL từ CDN trên toàn thể giới củaFirebase Triểu khai siêu tốc: Việc triển khai sử dụng các công cụ dòng lệnh Firebase và

có thể quay trở lại với phiên bản trước chỉ với một cú click chuột Tất cả các ứng dụng

sẽ có đường dẫn mặc đinh ở sau firebaseapp.com và nếu trả phí thì có thể triểu khai mộttên miền tuỳ chỉnh SSL bởi default: Mọi ứng dụng được xử lý thông qua một kết nối antoàn, và Firebase đã cẩn thận cung cấp SSL cert cho bạn

Cloud Messaging

Google Cloud Messaging, dịch vụ cloud-to-device push messaging nổi tiếng nhất thếgiới, đang tích hợp với Firebase và đổi tên thành Firebase Cloud Messaging (FCM).FCM không có giới hạn và hoàn toàn miễn phí FCM hỗ trợ messaging trên iOS,Android và Web, và tối ưu mạnh mẽ hướng đến bảo mật và tiếp kiệm pin FCM có thể

xử lý lượng lớn thông tin và hiện đã có thể gửi 170 tỷ tin nhắn mỗi ngày đến 2 tỷ thiếtbị

Trang 25

Firebase Storage

Firebase cũng sẽ ra mắt Firebase Storage để giúp lập trình viên upload và download file

dễ dàng Firebase Storage được Google Cloud Storage hỗ trợ, mang đến khả năng lưutrữ khổng lồ và cho phép Google Cloud project truy cập file dễ dàng Firebase Storage

client SDKs còn có logic nâng cao có thể dễ dàng xử lý điều kiện mạng kém ‘

Adwords

Adwords là dịch vụ quảng cáo trực tuyến của Google hợp nhất để cho phép các nhà pháttriển nhắm mục tiêu người dùng sử dụng Firebase Analytics

Earn - với Admob

Admob là một sản phẩm của Google tích hợp với đối tượng Firebase Là nền tảng quảngcáo trên thiết bị di động cung cấp dịch vụ cho các nhà quảng cáo, nhà xuất bản, đại lý vànhà phát triển ứng dụng Cho phép các nhà phát triển ứng dụng kiếm tiền thông qua dịch

vụ quảng cáo

5 Realtime Database trong FireBase

1.4 Định nghĩa Realtime Database

Realtime Database Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt độngtrên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triểnnhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.[4]

Firebase Database Realtime cho phép bạn xây dựng các ứng dụng hợp tác phong phúbằng cách cho phép truy cập an toàn vào cơ sở dữ liệu trực tiếp từ mã phía máy khách

Dữ liệu được duy trì ở địa phương và thậm chí trong khi ngoại tuyến, sự kiện thời gianthực tiếp tục bùng nổ, mang lại cho người dùng cuối một trải nghiệm đáp ứng Khi thiết

bị lấy lại kết nối, Cơ sở dữ liệu thời gian thực đồng bộ hóa các thay đổi dữ liệu cục bộvới các bản cập nhật từ xa xảy ra trong khi máy khách đang ngoại tuyến, tự động hợpnhất các xung đột

Cơ sở dữ liệu thời gian thực cung cấp một ngôn ngữ quy tắc linh hoạt dựa trên biểuthức, được gọi là Quy tắc bảo mật cơ sở dữ liệu thời gian thực dựa trên nền Firebase, đểxác định cách cấu trúc dữ liệu của bạn và khi dữ liệu có thể được đọc hoặc ghi vào Khiđược tích hợp với Firebase Authentication, các nhà phát triển có thể xác định ai cóquyền truy cập vào dữ liệu nào, và cách họ có thể truy cập vào nó

Trang 26

Cơ sở dữ liệu thời gian thực là một cơ sở dữ liệu NoSQL và do đó có sự tối ưu hóa vàchức năng khác so với cơ sở dữ liệu quan hệ Cơ sở dữ liệu thời gian thực API đượcthiết kế để chỉ cho phép hoạt động có thể được thực hiện nhanh chóng Điều này chophép bạn tạo trải nghiệm thời gian thực tuyệt vời có thể phục vụ hàng triệu người dùng

mà không ảnh hưởng đến phản hồi Do đó, điều quan trọng là phải suy nghĩ về cáchngười dùng cần truy cập vào dữ liệu của bạn và sau đó cấu trúc nó cho phù hợp

1.5 Lợi ích khi sử dụng Realtime Database so với các cơ sở dữ liệu quan hệ đang có

Có lẽ chúng ta đã ít nhiều quen thuộc với SQL Database SQL Database (SQLD) được

tổ chức dưới dạng các bảng, mỗi bảng bao gồm các hàng và các cột Các cột đại diệncho các thuộc tính của các đối tượng, trong khi các hàng đại diện cho các đối tượng Ví

dụ, ta có bảng quản lí sinh viên, trong đó các cột là STT, Họ, Tên, Giới tính, Ngày sinh,Địa chỉ liên hệ, còn mỗi hàng là một sinh viên cụ thể Có bao nhiêu sinh viên thì sẽ cóbấy nhiêu hàng tương ứng

Firebase Realtime Database (FRB) không được tổ chức như vậy Nó được tổ chứctheo dạng cây (trees), giống như dạng cây thư mục (folder tree) mà các bạn đã quá quenthuộc trong Windows Explorer Tuy nhiên, một nhánh (branch) không được chứa đồngthời nhiều dữ liệu khác nhau Trong Windows Explorer 1 thư mục mẹ có thể chứa nhiềuthư mục con và các tập tin nằm ngang hàng với các thư mục con kia, trong thư mục conlại có các thư mục cháu và các tập tin cùng hàng với thư mục cháu Trong FirebaseRealtime Database, mỗi nhánh giống như một container, chỉ chứa hoặc là dữ liệu ứngvới nhánh đó (tức là value tương ứng với key), hoặc một tập hợp các nhánh con cũngđược tổ chức theo một cách tương tự

Như vậy, FRD được tổ chức theo dạng cây với các nhánh chứ không phải dạng hàng

- cột và đây có thể là một vấn đề hết sức nan giải cho những lập trình viên đã và đangthiết kế cơ sở dữ liệu dạng bảng Thực ra đó không phải là một hạn chế, vì FRD đượctạo ra dựa trên ý tưởng này ngay từ đầu Và họ cũng không có ý định cho ra mắt thêmmột dạng cơ sở dữ liệu dạng bảng, ít nhất là cho tới thời điểm hiện tại

Rõ ràng, cơ cấu tổ chức của FRD tỏ ra có nhiều lợi thế rõ rệt hơn so với dạng bảngcủa SQLDatabase (SQLD) Chẳng hạn, FRD thích hợp hơn hẳn để làm ứng dụng chat

Trang 27

Hơn thế nữa, FRD tỏ ra linh hoạt (flexible) hơn so với SQLD, chẳng hạn như việc thêmmột cột mới vào CSDL SQLD đã có là cả một vấn đề, đặc biệt nhất là vấn đề về sựtương thích giữa nhiều phiên bản ứng dụng chạy trên thiết bị khách (client), chưa kể đếnviệc các câu Schema phải chuẩn nữa Trong khi đó, đối với FRD, chúng ta chỉ cần thêmmột trường mới vào Object của mình Đối với các Object cũ, các trường không có dữliệu sẽ đơn giản là được trả về kết quả null (Android, web) hoặc nil (iOS, macOS).

Ví dụ, chúng ta đang có một class Student(String name, String birthday) Đối vớiSQLD, bạn tạo một CSDL có hai cột là NAME và BIRTHDAY Đối với FRD, chúng tachỉ cần 2 nhánh name và birthday trong một Object làm value là được Sau khi đã sửdụng CSDL đó để nhập liệu được gần 2 năm thì bấy giờ, nếu bất ngờ được yêu cầu bổsung thêm một trường nữa là lớp học và cột này phải là NON NULL Vậy, chúng ta làmcách nào? Đối với SQLD, bạn sẽ ALTER TABLE để thêm một cột Ố kề, xong câuSchema rồi và đã có cột mới Nhưng những học sinh đầu tiên chưa có thông tin về lớphọc và khi fetch thông tin về thì chắc chắn sẽ xảy ra mâu thuẫn

Còn đối với FRD thì bạn chỉ đơn giản là bổ sung thêm một trường mới vào Studentobject của bạn, tức là Student(String name, String birthday, String class) Đối với cáchọc sinh không có thông tin về class, thì khi bạn fetch các thông tin về, String class chỉđơn giản là bị null/nil và bạn chỉ cần xét if (class != null) là được

Tuy nhiên, nếu chúng ta cần sự kết nối giữa các hàng trong một bảng, chẳng hạn nhưviệc quản lí tiền lương thì SQLD vẫn sẽ tỏ ra vượt trội hơn, mặc dù chúng ta vẫn có khảnăng xoay sở đối với FRD Còn nếu phải quản lí các dữ liệu theo kiểu liên bảng, tức làchúng ta phải thực hiện thao tác JOIN các dữ liệu trong SQLD, có thể việc thực hiện cácthao tác thay thế trên FRD trên thực tế sẽ khó khăn hơn là bạn nghĩ

Một vấn đề quan trọng hơn nữa, là PRIMARY KEY PRIMARY KEY là một trongnhững điều cần thiết để quản lí hiệu quả CSDL SQLD Tuy nhiên trong FRD thì hoàntoàn không tồn tại khái niệm PRIMARY KEY, do đó bạn sẽ cần cẩn thận trong việcquản lí các objects để tránh bị cập nhật sai các dữ liệu đã có sẵn

Tóm lại, Firebase Realtime Database ngoài ưu điểm mang tính Realtime thì còn cótính linh hoạt rất cao, dễ dàng trong việc bổ sung hoặc cắt bớt các trường trong mộtObject Tuy nhiên, sự liên hệ tương ứng giữa các đối tượng trong FRD sẽ là một bài

Trang 28

toán không hề dễ và cách xử lí phụ thuộc rất nhiều vào trình độ và kinh nghiệm của lậptrình viên, cũng như bản chất và mục đích của bản thân CSDL được tạo.

6 Xác thực người dùng FireBase Authentication

Với FireBase Authentication, người dùng đăng nhập vào ứng dụng của bạn bằng cách

sử dụng một hệ thống mà họ đã sử dụng Sau đó, ứng dụng của bạn có thể lưu dữ liệucủa người dùng một cách an toàn trên Cloud và mang lại trải nghiệm được cá nhân hóagiống nhau trên tất cả các thiết bị của họ Xác thực Firebase cung cấp các dịch vụ phụtrợ, SDK dễ sử dụng và thư viện giao diện người dùng sẵn sàng để xác thực người dùngđến với ứng dụng, mang lại trải nghiệm hấp dẫn hơn trên các nền tảng khác nhau vàgiữa các ứng dụng Tính năng này hỗ trợ xác thực bằng mật khẩu, các nhà cung cấpdanh tính được liên kết nổi tiếng như Google; Facebook và Twitter… giúp người dùng

dễ dàng truy cập vào nội dung và ứng dụng của bạn một cách nhanh chóng và an toàn.[5]

Các tính năng chính

- Tích hợp chặt chẽ với các tính năng khác của Firebase

- Sử dụng tiêu chuẩn ngành như OAuth 2.0 và OpenID Connect, vì vậy có thể dễdàng tích hợp với chương trình phụ trợ tùy chỉnh

- Cung cấp hai tùy chọn phát triển hoặc là FirebaseUI như một giải pháp xác thựcthả hoàn chỉnh hoặc SDK xác thực Firebase để tích hợp thủ công một hoặc nhiềuphương pháp đăng nhập vào ứng dụng

- Cung cấp xác thực an toàn giúp người dùng dễ dàng đăng nhập bằng tài khoảnGoogle mà họ đã sử dụng với Gmail, Google Play, Google+ và các dịch vụ kháccủa Google Tính năng này cũng hỗ trợ xác thực bằng mật khẩu và các nhà cungcấp danh tính được liên kết nổi tiếng như Facebook và Twitter

- Cung cấp trải nghiệm ứng dụng liền mạch trên các thiết bị và vào trang web mộtcách an toàn từ sự đồng ý một lần Điều này sẽ giúp giữ cho người dùng liên tụctương tác, bất kể họ chọn hay ngồi cạnh thiết bị nào

- Kết nối người dùng an toàn với các dịch vụ của Google Chia sẻ với Danh bạ củaGoogle, lưu tệp vào Drive, thêm sự kiện vào Lịch, v.v

- Cho phép người dùng thanh toán bằng Google Wallet của họ Đơn giản hóa muahàng trong ứng dụng bằng cách cung cấp cho người dùng khả năng thanh toánbằng Google Wallet của họ

Trang 29

CHƯƠNG III PHÂN TÍCH THIẾT KẾ ỨNG DỤNG I) Các chức năng của ứng dụng

1 Quản lý tài khoản

❖ Đăng nhập

❖ Xem thông tin tài khoản

❖ Sửa thông tin tài khoản

❖ Đăng xuất

2 Tìm kiếm sản phẩm

❖ Tìm kiếm theo khu vực

❖ Tìm kiếm theo loại sản phẩm

3 Xem sản phẩm

❖ Quan tâm sản phẩm

❖ Liên lạc với người bán

- Gọi điện cho người bán

- Nhắn tin cho người bán

4 Trao đổi sản phẩm

❖ Đưa yêu cầu trao đổi cho người bán

5 Đăng bán sản phẩm

❖ Sửa thông tin sản phẩm

❖ Tra cứu các sản phẩm đang đăng bán

Trang 30

II) Biểu đồ Usecase

1.1 Biểu đồ Usecase tổng quát

Hình 6 Biểu đồ Use case tổng quát

Bảng 1.

Trang 31

3 Nhập thông tin số điện thoại

Luống thay thế

và ngoại lệ

Nếu dữ liệu không hợp lệ, hệ thốngđưa ra thông báo và yêu cầu nhậplại

Ngày đăng: 27/05/2018, 19:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w