Message - Báo Cáo

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 55

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT CÔNG NGHIỆP

KHOA CÔNG NGHỆ THÔNG TIN

*********************

MÔN: Thực tập Lập Trình Mạng

ĐỀ TÀI: Ứng dụng nhắn tin Message

LỚP: DHTI14A13HN

Nhóm 01

Giảng viên:
Ths. Nguyễn Thùy Dung
Thành viên:
Nguyễn Đình Hoàng
Nguyễn Tiến Hưng

Hà Nội - 2023
1
BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT CÔNG NGHIỆP

KHOA CÔNG NGHỆ THÔNG TIN

*********************

MÔN: Thực tập Lập Trình Mạng

ĐỀ TÀI: Ứng dụng nhắn tin Message

LỚP: DHTI14A13HN

Nhóm 01

Giảng viên:
Ths. Nguyễn Thùy Dung
Thành viên:
Nguyễn Đình Hoàng
Nguyễn Tiến Hưng

Hà Nội - 2023
2
Mục lục

Mục lục................................................................................................................................3

Danh mục hình ảnh..............................................................................................................5

Danh mục bảng biểu............................................................................................................7

Mở đầu.................................................................................................................................8

Phần B: NỘI DUNG..........................................................................................................10

CHƯƠNG 1: TỔNG QUAN.............................................................................................10

1.1. Đặt vấn đề............................................................................................................10

1.2. Khảo sát hiện trạng...............................................................................................10

1.2.1. Giới thiệu về ứng trang web MyBook...........................................................10

1.2.2. Quá trình sử dụng MyBook...........................................................................10

1.2.3. Những vấn đề bất cập....................................................................................11

1.3. Công cụ sử dụng...................................................................................................11

1.3.1. Android Studio..............................................................................................11

1.3.2. Ngôn ngữ sử dụng.........................................................................................12

1.3.3. Firebase.........................................................................................................13

CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU.......................................................................19

2.1. Xây dựng chức năng, nhiệm vụ “hoặc tính năng nhiệm vụ”...............................19

2.1.1. Xây dựng chức năng hệ thống.......................................................................19

2.1.2. Mô tả chức năng hệ thống.................................................................................19

2.2. Nội dung nghiên cứu............................................................................................19

2.2.1. Xây dựng biểu đồ Use Case tổng quát và biểu đồ Use Case cho từng bước....19

2.2.2. Xây dựng biểu đồ lớp........................................................................................26


3
2.2.3. Xây dựng biểu đồ hoạt động.............................................................................27

2.2.4. Biểu đồ tuần tự các chức năng..........................................................................31

2.2.5. Xây dựng cơ sở dữ liệu trên nền tảng Firebase.................................................35

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH................................................................40

3.1. Xây dựng chương trình............................................................................................40

3.1.1. Cài đặt môi trường và kết nối nền tảng Firebase..............................................40

3.1.2. Xây dựng giao diện người dùng........................................................................40

3.1.3. Đóng gói ứng dụng di động..............................................................................49

3.2. Cài đặt ứng dụng.....................................................................................................50

Kết luận..............................................................................................................................52

Tài liệu tham khảo.............................................................................................................53

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN...............................................................54

4
Danh mục hình ảnh

Hình 1.1 Logo Firebase.....................................................................................................13

Hình 1.2 Ưu nhược điểm Firebase.....................................................................................14

Hình 1.3 Ưu điểm Firebase................................................................................................16

Hình 1.4 Trang chủ Firebase..............................................................................................18

Hình 2.1 Biểu đồ Use Case tổng quát................................................................................20

Hình 2.2 Biểu đồ Use Case chức năng đăng nhập.............................................................21

Hình 2.3 Biểu đồ Use Case chức năng quản lý thông tin cá nhân.....................................23

Hình 2.4 Biểu đồ Use Case chức năng tìm kiếm...............................................................24

Hình 2.5 Biểu đồ Use Case chức năng gửi và nhận thông điệp........................................25

Hình 2.6 Biểu đồ lớp tổng quát..........................................................................................26

Hình 2.7 Biểu đồ hoạt động chức năng đăng nhập............................................................27

Hình 2.8 Biểu đồ hoạt động chức năng quản lý thông tin tài khoản.................................28

Hình 2.9 Biểu đồ hoạt động chức năng tìm kiếm..............................................................29

Hình 2.10 Biểu đồ hoạt động chức năng gửi và nhận thông điệp......................................30

Hình 2.11 Biểu đồ tuần tự chức năng đăng nhập...............................................................31

Hình 2.12 Biểu đồ tuần tự chức năng gửi và nhận thông điệp..........................................32

Hình 2.13 Biểu đồ tuần tự chức năng quản lý thông tin tài khoản....................................33

Hình 2.14 Biểu đồ tuần tự chức năng tìm kiếm.................................................................34

Hình 2.15 Ứng dụng chức năng Authencation trên nền tảng Firebase..............................35

Hình 2.16 Xây dựng cơ sở dữ liệu trên cơ sở dữ liệu Firestore của nền tảng Firebase.....37

5
Hình 2.17 Ứng dụng Storage lưu trữ ảnh đại diện của người dùng...................................38

