Tải bản đầy đủ (.pdf) (59 trang)

Đồ án mạng xã hội hẹn hò honeyaa

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 (5.65 MB, 59 trang )


LỜI CẢM ƠN
Lời cảm ơn này nhóm chúng em xin gửi tới thầy Nguyễn Cơng Hoan,

người đã tận tình hướng dẫn nhóm chúng em trong khoảng thời gian thực hiện
đồ án. Những gợi ý và định hướng của thầy chính là nền móng vững chắc để
chúng em có thể thực hiện đề tài này một cách hoàn thiện nhất, những lời nhận
xét của thầy là những góp ý tổng quan nhất để cải thiện phần mềm cho nhóm
chúng em. Nhóm chúng em xin chân thành cảm ơn thầy.
Các kiến thức cần thiết cũng như việc thực hiện đề tài đã được thực hành
trong 3 tháng, với một khoảng thời gian ngắn ngủi như vậy việc có những thiếu
sót và các hạn chế là điều khó tránh khỏi. Vì vậy nhóm rất mong để có thể nhận
được sự chỉ bảo của thầy cũng như các đóng góp của các bạn để có cơ hội hồn
thiện ứng dụng nhiều hơn.


Mục Lục:
I. Giới thiệu chung
1. Sơ lược các thành viên trong nhóm
2. Tổng quan đề tài:

2.1 Giới thiệu đề tài
2.2 Khảo sát hiện trạng
2.3 Nội dung nghiên cứu
2.4 Kết quả hướng tới
II. Cơ sở lý thuyết

1. Tổng quan về Flutter và Dart
1.1 Khái niệm
1.2 Tại sao lại chọn Flutter và dart
1.3 Kiến trúc Flutter


1.4 Một số khái niệm cơ bản của Flutter
1.4.1 Stateful Widget
1.4.2 Stateless Widget
2. Tổng quan về Django RESTful Framework
2.1 Khái niệm
2.2 Tại sao lại chọn Django
2.3 Kiến trúc của Django
2.4 Các đặc trưng của Django
2.4.1 Django ORM
3. Tổng quan về Firebase
3.1 Khái niệm
3.2 Tại sao lại chọn Firebase
3.3 Một số chức năng của Firebase
4. Tổng quan về OneSignal
4.1 Khái niệm
4.2 Tại sao lại chọn Onesignal
4.3 Kiến trúc của Onesignal
5. Tổng quan về Ngrok
5.1 Khái niệm

6
6
6

6
7
7
8
8


8
8
8
9
11
11
12
13
13
13
14
14
14
16
16
16
16
17
17
17
18
18
18


5.2 Tại sao lại chọn Ngrok
5.3 Kiến trúc của Ngrok
III. Phân tích thiết kế hệ thống

1. Giới thiệu ứng dụng

1.1 Bài toán thực tế
1.2 Hướng giải quyết
1.3 Tổng quan ứng dụng
1.3.1 Sơ đồ
1.3.2 Mơ hình dữ liệu quan hệ
1.3.3 Kiến trúc hệ thống
2. Product Requirement Document
2.1 Objective
2.2 Release
2.2.1 Alpha Release
2.2.2 Beta Release
2.3 Features
2.3.1 Tính năng Match making
2.3.2 Tính năng xem những người đã like mình
2.3.3 Tính năng Like
2.3.4 Tính năng sửa thơng tin cá nhân
2.3.5 Tính năng upload ảnh
2.3.6 Tính năng nhắn tin
2.4 Mockup Design (Sketch)
2.5 Analytics
2.6 Future work
IV. Hiện thực hóa hệ thống

1. Kết quả đạt được
1.1 Giao diện mỗi màn hình
1.1.1 Splash Screen
1.1.2 LoginScreen
1.1.3 RegisterScreen
1.1.4 RegisterSubScreen


18
19
19

19
19
19
20
20
28
29
29
29
30
30
31
31
31
32
32
33
33
34
35
47
47
48

48
48

48
49
50
51


1.1.5 MainScreen
1.1.6 LikeScreen
1.1.7 ChatScreen
1.1.8 ProfileScreen
1.2 Ưu điểm
1.3 Nhược điểm
2. Hướng phát triển
Tài liệu tham khảo

54
55
56
57
58
58
58
58


