Tải bản đầy đủ (.docx) (68 trang)

Tìm hiểu flutter và xây dựng ứng dụng bán hàng (đồ án SE121 l21 PMCL)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.41 MB, 68 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

--------------------

BÁO CÁO CUỐI KỲ
ĐỒ ÁN 1
ĐỀ TÀI: Tìm

hiểu Flutter và xây dựng

ứng dụng bán hàng
Giảng viên hướng dẫn:
Huỳnh Nguyễn Khắc Huy
Sinh viên thực hiện:
Quách Thế Tường

17521243

Huỳnh Văn Thuận

17521108


LỜI CẢM ƠN
Lời đầu tiên, nhóm tác giả xin chân thành cảm ơn q thầy cơ khoa Cơng nghệ Phần
mềm, trường Đại Học Công Nghệ Thông Tin, ĐHQG TP.HCM, đã tận tình hướng dẫn
nhóm trong suốt thời gian qua. Những kiến thức mà thầy cô đã truyền đạt là nền tảng
quan trọng để nhóm có thể hoàn thành đề tài này.
Nhóm tác giả xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc đến thầy Huỳnh


Nguyễn Khắc Huy, cảm ơn thầy đã tận tình hướng dẫn và tạo điều kiện tốt nhất cho nhóm
hoàn thành đề tài này. Những lời động viên, góp ý chân tình của thầy là động lực q báu
để nhóm vượt qua những khó khăn khi tìm hiểu và thực hiện đề tài. Trong thời gian thực
hiện đề tài, nhóm tác giả đã cố gắng vận dụng những kiến thức nền tảng đã học, kết hợp
học hỏi và tìm hiểu công nghệ mới để ứng dụng xây dựng đề tài môn học. Tuy nhiên
trong quá trình thực hiện, do kiến thức và kinh nghiệm cịn nhiều hạn chế, khó tránh khỏi
những thiếu sót. Chính vì vậy, nhóm tác giả rất mong nhận được sự góp ý từ q thầy cơ
để nhóm hoàn thiện thêm những kiến thức mà nhóm đã học tập, làm hành trang q báu
cho nhóm trong cơng việc sau này.
Xin chân thành cảm ơn q thầy cơ !
Nhóm tác giả

Page 1 of 68


NHẬN XÉT
(Của giáo viên hướng dẫn)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Page 2 of 68


MỤC LỤC
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI.............................................................................................................6
1. Lí do chọn đề tài:......................................................................................................................................6
2. Tóm tắt đề tài:...........................................................................................................................................6
3. Mục tiêu của đề tài:..................................................................................................................................7
4. Phương pháp nghiên cứu:.........................................................................................................................7
5. Ý nghĩa và kết quả hướng tới của đề tài:.................................................................................................7
5.1 Về mặt sản phẩm (ứng dụng bán hàng):............................................................................................7

5.2 Về mặt tài liệu:...................................................................................................................................8
CHƯƠNG 2: CÔNG NGHỆ LIÊN QUAN.................................................................................................9
1.

2.

Tìm hiểu về Flutter:..............................................................................................................................9
1.1

Flutter là gì:..................................................................................................................................9

1.2

Tại sao lại là Flutter?....................................................................................................................9

1.3

Đặc điểm nổi bật:.......................................................................................................................10

1.4

Khác biệt so với “anh cả” Android ?.........................................................................................10

Firebase:.............................................................................................................................................11
2.1

Firebase là gì ?...........................................................................................................................11

2.2


Lịch sử phát triển Firebase:.......................................................................................................11

2.3

Cách thức hoạt động của Firebase:............................................................................................12

2.4

Ưu điểm của Firebase:...............................................................................................................13

2.5

Nhược điểm của Firebase:.........................................................................................................13

2.7

Các dịch vụ của Firebase:...........................................................................................................14

CHƯƠNG 3: MƠ HÌNH USECASE..........................................................................................................17
1. Sơ đồ Use case mức tổng quát:..............................................................................................................17
1.1 Nhân viên:........................................................................................................................................17
1.2 Quản lí:.............................................................................................................................................18
2. Danh sách các Use case:........................................................................................................................19
3. Đặc tả Use case:.....................................................................................................................................19
3.1 Use case đăng nhập:.........................................................................................................................19
3.2 Use case đăng xuất:..........................................................................................................................20
3.3 Use case thêm/ sửa/ xóa sản phẩm:.................................................................................................20
3.4 Use case thêm/ sửa/ xóa tài khoản:..................................................................................................21
Page 3 of 68