Hình 2.18 Ứng dụng Cloud Messaging để tạo thông báo cho ứng dụng...........................39

Hình 3.1 Quá trình cài đặt Firebase vào Android studio...................................................40

Hình 3.2 Giao diện đăng nhập – Nhập số điện thoại.........................................................41

Hình 3.3 Giao diện đăng nhập – Nhập mã OTP................................................................42

Hình 3.4 Mã OTP được gửi từ CloudOTP.........................................................................43

Hình 3.5 Giao diện đăng nhập – Hiển thị tên người dùng.................................................44

Hình 3.6 Giao diện trang chủ.............................................................................................45

Hình 3.7 Giao diện Quản lý thông tin tài khoản................................................................46

Hình 3.8 Giao diện tìm kiếm.............................................................................................47

Hình 3.9 Giao diện gửi và nhận thông điệp.......................................................................48

Hình 3.10 Bước 1 đóng gói app điều khiển.......................................................................49

Hình 3.11 Bước 2 đóng gói app điều khiển.......................................................................49

Hình 3.12 Bước 3 đóng gói app điều khiển.......................................................................50

Hình 3.13 Sản phẩm cuối cùng..........................................................................................50

Hình 3.14 File apk của App Message................................................................................50

Hình 3.15 Thông báo cài đặt trên điện thoại......................................................................51

Hình 3.16 App đã được cài đặt thành công........................................................................51

6
Danh mục bảng biểu

Bảng 2.1 Các actor của phần mềm....................................................................................19

7
Mở đầu

Với xã hội ngày càng phát triển hiện nay, nhu cầu đời sống con người ngày càng
nâng cao. Nhu cầu sử dụng một ứng dụng nhắn tin để có thể truyền tải các thông điệp
giữa người với người giúp tiết kiệm chi phí, ví dụ: Mỗi khi người dùng để có thể gửi một
thông điệp bất kì qua nhà mạng Viettel sẽ tiêu tốn 300đ/sms đối với các thuê bao nội
mạng và 350đ/sms đối với các thuê bao ngoại mạng. Trong đề tài này chúng em đề xuất
một ứng dụng Message giúp người dùng có thể gửi và nhận thông điệp không giới hạn và
người dùng chỉ phải bỏ ra một khoản chi phí mạng nhỏ cho các nhà mạng.
Giải pháp do nhóm đề xuất: Xây dựng một ứng dụng Android kết hợp với cloud Firebase
để xử lý dữ liệu. Xây dựng một hệ thống truyền thông điệp hoàn chỉnh để có thể đảm
đương chức năng nhắn tin cho nền tảng xã hội MyBook.

Cụ thể: Người dùng tạo một tài khoản cho riêng mình trên ứng dụng và kết nối với các
người dùng khác thông qua việc tìm kiếm tên của họ. Khi cả hai đã được kết nối với nhau
thì họ có thể gửi bất kì thông điệp nào cho nhau.

Ứng dụng có 1 số chức năng chính :

- Xác thực tài khoản người dùng với mã OTP.


- Tìm kiếm tên bạn bè.
- Gửi thông điệp trong thời gian thực.
- Cập nhật thông tin tài khoản (tên người dùng, ảnh đại diện).

Đối tượng, phạm vi, mục tiêu đề tài:

- Đối tượng, phạm vi:


Trong phạm vi đề tài, nội dung nghiên cứu được thực hiện gồm:
o Thiết kế giao diện người dùng cho ứng dụng
o Xử lý dữ liệu thời gian thực giữa android và Firebase

8
o Lập trình android với JavaCore
- Mục tiêu:
Nghiên cứu lập trình xây dựng ứng dụng di động kết hợp cơ sở dữ liệu Firebase.
Dựa trên nghiên cứu đó, xây dựng ứng dụng Message truyền nhận thông điệp thời
gian thực giữa hai người dùng với nhau.

Nội dung nghiên cứu:

- Lập trình ứng dụng Android.


- Trao đổi thông tin giữa Android và Firebase trong thời gian thực.
- Nắm bắt xây dựng ứng dụng theo mô hình 3 lớp.
- Xây dựng các chức năng cơ bản của một ứng dụng nhắn tin.
- Phân tích thiết kế hệ thống: Tiến hành phân tích yêu cầu, chức năng và cấu trúc hệ
thống của một ứng dụng nhắn tin.

Dạng sản phẩm tạo ra:

Một ứng dụng Message với các chức năng như: gửi và nhận thông điệp, tìm kiếm
bạn bè, cập nhật thông tin tại khoản, thay đổi ảnh đại diện và các chức năng đăng nhập,
đăng xuất. Ứng dụng được xây dựng độc lập dựa trên tính năng nhắn tin của nền tảng
mạng xã hội MyBook

Kết cấu đề tài:

Ngoài phần mở đầu, kết luận, phụ lục và danh mục tài liệu tham khảo, nội
dung của đề tài gồm 3 chương:

Chương 1: TỔNG QUAN

Chương 2: NỘI DUNG NGHIÊN CỨU

Chương 3: XÂY DỰNG CHƯƠNG TRÌNH

