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

khóa luận xây dựng ứng dụng mạng xã hội bất động sản

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 (2.42 MB, 99 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

Huỳnh Tấn Duy
Huỳnh Phương Duy

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI
BẤT ĐỘNG SẢN
Building a Social Network application for Real Estate
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
THS. HUỲNH NGUYỄN KHẮC HUY

TP. HỒ CHÍ MINH, 2021


DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………………
ngày ……………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. …………………………………………. – Chủ tịch.
2. …………………………………………. – Thư ký.
3. …………………………………………. – Ủy viên.
4. …………………………………………. – Ủy viên.

2



ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ

CỘNG HỊA XÃ HỘI CHỦ NGHĨA

MINH

VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày tháng năm 2021
NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
Tên khóa luận:
Xây dựng ứng dụng Mạng xã hội Bất động sản
Nhóm sinh viên thực hiện:
Huỳnh Tấn Duy - 16520287
Huỳnh Phương Duy - 16520285
Cán bộ hướng dẫn:
ThS Huỳnh Nguyễn Khắc Huy
Đánh giá Khóa luận:
1. Về cuốn báo cáo
Số trang

Số chương


Số bảng số liệu

Số hình vẽ

Số tài liệu tham khảo

Sản phẩm

Một số nhận xét về hình thức cuốn báo cáo:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

3


2. Về nội dung nghiên cứu:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
3. Về chương trình ứng dụng:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

4. Về thái độ làm việc của sinh viên:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
Đánh giá chung​:
Điểm từng sinh viên:
HUỲNH TẤN DUY: ………../10
HUỲNH PHƯƠNG DUY: ………../10
​ gười nhận xét
N
(Ký và ghi rõ họ tên)

4


LỜI CẢM ƠN
Sau quá trình học tập, trau dồi và rèn luyện tại khoa Công nghệ phần mềm trường
Đại học Công nghệ Thông tin – ĐHQG TP.HCM, chúng em đã được trang bị những
kiến thức nền tảng, những kinh nghiệm thực tế q báu để hồn thành khóa luận
này.
Chúng em xin chân thành cảm ơn thầy Huỳnh Nguyễn Khắc Huy tận tình giúp đỡ,
góp ý, định hướng cho nhóm về yêu cầu của một khóa luận tốt nghiệp, về tác phong
làm việc và tư duy để thực hiện khóa luận. Sự góp ý, khuyên bảo của thầy ngay từ
giai đoạn ban đầu và xun suốt q trình thực hiện khóa luận đã giúp nhóm đi
đúng hướng và sn sẻ trong thời gian triển khai hiện thực khóa luận này.
Xin gửi lời biết ơn sâu sắc tới nhà trường, thầy cô và bạn bè đã kề vai sát cánh trong
suốt chặng đường 5 năm vừa qua. Mong rằng, chúng ta sẽ ln giữ vững tình cảm
gia đình này để làm hành trang cho cuộc đời của mỗi người. Xin chúc những điều

tốt đẹp nhất sẽ luôn đồng hành cùng mọi người.
Cuối cùng, dù đã cố gắng hết sức nhưng vẫn không thể tránh khỏi những sai sót, rất
mong sự góp ý và cảm thông từ quý thầy cô và các bạn.

TP. Hồ Chí Minh, tháng 01 năm 2021
Sinh viên
HUỲNH TẤN DUY
HUỲNH PHƯƠNG DUY

5


ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Xây dựng Mạng xã hội Bất động sản
Cán bộ hướng dẫn: Ths Huỳnh Nguyễn Khắc Huy
Thời gian thực hiện: Từ ngày 07/09/2020 đến ngày 11/01/2021
Sinh viên thực hiện:
Huỳnh Tấn Duy - 16520287
Huỳnh Phương Duy - 16520285
Nội dung đề tài:
1. Mục tiêu của đề tài
1.1. Bối cảnh chọn đề tài
Sự phát triển của Internet cùng với dân cư ở TP.HCM ngày càng nhiều, mạng xã
hội dành cho người quan tâm Bất động sản được xây dựng để đáp ứng được nhu
cầu tìm kiếm, đầu tư Bất động sản cho những người quan tâm đến Bất động sản
nói chung và bộ phận TP. HCM nói riêng.
Cùng với diễn biến phức tạp của dịch Covid-19 hiện nay làm cho thị trường Bất
động sản đang trở nên ảm đạm. Mạng xã hội này sẽ là một công cụ để mọi người
có thể tương tác, trao đổi các vấn đề Bất động sản với nhau trong và sau đại dịch.

1.2 Khảo sát các ứng dụng tương tự
1.2.1. Website batdongsan.com.vn - Kênh thông tin về Bất động sản
- Ưu điểm:
● Có đầy đủ các dịch vụ từ mua, bán đến cho thuê các dự án Bất động sản.
● Phân loại, tìm kiếm các nhu cầu rõ ràng.
- Nhược điểm:
● Chưa phải là một mạng lưới tương tác trực tiếp giữa 2 bên mua – bán.
● Việc đăng tin theo nhu cầu mua, bán, cho thuê tốn một khoản phí nhất định

6


1.2.2 Website/App Ohana - Ứng dụng giúp tìm kiếm, cho thuê nhà riêng,
chung cư, phòng trọ.
- Ưu điểm:
● Phân loại rõ ràng các khu vực cần thuê.
● Có thể tương tác trực tiếp với người chủ Bất động sản đó thông qua inbox,
call.
- Nhược điểm:
● Chỉ mới dừng lại ở việc cho th, chưa có tính năng mua bán.
● Khơng có các tính năng tương tác của một mạng xã hội: like, bình luận,
nhận thơng báo để theo dõi các hoạt động, ...
1.2.3 Marketplace của Facebook
- Ưu điểm:
● Thông tin rõ ràng, chi tiết về một bất động sản (Địa chỉ, giá cả, phân loại,
...)
● Tương tác với người chủ bất động sản qua messenger
- Nhược điểm:
● Hệ thống Marketplace đặt ở menu tùy chọn, không hiện trực tiếp trên
newsfeed người dùng, khó có thể tiếp cận đến nhiều người.

● Marketplace không tập trung vào bất động sản mà bao gồm nhiều mặt
hàng khác nhau nên sẽ khơng có các tính năng đặc thù cho bất động sản.
1.2.4 Kết luận
Về bản chất batdongsan.com.vn và ohana chỉ là những website trung gian để mơi
giới giữa 2 bên, chưa có hệ thống bình luận, đánh giá, chia sẻ cho một bất động
sản cụ thể.
Từ những phân tích về ưu và nhược điểm trên, nhóm chúng em quyết định xây
dựng một mạng xã hội với những điểm khác biệt sau:
● Mạng xã hội chuyên về Bất động sản cho phép đăng bài về mua, bán, cho
thuê, tìm bạn trong phạm vi TP. HCM với các thơng tin chi tiết, rõ ràng
(Loại hình bất động sản, giá cả, khu vực, hình ảnh, diện tích, ...) giúp các

7


đối tượng có nhu cầu có thể khảo sát, mua, bán, ... một cách dễ dàng nhất.
● Ngồi cơng cụ tìm kiếm như các website khác: tìm khoảng giá phù hợp,
tìm theo từng quận. Hệ thống của nhóm cho phép người dùng tìm kiếm
trong một phạm vi nhất định khơng phân biệt quận bằng cách phác họa
trên Google Map. Từ đó có được phạm vi cụ thể, sử dụng dữ liệu bất động
sản sẵn có để lọc ra những bài viết đúng theo nhu cầu người dùng.
● Hệ thống gợi ý kết nối giữa người đăng bài và người có nhu cầu về bất
động sản khi quan tâm đến một bài viết cụ thể. Hệ thống đánh giá độ quan
tâm đến bài viết của người đọc dựa trên các tiêu chí cụ thể: thời gian đọc
bài, các hành động thích, bình luận, lưu bài viết, ...
1.3. Mục đích của đề tài
Mạng xã hội bất động sản MyLand được thực hiện dựa trên các mục đích sau:
● Nghiên cứu các cơng nghệ và kĩ thuật lập trình theo xu hướng hiện nay:
Microservice, Java Spring, Docker, Angular, ...
● Phát triển ứng dụng có tính thực tiễn cao, áp dụng vào thực tế nhằm hỗ trợ

người dùng trong nhu cầu mua, bán, cho thuê bất động sản.
1.4 Nhiệm vụ đề tài
● Xây dựng hệ thống mạng xã hội cho phép người dùng đăng tin về mua,
bán, cho th,tìm bạn cùng phịng, ...
● Tính năng gợi ý kết nối giữa người đăng tin và người đọc khi người đọc
quan tâm đến bài viết nào đó.
● Tính năng tìm và khảo sát tình hình bất động sản trong khu vực chỉ định
thông qua Google Map API
1.5 Các yếu tố pháp lý, hành chính và chống gian lận
● Mạng xã hội phải xây dựng được bộ điều khoản, chính sách dịch vụ về :
đối tượng sử dụng, các hành vi được cho phép trên mạng xã hội, quyền lợi
và trách nhiệm của người dùng tham gia mạng xã hội ...
● Điều khoản phải làm rõ rằng mạng xã hội quy định ra nguyên tắc rõ ràng
cho người dùng, nhưng không đảm bảo rằng: Sản phẩm luôn ln an tồn,

8


bảo mật, khơng có các nội dung phản cảm hoặc sai trái.Người dùng có
trách nhiệm với hành vi của mình trên mạng xã hội.
● Ứng dụng sẽ cung cấp tính năng tố cáo cho các hành vi sai trái và có
quyền vơ hiệu hóa những tài khoản vi phạm quy định của mạng xã hội.
● Ứng dụng làm rõ trong điều khoản dịch vụ rằng : Ứng dụng là kênh thông
tin để kết nối người dùng với nhau. không cung cấp các tính năng về thanh
tốn, giao dịch tài chính. Ứng dụng đảm bảo mọi dữ liệu người dùng đưa
lên mạng xã hội đều sẽ được lưu trữ để xử lý khi có sự cố phát sinh.
● Những điều khoản này BẮT BUỘC phải được đồng ý nếu người dùng
muốn đăng ký tài khoản trở thành người dùng của ứng dụng.
2. Phạm vi của đề tài
Mạng xã hội bất động sản MyLand được xây dựng cả 2 phía back-end (Java

Spring) và front-end (Angular), kết hợp Google map API để thực hiện các tính
năng tìm kiếm, gợi ý nâng cao.
3. Đối tượng nghiên cứu
3.1 Công nghệ
● Java Spring
● Microservice
● Docker
● Angular
● Material UI
3.2. Đối tượng trong phạm vi hướng đến
● Những cá nhân có nhu cầu trong việc khảo sát, tìm kiếm, mua, bán nhà
đất, căn hộ,chung cư ...
● Sinh viên có nhu cầu tìm phịng trọ, bạn cùng phịng ở phạm vi Tp.HCM
4. Phương pháp thực hiện
● Làm việc nhóm hai thành viên, lên kế hoạch và thực hiện bằng cách trao
đổi trực tiếp hoặc gián tiếp thông qua Messenger, Google Meet, Trello,
Google Sheet.

9


● Tham khảo các ứng dụng tương tự và sự tư vấn của giảng viên hướng dẫn
● Thu thập feedback người dùng để cải thiện và nâng cao sản phẩm
5. Kết quả mong đợi
● Nắm bắt hồn chỉnh quy trình phát triển phần mềm từ giai đoạn khảo sát
thị trường cho đến khi release sản phẩm.
● Nắm bắt và hiểu rõ các công nghệ sử dụng.
● Nâng cao khả năng làm việc độc lập và theo nhóm.
● Xây dựng ứng dụng hồn chỉnh, mượt mà cả phía server lẫn client.


Kế hoạch thực hiện:
Nhóm chia thành 2 giai đoạn với tổng cộng 4 sprint.
- Giai đoạn 1 : Lên ý tưởng, phân tích yêu cầu, thiết kế kiến trúc và xây dựng
các chức năng cơ bản của một mạng xã hội dành cho người dùng : tạo tài khoản,
đăng nhập, đăng bài, thích, bình luận, chia sẻ, tạo nhóm, nhắn tin.

Sprint

Huỳnh Tấn Duy

Huỳnh Phương Duy

1 (07/09/2020 -

- Lên ý tưởng cho đề tài

- Phân tích các ứng dụng

02/10/2020)

- Phân tích yêu cầu phần

tương tự đã có trên thị

mềm, xác định các chức

trường

năng nâng cao, nổi


- Thiết kế, phác thảo giao

bật của phần mềm

diện cho ứng dụng

- Tìm hiểu cơng nghệ về

- Tìm hiểu cơng nghệ về

phía backend cho phần

phía front-end cho phần

mềm : Microservices, Java,

mềm: Typescript, Angular.

Spring,

- Viết tài liệu mô tả các API

Docker.

cần thiết cho một ứng dụng
mạng xã hội

10



2 (03/10/2020 -

- Triển khai hiện thực

- Triển khai hiện thực giao

02/11/2020)

kiến trúc Microservices

diện đã thiết kế ở sprint

- Viết các API cho các chức trước
năng cơ bản của một mạng

- Tích hợp giao diện với

xã hội dựa trên các tài liệu

API của hệ thống

đã viết ở sprint trước

- Giai đoạn 2 : Phát triển các chức năng nâng cao, nổi bật của đề tài : chức năng
tìm kiếm thơng tin bất động sản bằng cách khoanh vùng trên bản đồ và chức năng
gợi ý kết nối giữa người mua và người bán.

Sprint

Huỳnh Tấn Duy


Huỳnh Phương Duy

3 (03/11/2020 -

- Phát triển các API cho

- Tìm hiểu Google Map

04/12/2020)

chức năng gợi ý kết nối

API và Phát triển chức

giữa người mua và

năng tìm kiếm thơng tin

người bán.

bất động sản bằng cách
khoanh vùng trên bản đồ.

- Phát triển API để tải lên

- Cài đặt giao diện cho 2

các thông tin về bất động


chức năng nâng cao và tích

sản của hệ thống lên bản

hợp với API

đồ.

4 (05/12/2020 -

- Kiểm thử, sửa lỗi

- Kiểm thử, sửa lỗi

11/01/2020)

- Hoàn thiện, bổ sung các

- Hoàn thiện, bổ sung các

tính năng cịn thiếu.

tính năng cịn thiếu.

- Hồn thiện báo cáo

- Hoàn thiện báo cáo

11



Xác nhận của CBHD

TP. HCM, ngày 28 tháng 10 năm 2020
Sinh viên

12


MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1. Giới thiệu tổng quan
1.2. Khảo sát các ứng dụng tương tự trên thị trường
1.2.1. Website batdongsan.com.vn - Kênh thông tin về Bất động sản
1.2.2. Website/App Ohana - Ứng dụng giúp tìm kiếm, cho thuê nhà riêng,
chung cư, phòng trọ.
1.2.3. Marketplace của Facebook
1.3. Phân tích và đưa ra giải pháp để giải quyết vấn đề
1.4. Đối tượng nghiên cứu
1.4.1. Đối tượng Người dùng
1.4.2. Đối tượng Công nghệ
1.5. Phạm vi nghiên cứu
1.6. Phương pháp nghiên cứu
CHƯƠNG 2. NỀN TẢNG CƠNG NGHỆ
2.1. Ngơn ngữ lập trình Java
2.2. Spring Framework
2.3. Cơ sở dữ liệu MySQL
2.4. TypeScript
2.5. Angular Framework
2.6. Kiến trúc REST

2.7. Kiến trúc Microservices
2.8. OAuth2
2.8.1. Đặt vấn đề
2.8.2 Giới thiệu về OAuth2
2.8.3 Những khái niệm trong OAuth2
2.9. Google Maps API
2.10. WebSocket

2
2
3
3
3
4
4
5
5
5
5
6
7
7
8
9
10
12
13
13
14
14

15
15
18
19

CHƯƠNG 3. PHÂN TÍCH YÊU CẦU PHẦN MỀM
3.1. Yêu cầu tính năng
3.1.1. Tính năng cơ bản của một Mạng Xã Hội
3.1.2. Tính năng gợi ý kết nối giữa người đăng tin và người đọc khi người
đọc có dấu hiệu quan tâm về 1 bài đăng
3.1.3. Tính năng tìm và khảo sát tình hình bất động sản trong khu vực chỉ
định bằng cách vẽ khoanh vùng trên bản đồ
3.1.2. Yêu cầu về kiến trúc

13

20
20
20
21
22
24


24
25
25

3.1.3. Yêu cầu giao diện
3.2. Sơ đồ Use Case

3.2.1. Use Case mức tổng quát
3.2.2. Use case Đăng nhập/ đăng ký
3.2.3. Use Case Admin
3.2.4. Use case Người dùng

3.3. Sơ đồ Tuần tự
3.4.1. Tạo bài viết
3.4.2. Tìm kiếm bài viết
3.4.3. Gợi ý kết nối khi người dùng có dấu hiệu quan tâm về một bài viết
3.4.4. Báo cáo vi phạm của một bài viết
3.4. Sơ đồ trạng thái
3.4.1 Bài đăng
3.4.3 Tài khoản
3.4.4. Thích
3.4.5. Bình luận
CHƯƠNG 4. THIẾT KẾ VÀ CÀI ĐẶT BACK-END
4.1. Tổng quan kiến trúc Microservices
4.2. Auth-server Service
4.2.1 Vai trò
4.2.3 Thiết kế Cơ sở dữ liệu.
4.2.4. Công nghệ sử dụng
4.2.4.1. Spring
4.2.4.2. Spring Boot
4.2.4.3. OAuth2
4.3. Social-network Service
4.3.1. Vai trò
4.3.2. Thiết kế cơ sở dữ liệu
4.3.3. Công nghệ sử dụng
4.3.3.1 Spring
4.3.3.2. Spring Boot

4.3.3.3. Web Socket
4.4. Media Service
4.4.1. Vai trò
4.4.2. Thiết kế Cơ sở dữ liệu
4.4.3. Công nghệ sử dụng.

14

25
26
29

37
37
38
39
40
41
41
41
42
42
43
43
43
43
45
48
48
48

48
48
48
49
55
55
55
56
56
56
56
57


4.4.3.1. Spring
4.4.3.2 Spring Boot
4.4.3.3 Amazon SDK Java
4.5. Discovery Service - Netflix Eureka
4.6. Gateway Service - Netflix Zuul

57
57
57
57
58

CHƯƠNG 5. THIẾT KẾ VÀ CÀI ĐẶT FRONT-END
5.1. Tổng quan
5.2. Thiết kế giao diện phía người dùng
5.2.1 Giao diện trang chủ

5.2.2 Giao diện tìm kiếm bất động sản bằng Google Map
5.2.3 Giao diện đăng nhập/ đăng ký
5.3. Thiết kế giao diện quản trị viên (admin)

59
59
60
60
69
70
71

CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
6.1. Kết quả đạt được
6.1.1. Về mặt sản phẩm
6.1.1.1. Ưu điểm
6.1.1.2. Nhược điểm
6.1.2. Về mặt kiến thức và kĩ năng
6.2. Hướng phát triển

77
77
77
77
77
78
78

15



DANH MỤC HÌNH VẼ
Hình 1.1: Bảng xếp hạng các ứng dụng mạng xã hội được tải về nhiều
nhất trên Internet………………………………………………………………….... 2
Hình 2.1: Logo của Java………………………………………………………….... 7
Hình 2.2: Logo của Spring…………………………………………………………. 8
Hình 2.3: Lịch sử phát triển của MySQL……………………… ………………… 10
Hình 2.4: Logo của TypeScript…………………………………………………… 10
Hình 2.5: Logo của Angular.…………………………………………………….... 12
Hình 2.6: Logo của OAuth2.……………………………………………………… 15
Hình 2.7: Luồng hoạt động phổ biến của OAuth2………………………………... 16
Hình 2.8: Luồng hoạt động của Authorization Code……………………………... 16
Hình 2.9: Luồng hoạt động của Implicit………………………………………….. 17
Hình 2.10: Logo Google Map API………………………………………………... 18
Hình 2.11: Cấu trúc WebSocket…………………………………………………... 19
Hình 3.1: Phác thảo giao diện cho tính năng Tính năng tìm và khảo sát tình hình
bất động sản trong khu vực chỉ định bằng cách vẽ khoanh vùng trên bản đồ……. 23
Hình 3.2: Use case mức tổng quát………………………………………………... 25
Hình 3.3: Use case Đăng nhập…………………………………………………..... 26
Hình 3.4: Use case Đăng ký…………………………………………………......... 26
Hình 3.5: Use case Thống kê…………………………………………………....... 27
Hình 3.6: Use case Quản lý bài viết vi phạm……………………………………... 27
Hình 3.7: Use case Quản lý người dùng………………………………………….. 28
Hình 3.8: Use case Quản lý hệ thống kết nối……………………………………... 28
Hình 3.9: Use case đăng bài viết mới…………………………………………….. 29
Hình 3.10: Use case Thích bài viết……………………………………………….. 29
Hình 3.11: Use case Bình luận bài viết…………………………………………… 30
Hình 3.12: Use case Lưu bài viết…………………………………………………. 30
Hình 3.13: Use case Sửa bài viết…………………………………………………. 31
Hình 3.14: Use case Xóa bài viết…………………………………………………. 31


16


Hình 3.15: Use case Báo cáo bài viết vi phạm…………………………………… 32
Hình 3.16: Use case Tìm kiếm phổ thơng bằng filter sẵn có……………………... 32
Hình 3.17: Use case Tìm kiếm trên bản đồ bằng Google Map…………………… 33
Hình 3.18: Use case Xem thơng báo……………………………………………… 33
Hình 3.19: Use case Xem chi tiết bài viết………………………………………… 34
Hình 3.20: Use case Chat…………………………………………………………. 34
Hình 3.21: Sơ đồ tuần tự Tạo bài viết…………………………………………….. 37
Hình 3.22: Sơ đồ tuần tự Tìm kiếm bài viết……………………………………… 38
Hình 3.23: Sơ đồ tuần tự Gợi ý kết nối cho người dùng………………………….. 39
Hình 3.24: Sơ đồ tuần tự Báo cáo vi phạm……………………………………….. 40
Hình 3.25: Sơ đồ trạng thái Bài đăng……………………………………………... 41
Hình 3.26: Sơ đồ trạng thái Tài khoản……………………………………………. 41
Hình 3.27: Sơ đồ trạng thái Lượt thích…………………………………………… 42
Hình 3.28: Sơ đồ trạng thái Bình luận……………………………………………. 42
Hình 4.1: Tổng quan kiến trúc Microservices…………………………………….. 43
Hình 4.2: Cơ sở dữ liệu của Auth-server Service………………………………… 45
Hình 4.3: Cơ sở dữ liệu của Social-network Service……………………………... 49
Hình 4.4: Cơ sở dữ liệu của Media Service………………………………………. 56
Hình 5.1: Luồng hoạt động của một request API được gửi từ front-end…………. 59
Hình 5.2: Giao diện trang chủ…………………………………………………….. 60
Hình 5.3: Cửa sổ tạo bài viết mới………………………………………………… 61
Hình 5.4: Mục Thích, Bình luận bài viết…………………………………………. 62
Hình 5.5: Xem thơng báo…………………………………………………………. 62
Hình 5.6: Thơng báo quan tâm đến một bài viết………………………………….. 63
Hình 5.7 Thơng báo gợi ý nhắn tin trao đổi trực tiếp về BĐS……………………. 63
Hình 5.8 Thơng báo tạo Video Meeting để trao đổi trực tiếp…………………….. 63

Hình 5.9: Giao diện tạo Google Meeting………………………………...……….. 64
Hình 5.10: Cửa sổ chat và danh sách chat………………………...……………….64
Hình 5.11: Mục bài viết đã được lưu………………………..……………………. 65

17


Hình 5.12: Cửa sổ sửa bài viết………………………………………..…………... 65
Hình 5.13: Cửa sổ báo cáo bài viết vi phạm…………………………..………….. 66
Hình 5.14: Trang cá nhân…………………………………………………………. 66
Hình 5.15: Lối tắt tiện ích……………………………………………………….... 67
Hình 5.16: Mục tìm kiếm phổ thơng bằng filter sẵn có…………………………... 67
Hình 5.17: Mục đăng xuất………………………………………………………… 68
Hình 5.18: Giao diện chi tiết bài viết……………………………………………... 68
Hình 5.19: Giao diện tìm kiếm bằng Google Map………………………………... 69
Hình 5.20: Hình ảnh thực tế từ tính năng Browse Street View…………………....70
Hình 5.21: Giao diện đăng nhập………………………………………………….. 70
Hình 5.22: Giao diện đăng ký…………………………………………………….. 71
Hình 5.23: Giao diện thống kê……………………………………………………. 71
Hình 5.24: Giao diện quản lý bài viết vi phạm…………………………………… 72
Hình 5.25: Giao diện quản lý loại vi phạm……………………………………….. 73
Hình 5.26: Giao diện cửa sổ tạo mới/ xóa vi phạm……………………………….. 74
Hình 5.27: Giao diện quản lý hệ thống gợi ý kết nối người dùng………………... 75
Hình 5.28: Giao diện cửa sổ chỉnh sửa điểm……………………………………... 75
Hình 5.29: Giao diện cửa sổ tạo mới điểm……………………………………….. 76

18


DANH MỤC BẢNG

Bảng 2.1: Phân biệt Authentication và Authorization……………………………. 14
Bảng 2.2: Các đối tượng trong OAuth 2………………………………………….. 15
Bảng 3.1: Bảng điểm quy định cho các hành vi trong hệ thống………………….. 22
Bảng 3.2: Bảng quy định hành động gợi ý kết nối tương ứng với
mức độ quan tâm……………………………………………………….. 22
Bảng 3.3: Danh sách các actor trong hệ thống……………………………………. 35
Bảng 3.4: Bảng danh sách các Use case………………………………………….. 36
Bảng 4.1: Bảng user………………………………………………………………. 46
Bảng 4.2: Bảng role………………………………………………………………. 46
Bảng 4.3: Bảng users_roles………………………………………………………. 47
Bảng 4.4: Bảng oauth_client_details……………………………………………... 47
Bảng 4.5: Bảng post………………………………………………………………. 50
Bảng 4.6: Bảng like………………………………………………………………. 51
Bảng 4.7: Bảng comment…………………………………………………………. 51
Bảng 4.8: Bảng notification………………………………………………………. 52
Bảng 4.9: Bảng report…………………………………………………………….. 53
Bảng 4.10: Bảng report_type……………………………………………………... 53
Bảng 4.11: Bảng level…………………………………………………………….. 53
Bảng 4.12: Bảng action………………………………………………………….... 54
Bảng 4.13: Bảng user_level………………………………………………………. 54
Bảng 4.14: Bảng user_action……………………………………………………... 55
Bảng 4.15: Bảng user_post……………………………………………………….. 55
Bảng 4.16: Bảng image…………………………………………………………… 57

19


DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT

STT


Từ viết tắt

Từ đầy đủ/ ý nghĩa

1

API

Application Programming Interface

2

AWS

Amazon Web Service

3

AWS S3

Amazon Simple Storage Service

4

REST

Representational State Transfer

5


Netflix OSS

Netflix Open Source Software

6

JVM

Java Virtual Machine

7

HTTP

HyperText Transfer Protocol

8

Newfeed

Bảng tin

9

Online

Trực tuyến

10


Request

Gửi yêu cầu

11

Response

Phản hồi

12

Server

Máy chủ

13

Filter

Bộ lọc

14

BĐS

Bất động sản

15


Component

Thành phần/ Đối tượng được triển khai phía
giao diện website

20


TĨM TẮT KHĨA LUẬN
Khóa luận "Xây dựng Ứng dụng Mạng xã hội Bất động sản" gồm 6 chương:
Chương 1 - Tổng quan đề tài: Giới thiệu chung về đề tài. Khảo sát các ứng dụng
tương tự trên thị trường, từ đó đề xuất giải pháp để giải quyết các vấn đề đã đặt ra.
Ngoài ra, chương 1 cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài, phương
pháp làm việc và nghiên cứu.
Chương 2 - Nền tảng công nghệ: Trình bày kiến thức về cơng nghệ nền tảng được
nghiên cứu và sử dụng để xây dựng ứng dụng.
Chương 3 - Phân tích yêu cầu phần mềm: phân tích yêu cầu phần mềm về tính năng,
kiến trúc, giao diện. Vẽ các sơ đồ use case, tuần tự, trạng thái.
Chương 4 - Thiết kế kiến trúc và cài đặt Back-end: Kiến trúc hệ thống
Microservices. Trình bày chi tiết từng service : vai trò, thiết kế cơ sở dữ liệu, ứng
dụng công nghệ.
Chương 5: Thiết kế giao diện và cài đặt Front-end: Giao diện của ứng dụng
MyLand. Trình bày chi tiết các xử lý, thao tác giao diện người dùng và admin.
Chương 6: Kết luận và hướng phát triển.

1


CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI

1.1. Giới thiệu tổng quan
Trong thời đại hiện nay, các ứng dụng mạng xã hội có sức thu hút rất lớn đối
với người dùng. Các trang mạng xã hội nổi tiếng có thể kể ra như Facebook,
Instagram, Twitter luôn dẫn đầu bảng xếp hạng các ứng dụng có lượt truy cập nhiều
nhất trên Internet, dẫn đến sức ảnh hưởng không thể chối cãi của các ứng dụng này
đến cuộc sống, lối suy nghĩ và hành vi đến cuộc sống của mỗi chúng ta. Các mạng
xã hội được sử dụng như một công cụ để kết nối, thảo luận, trao đổi với nhau về
những gì mà chúng ta quan tâm, một cách tiện lợi và nhanh chóng nhất.

Hình 1.1: Bảng xếp hạng các ứng dụng mạng xã hội được tải về nhiều nhất trên
Internet
Lại nhắc đến Bất động sản, đây là một đề tài được đông đủ người dùng quan
tâm. Với tốc độ gia tăng dân số chóng mặt của thế giới, Bất động sản trở thành một
tài sản giá trị và có sức hấp dẫn rất lớn. Dù có phần lắng xuống trong thời gian vừa
qua do ảnh hưởng của dịch Covid-19, thị trường bất động sản vẫn duy trì được sức
hút đáng nể đối với đông đảo người dùng trên internet.
Trong thời gian vừa qua, nhóm có nhu cầu tìm th một bất động sản nên có
sử dụng qua một số ứng thơng tin về bất động sản hiện nay như batdongsan.com.vn,
Ohana, Facebook Marketplace và gặp một số khó khăn để đạt được nhu cầu của

2


mình. Từ đó, nhóm nảy sinh ra ý tưởng : "Nếu có một ứng dụng mạng xã hội chuyên
về bất động sản, và cung cấp các chức năng chuyên biệt dành cho bất động sản thì
sẽ giúp ích được cho rất nhiều người dùng và giải quyết được các vấn đề cịn tồn
động của các ứng dụng hiện tại."
Do đó, nhóm thực hiện đề tài này với mong muốn giải quyết được những bất
tiện của người dùng khi có nhu cầu tìm hiểu, trao đổi thơng tin về Bất động sản trên
Internet. Đồng thời, ứng dụng những kiến thức nền tảng được học ở trường, những

kinh nghiệm thực tiễn khi đi thực tập để triển khai ứng dụng. Qua đó, nhóm có thể
củng cố kiến thức, học được thêm nhiều công nghệ mới và đáp ứng được các yêu
cầu phần mềm của ứng dụng.
1.2. Khảo sát các ứng dụng tương tự trên thị trường
1.2.1. Website batdongsan.com.vn - Kênh thông tin về Bất động sản

Ưu điểm



Có đầy đủ các dịch vụ từ mua, bán đến cho thuê các dự

án Bất động sản.


Phân loại, tìm kiếm các nhu cầu rõ ràng.

Nhược



Chưa phải là một mạng lưới tương tác trực tiếp giữa 2

điểm

bên mua – bán do khơng có các tính năng của một mạng xã
hội.


Việc đăng tin theo nhu cầu mua, bán, cho thuê tốn một


khoản phí nhất định.
Bảng 1.1: Ưu và nhược điểm của website batdongsan.com
1.2.2. Website/App Ohana - Ứng dụng giúp tìm kiếm, cho th nhà riêng,
chung cư, phịng trọ.

Ưu điểm



Phân loại rõ ràng các khu vực cần thuê



Có thể tương tác trực tiếp với người chủ Bất động sản

đó thông qua inbox, call

3


Nhược điểm



Chỉ mới dừng lại ở việc cho thuê, chưa có tính năng

mua bán



Khơng có các tính năng tương tác của một mạng xã

hội: thích, bình luận, nhận thơng báo để theo dõi các hoạt
động, ...
Bảng 1.2: Ưu và nhược điểm của website ohana
1.2.3. Marketplace của Facebook



Ưu điểm

Thông tin rõ ràng, chi tiết về một bất động sản (Địa

chỉ, giá cả, phân loại, ...)

Nhược điểm



Tương tác với người chủ bất động sản qua messenger



Hệ thống Marketplace đặt ở menu tùy chọn, không

hiện trực tiếp trên bảng tin của người dùng, khó có thể tiếp
cận đến nhiều người.


Marketplace khơng tập trung vào bất động sản mà bao


gồm nhiều mặt hàng khác nhau nên sẽ khơng có các tính
năng đặc thù cho bất động sản.
Bảng 1.3: Ưu và nhược điểm của Facebook Marketplace
1.3. Phân tích và đưa ra giải pháp để giải quyết vấn đề
Về bản chất batdongsan.com.vn và ohana chỉ là những website trung gian để
môi giới giữa 2 bên, chưa có hệ thống bình luận, đánh giá, chia sẻ cho một bất động
sản cụ thể. Trong khi bất động sản chỉ là một phần rất nhỏ trong hệ sinh thái của
Facebook, dẫn tới thiếu các tính năng đặc thù cho Bất động sản và khó tiếp cận đến
nhiều người dùng.
Từ những phân tích về ưu và nhược điểm trên, nhóm chúng em quyết định
xây dựng một mạng xã hội với những điểm khác biệt sau:
● Mạng xã hội chuyên về Bất động sản cho phép đăng bài về mua, bán, cho
th, tìm bạn trong phạm vi TP Hồ Chí Minh với các thông tin chi tiết, rõ

4


ràng (Loại hình bất động sản, giá cả, khu vực, hình ảnh, diện tích, ...) giúp
các đối tượng có nhu cầu có thể khảo sát, mua, bán, ... một cách dễ dàng
nhất.
● Bên cạnh cơng cụ tìm kiếm như các website khác: tìm khoảng giá phù hợp,
tìm theo địa chỉ khu vực. Hệ thống của nhóm cho phép người dùng tìm kiếm
trong một phạm vi nhất định bằng cách vẽ phác họa trên Google Map. Từ đó
có được phạm vi cụ thể, sử dụng dữ liệu bất động sản sẵn có để lọc ra những
bài viết đúng theo nhu cầu người dùng.
● Hệ thống gợi ý kết nối giữa người đăng bài và người có nhu cầu về bất động
sản khi quan tâm đến một bài viết cụ thể. Hệ thống đánh giá độ quan tâm đến
bài viết của người đọc dựa trên các tiêu chí cụ thể: thời gian đọc một bài viết,
các hành động thích, bình luận, lưu bài viết, ...

1.4. Đối tượng nghiên cứu
1.4.1. Đối tượng Người dùng
● Những cá nhân có nhu cầu trong việc trao đổi thơng tin, khảo sát, tìm
kiếm, mua, bán nhà đất, căn hộ chung cư ... ở thành phố Hồ Chí Minh.
● Sinh viên có nhu cầu tìm phịng trọ, bạn cùng phịng trong phạm vi thành
phố Hồ Chí Minh.
1.4.2. Đối tượng Cơng nghệ
● Ngơn ngữ lập trình Java và Spring Framework
● Kiến trúc Microservices
● Docker
● Ngơn ngữ lập trình Typescript và Angular Framework
● Material UI
● OAuth2
1.5. Phạm vi nghiên cứu
● Mạng xã hội bất động sản MyLand được xây dựng cả 2 phía back-end (Java
Spring) và front-end (Angular), kết hợp Google map API để thực hiện các
tính năng tìm kiếm, gợi ý nâng cao.

5


×