I. Giới thiệu chung
1. Sơ lược các thành viên trong nhóm
Nhóm gồm 2 thành viên:
- Thành viên 1
: Đặng Ngọc Duy

MSSV
: 18520655
Lớp : PMCL2018.1
Email
:
- Thành viên 2
MSSV
Lớp
Email

: Đỗ Ngọc Cường
: 18520542
: PMCL2018.1
:

2. Tổng quan đề tài:
2.1 Giới thiệu đề tài

Phần mềm dần như là một mảng không thể thiếu trong cuộc sống hiện tại,
nó hỗ trợ rất nhiều khía cạnh từ các phần mềm cho việc kiểm tốn, quản
lý cho đến các phần mềm như là mạng xã hội để giao tiếp và xã giao. Và
một trong những mảng mới nhất gần đây mà các phần mềm mới phát triển
hướng tới là mảng giao tiếp, hẹn hò. Các ứng dụng mảng này hướng tới
việc số hóa việc làm quen một người và đẩy nhanh các quá trình tìm hiểu
một người.
Việc hẹn hị hay tìm hiểu một người mới luôn bao gồm các giai
đoạn diễn ra tuần tự như sau: Bắt chuyện một người, giai đoạn tìm hiểu và
cuối cùng sẽ dẫn tới giai đoạn hẹn hò.
Việc ra đời của các mạng xã hội hẹn giúp thúc đẩy các quá trình
này nhanh lên và dễ tiếp cận hơn và đặc biệt là tạo ra một cách dễ hơn để



có thể tìm hiểu sâu về một người. Từ đó nhóm chúng em quyết định lựa
chọn đề tài “mạng xã hội hẹn hị” với mục đích tạo ra một nơi giao lưu
cũng như kết bạn cho những người cô đơn hoặc đơn giản hơn là giảm thời
gian giữa các quá trình làm quen một người bạn mới.
2.2 Khảo sát hiện trạng

Hiện tại có các ứng dụng mạng xã hội và các mạng xã hội hẹn hị
khác như có thể kể đến như là Facebook, Tinder, Badoo, Blued, Ymeetme
hầu hết các mạng xã hội này đều hướng tới việc kết bạn và làm quen một
người mình chưa biết và bắt đầu bắt chuyện làm quen.
Trải nghiệm sử dụng phần mềm Tinder chúng em có rút ra các quy
trình như sau:
- Phần mềm bắt chúng ta phải like một người rồi phải chờ người đó
like lại mình
- Phần mềm có giao diện dễ dùng dễ hiểu.
- Quá trình tìm hiểu bắt buộc phải thông qua chat
Đúc kết từ các ý tưởng và các hạn chế trên nhóm em đề xuất một
ứng dụng mạng xã hội hẹn hò, tập trung vào việc ghép đơi nhanh. Và có
tương tác với các kênh chat.
2.3 Nội dung nghiên cứu

Nhóm chúng em xin đề xuất về các cơng nghệ cũng như đối tượng
tìm hiểu trong ứng dụng như sau:
● Công nghệ:
○ Flutter và dart
○ Django, Django RESTful framework và Python
○ PostgreSQL
○ Firebase, OneSignal, Ngrok

○ Mơ hình MVC và Bloc
● Đối tượng đề tài hướng đến:
○ Nam, nữ đang có nhu cầu kết bạn và mở rộng các mối quan
hệ.


2.4 Kết quả hướng tới

Đề tài ứng dụng hẹn hò là một phần mềm có thể sử dụng trên di động và
đáp ứng các yêu cầu:
- Kết bạn thông qua một mạng xã hội
- Có các bài đăng hoặc nơi lưu trữ các thơng tin người dùng
- Có update trạng thái người dùng.
- Hỗ trợ chọn bạn để hẹn hò một cách nhanh nhất
- Thúc đẩy quá trình làm quen truyền thống thay vào đó là sử dụng
trên một phần mềm di động.
Và các mục tiêu của sinh viên là:
● Tìm hiểu được các framework mới
● Tìm hiểu về quá trình chọn bạn để hẹn hị
● Xây dựng được phần mềm hẹn hị có thể sử dụng được trên điện
thoại di động.

II. Cơ sở lý thuyết
1. Tổng quan về Flutter và Dart
1.1 Khái niệm