9
Phần B: NỘI DUNG

CHƯƠNG 1: TỔNG QUAN

1.1. Đặt vấn đề

Với xã hội ngày càng phát triển hiện nay, nhu cầu đời sống con người ngày càng
nâng cao. Nhu cầu sử dụng một ứng dụng nhắn tin để có thể truyền tải các thông điệp
giữa người với người giúp tiết kiệm chi phí, ví dụ: Mỗi khi người dùng để có thể gửi một
thông điệp bất kì qua nhà mạng Viettel sẽ tiêu tốn 300đ/sms đối với các thuê bao nội
mạng và 350đ/sms đối với các thuê bao ngoại mạng.
Ngoài ra, nền tảng mạng xã hội MyBook là điểm kết nối giữa con người với con
người, giữa cộng đồng với cộng đồng. Trong tình hình xã hội ngày càng phát triển, điều
đó đòi hỏi nền tảng cần phải liên tục cập nhật, liên tục đổi mới để có thể phù hợp với nhu
cầu của người dùng thời đại 4.0. Điều đó giúp MyBook có thể cạnh tranh và có chỗ đứng
trong thị trường.
Vì vậy viêc tạo nên một ứng dụng Message là vô cùng cần thiết. Khi ứng dụng ra
đời, nó sẽ giúp giảm thiểu chức năng trên trang chủ của MyBook. Ứng dùng còn là một
phương thức tiếp cận người dùng hiệu quả trong thời đại mà nhà nhà dùng điện thoại.
1.2. Khảo sát hiện trạng
1.2.1. Giới thiệu về ứng trang web MyBook
- Trang web MyBook là một nền tảng mạng xã hội cho phép người dùng tạo và
quản lý hồ sơ cá nhân, kết nối với bạn bè, gia đình và đồng nghiệp, và chia sẻ nội
dung đa dạng.
- Địa chỉ trang web: https://www.mybook.com/
1.2.2. Quá trình sử dụng MyBook

10
- Người dùng đăng nhập tạo trang cá nhân của bản thân trên trang web chính của
MyBook.
- Người dùng chia sẻ các khoảnh khắc của bản thân lên bản tin
- Kết nối với bạn bè và tạo các group với những người có chung sở thích.
1.2.3. Những vấn đề bất cập
- Thiếu tính linh hoạt: Khi người dùng sử dụng điện thoại di động và chỉ muốn nhắn
tin với một ai khác cần phải truy cập vào trang web với nhiều tính năng khác.
- Khó phát triển và cập nhật: Khi phát triển và cập nhật chức năng thì cần đợi đến
lịch cập nhật MyBook. Việc cập nhật riêng một tính năng cũng gặp nhiều khó
khăn.

Giải pháp nhóm đưa ra:

- Tách riêng chức năng nhắn tin giúp giảm các chức năng không cần thiết cho
những người dùng chỉ quan tâm chức năng nhắn tin, giúp giảm độ phức tạp và ứng
dụng dễ sử dụng hơn. Bên cạnh đó cũng giúp cho việc bảo trì và cập nhật dễ dàng
hơn.
- Trong thị trường ngày càng cạnh tranh, việc tạo ra ứng dụng độc lập cũng là cách
thu hút người dùng và cạnh tranh hiệu quả.
1.3. Công cụ sử dụng
1.3.1. Android Studio

Android Studio là Môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng
dụng Android. Nhờ có công cụ cho nhà phát triển và trình soạn thảo mã mạnh mẽ của
IntelliJ IDEA, Android Studio cung cấp thêm nhiều tính năng giúp bạn nâng cao năng
suất khi xây dựng ứng dụng Android, chẳng hạn như:

 Một hệ thống xây dựng linh hoạt dựa trên Gradle

 Một trình mô phỏng nhanh và nhiều tính năng

 Một môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android

11
 Tính năng Live Edit (Chỉnh sửa trực tiếp) để cập nhật các thành phần kết hợp
trong trình mô phỏng và thiết bị thực theo thời gian thực

 Mã mẫu và quá trình tích hợp GitHub để giúp bạn xây dựng các tính năng ứng
dụng phổ biến cũng như nhập mã mẫu

 Đa dạng khung và công cụ thử nghiệm

 Công cụ tìm lỗi mã nguồn (lint) để nắm bắt hiệu suất, khả năng hữu dụng, khả
năng tương thích với phiên bản và các vấn đề khác

 Hỗ trợ C++ và NDK

 Tích hợp sẵn tính năng hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp
Google Cloud Messaging và App Engine

1.3.2. Ngôn ngữ sử dụng

Java là một ngôn ngữ lập lập trình, được phát triển bởi Sun Microsystem vào năm
1995, là ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trình hướng đối
tượng.

Vì sao ngôn ngữ này lại được đặt tên là Java? Java là tên một hòn đảo ở Indonesia -
hòn đảo nổi tiếng với loại coffee Peet và cũng là loại nước uống phổ biến của các kỹ sư
Sun. Ban đầu Ngôn ngữ này được đặt tên là "Oak" (có nghĩa là "Cây sồi" - 1991), nhưng
các luật sư của Sun xác định rằng tên đó đã được đăng ký nhãn hiệu nên các nhà phát
triển đã phải thay thế bằng một tên mới - và cũng vì lý do trên mà cái tên Java đã ra đời
và trở thành tên gọi chính thức của Ngôn ngữ này - Ngôn ngữ Lập trình Java.