3.5 Use case thêm/ sửa/ xóa thể loại:.....................................................................................................22
3.6 Use case thêm / sửa/ xóa danh mục:................................................................................................23
3.7 Use case thêm / sửa/ xóa quảng cáo:...............................................................................................24
3.8 Use case xem thơng tin các đơn hàng:............................................................................................25
3.9 Use case tìm kiếm, thống kê các đơn hàng:....................................................................................26
CHƯƠNG 4: PHÂN TÍCH HỆ THỐNG...................................................................................................27
1. Sơ đồ lớp:...............................................................................................................................................27
1.1 Sơ đồ lớp mức phân tích:.................................................................................................................27
1.2 Danh sách các lớp đối tượng:..........................................................................................................28
1.3 Mô tả từng lớp đối tượng:................................................................................................................28
2. Sơ đồ tuần tự:.........................................................................................................................................32
2.1 Đăng nhập/ đăng xuất:.....................................................................................................................32
2.2 Thêm tài khoản:................................................................................................................................33
2.3 Sửa thông tin tài khoản:...................................................................................................................34
2.4 Xóa tài khoản:..................................................................................................................................35
2.5 Thêm quảng cáo:..............................................................................................................................35
2.6 Sửa thơng tin quảng cáo:..................................................................................................................36
2.7 Xóa quảng cáo:.................................................................................................................................37
2.8 Thêm thể loại:...................................................................................................................................37
2.9 Sửa thơng tin thể loại:......................................................................................................................38
2.10 Xóa thể loại:...................................................................................................................................39
2.11 Thêm danh mục:.............................................................................................................................39
2.12 Sửa thơng tin danh mục:................................................................................................................40
2.13 Xóa danh mục:...............................................................................................................................41
2.14 Thêm sản phẩm:.............................................................................................................................41
2.15 Sửa thơng tin sản phẩm:.................................................................................................................42
2.16 Xóa sản phẩm:................................................................................................................................43
2.17 Tìm kiếm – Thống kê hóa đơn:......................................................................................................43
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN......................................................................................................44

1. Giao diện Admin:...................................................................................................................................44
1.1 Login:...............................................................................................................................................44
1.2 Trang chính:......................................................................................................................................45
1.2 Quảng cáo (Sliders):.........................................................................................................................46
Page 4 of 68


1.3 Danh mục (categories):....................................................................................................................48
1.4 Thể loại (brands):.............................................................................................................................50
1.5 Sản phẩm (product):.........................................................................................................................52
1.6 Đơn hàng (order):.............................................................................................................................54
2. Giao diện Client:....................................................................................................................................55
2.1 Login:...............................................................................................................................................55
2.2 Trang chính (Home):........................................................................................................................56
2.3 Danh mục (Categories):...................................................................................................................57
2.4 Thể loại/thương hiệu (Brands):........................................................................................................59
2.5 Drawer:.............................................................................................................................................61
2.6 Chi tiết sản phẩm:.............................................................................................................................62
2.7 Giỏ hàng:..........................................................................................................................................63
2.8 Thanh toán:.......................................................................................................................................64
CHƯƠNG 6: TỔNG KẾT...........................................................................................................................65
1. Kiến thức sử dụng:.................................................................................................................................65
2. Kết quả thử nghiệm:...............................................................................................................................65
3. Kết quả đạt được và hướng phát triển:..................................................................................................66
3.1 Kết quả đạt được:.............................................................................................................................66
3.2 Hướng phát triển:.............................................................................................................................66
CHƯƠNG 7: BẢNG PHÂN CÔNG CÔNG VIỆC...................................................................................67
CHƯƠNG 8: TÀI LIỆU THAM KHẢO...................................................................................................68

Page 5 of 68



CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
1. Lí do chọn đề tài:
Chúng ta có thể nói rằng thế kỷ 21 đã và đang chứng kiến sự phát triển mạnh mẽ
của ngành Công nghệ thông tin. Công nghệ thông tin (CNTT) đã và đang thay đổi thế
giới một cách nhanh chóng và từng bước kéo nền tri thức của nhân loại xích lại gần nhau
hơn. Việc mua bán trao đổi qua các ứng dụng di động ngày càng phát triển và phổ biến.
Ngày nay, ứng dụng di động đã đóng một vai trò quan trọng đối với con người chúng ta
từ giải trí cho đến quảng cáo, thương mại, quản lý...Cụ thể Ứng dụng bán hàng online
(thương mại điện tử) sẽ dần dần thay thế những phương thức kinh doanh cũ trong các
doanh nghiệp bởi tính ưu việt mà Ứng dụng bán hàng online mang lại như: nhanh hơn, rẻ
hơn, tiện dụng hơn, hiệu quả hơn và không bị giới hạn không gian và thời gian.
Ứng dụng bán hàng online giúp người mua có thể chọn mua các món hàng một
cách đơn giản, hiệu quả. Tất cả các công việc điều được thao tác trực tiếp ngay trên ứng
dụng.