Flutter được Google giới thiệu là một người mới trong thế giới ứng
dụng di động. Là một SDK mới của Google dành cho các thiết bị di động
giúp developers và designers xây dựng nhanh chóng ứng dụng dành cho
các thiết bị di động (Android, iOS). Flutter là dự án mã nguồn mở đang

trong giai đoạn thử nghiệm. Flutter bao gồm Reactive framework và công
nghệ hiển thị 2D (2D rendering engine)và các công cụ phát triển
(development tool). Các thành phần này làm việc cùng nhau giúp ta thiết
kế, xây dựng, test, debug ứng dụng.
1.2 Tại sao lại chọn Flutter và dart

Các nhà phát triển tại Google và các nơi khác sử dụng Dart để tạo
các ứng dụng chất lượng cao, quan trọng cho iOS, Android và web. Với
các tính năng nhắm đến sự phát triển phía khách hàng, Dart rất phù hợp


cho cả ứng dụng di động và web. Dart giúp bạn tạo ra những trải nghiệm
đẹp, chất lượng cao trên tất cả các màn hình, với:
● Một ngơn ngữ được tối ưu hóa cho client
● Framework mạnh mẽ
● Cơng cụ linh hoạt
1.3 Kiến trúc Flutter

Flutter được thiết kế như một hệ thống nhiều lớp, có thể mở rộng.
Nó tồn tại dưới dạng một loạt các thư viện độc lập mà mỗi thư viện phụ
thuộc vào lớp bên dưới. Khơng có lớp nào có quyền truy cập đặc quyền
vào lớp bên dưới và mọi phần của mức khung được thiết kế để trở thành
tùy chọn và có thể thay thế.

❖ Embedder Platform-specific:


Đối với hệ điều hành cơ bản, các ứng dụng Flutter được đóng gói
giống như bất kỳ ứng dụng gốc nào khác. Embedder Platform-specific
cung cấp một điểm nhập; phối hợp với hệ điều hành cơ bản để truy cập

vào các dịch vụ như hiển thị bề mặt, khả năng truy cập và đầu vào; và
quản lý vòng lặp sự kiện tin nhắn. Trình nhúng được viết bằng ngơn ngữ
phù hợp với nền tảng: hiện tại là Java và C ++ cho Android, Objective-C /
Objective-C ++ cho iOS và macOS, và C ++ cho Windows và Linux. Sử
dụng công cụ nhúng, mã Flutter có thể được tích hợp vào ứng dụng hiện
có dưới dạng mơ-đun hoặc mã có thể là tồn bộ nội dung của ứng dụng.
Flutter bao gồm một số trình nhúng cho các nền tảng mục tiêu chung.
❖ Flutter Engine:
Cốt lõi của Flutter là Flutter Engine , phần lớn được viết bằng C ++ và
hỗ trợ các nguyên tắc cần thiết để hỗ trợ tất cả các ứng dụng Flutter. Động
cơ chịu trách nhiệm sắp xếp các cảnh tổng hợp bất cứ khi nào cần sơn một
khung mới. Nó cung cấp triển khai cấp thấp của API cốt lõi của Flutter,
bao gồm đồ họa, bố cục văn bản, tệp và mạng I / O, hỗ trợ trợ năng, kiến
​trúc plugin và chuỗi công cụ biên dịch và thời gian chạy Dart.
❖ Flutter Framework:
Flutter Framework , cung cấp một framework hiện đại được viết
bằng ngơn ngữ Dart. Nó bao gồm một bộ thư viện nền tảng, bố cục và nền
tảng phong phú, bao gồm một loạt các lớp. Làm việc từ dưới lên trên,
gồm:
● Foundation classes và các dịch vụ khối xây dựng như
animation, painting, and gestures cung cấp các nội dung
trừu tượng thường được sử dụng trên nền tảng cơ bản.
● Rendering layer cung cấp một sự trừu tượng để xử lý bố
cục. Với lớp này, bạn có thể xây dựng một cây các đối tượng
có thể kết xuất. Bạn có thể thao tác động các đối tượng này,
với cây tự động cập nhật bố cục để phản ánh các thay đổi của
bạn.


● Widgets layer là một phần trừu tượng hóa thành phần. Mỗi