Ứng dụng của Java:

Ngày nay Java được sử dụng với các mục đích sau:

 Phát triển ứng dụng cho các thiết bị điện tử thông minh, các ứng dụng cho doanh
nghiệp với quy mô lớn.

 Tạo các trang web có nội dung động (web applet), nâng cao chức năng của server.
12
 Phát triển nhiều loại ứng dụng khác nhau: Cơ sở dữ liệu, mạng, Internet, viễn
thông, giải trí, ...

1.3.3. Firebase

Tổng quan:

Hình 1.1 Logo Firebase

Firebase là một nền tảng của Google cung cấp các dịch vụ cho các ứng dụng di động và
web như lưu trữ dữ liệu, xác thực người dùng, phân tích dữ liệu, thông báo đẩy và cơ sở
hạ tầng đám mây. Firebase được phát triển nhằm giúp cho các nhà phát triển ứng dụng
tập trung vào việc phát triển chức năng của ứng dụng thay vì phải lo lắng về cơ sở hạ
tầng và quản lý dữ liệu.

Tính năng:

Một số tính năng chính của Firebase mà ta nghiên cứu:

1. Realtime Database: Đây là một cơ sở dữ liệu NoSQL được lưu trữ trên đám mây
và cho phép đồng bộ dữ liệu trực tiếp giữa các thiết bị và ứng dụng. Realtime
Database sử dụng giao thức WebSocket để cập nhật dữ liệu một cách nhanh chóng
và đáng tin cậy.
2. Authentication: Firebase cung cấp các tính năng xác thực người dùng đa nền tảng
và dễ sử dụng, bao gồm đăng nhập bằng email, Facebook, Google và Twitter. Tính
năng này giúp cho các nhà phát triển dễ dàng xác thực người dùng và bảo vệ dữ
liệu của họ.

13
3. Cloud Messaging: Firebase cung cấp các tính năng thông báo đẩy cho các ứng
dụng di động và web, cho phép các nhà phát triển gửi thông báo đến các thiết bị
của người dùng một cách nhanh chóng và hiệu quả.
4. Hosting: Firebase cung cấp một dịch vụ lưu trữ đám mây cho các ứng dụng web,
cho phép các nhà phát triển dễ dàng triển khai và quản lý các ứng dụng của họ trên
đám mây của Firebase.
5. Analytics: Firebase cung cấp các tính năng phân tích dữ liệu cho các ứng dụng,
cho phép các nhà phát triển theo dõi các hoạt động của người dùng và đo lường
hiệu quả của các chiến dịch tiếp thị và các chức năng khác của ứng dụng.

Firebase là một nền tảng đáng tin cậy và dễ sử dụng cho các nhà phát triển ứng dụng,
giúp cho việc phát triển các tính năng của ứng dụng trở nên dễ dàng hơn và giảm bớt các
thách thức về quản lý dữ liệu và cơ sở hạ tầng.

Ưu nhược điểm của Firebase:

Hình 1.2 Ưu nhược điểm Firebase

+ Ưu điểm:

14
Nền tảng Firebase được sử dụng rộng khắp nơi không chỉ là điều ngẫu nhiên. Bởi lẽ ứng
dụng này sở hữu riêng cho mình nhiều ưu điểm vô cùng nổi bật. Điển hình:

 Sử dụng dễ dàng: Những người dùng có thể đăng ký một tài khoản Firebase thông
qua tài khoản Google. Đồng thời, người cùng cũng có thể sử dụng nền tảng này
trong quá trình phát triển ứng dụng một cách đơn giản nhất.

 Tốc độ phát triển nhanh: Ưu điểm tiếp theo chính là Firebase hỗ trợ cho việc phát
triển ứng dụng rất nhanh chóng. Điều này sẽ giúp lập trình viên giảm bớt được
thời gian để phát triển cũng như tiếp thị ứng dụng.

 Cung cấp nhiều dịch vụ: Firebase còn cung cấp đa dịch vụ cho mục đích phát triển
trang web. Người dùng có thể lựa chọn database Firestore hoặc Realtime theo
đúng ý muốn của mình.

 Nền tảng cho Google phát triển: google firebase là gì? Firebase được Google mua
lại và trở thành một phần của Google. Ứng dụng này sẽ khai

thác được triệt để sức mạnh cũng như các dịch vụ hiện đang sẵn có của Google.

 Giao diện người dùng được chú trọng: Firebase sẽ cho phép các lập trình viên tập
trung hơn vào việc phát triển giao diện của người dùng thông qua kho Backend
mẫu vô cùng đa dạng.

 Firebase app không có máy chủ: Chính điều này sẽ giúp cho Firebase có được khả
năng tối ưu hóa nhất về hiệu suất làm việc nhờ vào việc mở rộng cụm database.

 Học máy: Ứng dụng Firebase sẽ cung cấp học máy cho các lập trình viên để hỗ trợ
