Giới thiệu về Firebase

Một phần của tài liệu Xây dựng hệ thống Pizza Delivery (Trang 26)

6. Bố cục đề tài

1.3.4. Giới thiệu về Firebase

Đó là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trê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ển nhanh 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.

Tiền thân của Firebase là Envolve, nhà cung cấp cho các nhà phát triển một API cho phép tích hợp chức năng trò chuyện trực tuyến vào trang web của họ. Điều thú vị là mọi người đã sử dụng Envolve để truyền dữ liệu ứng dụng chứ không chỉ là tin nhắn trò chuyện đơn thuần. Các nhà phát triển đang sử dụng Envolve để đồng bộ hóa dữ liệu ứng dụng chẳng hạn như trạng thái trò chơi trong thời gian thực trên người dùng của họ. Điều này đã dẫn dắt những người sáng lập Envolve, James Tamplin và Andrew Lee, tách riêng chat system và the real-time architecture. Vào tháng 4 năm 2012, Firebase được tạo ra dưới dạng công ty riêng biệt Backend-as-a-Service với chức năng thời gian thực. Sau khi được Google mua lại vào năm 2014, Firebase nhanh

chóng phát triển thành ứng dụng đa năng của nền tảng di động và web hiện nay.

Firebase Realtime Database (FRD) là một cơ sở dữ liệu

NoSQL lưu và đồng bộ dữ liệu trên mây. Dữ liệu được đồng bộ trên tất cả clients trong thời gian thực, và vẫn khả dụng khi ứng dụng offline.

FRD là một cloud-hosted database. Dữ liệu được lưu trữ và đồng bộ hóa theo thời gian thực với mỗi client được kết nối. Khi bạn xây dựng ứng dụng đa nền tảng với iOS, Android, và Javascript SDK, tất cả các client của bạn chia sẻ một thể hiện Realtime Database và tự động tiếp nhận các thay đổi với dữ liệu mới nhất.

Các chức năng chính của FRD.

Realtime:

Firebase Realtime Database sử dụng đồng bộ dữ liệu mối khi dữ liệu có thay đổi, mọi thiết bị được kết nối sẽ nhận được thay đổi trong vài mili giây.

Offline:

Khi người dùng ngoại tuyến, dữ liệu sẽ được lưu trên bộ nhớ cache của thiết bị và tự động đồng bộ khi bạn trực tuyến. Tất cả là tự động

Accessible from Client Devices

Firebase Realtime Database có thể truy cập từ một thiết bị mobile hoặc trình duyệt web. Nó không cần một ứng dụng server nào cả. Bảo mật và xác thực dữ liệu có thể thông qua các Rule bảo mật của Firebase Realtime Database, các rule được thực thi khi dữ liệu được đọc hoặc ghi.

Firebase Cloud Messaging (FCM) là một dịch vụ miễn phí của

Google. Thông qua FCM, nhà phát triển ứng dụng có thể gửi thông điệp một cách nhanh chóng, an toàn tới các thiết bị cài đặt ứng dụng của họ.

Firebase Authentication cung cấp backend services, easy-to-use

SDKs, và ready-made UI libraries để xác thực người dùng cho ứng dụng. Sử dụng Xác thực Firebase giúp việc xây dựng hệ

thống xác thực an toàn dễ dàng hơn, đồng thời cải thiện sign-in và onboarding experience cho người dùng cuối.

Firebase Database queries: Truy vấn cơ sở dữ liệu Firebase.

Firebase đã đơn giản hóa quá trình truy xuất dữ liệu cụ thể từ cơ sở dữ liệu thông qua truy vấn. Truy vấn được tạo bằng cách kết hợp một hoặc nhiều phương pháp lọc.

Firebase Storage (FS) là một giải pháp độc lập cho việc tải lên

nội dung của người dùng, như hình ảnh và video từ thiết bị iOS và Android cũng như Web. FS được thiết kế đặc biệt để mở rộng ứng dụng của bạn, cung cấp bảo mật và đảm bảo khả năng phục hồi mạng. FS sử dụng hệ thống tệp/thư mục đơn giản để cấu trúc dữ liệu của nó.

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Yêu cầu chức năng

Ứng dụng khách hàng

• Chức năng giới thiệu về ứng dụng

• Chức năng tạo tài khoản, đăng nhập, đăng xuất.

• Hiển thị các thông tin về món ăn và thức uống của một cửa hàng kinh doanh Pizza một cách rõ ràng và thực tế ở màn hình Home.

• Chức năng thay đổi chế độ xem sản phẩm theo nhiều kiểu.

• Chức năng bình luận của khách hàng về món ăn một cách nhanh chóng.