đối tượng kết xuất trong lớp kết xuất có một lớp tương ứng
trong lớp vật dụng. Ngoài ra, lớp vật dụng cho phép bạn xác
định tổ hợp các lớp mà bạn có thể sử dụng lại. Đây là lớp mà
tại đó mơ hình lập trình phản ứng được giới thiệu.
● Các thư viện Material và Cupertino cung cấp các bộ điều
khiển toàn diện sử dụng các thành phần native của lớp widget
để triển khai ngôn ngữ thiết kế Material hoặc iOS.

1.4 Một số khái niệm cơ bản của Flutter

1.4.1 Stateful Widget
StatefulWidget là một widget động và nó có thể thay đổi những gì nó
đang hiển thị bằng cách thay đổi state của chính nó.
Để có thể tạo một stateful widget cần phải kế thừa lớp statefulWidget
bằng cú pháp
Class main extends StatefulWidget
Và để một state cần có thể render được thì phải override các phương thức
build của state đó với cú pháp
@override
Widget build(buildcontext context)
Và cuối cùng để có thể đổi state của widget thì sẽ cập nhật thơng qua
phương thức setState() của widget
Các chức năng nên sử dụng stateful Widget là


1.4.2 Stateless Widget
StatelessWidget là một loại widget tĩnh và không thể tự thay đổi được
những gì mà nó hiển thị sau khi render.
Để có thể tạo ra một StatelessWidget cần phải kế thừa từ lớp
StateLesswidget của flutter và cần phải override lại một lớp build để có

thể render được widget
Class main extends Statelesswidget
@override
Widget build (buildcontext context)
Stateless widget không thể tự thay đổi được chính nó nhưng nếu widget
cha thay đổi thì statelesswidget sẽ được khởi tạo lại
Các trường hợp nên sử dụng StateLessWidget:


2. Tổng quan về Django RESTful Framework
2.1 Khái niệm

Trong bối cảnh phát triển web, chúng ta thường nói về RESTful API. Đây
là một cách phổ biến để cung cấp ứng dụng cho bên thứ ba ( các ứng dụng
và web ). Điều này chỉ cần cung cấp thông tin lưu trữ trong cơ sở dữ liệu
ở định dạng phổ biến như XML hoặc JSON, bằng cách này một ứng dụng
bên thứ ba có thể tương tác với dữ liệu mà không cần kết nối trực tiếp với
cơ sở dữ liệu , cũng vì thế khơng quan trọng cơ sở dữ liệu là MySQL hay
PostgreSQL, hoặc nếu ứng dụng được viết bằng Java hoặc Python, nhưng
RESTful APIs có thể được sử dụng để sửa chữa cơ sở dữ liệu.
Django REST framework là một công cụ hỗ trợ đắc lực trong việc xây
dựng Web API. Một số lý do khi ta nên sử dụng REST:
● Có hỗ trợ dữ liệu ORM và non-ORM với Serialization.
● Tài liệu phong phú, cộng đồng hỗ trợ lớn.
● Được sử dụng trong các công ty quốc tế như Mozilla, Red Hat,
heroku.
2.2 Tại sao lại chọn Django

Django cho phép giải quyết một số lượng lớn các nhiệm vụ rất nhanh
chóng và dễ dàng. Nó làm cho việc phát triển phần mềm bằng Python trở

nên dễ dàng và đơn giản.
ORM có nhược điểm nhưng Framework Django REST biến nhược điểm
của nó thành lợi thế vì giao diện mà Django ORM cung cấp là tốt nhất
cho REST.
Ưu điểm rất lớn của Framework Django REST là nó có các mơ hình giao
thoa hồn hảo nhưng nó cũng có thể hoạt động với việc triển khai các
Data Mapper Pattern.


2.3 Kiến trúc của Django

● HTTP requests sẽ được đối sánh bởi URL Patterns và được
chuyển đến View
● View xử lý các HTTP requests và trả về HTTP response (với sự
trợ giúp của Serializer )
● Serializer tuần tự hóa / giải mã hóa các đối tượng mơ hình dữ liệu
● Models chứa các trường và hành vi cần thiết cho hoạt động CRUD
với Database
2.4 Các đặc trưng của Django

2.4.1 Django ORM
ORM là một kỹ thuật lập trình giúp việc thực hiện ánh xạ CSDL sang các
đối tượng khác bằng các ngơn ngữ lập trình hướng đối tượng.
Việc sử dụng ORM cho phép lập trình viên thao tác với database một cách
hồn tồn tự nhiên, dễ hiểu thơng qua các đối tượng, lập trình viên khơng
cần nhúng tay vào database nhiều hay chỉnh sửa các kiểu dữ liệu trong
database.