2. Tóm tắt đề tài:
Là một trang ứng dụng kinh doanh đồ chơi mô hình. Cửa hàng bán các loại đồ
chơi mô hình như mô hình ô tô, mô tô, siêu nhân, siêu anh hùng, … Với sự phát triển của
công nghệ thông tin nói chung và thương mại điện tử nói riêng dẫn đến nhu cầu của mua
hàng online tăng cao, cửa hàng sẽ gặp khó khăn trong việc quản lý số lượng mặt hàng,
đơn hàng và hoạt động bán hàng. Vì vậy, ứng dụng trước hết là phải giải quyết được các
vấn đề trên. Ứng dụng cho phép kiểm soát tình hình mua bán và số lượng các mặt hàng,
đơn hàng.
Ngoài ra, ứng dụng sẽ được áp dụng chiến lược "2 mức giá" đối với các sản phẩm
có giá trị cao như là mô hình đồ chơi ô tô, mô tô, ... Việc áp dụng sẽ được tiến hành như
sau: sẽ có 2 mức giá khác nhau cho cùng một sản phẩm: (i) một mức giá đi cùng với tất
cả các tùy chọn (giao hàng nhanh, lắp ráp và bảo hành từ MWG) trong khi đó (ii) mức
giá cịn lại sẽ rẻ hơn và khơng có các dịch vụ trên (chỉ đi kèm với bảo hành của hãng).

Page 6 of 68


Tiếp đó là chiến lược tiếp thị hỗn hợp :
+Sản phẩm: Phát triển ứng dụng riêng cho mỗi nước, sản phẩm của hãng tạo ra
là một trang web được tối ưu với các ngơn ngữ khác nhau, cùng với đó là sự trải nghiệm
tốt nhất cho người dùng khi thiết kế ứng dụng dựa vào thói quen sử dụng của khách hang,
chăm chút hình ảnh trên ứng dụng khiến các sản phẩm bán hàng hấp dẫn người mua hơn.
Đặc biệt là đảm bảo chất lượng sản phẩm.
+ Giá cả: Ưu đãi, phù hợp với túi tiền người dùng, ngoài ra sẽ có các chương
trình giảm giá cũng như cái code giảm giá.
+ Các lợi ích khi là thành viên VIP: giảm giá, tăng thời gian bảo hành, không
thu tiền ship, . . .

3. Mục tiêu của đề tài:
√ Xây dựng Ứng dụng bán hàng về các sản phẩm đồ chơi mô hình qua mạng.
√ Nghiên cứu các công nghệ liên quan đến phát triển ứng dụng.
√ Tạo ra ứng dụng (thương mại điện tử) thiết thực và sử dụng được trong thực tế.
√ Nghiên cứu về cách thức mà một Ứng dụng được sử dụng trong kinh doanh
online.
√ Đưa ra các báo cáo và tài tiệu.

4. Phương pháp nghiên cứu:
√ Nghiên cứu một số ứng dụng bán hàng như: Lazada, Shoppe...
√ Nghiên cứu các tài liệu về nghiệp vụ về Quản lí bán hàng và Bán hàng.
√ Phỏng vấn và khảo sát thực tế về cách thức quản lí.
√ Các tài liệu, video hướng dẫn cách thức mua bán, xử lí đơn hàng.

Page 7 of 68



5. Ý nghĩa và kết quả hướng tới của đề tài:
5.1 Về mặt sản phẩm (ứng dụng bán hàng):
√ Tạo ra được ứng dụng bán hàng có thể sử dụng thực thế.
√ Quản lí được các cơng đoạn mua bán một cách nhanh chóng, hiệu quả.
√ Tối ưu hóa về các chi phí về gian hàng, hiệu quả đầu tư cho các shop bán hàng.
5.2 Về mặt tài liệu:
√ Toàn bộ chương trình và bản báo cáo của đề tài sẽ trở thành tài liệu nghiên cứu,
tham khảo nhanh, dễ hiễu cho các bạn yêu thích lĩnh vực Ứng dụng thương mại điện tử
sử dụng Flutter.
√ Có thể sử dụng tài liệu để tham khảo về công nghệ như Flutter, Firebase.

Page 8 of 68


CHƯƠNG 2: CÔNG NGHỆ LIÊN QUAN
1. Tìm hiểu về Flutter:
1.1 Flutter là gì:
√ Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên
iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động với những code sẵn có
được sử dụng bởi các lập trình viên, các tổ chức.
√ Flutter hoàn toàn miễn phí và cũng là mã nguồn mở.
1.2 Tại sao lại là Flutter?
√ Nếu bạn đang tìm kiếm các phương pháp thay thế để phát triển ứng dụng Android, bạn
nên cân nhắc thử Flutter của Google, một framework dựa trên ngôn ngữ lập trình Dart.
√ Các ứng dụng được xây dựng với Flutter hầu như không thể phân biệt với những ứng
dụng được xây dựng bằng cách sử dụng Android SDK, cả về giao diện và hiệu suất. Hơn
nữa, với những tinh chỉnh nhỏ, chúng có thể chạy trên thiết bị iOS.
√ Chạy ở 60 fps, giao diện người dùng được tạo ra với Flutter thực thi tốt hơn nhiều so
với những ứng dụng được tạo ra với các framework phát triển đa nền tảng khác chẳng