tốt nhất cho việc phát triển ứng dụng.

 Tạo lưu lượng truy cập: Firebase App sẽ hỗ trợ việc tạo lập các chỉ mục. Đồng
thời, Firebase cũng sẽ giúp nâng cao thứ hạng của ứng dụng ở trên bảng xếp hạng
của Google. Nhờ vậy mà lượt traffic sẽ tăng lên.

15
 Theo dõi lỗi: Đây là một công cụ để phát triển cũng như khắc phục lỗi vô cùng
tuyệt vời. Nhờ vậy khi sử dụng, bạn không cần lo lắng mình sẽ để sót lỗi.

 Chức năng sao lưu: cách sử dụng firebase sao lưu một cách thường xuyên và đảm
bảo tính sẵn có. Đồng thời, 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.

Hình 1.3 Ưu điểm Firebase

+ Nhược điểm:

Bên cạnh những ưu điểm nổi bật thì Firebase cũng còn tồn tại một số nhược điểm nhất
định:

 Firebase không là mã nguồn mở: Điều này sẽ giúp cho ứng dụng trở thành một lựa
chọn không quá tối ưu đối với nhiều nhà phát triển. Người dùng không thể sửa đổi
được mã nguồn Firebase.

 Người dùng không truy cập được mã nguồn: Đối với những ứng dụng lớn thì việc
chuyển đổi sang các nhà cung cấp khác thực sự không dễ dàng. Để làm được điều
này thì toàn bộ Backend cần phải được xây dựng lại từ đầu.

16
 Nền tảng không hoạt động 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ị chặn ở nhiều quốc gia
trên thế giới, trong đó có cả Trung Quốc.

 Firebase chỉ hoạt động với CSDL NoSQL: Người dùng sẽ không thể xử lý được
dữ liệu một cách nhanh chóng. Firebase chỉ sử dụng JSON và hầu như không có
SQL. Chính vì vậy, để di chuyển từ cơ sở dữ liệu sẽ không hề dễ dàng.

 Firebase 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 dùng
không thể chạy ứng dụng trên những đơn vị cung cấp đám mây khác.

 Bên cạnh những ưu điểm nổi bật thì Firebase cũng còn tồn tại một số nhược điểm
nhất định:

 Firebase không là mã nguồn mở: Điều này sẽ giúp cho ứng dụng trở thành một lựa
chọn không quá tối ưu đối với nhiều nhà phát triển. Người dùng không thể sửa đổi
được mã nguồn Firebase.

 Người dùng không truy cập được mã nguồn: Đối với những ứng dụng lớn thì việc
chuyển đổi sang các nhà cung cấp khác thực sự không dễ dàng. Để làm được điều
này thì toàn bộ Backend cần phải được xây dựng lại từ đầu.

 Nền tảng không hoạt động 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ị chặn ở nhiều quốc gia
trên thế giới, trong đó có cả Trung Quốc.

 Firebase chỉ hoạt động với CSDL NoSQL: Người dùng sẽ không thể xử lý được
dữ liệu một cách nhanh chóng. Firebase chỉ sử dụng JSON và hầu như không có
SQL. Chính vì vậy, để di chuyển từ cơ sở dữ liệu sẽ không hề dễ dàng.

 Firebase 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 dùng
không thể chạy ứng dụng trên những đơn vị cung cấp đám mây khác.

17
-Khi sử dụng FireBase lúc cần có một tài khoản được tạo ra trên Trang chủ của FireBare

Hình 1.4 Trang chủ Firebase

18
CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU

2.1. Xây dựng chức năng, nhiệm vụ “hoặc tính năng nhiệm vụ”
2.1.1. Xây dựng chức năng hệ thống
- Đối với người dùng:
o Đăng nhập bằng số điện thoại và xác nhận bằng mã OTP.
o Quản lý thông tin tài khoản.
o Tìm kiếm bạn bè.
o Gửi và nhận thông điệp thời gian thực
2.1.2. Mô tả chức năng hệ thống

Thông qua các yêu cầu nghiệp vụ, ứng dụng có các chức năng sau:

- Đăng nhập: Chức năng này cho phép người dùng đăng nhập bằng số điện thoại và
xác nhận tài khoản bằng mã OTP.
- Tìm kiếm: Chức năng này cho phép người dùng tìm kiếm bạn bè thông qua tên của
họ.
- Quản lý thông tin cá nhân: Chức năng này cho phép người dùng xem thông tin cá
nhân của bản thân. Người dùng có thể cập nhật lại tên và ảnh đại diện của bản thân.
- Nhắn tin: Chức năng này cho phép gửi và nhận thông điệp giữa người dùng và
người dùng theo thời gian thực.
- Quản lý dữ liệu trên nền tảng Firebase: Chức năng này cho phép người quản lý kiểm
soạt luồng thông tin người dùng.

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


- Giao diện thân thiện với người dùng.
- Giao diện ngôn ngữ tiếng Việt.
- Tính bảo mật, độ tin cậy, hiệu năng.
2.2.Nội dung nghiên cứu

19
2.2.1. Xây dựng biểu đồ Use Case tổng quát và biểu đồ Use Case cho từng bước