• Chức năng xem chi tiết sản phẩm mà được chọn và xem chi tiết những sản phẩm khác bằng cách vuốt (swipe) màn hình sang trái-phải.

• Chức năng đặt hàng (thêm sản phẩm vào giỏ hàng), và hiển thị thông báo về thông tin (tên, hình ảnh, số lượng) của sản phẩm vừa đặt đó bằng popup.

• Chức năng sửa số lượng, xoá sản phẩm ở trong màn hình giỏ hàng.

• Chức năng thích (like ) món ăn (sử dụng kỹ thuật Transaction để tránh bị trùng lặp số lượng yêu thích trên cùng một sản phẩm khi có nhiều người like cùng một lúc)

• Chức năng thanh toán đơn hàng.

• Chức năng theo dõi tình trạng đơn hàng. Đơn hàng sẽ có ba trạng thái đó là: Đơn hàng đã được chấp nhận, đơn hàng đang vận chuyển và đơn hàng đã giao thành công.

• Chức năng phóng to hình ảnh sản phẩm.

• Chức năng hiển thị khoảng cách vị trí người dùng với cửa hàng.

• Chức năng tự động liên lạc bằng số điện thoại đến cửa hàng.

• Cho phép người dùng tìm kiếm món ăn từ những thể loại có sẵn.

• Người dùng có thể tự cập nhật thông tin của mình một cách dễ dàng thông qua trang Profile.

• Khách hàng nhận thông báo từ quản trị viên (QTV) khi QTV xử lý trạng thái những đơn hàng của khách hàng, thêm sản phẩm mới. Ứng dụng sẽ dựa theo topic (thể loại) của mỗi thông báo mà sẽ chuyển đến màn hình phù hợp với topic và id của thông báo đó. Ứng dụng có thể nhận thông báo được ở những trạng thái sau: Đang hoạt động, đang ở background và đang đóng.

• Chức năng hiển thị số lượng thông báo (badge) trên icon của ứng dụng ở ngoài màn hình chính của điện thoại. Và đồng bộ số lượng thông báo này tương ứng với số lượng thông báo ở bên trong ứng dụng.

• Chức năng quản lý thông báo nhận được từ quản trị viên. Từ những thông báo này di chuyển đến màn hình ứng với từng thể loại của thông báo đó.

• Chức năng tìm món ăn bằng giọng nói.

• Phản hồi bằng giọng nói khi người dùng đặt hàng thành công, với thông tin phản hồi là tên sản phẩm và số lượng sản phẩm mà người dùng đã đặt.

• Chức năng cho phép hiển thị quảng cáo trên ứng dụng.

• Xây dựng ứng dụng có độ chuyên môn UI/UX cao.

Ứng dụng quản trị viên

• Chức năng tạo tài khoản, đăng nhập, đăng xuất.

• Chức năng thêm, sửa, xoá sản phẩm

• Chức năng quản lý và xử lý đơn hàng

• Chức năng quản lý thông báo

• Chức năng quản lý tài khoản user

2.2 Yêu cầu phi chức năng

• Giao diện đơn giản, trực quang có tính sáng tạo và dễ sử dụng.

• Đáp ứng nhanh nhu cầu người sử dụng.

• Các chức năng theo một luồng thống nhất.

• Hoàn thiện, nâng cấp ứng dụng theo phản ánh của người sử dụng.

2.3 Thiết kế hệ thống

2.3.1. User-case diagram (Sơđồ ca sử dụng) a) Ứng dụng dành cho người dùng (User) a) Ứng dụng dành cho người dùng (User)

Hình 2. 2 Ca sử dụng xem sản phẩm

Ca sử dụng đăng ký tài khoản

Hình 2. 3 Ca sử dụng đăng ký tài khoản

Ca sử dụng đăng nhập tài khoản

Ca sử dụng quản lý tài khoản

Hình 2. 5 Ca sử dụng quản lý tài khoản

Ca sử dụng đặt hàng

Hình 2. 6 Ca sử dụng đặt hàng

Ca sử dụng quản lý giỏ hàng

Hình 2. 8 Ca sử dụng định vị vị trí

Ca sử dụng nhận thông báo trạng thái đơn hàng

Hình 2. 9 Ca sử dụng nhận thông báo trạng thái đơn hàng

Ca sử dụng tìm kiếm sản phẩm

Hình 2. 10 Ca sử dụng tìm kiếm sản phẩm

b) Ứng dụng dành cho quản trị viên (Admin)

Hình 2. 11 Ca sử dụng quản trị viên tổng quát

Hình 2. 12 Ca sử dụng đăng ký tài khoản

Ca sử dụng đăng nhập tài khoản

Hình 2. 13 Ca sử dụng đăng nhập tài khoản