hạn như React Native và Ionic. Một số lí do khiến bạn có thể hứng thú với Flutter:
1. Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng
hữu ích như mixin, generic, isolate, và static type.
2. Flutter có các thành phần UI của riêng nó, cùng với một cơ chế để kết xuất chúng
trên nền tảng Android và iOS. Hầu hết các thành phần giao diện người dùng, đều
sẵn dùng, phù hợp với các nguyên tắc của Material Design.
3. Các ứng dụng Flutter có thể được phát triển bằng cách4 sử dụng IntelliJ IDEA,
một IDE rất giống với Android Studio.

Page 9 of 68


1.3 Đặc điểm nổi bật:
√ Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để hiện thị
giao diện tới bạn. Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện
trong vài phút. Ngoài ra Hot Reload cịn giúp bạn thêm các tính năng, fix bug tiết kiệm
thời gian hơn mà không cần phải thông qua máy ảo, máy android hoặc iOS.
√ Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của
Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các
APIs chuyển động, smooth scrolling...
√ Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng
ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và
Android.
1.4 Khác biệt so với “anh cả” Android ?
Chắc hẳn khơng ít người đang thắc mắc, chẳng phải Google đã có bộ SDK cho di động,
có tên gọi Android rồi hay sao. Nhưng với Google, thế giới mobile là quá rộng chỉ với
một giải pháp duy nhất là Android. Với việc ra mắt phiên bản beta 1 này, giờ đây họ có
trong tay hai bộ SDK cho ứng dụng di động: Android và Flutter. Và điểm khác biệt cơ
bản giữa Flutter và Android: tạo ra các ứng dụng chạy trên cả iOS và Android.
Là một bộ SDK đa nền tảng, các ứng dụng Flutter có thể hoạt động trên cả iOS và

Android. Nó như một thủ thuật khơn khéo để tương thích được với framework UI trên cả
hai hệ điều hành này. Các ứng dụng Flutter không biên dịch trực tiếp với các ứng dụng
native của Android và iOS.
Thay vào đó, chúng chạy trên engine render Flutter (được viết bằng C++) và Flutter
Framework (được viết bằng Dart, cũng như các ứng dụng Flutter), cả hai bộ này đều
được đóng gói cùng với mọi ứng dụng. Sau đó bộ SDK sẽ đóng gói lại vào trong một ứng
dụng để sẵn sàng chạy trên mỗi nền tảng. Bạn tạo ra ứng dụng của mình, một engine mới
sẽ chạy các đoạn code của Flutter, và các đoạn code native vừa đủ để nền tảng Flutter
chạy trên cả Android và iOS.

Page 10 of 68


Đóng gói cả một engine đi kèm cùng ứng dụng sẽ làm cho kích thước bộ cài đặt lớn hơn
hẳn. Trang Hỏi đáp của Flutter cho biết, một ứng dụng “trống” thông thường sẽ chỉ
khoảng 6-7MB trên Android, vì vậy dù là ứng dụng nào, phần kích thước tăng lên cũng là
rất nhiều. Nhưng lợi ích của việc này là các ứng dụng Flutter sẽ rất nhanh.
Flutter được thiết kế từ đầu để đạt tới tốc độ khung hình 60fps. Trong khi đây không phải
là một con số hiếm gặp trên iOS, nhưng với Android, bạn có thể cảm thấy sự khác biệt rõ
rệt ngay lập tức. Cũng nhờ việc xuất xưởng cùng với cả một nền tảng cho ứng dụng của
mình, các nhà phát triển sẽ tránh được nhiều vấn đề về sự phân mảnh của Android.

2. Firebase:
2.1 Firebase là gì ?
Firebase là một nền tảng để phát triển ứng dụng di động và trang web, bao gồm các API
đơn giản và mạnh mẽ mà không cần backend hay server.Nó cịn giúp các lập trình viên
rút ngắn thời gian triển khai và mở rộng quy mô của ứng dụng mà họ đang phát triển.
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó
là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng
lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Cụ thể là những

giao diện lập trình ứng dụng API đơn giản. Mục đích nhằm tăng số lượng người dùng và
thu lại nhiều lợi nhuận hơn.
Đặc biệt, còn là dịch vụ đa năng và bảo mật cực tốt. Firebase hỗ trợ cả hai nền tảng
Android và IOS. Khơng có gì khó hiểu khi nhiều lập trình viên chọn Firebase làm nền
tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người dùng trên toàn thế giới.
2.2 Lịch sử phát triển Firebase:
Gần một thập niên trước, Firebase ra đời với tiền thân là Envolve. Đây là một nền tảng
đơn giản chuyên cung cấp những API cần thiết để tích hợp tính năng chat vào trang web.
Bên cạnh ứng dụng nhắn tin trực tuyến, Envolve còn được người dùng sử dụng để truyền
và đồng bộ hóa dữ liệu cho những ứng dụng khác như các trị chơi trực tuyến,… Do đó,