Actor và Use case của hệ thống:

STT Actor Diễn giải Ghi chú

1 Người dùng Là người thực hiện các thao tác tìm kiếm,
đăng nhập, gửi và nhận thông điệp, …

Bảng 2.1 Các actor của phần mềm

a. Biểu đồ Use Case tổng quát quản trị:

20
Hình 2.5 Biểu đồ Use Case tổng quát

b. Chức năng đăng nhập:

Hình 2.6 Biểu đồ Use Case chức năng đăng nhập

 Đặc tả Use Case

Tên Use Case Đăng nhập


Tác nhân chính Người dùng
Luồng chính Bước 1: Truy cập vào ứng dụng Message.
Bước 2: Nhập số điện thoại và chọn Tiếp theo.
Bước 3: Kiểm tra dữ liệu số điện thoại. Nếu sai, luồng con A-1 sẽ
được gọi.
Bước 4: Gửi mã OTP. Nếu người dùng không nhận được, luồng con

21
A-2 sẽ được gọi.
Bước 5: Nhập mã OTP và chọn Tiếp theo.
Bước 6: Kiểm tra dữ liệu mã OTP. Nếu sai, luồng con A-3 sẽ được
gọi.
Bước 7: Kiểm tra thông tin tên người dùng. Nếu tồn tại, luông A-4
sẽ được gọi. Nếu không tồn tại, luồng A-5 sẽ được gọi.
Bước 8: Nhập tên người dùng.
Bước 9: Kiểm tra dữ liệu tên người dùng. Nếu sai, luồng A-6 sẽ
được gọi.
Bước 10: Nhấn đăng nhập và hiển thị View trang chủ.
Luồng con A-1 Người dùng nhập sai kiểu dữ liệu số điện thoại:
- A-1.1 Quay về bước 1 và thông báo số điện thoại nhập chưa
đúng.
A-2 Người dùng không nhận được mã OTP:
- A-2.1 Người dùng ấn nút Gửi lại và quay lại bước 4.
A-3 Người dùng nhập sai mã OTP:
- A-3.1 Quay lại bước 5 và hiển thị thông báo mã OTP chưa
đúng.
A-4 Thông tin người dùng không tồn tại:
- A-4.1 Chuyển đến bước 8.
A-5 Thông tin người dùng đã tồn tại:
- A-5.1 Chuyển đến bước 10.
A-6 Người dùng nhập tên dưới 3 kí tự:
- A-6.1 Chuyển đến bước 8 và thông báo tên người dùng phải
lớn hơn 3 kí tự

22
c. Chức năng quản lý thông tin tài khoản:

Hình 2.7 Biểu đồ Use Case chức năng quản lý thông tin cá nhân

 Đặc tả Use Case

Tên Use Case Quản lý thông tin tài khoản


Tác nhân chính Người dùng
Luồng chính - Chọn cập nhật luồng A-1 sẽ được gọi.
- Chọn đăng xuất luồng A-2 sẽ được gọi.
Luồng con A-1 Người dùng chọn cập nhập:
23
- A-1.1 Cập nhật thông tin tên người dùng và ảnh đại diện.
A-2 Người dùng chọn đăng xuất:
- A-2.1 Quay về trang đăng nhập.
Luồng rẽ nhánh E-1 Người dùng chọn quay lại:
- E-1.1 Kết thúc và quay lại trang chủ.

d. Chức năng tìm kiếm:

Hình 2.8 Biểu đồ Use Case chức năng tìm kiếm

24
 Đặc tả Use Case

Tên Use Case Quản lý thông tin tài khoản


Tác nhân chính Người dùng
Luồng chính Bước 1: Người dùng nhập tên cần tìm và nhấn tìm kiếm. Nếu không
tồn tại giá trị tìm kiếm luồng A-1 sẽ được gọi.
Bước 2: Hiển thị view.
Bước 3: Nhấn vào label thông tin cần tìm.
Bước 4: Hiển thị trang Gửi và nhận thông điệp.
Luồng con A-1 Không tìm thấy thông tin:
- A-1.1 Quay lại bước 1.
A-2 Người dùng chọn đăng xuất:
- A-2.1 Quay về trang đăng nhập.
Luồng rẽ nhánh E-1 Người dùng chọn quay lại:
E-1.1 Kết thúc và quay lại trang chủ.

e. Chức năng gửi và nhận thông điệp:

Hình 2.9 Biểu đồ Use Case chức năng gửi và nhận thông điệp

 Đặc tả Use Case


Tên Use Case Gửi và nhận thông điệp
25
Tác nhân chính Người dùng
Luồng chính Bước 1: Người dùng nhập thông điệp cần gửi và nhấn gửi.
Bước 2: Kiểm tra dữ liệu thông điệp. Nếu sai, luông A-1 sẽ được
gọi.
Bước 3: Hiển thị view.
Luồng con A-1 Người dùng chưa nhập thông điệp:
- A-1.1 Quay lại bước 1.
Luồng rẽ nhánh E-1 Người dùng chọn quay lại:
- E-1.1 Kết thúc và quay lại trang chủ.

