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

Đồ Án phát triển Ứng dụng di Động Đề tài xây dựng Ứng dụng Đặt món Ăn cho dân văn phòng sinh viên

82 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây Dựng Ứng Dụng Đặt Món Ăn Cho Dân Văn Phòng Sinh Viên
Tác giả Phạm Thái Học, Phạm Văn Quốc Vinh
Người hướng dẫn ThS. Lê Văn Vang
Trường học Trường Đại học Tôn Đức Thắng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 82
Dung lượng 14,28 MB

Nội dung

Firebase cung cấp các tính năng như lưu trữ đữ liệu, xác thực người dùng, push notifcation, phân tích và báo cáo, phát triển các tính nang realtime, .... Firebase bao gồm hai cơ sở dữ li

Trang 1

TONG LIEN DOAN LAO DONG VIET NAM

TRUONG DAI HOC TON DUC THANG KHOA CONG NGHE THONG TIN

DAI HOC TON BUC THANG TON DUC THANG UNIVERSITY

DO AN: PHAT TRIEN UNG DUNG DI DONG

DE TAI: XAY DUNG UNG DUNG DAT MON AN CHO DAN VAN PHONG

Trang 2

TONG LIEN DOAN LAO DONG VIET NAM

TRUONG DAI HOC TON DUC THANG KHOA CONG NGHE THONG TIN

DAI HOC TON BUC THANG TON DUC THANG UNIVERSITY

DO AN: PHAT TRIEN UNG DUNG DI DONG

DE TAI: XAY DUNG UNG DUNG DAT MON AN CHO DAN VAN PHONG

Trang 3

LOI CAM ON

Đề hoàn thành bài báo cáo này, chúng em xin cảm ơn đến ThS Lé Văn Vang

đã hướng dẫn cho em đi từ những cái cơ bản nhất của môn Phát triển ứng dụng di động đề chúng em có thế có đủ kiến thức hoàn thành bài cáo cáo cuối kỳ này, chúng

em xin cam on!

TP Hồ Chí Minh, ngày 05 tháng 05 năm 2023

Tác giả (Kỹ tên và ghi rõ họ tên)

Trang 4

này là trung thực Những số liệu trong các bảng biểu phục vụ cho việc phân

tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có

ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong báo cáo còn sử dụng một số nhận xét, đánh giá cũng như

số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích

nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào chúng tôi xin hoàn toàn chịu trách nhiệm về nội dung báo cáo của mình Trường Đại học Tôn Đức Thắng

không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong

quá trình thực hiện (nếu có)

TP Hô Chí Minh, ngày 05 tháng 05 năm 2023

Tác giả (Kỹ tên và ghi rõ họ tên)

Trang 5

MUC LUC

MỤC LỤỤC 0 5 5 HH HH HH hư ni cưng iii

DANH MỤC BẢNG BIỀU 5- 5-©5< 2< SxeEEeEEE se teveEsersererrereerrre vii DANH MỤC CÁC CHỮ VIẾT TẮTT - 2s cs< cs<©csesserserscsscse sersee viii

2.1.3 Các thuộc tính chính của LSIÏÏ€WU cá kH n1 k1 S151 21 111cc no 6

CN l0 7.7.2 trong ListView NHỢN.VO 7 2.1.5 Hạn chế của ListView cccccccccccccscscscscescsescscsvscsvevssesescsesvevsvevssessseseecsvevevevevevees 8