Page 11 of 68


các nhà sáng lập đã tách biệt hệ thống nhắn tin trực tuyến và đồng bộ dữ liệu thời gian
thực thành hai phần riêng biệt.
Trên cơ sở đó, năm 2012, Firebase ra đời với sản phẩm cung cấp là dịch vụ Backend-asa-Service. Tiếp đến, vào năm 2014, Google mua lại Firebase và phát triển nó thành một
dịch vụ đa chức năng được hàng triệu người sử dụng cho đến hiện nay.

2.3 Cách thức hoạt động của Firebase:
2.3.1 Firebase realtime database:
Khi đăng ký một tài khoản trên Firebase để tạo ứng dụng, bạn đã có một cơ sở dữ liệu
thời gian thực. Dữ liệu bạn nhận được dưới dạng JSON. Đồng thời nó cũng ln được
đồng bộ thời gian thực đến mọi kết nối client.
Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ sở dữ liệu.
Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình viên phát triển
ứng dụng. Cuối cùng, tất cả các dữ liệu này được truyền qua kết nối an toàn SSL có bảo
mật với chứng nhận 2048 bit.
Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local, vì thế khi có mọi sự thay đổi
nào đều được tự động cập nhật lên Server của Firebase. Bên cạnh đó, đối với các dữ liệu

ở local cũ hơn với Server thì cũng tự động cập nhật để được dữ liệu mới nhất.
2.3.2 Fire Authentication:
Hoạt động nổi bật của Firebase là xây dựng các bước xác thực người dùng bằng Email,
Facebook, Twitter, GitHub, Google. Đồng thời cũng xác thực nặc danh cho các ứng dụng.
Hoạt động xác thực có thể giúp thông tin cá nhân của người sử dụng được an toàn và đảm
bảo không bị đánh cắp tài khoản.
2.3.3 Firebase hosting:
Firebase cung cấp các hosting được phân phối theo tiêu chuẩn SSL từ mạng CDN.

Page 12 of 68


CDN viết tắt của Content Delivery Network là mạng lưới máy chủ lưu giữ bản sao của
các nội dung tĩnh bên trong website và phân phối đến nhiều máy chủ PoP. Mạng lưới
máy chủ CDN được đặt ở khắp mọi nơi trên toàn cầu. Từ PoP (Points of Presence), dữ
liệu sẽ tiếp tục được gửi đến người dùng cuối. Thông qua CDN, bản sao nội dung trên
máy chủ gần nhất sẽ được trả về cho người dùng khi họ truy cập website.

2.4 Ưu điểm của Firebase:
2.4.1 Triển khai ứng dụng nhanh chóng:
Bởi khơng phải quan tâm đến phần backend cùng các API tốt, hỗ trợ đa nền tảng,
Firebase tiết kiệm rất nhiều thời gian quản lý và đồng bộ tất cả dữ liệu cho người dùng.
Song song đó, nó cịn cung cấp hosting và hỗ trợ xác thực thông tin khách hàng khiến
việc triển khai ứng dụng nhanh chóng hơn.
2.4.2 Bảo mật:
Hoạt động trên nền tảng đám mây cloud, sử dụng kết nối thông qua giao thức bảo mật
SSL và cho phép phân quyền người dùng cơ sở dữ liệu bằng Javascript, các đặc điểm này
của Firebase giúp nâng cao độ bảo mật cho các ứng dụng.
2.4.3 Sự ổn định:
Hầu hết các ứng dụng trên nền tảng Firebase luôn hoạt động ổn định vì chúng được viết

dựa trên nền tảng cloud cung cấp bởi Google. Hơn nữa, nhờ Firebase mà việc nâng cấp
hay bảo trì Server cũng diễn ra khá đơn giản mà không cần phải dừng lại.
2.5 Nhược điểm của Firebase:
“Firebase” chính là phần Realtime Database, đúng hơn chỉ là phần Database. Cơ sở dữ
liệu của họ được tổ chức theo kiểu trees, parent-children, không phải là kiểu Table nên
những ai đang quen với SQL có thể sẽ gặp khó khăn từ mức đơi chút tới khá nhiều.

Page 13 of 68