2.2.2. Xây dựng biểu đồ lớp

Hình 2.10 Biểu đồ lớp tổng quát

26
2.2.3. Xây dựng biểu đồ hoạt động

Hình 2.11 Biểu đồ hoạt động chức năng đăng nhập

27
Hình 2.12 Biểu đồ hoạt động chức năng quản lý thông tin tài khoản

28
Hình 2.13 Biểu đồ hoạt động chức năng tìm kiếm

29
Hình 2.14 Biểu đồ hoạt động chức năng gửi và nhận thông điệp

30
2.2.4. Biểu đồ tuần tự các chức năng

Hình 2.15 Biểu đồ tuần tự chức năng đăng nhập

31
Hình 2.16 Biểu đồ tuần tự chức năng gửi và nhận thông điệp

32
Hình 2.17 Biểu đồ tuần tự chức năng quản lý thông tin tài khoản

33
Hình 2.18 Biểu đồ tuần tự chức năng tìm kiếm

34
chatroomId string
lastMessage string
lastMessageSenderId string
LastMessageTimestamp timestamp
usersIds array
Bảng chatroom

createdTimestamp timestamp
fcmToken string
phone string
userId string
userName string
Bảng users

message
senderId
timestamp
Bảng chat

35
2.2.5. Xây dựng cơ sở dữ liệu trên nền tảng Firebase

Hình 2.19 Ứng dụng chức năng Authencation trên nền tảng Firebase

Firebase Authentication là một dịch vụ của Firebase cung cấp các công cụ để xác
thực người dùng trong ứng dụng của bạn. Nó hỗ trợ nhiều phương thức xác thực khác
nhau, bao gồm xác thực qua email/password, xác thực qua số điện thoại, xác thực qua các
nhà cung cấp bên thứ ba (ví dụ: Google, Facebook, Twitter), và nhiều phương thức khác.
Ở trong ứng dụng Message này, nhóm em sử dụng phương thức xác thực qua số điện
thoại.

36
37
Hình 2.20 Xây dựng cơ sở dữ liệu trên cơ sở dữ liệu Firestore của nền tảng Firebase

Firestore là một cơ sở dữ liệu của Firebase, được thiết kế để lưu trữ và đồng bộ dữ
liệu giữa ứng dụng của bạn trên nhiều thiết bị. Firestore cung cấp một cách linh hoạt để
lưu trữ và truy vấn dữ liệu thông qua các tài liệu (documents) và bộ sưu tập (collections).
Dưới đây là một số khái niệm cơ bản về Firestore:

- Bộ sưu tập (Collection): Một bộ sưu tập là một nhóm các tài liệu có cùng một
loại dữ liệu. Ví dụ, bạn có thể có một bộ sưu tập chứa thông tin về người dùng và
một bộ sưu tập khác chứa dữ liệu về sản phẩm.
- Tài liệu (Document): Mỗi tài liệu trong Firestore là một bản ghi dữ liệu, được lưu
trữ dưới dạng cặp khóa (key) - giá trị (value). Tài liệu có thể chứa mọi loại dữ liệu,
bao gồm chuỗi (string), số (number), mảng (array) và các loại dữ liệu khác.
- Trường (Field): Mỗi tài liệu có thể chứa nhiều trường, mỗi trường đại diện cho
một phần của dữ liệu. Ví dụ, một tài liệu về người dùng có thể có các trường như
"userId", "username".

38
- Dịch vụ Firestore trong Firebase SDK: Để sử dụng Firestore trong ứng dụng
của bạn, bạn cần thêm Firebase SDK vào dự án của mình và cấu hình nó với thông
tin tài khoản Firebase của bạn. Sau đó, bạn có thể sử dụng API của Firestore để
thực hiện các thao tác như đọc, ghi, và cập nhật dữ liệu.

Hình 2.21 Ứng dụng Storage lưu trữ ảnh đại diện của người dùng

Firebase Storage là một dịch vụ lưu trữ đám mây của Firebase, giúp bạn lưu trữ và
quản lý các tệp tin như hình ảnh, video, và các dữ liệu nhẹ khác trên đám mây của
Google. Dịch vụ này được tích hợp chặt chẽ với các dịch vụ Firebase khác và cung cấp
API dễ sử dụng cho việc tải lên và tải xuống tệp tin từ ứng dụng của bạn.

39
Hình 2.22 Ứng dụng Cloud Messaging để tạo thông báo cho ứng dụng

Firebase Cloud Messaging (FCM) là dịch vụ messaging của Firebase, cho phép
bạn gửi các thông báo và tin nhắn từ server đến ứng dụng di động, trang web và các thiết
bị khác.

40
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

3.1. Xây dựng chương trình


3.1.1. Cài đặt môi trường và kết nối nền tảng Firebase
Quá trình cài đặt Firebase vào Android studio:

Hình 3.23 Quá trình cài đặt Firebase vào Android studio

3.1.2. Xây dựng giao diện người dùng

Khi người dùng mở ứng dụng Message sẽ hiện lên trang đăng nhập để người dùng
nhập số điện thoại. Sau khi nhập số điện thoại xong, người dùng nhấn Gửi OTP để tiếp
tục quá trình đăng nhập.