Ưu điểm:

● Portable
● Nesting of Data
● Single Language
Nhược điểm:
● Slow
● Tunning
● Complex Queries
Cách tạo một bảng trong Django
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
Câu code ở trên tương đương với lệnh query sau
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);


3. Tổng quan về Firebase
3.1 Khái niệm

Firebase là platform do Google cung cấp, nhằm hỗ trợ việc tạo ra các web
application, mobile application với chất lượng cao.
Với việc sử dụng Firebase, developer có thể tập trung vào việc phát triển
application mà khơng cần lo về việc sản phẩm của mình sẽ hoạt động và
được quản lý thể nào ở phía Backend.
Khái niệm Backend nhắc tới trong câu trên để chỉ việc xử lý và lưu trữ dữ
liệu trong service, ở vùng "phía sau" mà người dùng khơng nhìn thấy.

Firebase là một trong những BaaS (Backend as a service).
Serverless architecture được chú ý như một giải pháp đáp ứng yêu cầu
release một dịch vụ trong thời gian ngắn, trong bối cảnh đó, BaaS ra mắt
người dùng.
BaaS hướng đến thiết bị chủ yếu là mobile nên còn được gọi với một tên
gọi khác là MBaaS.
3.2 Tại sao lại chọn Firebase

● Xây dựng ứng dụng nhanh chóng mà khơng tốn thời gian.
● Uy tín chất lượng đảm bảo từ Google: Firebase được google hỗ trợ
và cung cấp trên nền tảng phần cứng với quy mơ rộng khắp thế
giới, được các tập đồn lớn và các ứng dụng với triệu lượt sử dụng
từ người dùng.
3.3 Một số chức năng của Firebase










Firebase Analytics
Firebase Hosting
Firebase Cloud Messaging
Firebase Authentication
Firebase Cloud Storage
Firebase Remote Config

Firebase Test Lab
Firebase Crashlytics


● Firebase App Indexing
● Firebase Dynamic Links
● Firebase Console

4. Tổng quan về OneSignal
4.1 Khái niệm

OneSignal là dịch vụ nhanh nhất và đáng tin cậy nhất để gửi thông báo
đẩy, tin nhắn trong ứng dụng và email cho người dùng của bạn trên thiết
bị di động và web, bao gồm các nền tảng quản lý nội dung như WordPress
và Shopify. Trong tài liệu của chúng tơi, bạn có thể khám phá các tài
nguyên và đào tạo để triển khai SDK của OneSignal, tìm hiểu cách tận
dụng API mạnh mẽ của OneSignal và tìm các phương pháp hay nhất để
gửi tin nhắn nhằm tăng mức độ tương tác của người dùng.
4.2 Tại sao lại chọn Onesignal

● Không giới hạn thiết bị, không giới hạn tin nhắn, thống kê ngay lập
tức, có support api
● Có user segment
● Có A/B test message
● Thống kê nhận và click


4.3 Kiến trúc của Onesignal

5. Tổng quan về Ngrok

5.1 Khái niệm

Ngrok là công cụ tạo đường hầm (tunnel) giữa localhost của bạn và
internet. Giúp người khác mạng có thể truy cập được localhost của bạn
thơng qua custom domain của ngrok
Ví dụ: mydomain.ngrok.io => localhost:80

5.2 Tại sao lại chọn Ngrok

● Chạy demo dự án từ chính máy mà khơng cần deploy lên server
● Test responsive trên mobile một cách dễ dàng thông qua URL mà
ngrok cung cấp
● Xây dựng webhook tới localhost một cách dễ dàng
● Hỗ trợ http, https, tcp
● Hỗ trợ IP whitelist


5.3 Kiến trúc của Ngrok

III. Phân tích thiết kế hệ thống
1. Giới thiệu ứng dụng
1.1 Bài toán thực tế