2.7 Các dịch vụ của Firebase:
2.7.1 Nhóm cơng cụ Firebase Develop & Test Your App:
Nhóm cơng cụ này – hay cịn gọi là cơng cụ phát triển và kiểm thử các ứng dụng được
thiết kế, bao gồm các dịch vụ nổi bật sau:
Realtime Database
Realtime Database: là dịch vụ lưu trữ và đồng bộ dữ liệu người dùng thời gian thực. Có
hỗ trợ cho Android, IOS, Web, C++, Unity và Xamarin. Người dùng có thể lưu trữ và lấy
dữ liệu từ máy chủ rất dễ dàng.
Crashlytics
Crashlytics: là hệ thống theo dõi và lưu trữ thông tin lỗi của ứng dụng. Các thông tin lỗi
sẽ được thu thập triệt để và trình bày hợp lý. Từ mỗi chu trình hoạt động đến khi xảy ra
lỗi.
Cloud Firestore
Cloud Firestore: là dịch vụ lưu trữ và đồng bộ dữ liệu giữa người dùng và thiết bị quy
mô toàn cầu. Dịch vụ sử dụng NoSQL được lưu trữ trên hạ tầng cloud.
Authentication
Authentication: là dịch vụ quản lý người dùng đơn giản và an toàn. Authentication cung
cấp nhiều phương pháp xác thực email và mật khẩu Google, Facebook.
Cloud Functions
Cloud Functions: là dịch vụ mở rộng ứng dụng bằng mã phụ trợ tùy chỉnh mà không cần

quản lý và quy mô các máy chủ riêng.
Cloud Storage
Cloud Storage: là dịch vụ có khả năng lưu trữ và chia sẻ nội dung do người dùng tạo ra
như hình ảnh, âm thanh và video với bộ nhớ mạnh, đơn giản và tiết kiệm chi phí được
xây dựng cho quy mơ của Google.

Page 14 of 68


Test Lab for Android
Test Lab for Android: là công cụ tự động chạy thử và tùy chỉnh cho ứng dụng trên các
thiết bị ảo và vật lý của Google cung cấp.
Performance Monitoring
Performance Monitoring: là dịch vụ có khả năng chẩn đoán các vấn đề xảy ra với hiệu
suất ứng dụng.
2.7.2 Nhóm cơng cụ Firebase Grow & Engage Your Audience:
Google Analytics
Google Analytics sẽ phân tích thuộc tính và hành vi của người sử dụng trong bảng điều
khiển. Cuối cùng sẽ đưa ra quyết định về lộ trình xây dựng ứng dụng. Ngoài ra nó cịn
nhận thơng tin về thời gian thực từ báo cáo cho đến việc xuất dữ liệu sự kiện thơ
tới Google BigQuery để phân tích tùy chỉnh.
Cloud Messaging
Cloud Messaging là dịch vụ gửi tin, thơng báo miễn phí đến user trên nền tảng Android,
IOS và Web. Bạn có thể gửi tin nhắn đến các nhóm thiết bị, chủ đề hoặc phân đoạn người
dùng cụ thể. Đây là công cụ gửi hàng tỷ thư mỗi ngày trên ứng dụng lớn nhỏ.
Predictions
Là cơng cụ tạo ra nhóm người dùng năng động dựa trên hành vi dự đoán. Họ là đối tượng
nhắm mục tiêu trong các sản phẩm khác như thông báo, cấu hình từ xa…
Firebase Dynamic Links
Được áp dụng trên Android, IOS và Web, dịch vụ này sử dụng liên kết động để cung cấp

trải nghiệm người dùng, hỗ trợ web di động thúc đẩy chuyển đổi ứng dụng gốc, người
dùng chia sẻ người dùng, các chiến dịch xã hội và tiếp thị…
Remote Config
Là dịch vụ tùy chỉnh cách ứng dụng khi hiển thị cho mỗi người dùng. Nó được dùng để
thay đổi giao diện, triển khai dần dần các tính năng, chạy thử nghiệm A/B, cung cấp nội

Page 15 of 68


dung tùy chỉnh cho người dùng hoặc thực hiện các cập nhật khác mà không cần triển khai
phiên bản mới nhất từ bảng điều khiển.
Invites
Là công cụ cho phép người dùng chia sẻ mã giới thiệu, nội dung yêu thích trên ứng dụng
qua email và SMS. Dịch vụ này kết hợp với Google Analytics for Firebase để bạn biết
thời điểm người dùng mở hay cài đặt ứng dụng qua lời mời.
App Indexing
Dịch vụ tích hợp với cơng cụ tìm kiếm Google giúp thu hút người dùng đã sử dụng các
ứng dụng trước.
AdMob
Đây là công cụ hiển thị quảng cáo hấp dẫn giúp lập trình viên kiếm tiền hiệu quả. Ngoài
ra, dịch vụ này có thể thực hiện các chiến lược kiếm tiền trên lớp bậc nhất và tối đa hóa
doanh thu do mỗi người dùng tạo ra.
AdWords
AdWords giúp có được thông tin và thu hút người dùng. Điều này thực hiện bằng cách
chạy các quảng cáo trên tìm kiếm, hiển thị và video. Ngoài ra, bạn có thể cải thiện nhắm
mục tiêu quảng cáo, tối ưu hiệu suất chiến dịch của bạn.

Page 16 of 68



CHƯƠNG 3: MƠ HÌNH USECASE
1. Sơ đồ Use case mức tổng quát:
1.1 Nhân viên:

Page 17 of 68


1.2 Quản lí:

Page 18 of 68