Hình 2. 14 Ca sử dụng quản lý sản phẩm

Ca sử dụng quản lý đơn hàng

Hình 2. 15 Ca sử dụng quản lý đơn hàng

Hình 2. 16 Ca sử dụng quản lý quảng cáo

Ca sử dụng quản lý User

Hình 2. 17 Ca sử dụng quản lý User

Ca sử dụng quản lý thông báo (cloud messaging)

2.3.2. User case (Đặc tả ca sử dụng) Ứng dụng dành cho người dùng (User) Ứng dụng dành cho người dùng (User) a) Ca sử dụng người dùng tổng quát

• Mục đích: Tổng quát toàn bộ hệ thống của ứng dụng người dùng

• Mô tả: Các chức năng chính mà người dùng có thể tương tác và sử dụng.

• Luồng sự kiện chính:

Hành động tác nhân Phản ứng hệ thống Dữ liệu liên quan Xem sản phẩm Hiển thị giao diện sản

phẩm theo hai dạng, đứng và khung

Sản phẩm

Chọn đăng ký tài khoản

Hiển thị giao diện để người dùng đăng ký

Hiển thị prefix số điện thoại của các quốc gia trên thế giới.

Chọn đăng nhập tài khoản

Hiển thị giao diện để người dùng đăng nhập

Hiển thị prefix số điện thoại của các quốc gia trên thế giới.

Chọn quản lý tài khoản Hiển thị giao diện về những thành phần mà người sử dụng quản lý

- Thông tin user, - Thông tin những sản phẩm đã thanh toán - Những sản phẩm đã like - Mật khẩu Đặt hàng Hiển thị giao diện thông

tin các món ăn khác

Thông tin các món ăn và đồ uống

nhau để người sử dụng có thể đặt hàng.

Chọn quản lý giỏ hàng Hiển thị giao diện những sản phẩm đã được đặt

Những sản phẩm đã được đặt

Nhận trạng thái thông tin đơn hàng.

Sau khi nhận được từ tin nhắn (cloud messaging) từ admin, người dùng tương tác với message đó sẽ hiển thị giao diện của đơn hàng đó.

Những đơn hàng mà khách hàng đã đặt và trạng thái của những đơn hàng đó

Tìm kiếm sản phẩm Hiển thị giao diện để người dùng có thể tương tác bằng giọng nói hoặc Tìm kiếm theo những thể loại có sẵn

Dữ liệu Speech - to - text của khách hàng.

Định vị vị trí Hiển thị giao diện (map) thể hiện vị trí hiện tại của người dùng và vẽ đường đi từ cửa hàng đến người đó, và hiển thị khoảng cách

Vị trí người dùng, và cửa hàng.

Bảng 2. 1 Mô tả luồng sự kiện chính của ca sử dụng người dùng tổng quát Luồng sự kiện phụ: Không

Ngoại lệ: Không

b) Ca sử dụng xem sản phẩm

Mô tả: Người dùng có thể xem sản phẩm theo cả hai chế độ là dạng cột và dạng lưới. Với hàng động nhấn vào mỗi sản phẩm hệ thống sẽ hiển thị màn hình chi tiết của sản phẩm đó. Người dùng có thể thích/bỏ thích sản phẩm đó, hay bình luận sản phẩm ở màn hình bình luận sau khi nhấn nút “comment” Luồng sự kiện chính

Hành động tác nhân Phản ứng hệ thống Dữ liệu liên quan Chọn sản phẩm Hiển thị giao diện thông

tin sản phẩm được chọn

Thông tin chi tiết phẩm được chọn, và những sản phẩm liên quan Chọn thích/ bỏ thích Nút “like” sẽ thay đổi

màu sắc tuỳ thuộc vào hành động của khách hàng

Thông tin chi tiết phẩm được chọn, và những sản phẩm liên quan

Chọn bình luận Hiển thị giao diện bình luận.

Danh sách bình luận của những khách hàng trước đó.

Bảng 2. 2 Mô tả luồng sự kiện chính của ca sử dụng xem sản phẩm

c) Ca sử dụng đăng ký tài khoản

• Mục đích: Đăng ký tài khoản người dùng

• Mô tả: Người dùng đăng ký tài khoản với những thông tin bắt buộc sau: Email, Username, Phone number, Password. Sau khi người dùng nhập đúng những thông tin trên, hệ thống sẽ dựa vào số điện thoại và gửi validate code về và dùng đoạn code đó để xác thực trên hệ thống.

Hành động tác nhân Phản ứng hệ thống Dữ liệu liên quan Chọn Tabbar Profile Hiển thị giao diện gồm

hai hành động chính, đăng ký và đăng nhập.

Chưa có dữ liệu