Trong nền kinh tế đang phát triển con người đang dần phải làm việc nhiều
hơn và giao tiếp ít hơn, các giao tiếp hiện tại đều đã được số hóa các mạng xã
hội đã được phát triển để giúp các tương tác này trở nên đơn giản hơn. Việc làm
quen một người hay hẹn hò một người cũng bị ảnh hưởng rất nhiều vì vậy việc
số hóa giai đoạn này để có thể giúp mọi người làm quen với nhau qua các thiết
bị điện tử hiện nay cũng là điều thiết yếu.
1.2 Hướng giải quyết


Nhóm đề xuất xây dựng một ứng dụng mạng xã hội hẹn hị để có thể hỗ
trợ cũng như thúc đẩy quá trình làm quen một người mới này. Mạng xã hội này


tập trung chủ yếu về quá trình kết bạn và hơn nữa là hẹn hị. Mạng xã hội phải
có các tính năng tương tác cơ bản như like và chat cung cấp các phương thức để
giao tiếp với nhau.
1.3 Tổng quan ứng dụng

1.3.1 Sơ đồ
1.3.1.1 Sơ đồ Use case hệ thống

1.3.1.2 Đặc tả Use Case
Mã use case

UC01

Tên use case

Swipe

Tác nhân

Người dùng

Mơ tả

Cho phép người dùng chọn người mình thích


Điều kiện tiên
quyết

Người dùng đã phải có tài khoản
Người dùng đã đăng nhập

Luồng sự kiện

STT

Tác nhân

1

Truy cập vào
ứng dụng

2

Hệ thống phản hồi

Hệ thống đưa ra màn hình


Swipe
3

Kéo sang
trái, phải


4

Hệ thống nhận thông tin và lưu
vào cơ sở dữ liệu của hệ thống

Luồng thay thế
Điều kiện sau

Mình đã like một người

Điều kiện thoát

Mã use case

UC02

Tên use case

List all user

Tác nhân

Người dùng

Mô tả

Hiển thị tất cả những người đã thích mình

Điều kiện tiên
quyết


Người dùng phải đăng nhập vào ứng dụng

Luồng sự kiện

STT

Tác nhân

1

Vào màn
hình hiện
người like
mình

Luồng thay thế

Hệ thống phản hồi

2

Hệ thống đưa ra màn hình hiện
số lượng người like

3

Hệ thống gửi về list các người
đã like mình và hiện lên màn
hình hệ thống

Nếu dữ liệu gửi đến không


thành cơng thì sẽ báo có lỗi và
khơng hiển thị
Điều kiện sau

Hiện được list các người dùng đã thích mình

Điều kiện thoát

Người dùng chuyển sang tab khác,
Người dùng ấn nút thốt

Mã use case

UC03

Tên use case

Chat

Tác nhân

Người dùng

Mơ tả

Người dùng sau khi tương hợp có thể trị chuyện với
nhau.


Điều kiện tiên
quyết

Người dùng đã phải đăng nhập
Cả 2 người đã like lẫn nhau

Luồng sự kiện

STT

Tác nhân

1

Truy cập vào
trang trò
chuyện

2
3
4

Luồng thay thế

Hệ thống phản hồi

Hệ thống đưa ra giao diện nhắn
tin
Nhập thông

tin gửi
Hệ thống nhận thông tin gửi
lên server kiểm tra. Nếu hợp lệ
sẽ gửi cho người tới
Nếu không hợp lệ đưa ra màn
hình thơng báo gửi khơng
thành cơng


Điều kiện sau

Người dùng gửi được thơng tin

Điều kiện thốt

Người dùng chọn thốt phịng trị chuyện

Mã use case

UC04

Tên use case

Match

Tác nhân

Người dùng

Mô tả


Hai người dùng sau khi nhau sẽ tương hợp và có thể
trị chuyện với nhau

Điều kiện tiên
quyết

Người dùng đã đăng nhập
Hai người đã thích lẫn nhau

Luồng sự kiện

STT

Tác nhân

1

Gửi like tới
người kia

Hệ thống phản hồi

2

Hệ thống nhận thông tin và
kiểm tra xem là người kia có
like người dùng chưa

3


Nếu người kia đã like người
dùng rồi sẽ hiện lên match

Luồng thay thế
Điều kiện sau

Người dùng sẽ hiện trong danh sách chat

Điều kiện thoát

Người dùng chuyển tab
Người dùng ấn nút thoát


1.3.1.3 Lưu đồ xử lý việc matching


1.3.1.4 Lưu đồ xử lý việc nhắn tin


×