2. Danh sách các Use case:
STT
1
2

Tên Use case
Đăng nhập
Đăng xuất

Ý nghĩa, ghi chú
Đăng nhập tài khoản vào hệ thống
Thoát tài khoản khỏi hệ thống
Thêm/ xóa/ sửa thơng tin sản phẩm vào

3

Thêm/ xóa/ sửa sản phẩm


4

Thêm/ sửa/ xóa tài khoản

5

Thêm/ sửa/ xóa thể loại

6

Thêm/ sửa/ xóa danh mục

7

Thêm/ sửa/ xóa quảng cáo

8

Xem thông tin của các đơn hàng

9

Tìm kiếm – Thống kê đơn hàng

danh sách các sản phẩm
Thêm/ xóa/ sửa thơng tin tài khoản của hệ
thống quản lí
Thêm/ xóa/ sửa thơng tin thể loại vào danh
sách danh sách các thể loại mơ hình
Thêm/ xóa/ sửa thơng tin thương hiệu vào

danh sách các thể loại mơ hình
Thêm/ xóa/ sưa thơng tin quảng cáo vào
danh sách quảng cáo
Xem thông tin của danh sách đơn hàng và
chi tiết đơn hàng đó
Tìm kiếm và thống kê các đơn hàng trong
một ngày hoặc khoảng ngày nhất định

3. Đặc tả Use case:
3.1 Use case đăng nhập:
Mô tả
Tác nhân

Luồng chính

Luồng thay thế

Use case đăng nhập
Nhân viên/quản lí đăng nhập vào tài khoản
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Nhân viên/quản lí đến trang
2. Hiển thị form đăng nhập cho
đăng nhập
3. Điền tên tài khoản và mật

nhân viên
4. Kiểm tra tên tài khoản và mật


khẩu vào form

khẩu
5. Chuyển đến trang chủ của

trang quản lí
A1. Người dùng nhập sai tài khoản, mật khẩu
5. Yêu cầu đăng nhập lại
Quay lại bước 2
Page 19 of 68


Điều kiện trước
Điều kiện sau

Phải là nhân viên/quản lí của cửa hàng và có tài khoản trên hệ
thống
Đã đăng nhập vào hệ thống

3.2 Use case đăng xuất:
Mơ tả
Tác nhân
Luồng chính

Use case đăng xuất
Nhân viên/quản lí thoát khỏi tài khoản của mình trên hệ thống
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Nhân viên/quản lí nhấn chọn 2. Hiển thị về trang đăng nhập

đăng xuất

Luồng thay thế
Điều kiện trước
Điều kiện sau

Đã đăng nhập vào hệ thống
Đăng xuất tài khoản trên hệ thống

3.3 Use case thêm/ sửa/ xóa sản phẩm:
Mơ tả
Tác nhân

Use case thêm/ sửa/ xóa sản phẩm
Nhân viên/quản lí thực hiện thêm/ sửa/ xóa sản phẩm
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí sản phẩm
2. Hiển thị giao diện danh sách
3. Chọn nút thêm sản phẩm

Luồng chính

phẩm
5. Nhập thơng tin sản phẩm
muốn thêm
6. Chọn nút đồng ý thêm

Luồng thay thế


sản phẩm
4. Hiển thị giao diện thêm sản

7. Kiểm tra hợp lệ các thông tin

sản phẩm
8. Lưu vào cơ sở dữ liệu
A1. Thông tin sản phẩm không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin sản phẩm
3. Chọn nút sửa thông tin sản phẩm
Hiển thị giao diện sửa thông tin sản phẩm
Page 20 of 68


Quay lại bước 7
A3. Xóa sản phẩm
3. Chọn nút xóa sản phẩm
Xóa sản phẩm khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
Điều kiện trước
Điều kiện sau

diện quản lí
Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công

3.4 Use case thêm/ sửa/ xóa tài khoản:
Mơ tả

Tác nhân

Use case thêm/ sửa/ xóa tài khoản
Quản lí thực hiện thêm/ sửa/ xóa tài khoản
Quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí tài khoản
2. Hiển thị giao diện danh sách
3. Chọn nút thêm tài khoản

Luồng chính

khoản
5. Nhập thơng tin tài khoản
muốn thêm
6. Chọn nút đồng ý thêm

Luồng thay thế

Điều kiện trước
Điều kiện sau

tài khoản
4. Hiển thị giao diện thêm tài

7. Kiểm tra hợp lệ các thông tin

tài khoản
8. Lưu vào cơ sở dữ liệu

A1. Thông tin sản phẩm không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin tài khoản
3. Chọn nút sửa thông tin tài khoản
Hiển thị giao diện sửa thông tin tài khoản
Quay lại bước 7
A3. Xóa tài khoản
3. Chọn nút xóa tài khoản
Xóa tài khoản khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
diện quản lí
Quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công

Page 21 of 68