41
Hình 3.24 Giao diện đăng nhập – Nhập số điện thoại

Sau khi nhấn gửi OTP, người dùng sẽ được chuyển đến trang nhập mã OTP.

42
Hình 3.25 Giao diện đăng nhập – Nhập mã OTP

Cùng lúc đó thì người dùng cũng sẽ nhận được mã OTP được gửi đến số điện
thoại mà người dùng đã nhập.

43
Hình 3.26 Mã OTP được gửi từ CloudOTP

Người dùng nhập mã OTP nhận được và nhấn Tiếp theo để đến trang hiển thị tên
người dùng.

44
Hình 3.27 Giao diện đăng nhập – Hiển thị tên người dùng

Nếu người dùng đã đăng nhập bằng số điện thoại này trước đó thì tên người dùng
sẽ được hiển thị. Nếu trước đó người dùng chưa đăng nhập bằng số điện thoại này thì
người dùng cần phải nhập Tên người dùng với độ dài lớn hơn ba kí tự để tạo tài khoản
mới. Sau đó người dùng bấm đăng nhập.

45
Sau khi ấn đăng nhập thì trang chủ của ứng dụng sẽ xuất hiện.

Hình 3.28 Giao diện trang chủ

Biểu tượng tìm kiếm để chuyển đến trang tìm kiếm. Biểu tượng tin nhắn để
chuyển đến trang gửi và nhận thông điệp. Biểu tượng cá nhân để chuyển đến trang thông
tin tài khoản. Các label hiển thị các đoạn chat trước đó.

46
Khi người dùng nhấn vào biểu tượng cá nhân thì trang thông tin tài khoản sẽ xuất
hiện.

Hình 3.29 Giao diện Quản lý thông tin tài khoản

47
Trong trang thông tin tài khoản, người dùng có thể sửa tên người dùng của bản
thân và thay ảnh đại diện sau đó nhấn nút Cập nhật để lưu thông tin. Khi người dùng
muốn thoát tài khoản thì có thể nhấn đăng xuất.

Khi nhấn vào biểu tượng tìm kiếm thì trang tìm kiếm sẽ xuất hiện.

Hình 3.30 Giao diện tìm kiếm

48
Trong trang tìm kiếm, người dùng cần nhập đúng tên cần tìm để có thể tìm kiếm
thành công. Sau khi tìm kiếm thành công, người dùng có thể nhấn vào lable hiển thị
thông tin vừa tìm để chuyển đến trang Gửi và nhận thông điệp.

Trong trang Gửi và nhận thông điệp, người dùng nhập thông điệp cần gửi và nhấn
gửi. Trong trang này, hai người dùng đã được kết nối với nhau. Họ có thể trao đổi thông
tin qua lại trong thời gian thực.

Hình 3.31 Giao diện gửi và nhận thông điệp

49
3.1.3. Đóng gói ứng dụng di động
Bước 1:

Hình 3.32 Bước 1 đóng gói app điều khiển


Bước 2:

Hình 3.33 Bước 2 đóng gói app điều khiển

50
Bước 3: Đợi vài phút để thu được sản phẩm ứng dụng di động:

Hình 3.34 Bước 3 đóng gói app điều khiển

Ta chọn: Locate

Bước 4: Thu sản phẩm.

Hình 3.35 Sản phẩm cuối cùng

=>File sản phẩm cuối cùng

3.2. Cài đặt ứng dụng


Bước 1: Tải file apk về điện thoại.

Hình 3.36 File apk của App Message

Bước 2: Nhấn cài đặt.


51
Hình 3.37 Thông báo cài đặt trên điện thoại

Bước 3: Đợi điện thoại quét bảo mật và nhấn mở ứng dụng luôn nếu muốn.

Hình 3.38 App đã được cài đặt thành công

52
Kết luận
Kết quả đạt được:

Trong quá trình nghiên cứu và xây dựng đề tài, nhóm chúng em đã đạt được những kết
quả sau:

- Xây dụng một ứng dụng Message hoàn chỉnh.


- Nắm vững lập trình Android.
- Biết cách sử dụng nền tảng Firebase để cho ứng dụng android hoạt động trong thời
gian thực.
- Năm bắt được xu thế công nghệ trong nhiều ngành nghề hiện nay.

Hướng phát triển:

Phát triển ứng dụng hoàn chỉnh với nhiều chức năng như: tạo group chat, bảo mật tin
nhắn, ...

Thiết kế giao diện người dùng bắt mắt và thu hút người dùng.

Tung sản phẩm ra thị trường để có thể thu về lợi nhuận.

53
Tài liệu tham khảo

[1]. NEOS. Thanh, Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu
học lập trình, 2017.

[2] Lập trình với Android Studio - https://developer.android.com/develop#core-areas

[3] Tương tác giữa nền tảng Firebase và Android -


https://firebase.google.com/docs/auth/android/

[4] TS. Lê Văn Phùng, Kỹ thuật phân tích và thiết kế hệ thống thông tin hướng cấu trúc,
NXB Thông tin và Truyền thông.

54
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................
Giáo viên hướng dẫn

55

You might also like