2.2.1 Gibi thiéu vé Google FirebAse ccccccccccccccsccscsscesesssscessesssseesesessesestsseseesssstetes 9 2.2.2 Tĩnh năng của (Œoogle FireB@96 cv c1 1H vn 1111111 ra 10 2.2.3 Uu điểm của (Google Fireba6 c1 1211121111121 rte 14 2.2.4 Hạn chế của Œoogle Firebdwe - c1 21112112121 15

2.3.1 Gidi thiéu vé Firebase Realtime Database ccccccccccccccccscscscssesssessscsvsvscsssecsees 16 2.3.2 Tinh năng chính của Firebase Realtime Databdse c.ccccccccccccccte testes L7 2.3.3 Cách thức hoạt động của Firebase Realtime l)ataBq$e 18 2.3.4 Cách hiện thực Firebase Reatine Database trong ứng dụng ndroid 18

Trang 6

2.4.4 Cách hiện thuc Firebase Authentication trong ứng dụng Android 23

3.1 Khảo sát hệ thong cccsscsssscsssscssssesscsssesecsscssssssecscsocsesesseeacesessseescsseacesseseecessess 25

Kể Ca ốc (75 nan nốaad 25 224/4 4 n6 eee Ả 30

3.2.2 Sơ đồ biếu điễn hoạt động các chức năng chính của hệ thống 36

Trang 7

VI

DANH MỤC HÌNH VỀ

Hình 2 Khảo sát chức năng đăng nhập của ứng dụng Beqmn 25

Hình 3 Khảo sát chức năng đăng ký của ứng dụng PGQHHH ee«ee< 26 Hình 4 Khảo sát chức năng chọn món của ứng dụng D@dHHH 27

Hình 5 Khảo sát chức năng giỏ hàng của ứng dụng P€QTHHH «««« 28

Hình 6 Khảo sát chức năng chỉnh sửa thong tin cia wng dung Beamin 29

Hình 7 Khảo sát chức năng đăng nhập của ứng dụng Losliip 30

Hình 6 Khảo sát chức năng chọn món của ứng dụng Losliip 31

Hình 9 Khảo sát chức năng giỏ hàng của ứng dụng LOSÍHD eeeeeesese 32 Hình 10 Khảo sat chức năng chỉnh sửa thông tín của ứng dụng Loshipp 33

Hình 11 Sơ đề Uecase hiệ tHỐngg -e- sccsccsceeerseseEeerecrereeererererrecersrrserrre 34 Hình 12 Sơ đồ Sequence đăng HhhẬp co csccseceereereceeerersererrerseeerecerre 36 Hình 13 Sơ đề Sequence đăng ký 36 Hình 14 Sơ đề Sequence chỉnh sửa thông tin 37 Hinh 15 So do Sequence dit hang 37 Hình 1ó Sơ đề Sequence xác nhận đã nhận hàng 38 Hinh 17 So do Sequence xtc nhéin đã giao hàng (dmin) -c-s-ecce-«e 38 Hình 18 Sơ đồ Sequence thêm món én (admin) 39 Hình 19 Sơ đồ Sequence xóa rHÓH ĂH (ẺÏ/HÌH) e-5cc<ccscsccsceesccsee 39 Hình 20 Sơ đồ Sequence chỉnh sửa món ăn (dÌWHÌH) -5cc<ccscsecscseeccee 40 Hình 21 Bản vẽ trang đăng nhập „„„.4Í Hình 22 Bản vẽ trang đăng ký 4I Hình 23 Bản vẽ trang chủ 42 Hình 24 Bản vẽ trang giỏ hàng 42

Hình 25 Bản vẽ trang người dùng 43 Hình 26 Bản vẽ trang chỉnh sửa thông tín 43 Hình 27 Bản vé trang lich sw dat hang 44

Trang 8

Hinh 28 Ban vé trang chi tiét don hang

Hình 29 Bản vẽ trang chủ dd

Hình 30 Bản vẽ trang chỉnh sửa món an

Hình 31 Bản vẽ trang danh sách đơn hàng

Hinh 32 Ban vé trang chi tiét don hang admii

Giao diện trang đăng nhập

Giao điện trang đăng kỹ

Giao diện trang chủ

Giao diện trang giỏ hàng

Giao diện frang người dùng

Giao diện trang lịch sử đặt hàng

Giao diện trang chỉ tiết đơn hàng

Giao diện trang chỉnh sửa món an Giao diện trang danh sách don hang

Giao diện trang chỉ tiết don hang admir

59 00

Trang 9

1X

DANH MUC BANG BIEU

Trang 10

DANH MUC CAC CHU VIET TAT

IP HTTP XML URL

CSDL

SOL

Internet Protocol HyperText Transfer Protocol Extensible Markup Language Uniform Resource Locator Application Programming Interface

Cơ sở dữ liệu Structured Query Language

Trang 11

PHAN 1 GIOI THIEU DE TAI

1.1 Tính cấp thiết của đề tài

Đặt món ăn trực tuyến là một trong những dịch vụ ngày càng phát triển, đáp ứng nhu cầu của người tiêu dùng hiện đại Đặc biệt đối với đân văn phòng và sinh viên, họ thường xuyên phải đối mặt với việc không có đủ thời gian để chuẩn bị bữa

ăn hoặc phải đi chuyên đến nơi ăn uống trong khi thời gian học hoặc làm việc của

họ rất quan trọng

Ứng dụng đặt đồ ăn cho dân văn phòng và sinh viên sẽ giải quyết được các vấn đề trên Nó sẽ giúp người dùng tiết kiệm được thời gian và công sức, đồng thời đảm bảo rằng họ sẽ nhận được đúng món ăn và thức uống ma ho mong doi Điều này sẽ giúp tăng năng suất làm việc và giảm căng thắng cho người dùng Ngoài ra, ứng dụng đặt đồ ăn còn giúp người dùng tiết kiệm được chỉ phí đi lại Họ chỉ cần đặt hang va cho doi mon an duce giao dén van phòng hoặc khu vực sinh sống của mình Điều này cũng đồng nghĩa với việc giảm thiểu ùn tắc giao thông và khí thải, góp phần bảo vệ môi trường

Với sự phát triển của công nghệ thông tin, việc phát triển ứng dụng đặt đồ ăn

là một sự lựa chọn cấp thiết cho các nhà phát triển ứng dụng Nó mang lại lợi ích cho người dùng và đáp ứng nhu cầu thị trường đang tăng cao

1.2 Mục tiêu

Mục tiêu của để tài xây đựng ứng dụng đặt đồ ăn cho dân văn phòng, sinh viên là cung cấp một giải pháp tiện lợi và nhanh chóng cho người dùng trong việc đặt món ăn Ứng dụng sẽ giúp người dùng tiết kiệm thời gian, không cần phải đến nhà hàng hay quán ăn dé dat món và chờ đợi Mà có thể thực hiện việc đặt món ngay tại chỗ, tại văn phòng hay trường học của mình một cách tiện lợi, nhanh chóng

Trang 12

và chính xác, giúp người dùng tiết kiệm thời gian và tối ưu hóa quá trình đặt món

ăn

1.3 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài là các vẫn đề liên quan đến phân tích thiết

kế và hiện thực cho một ứng dụng di động đặt đồ ăn trực tuyến trên nền tảng Android Cụ thể, đối tượng nghiên cứu bao gồm các chức năng của hệ thông, những yếu tố cầu thành hoạt động của ứng dụng, cũng như các module quan trọng như user va admin

Với module admin, déi tượng nghiên cứu sẽ tập trung vào việc thực thi các chức năng quản lý đơn hàng và món ăn Điều này bao gồm quản lý đơn hàng đã được đặt, cập nhật trạng thái của đơn hàng, quản lý danh sách món ăn và thêm/xóa/sửa các món ăn trong danh sách đó

Ở module user, đối tượng nghiên cứu sẽ tập trung vào việc hiện thực các chức năng đăng ký, đăng nhập, chọn món ăn, thêm vào giỏ hàng và đặt món Nghiên cứu sẽ đặc biệt chú trọng vào cách thức hiện thị danh sách món ăn và giỏ hàng, cũng như cách thức xử lý đặt hàng sau khi người dùng đã hoản thành quá trình đặt món

Đối tượng nghiên cứu này sẽ giúp hiểu rõ hơn về các yếu tố cầu thành hoạt động của một ứng dụng đặt dé ăn trực tuyến, từ đó tối ưu hóa quá trình phát triển và cung cấp cho người dùng một trải nghiệm tốt hơn khi sử dụng ứng dụng

1.4 Phạm vi nghiền cứu

Phạm vi nghiên cứu của đề tài là tập trung vào phân tích và hiện thực các chức năng cơ bản của một ứng dụng đặt đồ ăn trực tuyến trên nền tảng Android Nghiên cứu sẽ tập trung vào phân tích thiết kế hệ thống, hiện thực các chức năng của module admin và module user

Trang 13

Đối với phân tích thiết kế hệ thông, nghiên cứu sẽ tìm hiểu và phân tích các yếu tô cầu thành hoạt động của ứng dụng đặt đồ ăn, bao gồm chức năng của hệ thống, luồng công việc và cách thức tương tác giữa người dùng và ứng dụng

Với module admin, nghiên cửu sẽ hiện thực các chức năng quản lý đơn hàng

và quản lý món ăn Điều này bao gồm xây dựng giao diện người dùng cho module admin, cập nhật trạng thái đơn hàng, quản lý danh sách món ăn và thực hiện các thao tác thêm/xóa/sửa trên danh sách này

Trong module user, nghiên cứu sẽ tập trung vào việc hiện thực các chức năng đăng ký, đăng nhập, chọn món ăn, thêm vào giỏ hàng và đặt món Điêu nảy bao gôm xây dựng giao diện người dùng cho module user, hiện thị danh sách món ăn, quản lý giỏ hàng và thực hiện quy trình đặt hàng

1.5 Phương pháp nghiên cứu

Trong đề tài này, chúng em đã sử dụng một số phương pháp nghiên cứu khác nhau để đạt được kết quả như tiến hành phân tích các yêu cầu và chức năng cần thiết của ứng dụng đặt đồ ăn trực tuyến Qua đó hiểu rõ về mục tiêu và phạm vi của

đề tài Chúng chúng em đã hợp tác làm việc nhóm đề trao đổi ý kiến, thảo luận và giải quyết các vấn dé nghiên cứu trong quá trình thực hiện đề tài Đồng thời áp dụng kiến thức về ngôn ngữ lập trình cho Android và dùng Firebase cho backend quản lý

cơ sở đữ liệu Cùng với đó chúng em đã thiết kế nên một giao diện người dùng dễ

nhìn và thân thiện, nhằm mang lại trải nghiệm tốt cho người sử dụng Điều này đảm

bảo rắng người dùng có thê thực hiện các thao tác một cách dê dàng và thuận tiện

Trang 14

PHAN 2 CO SO LY THUYET 2.1 ListView

2.1.1 Gidi thiéu vé ListView

ListView la một View Group trong Android, cho phép hiển thị một danh sách các item trên một giao điện người dùng ListView thường được sử đụng để hiển thị dữ liệu trong một danh sách có thê cuộn được Mỗi item trong danh sách được hiển thị bởi một View được gọi là Listltem

ListView cung cấp cho người đùng một giao diện đề lựa chọn một item từ danh sách hoặc thực hiện các hành động với Item đó ListView citing hỗ trợ việc tủy chỉnh hiển thị cho mỗi item trong đanh sách bảng cách sử dụng một Adapter

Adapter là một thành phần quan trọng của ListView, nó giúp kết nỗi dữ liệu

từ nguồn đữ liệu (ví dụ: một mảng các đối tượng) với mỗi item trong danh sách Adapter cung cấp các phương thức để tạo Listltem cho từng item trong danh sách ListView sau d6 str dung cac ListItem nay dé hién thị dữ liệu cho người dùng

ListView có thể được tủy chỉnh để hiển thị các item theo nhiều cách khác nhau Ví đụ, người dùng có thể tùy chỉnh màu nên, kích thước và kiểu phông chữ của Listltem ListView cũng hỗ trợ việc sử dụng các tính năng như kéo và thả dé sắp xếp lại các item trong danh sách

ListView là một trong những thành phần giao diện người dùng quan trọng trong Android và rất phô biến trong các ứng dụng di động hiện đại

Trang 15

2.1.2 Các thành phần của ListView

DataSource <> ——_, Adapter View

® ArrayList 8 na View

@ Spinner

Hinh 1 Thanh phan cua ListView

- DataSource: la nguén đữ liệu mà ta sử đụng đề gắn kết và hiển thị trên ListView Đây có thể là một mảng các đối tượng, danh sách từ cơ sở dữ liệu, hoặc bất kỳ nguồn đữ liệu nào khác mà chúng ta muốn hiền thị trên ListView DataSource cung cấp dữ liệu cho Adapter để tạo ra các Listltem

- Adapter: Adapter là thành phần quan trọng trong ListView, nhiệm vụ của

nó là găn kết DataSource với AdapterView (ListView) Adapter có nhiệm

vụ chuyên đổi dữ liệu từ DataSource thành các Listltem đề hiển thị trên ListView Có một số Adapter săn có trong Android như Array Adapter va CursorAdapter, ta cũng có thể tạo ra một Adapter tùy chỉnh đề đáp ứng nhu câu hiện thị dữ liệu cụ thê

- AdapterView: AdapterView là một ViewGroup trong Android, và các lớp con của nó bao gồm ListView, GridView và Spinner AdapterView là nơi chứa và hiển thị các Listltem từ Adapter Nó là một phan quan trong dé kết nối giữa Adapter và giao diện người dùng, cho phép hiến thị đữ liệu

từ DataSource lên màn hình

Khi một AdapterView như LIstView được hiển thị trên màn hình, Adapter sẽ lấy đữ liệu từ DataSource và tạo các Listltem tương ứng AdapterView sẽ hiến thị

Trang 16

các Listltem này theo định dạng được xác định bởi Adapter Các LIstltem sẽ được hiển thị trong AdapterView theo thứ tự tương ứng với đữ liệu từ DataSource 2.1.3 Các thuộc tinh chinh cia ListView

- android:id: Day là thuộc tính xác định một ID cho ListView để có thể tham chiêu đền nó từ code Java

- android:layout width, android:layout height: Day la thuéc tinh xác định chiều rộng và chiều cao của ListView Nó có thê được đặt bằng các giá trị

cu thé hoac match parent, wrap content

- android:divider, android:dividerHeight: thuộc tính xác định đường viền giữa cac item android:divider xac dinh drawable sé được sử dung dé vé đường viên và android:dividerHeight xác định chiêu cao của đường viên

-_ android:scrollbars: Đây là thuộc tính xác định xem có hiển thị thanh cuộn hay không Có thể được đặt bằng các giá trị vertical, horizontal hoặc both

- android:choiceMode: Day la thuộc tính xác định cách chọn item trong ListView Nó có thể được đặt bằng các giá trị sinpleCholce, multipleChoice hoac none

- android:fastScrollEnabled: Day la thuéc tính xác định xem ListView co

hỗ trợ cuộn nhanh hay không

- android:headerDividersEnabled, android:footerDividersEnabled: Day là thuộc tính xác định xem ListView có hiển thị đường viền trên đầu và dưới trang hay không

Trang 17

- android:padding: Đây là thuộc tính xác định khoảng cách giữa phần nội dung của List View va đường viên ngoài cùng

- android:smoothScrollbar: Day la thuộc tính xác định xem ListView có hiển thị thanh cuộn mượt mà hay không

2.1.4 Các sự kién trong ListView

- onltemClick: Được kích hoạt khi người dùng nhắn vào một mục trong ListView Sự kiện này cũng cung cấp cho bạn vị trí (position) của mục được chọn

- onltenLongClick: Được kích hoạt khi người dùng giữ một mục trong ListView trong một khoảng thời gian dài Sự kiện này cũng cung cấp cho bạn vị trí (position) của mục được chọn

- onltemSelected: Được kích hoạt khi người dùng chọn một mục trong ListView Sự kiện này cũng cung cấp cho bạn vị trí (position) của mục được chọn

- onNothingSelected: Được kích hoạt khi không có mục nào được chọn trong ListView

- onScroll: Duoc kich hoat khi ngwoi ding cuén danh sach Su kién nay cung cap cho ban vi tri (position) cua muc đầu tiên và số lượng mục được hiển thị trên màn hình

- onScrollStateChanged: Được kích hoạt khi trạng thái cuộn thay đổi Các

trang thai co thé la SCROLL STATE IDLE (không cuộn),

SCROLL STATE TOUCH SCROLL (đang cuộn do người dùng chạm vào màn hình) hoặc SCROLL, STATE FLING (đang cuộn do sự kiện tự động)

Trang 18

- onScrollListener: La mét interface ding dé xu ly cac su kién liên quan đến việc cuộn ListView Các phương thức chính bao gồm: onScroll va onScrollStateChanged

Trang 19

2.1.5 Han ché ctia ListView

- Hiéu suat: ListView không được tối ưu hoàn toàn cho các danh sách có

số lượng lớn các mục Khi danh sách quá lớn, việc hiển thị và cuộn có thể trở nên chậm và gây ra hiện tượng giật lag Điều này đặc biệt quan trọng khi đữ liệu được tải từ nguồn bên ngoài như cơ sở đữ liệu hoặc dịch vụ web

- _ Giao điện người dùng cô định: ListView có giao điện người dùng cô định với các hàng có chiều cao cố định Điều này có nghĩa là nếu mục trong danh sách có nội dung dài hơn chiều cao được định sẵn, nội dung sẽ bị cắt bớt và không hiển thị đầy đủ Điều này có thê làm mất đi thông tin quan trọng hoặc gây khó khăn cho người dùng trong việc xem nội dung day du

- _ Tùy chỉnh giao diện: ListView không cung cấp sẵn các tùy chọn linh hoạt

đề tùy chỉnh giao diện của từng hàng Bạn chỉ có thê sử dụng các layout mặc định hoặc tạo các layout tương tự cho tất cả các hàng trong danh sách Điều nảy có thể làm hạn chế khả năng tạo giao diện đa dạng vả phong phú cho từng mục trong danh sách

- - Cấu trúc dữ liệu đơn giản: ListView chi hỗ trợ hiển thị danh sách các mục theo dạng tuyến tính Điều này có nghĩa là nó không phù hợp cho các cấu trúc dữ liệu phức tạp hơn như cây, lưới hoặc bảng Đề hiển thị cấu trúc

dữ liệu phức tạp hơn, bạn có thể phải sử đụng các thành phần khác như RecyclerView hoac GridView

- Các tương tác phức tạp: ListView không hỗ trợ các tương tác phức tạp như kéo thả, vuốt ngang, lướt ngang, vuốt xóa, vuốt cập nhật nội dung Nếu bạn cần các tương tác phức tạp hơn, bạn cần phải sử dụng các thành

Trang 20

phan khác như RecyclerView hoặc tự tạo giao điện tương tự bằng các ViewGroup va tương tác với các sự kiện người dùng

2.2 Google Firebase

2.2.1 Giới thiệu về Google Firebase

Firebase là một nền tảng dành cho việc phát triển ứng dụng đi động và web được phát triển bởi Google Nó cung cấp một bộ công cụ phát triển ứng dụng toàn diện và giúp cho việc phát triển ứng dụng đi động và web trở nên để dàng hơn

Firebase được xây dựng trên nền tảng đám mây (cloud) và đi kèm với đó là một hệ thống máy chủ mạnh mẽ của Google Firebase cung cấp API đơn giản và mạnh mẽ đề giúp các lập trình viên phát triển ứng dụng di động và web mà không cần đến backend hoặc server Firebase cung cấp các tính năng như lưu trữ đữ liệu, xác thực người dùng, push notifcation, phân tích và báo cáo, phát triển các tính nang realtime,

Firebase la một dịch vu đa năng, có độ bảo mật cao và hỗ trợ trên cả hai nền

tảng lớn là Android và iOS Nó đã được sử dụng bởi nhiều ứng dụng phô biến như

New York Times, Alibaba, Todoist, eBay Motors, Le Figaro va con nhiều hơn nữa Với các tính năng mạnh mẽ và tích hợp đễ dàng, Firebase là một lựa chọn phổ biến cho các nhà phát triển ứng dụng trên toàn thé giới

Trang 21

2.2.2 Tinh nang cia Google Firebase

e Nhom tinh nang Build (Xay dung)

Đây là nhóm tính năng mở rộng của Firebase cung cấp một loạt các thành phan cho phép các nhà phát triển tùy chỉnh và quản lý các yêu cầu ứng đụng của mình một cách linh hoạt Firebase bao gồm hai cơ sở dữ liệu khác nhau và một số tính năng khác để lưu trữ, xử lý, xác thực và học máy, .:

- Database: Trong Firebase có 2 CSDL bao gồm Cloud Firestore và Realtime Database:

+ Cloud Firestore: là một CSDL NoSQL dựa trên đâm mây để lưu trữ

và đồng bộ hóa dữ liệu có thể truy cập từ ứng dụng di động hoặc Web

Nó được sử dụng với nhiều ngôn ngữ lập trình khác nhau như Unity, C++, Java, Node.js, Cloud Firestore cung cấp nhiều tính năng mạnh mẽ, bao gồm API REST và RPC, và hướng đến việc cung cấp hiệu suất tôi ưu, cùng với độ tin cậy cao

+ Firebase Realtime Database: la mét CSDL thoi gian thực trên dam mây cho phép lưu trữ đữ liệu dưới dạng JSON và đồng bộ hóa dữ liệu thời gian thực với các client Nó cho phép ứng dụng nhận được các bản cập nhật và dữ liệu mới nhất do đữ liệu luôn được đồng bộ với máy chủ trên đâm mây khi có kết nối Internet Điều đặc biệt là nó còn lưu trữ một bản sao đữ liệu trên máy của client để có thế truy cập được khi ứng đụng ngoại tuyến và khi kết nỗi Internet sẽ được đồng

bộ ngay

- Hoc may: Firebase cung cap cac API Machine Learning dé hé tro cho cac ứng dụng trong việc nhận dạng giọng nói, hình ảnh và các tác vụ khác

Trang 22

liên quan đến Machine Learning Diéu đặc biệt ở đây là các nhà phát triển không cân có kiên thức chuyên sâu về Machine Learning đề sử dụng

Authentication: Authenticatlon trong Firebase là một dịch vụ quản lý người dùng đơn giản và bảo mật Nó cung cấp các phương pháp xác thực qua Email, Google va Facebook Viéc xác thực được tích hợp với các dich vu Firebase khac va su dung OpenID Connect va OAuth 2.0 Ngoai

ra, nó cũng cho phép tích hợp các chương trình phụ trợ tùy chỉnh đề đáp ứng nhu câu cụ thê của ứng dụng

Cloud Messaging: là một địch vụ cho phép gửi tin nhắn đa nền tảng, giúp chủ sở hữu ứng dụng thông báo cho các người dùng nếu dữ liệu đã được đồng bộ Dịch vụ này cho phép gửi tin và thông báo đến người dùng trên các nền tang Android, iOS va Web Cloud Messaging dam bao viéc truyền tải thông điệp nhanh chóng và hiệu quả cho người dùng

Cloud Storage: là một dịch vụ lưu trữ dữ liệu trên đám mây, cho phép người dùng lưu trữ và chia sẻ nội dung được tạo ra bởi họ với chi phí tiết kiệm và đơn giản Dịch vụ này hỗ trợ việc lưu trữ nhiều loại tệp, bao gồm

ca hinh anh, video và tệp âm thanh

Hosting: Hosting là một tính năng của Firebase giúp đơn giản hóa việc lưu trữ các trang web và các tệp tĩnh Nó cung cấp một giao diện đễ sử dung dé quan ly va phan phối nội dung trên các trang web hiện đại với các công cụ thực hiện có tính năng cao, bao gồm ca HTTP/2, SSL và CDN

Emulator Suite: Đây là một bộ giả lập cục bộ, giúp cho các nhà phát triển

có thê kiểm tra mã code của mình một cách dễ dàng Các nhà phát triển

có thê sử dụng Emulator Suite đê thực hiện các bài kiêm tra chức năng,

Trang 23

debug, và xác minh tính đúng đắn của mã code trước khi triển khai ứng dụng lên môi trường thực tế

Trang 24

¢ Nhom tinh nang Release and Monitor (Phat hanh va giam sat)

Firebase cung cấp tính năng Release and Monitor giúp cho các nhà phát triển chuẩn bị cho việc phát hành ứng dụng Các tính năng này bao gồm các công cụ kiêm tra, phân tích đề đảm bảo trải nghiệm mượt mà cho người dùng Các tính năng nay giúp cho việc giảm sát và phân tích các hoạt động của người dùng, thu thập thông tin về lỗi và cho phép phân phối ứng dụng trên nhiều kênh khác nhau một cach dé dang:

- Crashlytics: Crashlytics la m6t céng cy giúp theo dõi và lưu trữ thông tin lỗi của ứng dụng một cách chỉ tiết Nó giúp định vị, phân tích và cung cấp thông tin về các lỗi xảy ra trong quá trình sử dụng ứng dụng

- Analytics: Analytics la m6t tinh nang trong Firebase giup phan tích các thuộc tính và hành vi của người dùng Cung cấp cho nhà phát triển bảng điều khiến đề theo dõi và đánh giá hiệu suất của ứng dụng Công cụ này thu thập thông tin về các sự kiện và tạo ra báo cáo chi tiết

- Performance Monitoring: giúp chân đoán và giải quyết các vấn đề liên quan đến hiệu suất của ứng dụng Nó cho phép theo dõi và đo lường các chỉ số quan trọng như thời gian phản hồi, thời gian tải trang, thời gian xử

lý yêu câu mạng, và nhiêu hơn nữa

- Test Lab: Test Lab la mot tính năng trong Firebase cho phép tự động chạy và tùy chỉnh các bài kiểm tra cho ứng dụng trên nhiễu thiết bị ảo và thiết bị vật lý khác nhau Tính năng này cho phép người dùng kiểm tra các ứng đụng iOS và Android của mình trên nhiều thiết bị và cấu hình thiết bị khác nhau với một thao tác đơn giản

Trang 25

App Distribution: cho phép nhà phát triển phát hành ứng dụng thử nghiệm beta cho các nhà phát triển khác hoặc những người tham gia được

chỉ định trên cả hai nền tảng iOS và Android

Nhóm tinh nang Engage (Tương tác)

Tương tác là bộ tính năng của Firebase cho phép chủ sở hữu ứng dụng và nhóm phát triển tiếp cận và thu hút khách hàng Nó có một số công cụ nâng cao đề tăng cường quá trình tương tác của người dùng:

Remote Conñg: cho phép nhà phát triển thay đôi giao diện, cấu hình tính năng và phạm vi các đối tượng được áp dụng mà không cần phải cập nhật ứng dụng trực tiếp Nó giúp cho việc triển khai các tính năng mới, thử nghiệm và đưa ra quyết định về sản phâm nhanh hơn

Predictions: cho phép tạo ra một nhóm người dùng năng động dựa trên hành vi dự đoán Điều này giúp nhà phát triển nhắm mục tiêu các đối tượng người dùng cho các sản phẩm khác nhau, chẳng hạn như thông báo hoặc cấu hình từ xa Dựa trên dữ liệu và mô hình học máy, Predictions giúp dự đoán và gợi ý hành vi của người dùng, từ đó tăng cường trải nghiệm và tương tác giữa người dùng và ứng dụng

Dynamic Links: cho phép sử dụng các liên kết động để cung cấp trải nghiệm tương tác cho người đùng Đây là các liên kết được tạo ra dựa trên các thông tin và hành vi của người dùng, cho phép chuyên hướng người dùng đến nội dung, trang web hoặc ứng dụng cụ thê

Invites: cho phép người dùng chia sẻ mã giới thiệu hoặc nội dung yêu thích trên ứng dụng thông qua email và SMS Điều này giúp người dùng

dễ dàng mời bạn bè, đồng nghiệp hoặc người thân tham gia và trải nghiệm Người dùng có thế gửi lời mời qua email hoặc tin nhắn văn bản,

Trang 26

và các mã giới thiệu đặc biệt sẽ được tạo ra đề theo dõi và xác dinh nguon chia sẻ

Trang 27

2.2.3 Uu điểm của Google Firebase

Đăng ký nhanh chóng bằng tài khoản google và sử dụng một cách dễ dàng

Tốc độ phát triển nhanh: Giúp các nhà phát triển có thê quản lý, giảm thời gian cần thiết để hoàn thành công viêc Do thông thường cần có một Backend Developer va mét Frontend Developer cing nhau phat trién ing dụng và đôi lúc sẽ có những lỗi và sự cô không mong muốn Firebase giúp giải quyết vấn đề này, chỉ cần một Frontend Developer cùng với Firebase va Firestore la c6 thé hoan thành tốt tât cả công việc

Nhiều địch vụ trong một nền tảng: Cung cấp hai tùy chọn CSDL là Ftrestore và Realtime Database, cho phép người dùng thực hiện lưu trữ Cloud Media, phát triển ứng đụng không cần máy chủ thông qua việc tích hợp Cloud Function

Được cung cấp bởi Google: một trong những ông lớn dẫn đầu trong giới công nghệ nên độ uy tín rất cao và hiện tại Firebase cũng là một phần của Google Cloud Platform

Tập trung vào phát triển giao điện người dùng: Firebase đảm nhiệm phần Backend theo một công nghệ duy nhất và dễ học, từ đó giúp nhà phát triển có thêm thời gian để tập trung vào việc phát triển giao điện người dùng

Firebase không có máy chủ: Người dùng sẽ không cần phải lo lắng về cơ

sở hạ tầng máy chủ do Firebase cung cấp môi trường không cần máy chủ

Trang 28

Hoc may (Machine Learning): Cung cấp những API cho các tính năng khác nhau của nền tảng di động như nhận diện khuôn mặt, nhận dạng văn bản, quét mã vạch,

Theo dõi lỗi: Tính năng Crashlytics là một công cụ đùng để tìm và khắc phục sự cô một cách nhanh chóng

Sao lưu: Sử dụng Firebase sao lưu một cách thường xuyên và đảm bao tính có săn Chức năng này cũng giúp cho thông tin và dữ liệu được bảo mật một cách an toàn nhật

2.2.4 Hạn chế của Google Firebase

Không phải mã nguồn mở: Người dùng không thê sửa đôi được mã nguôn Firebase và không có quyên truy cập mã nguồn Đề làm được điều nay thì toàn bộ Backend cần phải được xây đựng lại từ đâu

Bị chặn ở nhiều quốc gia: Firebase chính là một Subdomain của Google Trang web chính thức của Firebase hiện tại đang bị chan ở nhiều quốc gia trên thé giới, trong đó có Trung Quốc

Chỉ hoạt động với CSDL NoSQL: Với Firebase, người dùng không thể

xử lý nhanh chóng việc di chuyên dữ liệu tương tự như cơ sở dữ liệu SỌL đơn giản Firebase sử dụng JSON và hầu như không có tính nang SQL nao Vi vậy, việc di chuyên tử cơ sở dữ liệu sẽ không dê dàng

Chỉ chạy trên Google Cloud: Firebase trở thành một phần của Google và tất cả cơ sở hạ tầng của ứng dụng đều hoạt động trên Google Cloud Người đùng không thê chạy ứng dụng trên những đơn vị cung cấp đám mây khác

Truy vân chậm

Trang 29

- Gia thanh kha dat va khéng 6n dinh

Trang 30

Khi xây dựng ứng dụng đa nền tảng với SDK iOS, Android va JavaScript, tat

cả các client sẽ chia sẻ cùng một phiên bản Realtime Database và tự động cập nhật với dữ liệu mới nhất Điều này rất hữu ích cho các ứng dụng yêu cầu đồng bộ trạng thái giữa các thiết bị trong thời gian thực Đặc biệt, nó cho phép xây đựng các client

đa nên tảng và tất cả các client này sẽ chia sẻ cùng một cơ sở dữ liệu từ Firebase và

tự động cập nhật khi có sự thay đôi trong cơ sở đữ liệu

Realtime Database đã tồn tại lâu đời và được người dùng tin tưởng, được chứng minh về tính ổn định Về cách lưu trữ dữ liệu, Realtime Database str dụng một cây JSON lớn Tuy nhiên, Realtime Database có một hạn chế là khả năng truy vấn (sắp xếp, lọc đữ liệu ) kha han ché

Trang 31

21

2.3.2 Tinh nang chinh cia Firebase Realtime Database

- Đồng bộ dữ liệu thời gian thực: Firebase Realtime Database cho phép đồng bộ hóa dữ liệu trong thời gian thực giữa các client và server Khi có bất kỳ thay đôi nào trong cơ sở đữ liệu, nó sẽ được tự động cập nhật ngay lập tức trên tất cả các thiết bị đang kết nối

- Lưu trữ dữ liệu dưới dạng cây JSON: Cơ sở dữ liệu của Firebase Realtime Database str dung cau tric cây JSON để lưu trữ dữ liệu Điều này giúp truy cập và xử lý đữ liệu trở nên nhanh chóng và dễ dàng

- Điều khiển quyền truy cập: Firebase Realtime Database cho phép kiểm soát quyên truy cập dữ liệu Ta có thế xác định quyền truy cập cho từng người dùng, quyền đọc và ghi đữ liệu

- H6 tro da nén tang: Firebase Realtime Database hỗ trợ đa nên tảng, bao gồm Android, iOS và web Điều này cho phép sử dụng cùng một cơ sở

dữ liệu cho các ứng dụng trên các nền tảng khác nhau

- _ Hỗ trợ làm việc offline: Firebase Realtime Database cho phép ứng dụng hoạt động trong chế độ offline Dữ liệu sẽ được lưu trữ và đồng bộ hóa tự động khi thiết bị kết nối lại với mạng

- Khả năng mở rộng: Có thê mở rộng cơ so dir ligu Firebase Realtime bang cách thêm các node mới vào cây dữ liệu Điêu này cho phép mở rộng ứng dụng một cách linh hoạt và thích ứng với sự phát triển của ứng dụng

- Tinh bao mat cao: Firebase Realtime Database str dung cac phuong thirc xác thực mạnh mẽ đề bảo vệ dữ liệu Nó cung cấp các tính năng bảo mật như xác thực người dùng và quản lý quyền truy cập đữ liệu để đảm bảo

an toàn cho ứng dụng

Trang 32

22

2.3.3 Cách thức hoạt động của Firebase Realtime Database

Firebase Realtime Database là một cơ sở đữ liệu đám mây NoSQL được xây dựng để cung cấp khả năng đồng bộ dữ liệu thời gian thực giữa các ứng dụng trên nhiều nền tảng Nó sử dụng giao thức WebSockets đề tạo một kết nối trực tiếp giữa client va server và giữ cho đữ liệu được đồng bộ hóa trong thời gian thực

Khi dữ liệu thay đối trên server, nó sẽ thông báo cho tât cả các client đang kết nôi băng cách gửi một sự kiện "value" chứa dữ liệu mới nhật Tat ca cac client đang kêt nôi với Realtine Database sẽ nhận được thông báo và cập nhật dữ liệu của mình

Các client có thể đọc và shi dữ liệu vào Realtime Database thông qua một API được cung cấp bởi Firebase API này cho phép các client truy cập và chỉnh sửa các node trong cây đữ liệu của Realtime Database Khi đữ liệu thay đổi, Firebase sẽ đảm bảo rằng tất cả các client đang kết nối sẽ nhận được thông báo và cập nhật dữ liệu của mình đề đông bộ với dữ liệu mới nhât

Firebase Realtime Database cho phép các nhà phát triển tùy chỉnh các quy tắc truy cập đề kiểm soát quyên truy cập vào đữ liệu Các quy tắc này có thể được cầu hình đề xác định ai được phép đọc và ghi dữ liệu trong Realtine Database 2.3.4 Cach hién thuc Firebase Reatime Database trong wng dung Android

- Buse 1: Tao mét du an Firebase va két néi ung dung voi Firebase

® - Đăng nhập vào trang web Firebase

¢ Tao mot dự án mới hoặc sử dụng một dự an đã có

e Thêm ứng dụng vào dy án bằng cách cung cấp tên ứng dụng và tên gói

Trang 33

23

Bước 2: Thêm thu vién cua Firebase vao du an bang cach thêm dependencies cua Firebase Realtime Database vao file build gradle Bước 3: Khởi tạo Firebase Realtime Database trong ứng dụng

e Sur dung FirebaseApp dé lay instance cula FirebaseApp

e St dung FirebaseDatabase.getInstance() dé lay instance cula Firebase Realtime Database

Bước 4: Thực hiện các thao tác đọc/ghi dữ liệu

e - Sử dụng instance của Firebase Realtime Database đề lay reference dén node hoac child node can thao tac

e Str dung cac phuong thirc cla DatabaseReference dé doc hoac ghi dit liệu

Bước 5: Đồng bộ dữ liệu thời g1an thực

© Firebase Realtime Database sẽ tự động đồng bộ dữ liệu giữa các client

và server khi đữ liệu thay đôi

® Sử dụng addValueEventI1stener hoặc addChildEventL.1stener dé lang nghe sự kiện thay đổi đữ liệu và cập nhật UI của ứng dụng

Bước 6: Điều khiến quyền truy cập dữ liệu bằng cách sử dụng luật bảo mật Firebase Realtime Database đề xác định ai được phép đọc và ghi đữ

liệu

Bước 7: Hỗ trợ offline và đồng bộ đữ liệu khi kết nối lại mạng e© - Sử dụng keepSynced đề đồng bộ đữ liệu khi có kết nỗi mạng

Trang 34

24

¢ Su dung runTransaction đề thực hiện các thao tác đồng bộ dữ liệu khi offline

Trang 35

25

2.4 Firebase Authentication 2.4.1 Gidi thiéu vé Firebase Authentication

Firebase Authentication la mét dich vu backend duoc cung cap bởi Firebase, giúp cho việc xác thực người dùng trên các ứng dụng hay website trở nên dễ dang

và an toàn hơn Xác thực người dùng là một phần quan trọng trong việc lưu trữ đữ liệu của người dùng trên đám mây và cung cấp trải nghiệm cá nhân hóa giỗng nhau trên tât cả các thiệt bị của người dùng

Firebase Authentication hỗ trợ xác thực băng nhiều phương thức khác nhau như mật khâu, số điện thoại, các bên thứ ba nhận dạng liên kết phổ biến như Google, Facebook, Twitter, v.v Firebase Authentication cung cấp SDK dễ sử dụng

và thư viện UI duoc tạo san dé xác thực người dùng với ứng dụng

Ngoài ra, Firebase Authentication tích hợp chặt chẽ với các dich vụ Firebase khác và sử dụng các tiêu chuân như OAuth 2.0 và OpenID Connect, đo đó có thê dễ dàng tích hợp vào backend của ứng dụng Khi nâng cấp lên Firebase Authentication với nền tảng Identity, các tính năng bố sung sẽ được mở khóa chắng hạn như xác thực đa yếu tố, chức năng chặn, hoạt động của người dùng và kiểm tra đăng nhập,

hỗ trợ SAML và OpenID Connect chung và hỗ trợ ở cấp độ doanh nghiệp

2.4.2 Tinh nang chinh cia Firebase Authentication

- Pang ky va đăng nhập người dùng: Firebase Authentication cung cấp các phương thức đăng ký và đăng nhập người dùng thông qua nhiều phương thức xác thực như Email/Password, Số điện thoại, Google, Facebook, Twitter và GitHub Người dùng có thể tạo tài khoản mới hoặc đăng nhập bằng các tài khoản đã tỒn tại

Trang 36

26

Xac thuc nguoi dung: Firebase Authentication cho phép xac thye ngwoi dùng trước khi truy cập vào các tài nguyên hay thực hiện các hoạt động nhất định Người dùng có thê được xác thực bằng các phương thức đã đăng ký như Email/Password, Số điện thoại hoặc các nhà cung cấp bên thứ ba như Google, Facebook, v.v

Quản lý thông tin người dùng: Firebase Authentication cho phép quản lý thông tin người dùng như tên, ảnh đại diện và thông tin cá nhân khác Người đùng có thế cập nhật thông tin cá nhân của mình thông qua giao điện người dùng hoặc thông qua API

Đặt lại mật khẩu: Firebase Authentication cung cấp chức năng đặt lại mật khâu cho người dùng quên mật khâu Người đùng có thê yêu cầu đặt lại mật khẩu và nhận được liên kết đặt lại qua email hoặc số điện thoại

Quản lý phiên đăng nhập: Firebase Authentication tự động quản lý phiên đăng nhập của người dùng và cung cấp các tính năng như đăng nhập tự động, đăng xuất, kiểm tra trạng thái đăng nhập, v.v

Xác thực theo vai trò: Firebase Authentication cho phép gan vai trò và quyên hạn cho người dùng Bằng cách xác thực theo vai trò, ứng dụng có thê kiếm soát quyền truy cập của người dùng vào các tài nguyên và tính năng khác nhau

Hỗ trợ đa nền tảng: Firebase Authentication hỗ trợ nhiều nền tảng bao gồm Android, ¡iOS và web, cho phép chia sẻ cùng một cơ sở dữ liệu người đùng và quản lý đăng nhập người dùng trên các nền tảng khác nhau

Trang 37

27

- Tinh bao mat cao: Firebase Authentication sử dụng các phương thức bảo mật mạnh mẽ như mã hóa mật khâu, xác thực hai yếu tố và quản lý phiên đăng nhập an toàn đề đảm bảo bảo mật thông tin người dùng

2.4.3 Cách thức hoạt động của Firebase Authentication

Firebase Authentication cung cấp một cách đề xác thực người dùng vào ứng dụng của bạn thông qua việc đăng ký, đăng nhập hoặc xác thực bên thứ ba Các bước chính trong quá trình hoạt động cua Firebase Authentication như sau:

- Bước l1: Người dùng tạo tài khoản hoặc đăng nhập: Người dùng tạo một tài khoản mới hoặc đăng nhập vào tài khoản đã có thông qua email, số điện thoại, tài khoản Google hoặc các mạng xã hội khác

- Bước 2: Firebase Authentication xac thyc thông tin người dùng: Firebase Authentication xác minh thông tin đăng nhập người dùng, bao gồm xác minh email hoặc số điện thoại, xác minh tài khoản Google hoặc xác minh bên thir ba (vi du: Facebook, Twitter, GitHub)

- Buécc 3: Firebase Authentication tao ra ma théng bao xac thyc: Sau khi người dùng đăng nhập thành công, Firebase Authentication tao ra m6t ma thông báo xác thực và trả về cho ứng dụng Mã thông báo này sẽ được sử dụng đề xác thực các hoạt động sau đó

- _ Bước 4: Ứng dụng lưu trữ mã thông báo xác thực: Mã thông báo xác thực được lưu trữ trong ứng dụng đề xác thực các hoạt động của người dùng

- Bước 5: Firebase Authentication xac thyec các hoạt động của người dung:

Mã thông báo xác thực được sử dụng để xác thực các hoạt động của người dùng, chăng hạn như truy cập vào các tính năng chỉ cho phép người dùng đăng nhập, đăng ký hoặc xác thực

Trang 38

28

“ Bước 6: Người dùng đăng xuất: Khi người đùng đăng xuất, mã thông báo xác thực được hủy và không còn được sử dụng để xác thực các hoạt động nữa

2.4.4 Cách hiện thực Firebase Áuthentficafion trong nợ dụng Android

- Bước l: Tạo project Firebase và kết nỗi ứng dụng Android với Firebase

® Truy cap vao trang web Firebase va tạo một proJect mới

e© Tiếp theo, trong Android Studio, mở ứng dụng Android và thêm Firebase vào dự án bang cách thêm mã cấu hình Firebase vào tệp build.gradle (Project) va build.gradle (App)

® Sau do, tai file google-services.json va dat no vao thu muc app

- Buce 2: Thém Firebase Authentication vao dy an

¢ Trong phần Authentication của bảng điều khiến Firebase, bật chức năng Authentication bằng cách chọn phương thức xác thực mà ứng dụng sẽ sử dụng

° Tiếp theo, thém thu vién Firebase Authentication vao dw an Android bang cach thém dependencies vao tép build.gradle (Module: app) - Bước 3: Đăng ký và đăng nhập người dùng

©- Sử dụng các lớp và phương thức của Firebase Authentication API để đăng ký và đăng nhập người dùng

e ĐỀ đăng ký, su dung phuong thức createUserWithEmailAndPassword() đề tạo một tài khoản người dùng mới với địa chỉ email và mật khâu được cung cap

Trang 39

29

e - Đề đăng nhập, sử dụng phuong thie signInWithEmail AndPassword()

đề đăng nhập vào tài khoản người dùng với email và mật khâu

e©_ Để đăng xuất người dùng, sử dụng phương thức sipnOut() để đăng xuất người dùng khỏi ứng dụng

Trang 40

30

PHAN 3 PHAN TICH VA THIET KE

3.1 Khao sat hé thong

Để có thể xây dựng được một ứng dụng tiện lợi, phủ hợp với nhu cầu sử dụng của người dùng, chúng em đã tiến hành khảo sát các ứng dụng có chức năng tương tự trên thị trường để có thê áp đụng vào ứng đụng của mình Các ứng dụng tham khảo gồm Beamin và Loship

3.1.1 Khao sat ing dung Beamin

se Chức năng đăng nhập: Có thể đăng nhập băng số điện thoại (đây là phương thức đăng nhập chính của ứng dụng này) Sau khi điền số điện thoại thì nhập mật khâu Hoặc có thể đăng nhập với Facebook

2325 B @9®.l872% 23:26 B GOFF gw 871% 23:26 B OO F il @71%

a

BAEMIN NONG GION DAY!

Enter your phone number to continue

LOGIN +84

Enter your phone number to — Enter your password continue

Ngày đăng: 01/10/2024, 20:47