3.5 Use case thêm/ sửa/ xóa thể loại:
Mơ tả
Tác nhân

Use case thêm/ sửa/ xóa thể loại
Nhân viên/quản lí thực hiện thêm/ sửa/ xóa thể loại
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí thể loại
2. Hiển thị giao diện danh sách
3. Chọn nút thêm thể loại


Luồng chính

loại
5. Nhập thơng tin thể loại muốn
thêm
6. Chọn nút đồng ý thêm

Luồng thay thế

Điều kiện trước
Điều kiện sau

thể loại
4. Hiển thị giao diện thêm thể

7. Kiểm tra hợp lệ các thông tin

thể loại
8. Lưu vào cơ sở dữ liệu
A1. Thông tin thể loại không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin thể loại
3. Chọn nút sửa thông tin thể loại
Hiển thị giao diện sửa thông tin thể loại
Quay lại bước 7
A3. Xóa thể loại
3. Chọn nút xóa thể loại
Xóa thể loại khỏi cơ sở dữ liệu và cập nhật danh sách trên giao diện
quản lí

Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành cơng

3.6 Use case thêm / sửa/ xóa danh mục:
Mơ tả
Tác nhân
Luồng chính

Use case thêm/ sửa/ xóa danh mục
Nhân viên/quản lí thực hiện thêm/ sửa/ xóa danh mục/thương hiệu
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí danh mục
2. Hiển thị giao diện danh sách
3. Chọn nút thêm danh mục

danh mục
4. Hiển thị giao diện thêm danh
mục

Page 22 of 68


5. Nhập thông tin danh mục
muốn thêm
6. Chọn nút đồng ý thêm

Luồng thay thế


Điều kiện trước
Điều kiện sau

7. Kiểm tra hợp lệ các thông tin

danh mục
8. Lưu vào cơ sở dữ liệu
A1. Thông tin danh mục không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin danh mục
3. Chọn nút sửa thông tin danh mục
Hiển thị giao diện sửa thông tin danh mục
Quay lại bước 7
A3. Xóa danh mục
3. Chọn nút xóa thể loại
Xóa danh mục khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
diện quản lí
Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành cơng

3.7 Use case thêm / sửa/ xóa quảng cáo:
Mơ tả
Tác nhân

Use case thêm/ sửa/ xóa quảng cáo
Quản lí thực hiện thêm/ sửa/ xóa quảng cáo
Quản lí
Hành vi của tác nhân
Hành vi của hệ thống

1. Chọn mục quản lí quảng cáo
2. Hiển thị giao diện danh sách
3. Chọn nút thêm quảng cáo

Luồng chính

cáo
5. Nhập thơng tin quảng cáo
muốn thêm
6. Chọn nút đồng ý thêm

Luồng thay thế

quảng cáo
4. Hiển thị giao diện thêm quảng

7. Kiểm tra hợp lệ các thông tin

quảng cáo
8. Lưu vào cơ sở dữ liệu
A1. Thông tin quảng cáo không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin quảng cáo
Page 23 of 68


3. Chọn nút sửa thông tin quảng cáo
Hiển thị giao diện sửa thơng tin quảng cáo
Quay lại bước 7

A3. Xóa quảng cáo
3. Chọn nút xóa quảng cáo
Xóa quảng cáo khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
Điều kiện trước
Điều kiện sau

diện quản lí
Quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công

3.8 Use case xem thông tin các đơn hàng:
Mô tả
Tác nhân
Luồng chính

Luồng thay thế
Điều kiện trước
Điều kiện sau

Use case xem thơng tin đơn hàng
Nhân viên/quản lí xem thơng tin của các đơn hàng
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí đơn hàng
2. Hiển thị giao diện danh sách
các đơn hàng
A1. Xem thông tin chi tiết của một đơn hàng
3. Chọn mục xem thông tin chi tiết của một đơn hàng
4. Hiển thị cửa sổ thông tin chi tiết của đơn hàng

5. Chọn close để đóng cửa sổ thơng tin chi tiết đơn hàng
Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công

3.9 Use case tìm kiếm, thống kê các đơn hàng:
Mơ tả
Tác nhân

Luồng chính

Luồng thay thế
Điều kiện trước

Use case tìm kiếm – thống kê đơn hàng
Quản lí tìm kiếm – thống kê các đơn hàng
Quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục tìm kiếm – thống
2. Hiển thị giao diện tìm kiếm –
kê các đơn hàng
3. Chọn khoảng thời gian muốn

thống kê các đơn hàng
4. Xuất thông tin các đơn hàng

xuất thông tin các đơn hàng
lên giao diện
A1. Chọn một ngày nhất định muốn xuất thông tin các đơn hàng
3. Chọn một ngày nhất định muốn xuất thông tin các đơn hàng

4. Tìm kiếm thông tin đơn hàng
Quay lại bước 4
Quản lí đã đăng nhập vào hệ thống
Page 24 of 68


×