Chọn đăng ký Hiển thị form đăng ký với những trường sau: User name, Email, Phone number, Password

Hiển thị prefix số điện thoại của các quốc gia trên thế giới.

Nhập thông tin người dùng

Hệ thống sẽ nhận yêu cầu đăng ký của người dùng và so sánh với DB user này có hợp lệ hay không, sau đó phản hồi về người dùng.

Dữ liệu của khách hàng.

Chọn hoàn thành Hệ thống gửi một đoạn mã (6 ký tự số) về số điện thoại mà user vừa đăng ký. Dữ liệu của khách hàng, dữ liệu verify code. Chọn xác thực User sẽ dùng đoạn mã này để xác thực về server trong trường hợp số điện thoại hợp lệ, nếu không sẽ báo lỗi.

mã xác thực và uid.

Bảng 2. 3 Mô tả luồng sự kiện chính của ca sử dụng đăng ký tài khoản Luồng sự kiện phụ: Không

Ngoại lệ: Không

d) Ca sử dụng quản lý tài khoản

• Mục đích: Quản lý tài khoản người dùng

• Mô tả: Người dùng có thể quản lý tài khoản của mình với những thuộc tính sau: Những sản phẩm đã thanh toán, thông tin cá nhân, những sản phẩm đã thích, thay đổi password, đăng xuất.

• Luồng sự kiện chính:

Hành động tác nhân Phản ứng hệ thống Dữ liệu liên quan Chọn Tabbar Profile

(User đã đăng ký hoặc đăng nhập)

Hiển thị giao diện gồm những thông tin chính: Những sản phẩm đã thanh toán, thông tin cá nhân, những sản phẩm đã thích, thay đổi password, đăng xuất.

Toàn bộ thông tin liên quan đến user. Chọn My order (những sản phẩm đã thanh toán) Hệ thống sẽ hiển thị những sản phẩm mà user đã thanh toán (nếu có)

Sản phẩm đã thanh toán.

Chọn My profile (thông tin cá nhân)

Hệ thống hiển thị những thông tin bắt buộc và không bắt buộc của user: Ảnh đại diện, tên người dùng (profile name), Họ, Tên, Email, Số điện thoại, Địa chỉ

Thông tin cá nhân của user

Chọn My favorite (Những sản phẩm đã thích) Hệ thống hiển thị những sản phẩm mà user đã thích. Đồng thời có thể bỏ thích nếu người dùng muốn. Những sản phẩm đã được user đó thích (like) Chọn Change password (thay đổi mật khẩu)

Hiển thị màn hình cho user thực hiện thay đổi mật khẩu gồm hai phần: Mật khẩu cũ và mới

Mật khẩu của cũ của user.

Bảng 2. 4 Mô tả luồng sự kiện chính của ca sử dụng quản lý tài khoản

• Luồng sự kiện phụ: Không

• Ngoại lệ: Không

e) Ca sử dụng đặt hàng

• Mục đích: Đặt món ăn hoặc sản phẩm khác

• Mô tả: Người dùng đặt hàng, trường hợp thành công sẽ thêm vào giỏ hàng và người dùng có thể đặt một lúc nhiều sản phẩm và một sản phẩm có thể nhiều số lượng, trường hợp không thành công sẽ dựa vào tác nhân không thành công và thông báo bằng alert về user. User có thể thấy được số lượng những sản phẩm đã đặt ở màn hình đặt hàng mà không cần vào màn hình giỏ hàng.

• Luồng sự kiện chính

Hành động tác nhân Phản ứng hệ thống Dữ liệu liên quan Chọn sản phẩm, số

lượng và thêm vào giỏ

Hiển thị thông báo theo kết quả đặt hàng:

Toàn bộ thông tin liên quan đến sản phẩm.

hàng TH Thành công:

Hiển thị popup ở bottom của màn hình thể hiện đặt hàng thành công gồm tên sản phẩm, số lượng.

TH không thành công:

Hiển thị thông báo cho người dùng là không thành công

Những sản phẩm mà khách hàng đã đặt hàng trong giỏ hàng nhưng chưa thanh toán

Bảng 2. 5 Mô tả luồng sự kiện chính của ca sử dụng đặt hàng Luồng sự kiện phụ: Không

Ngoại lệ: Không

f) Ca sử dụng quản lý giỏ hàng

• Mục đích: Quản lý những sản phẩm đã được thêm vào giỏ hàng.

• Mô tả: Người dùng chọn giỏ hàng, hệ thống sẽ hiển thị màn hình thông tin những sản phẩm đã được thêm vào giỏ hàng,

Một phần của tài liệu Xây dựng hệ thống Pizza Delivery (Trang 26)

Tải bản đầy đủ (PDF)

(99 trang)