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

Đồ án xây dựng ứng dụng thu nhập và chia sẻ thông tin bất động sản kết hợp chatbot

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.57 MB, 93 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

NGUYỄN VŨ KHÁNH – 18520903
NGUYỄN HOÀI PHONG – 18521238

ĐỒ ÁN 1
HỆ THỐNG TƯ VẤN LỰA CHỌN
BẤT ĐỘNG SẢN

Real Estate consulting system

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2021


ĐẠ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

NGUYỄN VŨ KHÁNH – 18520903
NGUYỄN HOÀI PHONG – 18521238

ĐỒ ÁN 1
HỆ THỐNG TƯ VẤN LỰA CHỌN
BẤT ĐỘNG SẢN


Real Estate consulting system

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
ThS. TRẦN ANH DŨNG

TP. HỒ CHÍ MINH, 2021


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

CỘNG HỒ XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

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

CÔNG NGHỆ THÔNG TIN
________________________

________________________

ĐỀ CƯƠNG CHI TIẾT

Tên đề tài: Xây dựng ứng dụng thu nhập và chia sẻ thông tin bất động sản kết hợp chatbot
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 21/03/2021 đến ngày 01/07/2021
Sinh viên thực hiện:
1. Nguyễn Vũ Khánh - 18520903

2. Nguyễn Hoài Phong - 18521238
Nội dung đề tài:
• Mục tiêu:
-

Xây dựng hệ thống bao gồm những chức năng cơ bản của một trang thông tin bất động
sản: xem tin bất động sản, tìm kiếm thơng tin như: thông tin để liên lạc người bán, giá
cả, địa chỉ, thể hiện chi tiết thông tin bất động sản.

-

Xây dựng hệ thống cho phép người dùng đăng tin chia sẻ bất động sản.

-

Xây dựng trang web thông tin bất động sản như một trang kinh doanh bất động sản và
có các tin tức về thị trường bất động sản.


-

Xây dựng hệ thống với các công nghệ mới như JavaSpring Boot, Reactjs, Postgresql.
Nhóm em chọn những cơng nghệ này vì chúng có tính bao qt rộng hơn, JavaSpring
Boot Có ít cấu hình, có khả năng tự động cấu hình lại Spring khi cần, từ đó giúp các
thành viên có thể tiết kiệm thời gian viết code và tăng thêm năng suất, còn Reactjs là
một frontend mới nổi do facebook tạo ra, hỗ trợ rất nhiều thư viện, giúp dễ dàng trong
việc xây dựng ứng dụng.Postgresql hỗ trợ các đối tượng địa lý để có thể sử dụng cho
các dịch vụ dựa trên vị trí và hệ thống thơng tin địa lý.

• Đối tượng: Những người có nhu cầu tìm kiếm và chia sẻ thơng tin bất động sản.

• Tính mới/ khác biệt về chức năng:
-

Thêm ý tưởng:
Các trang bất động sản hiện nay đa số đều có phương thức hoạt động tương đồng ở
các hình thức chia sẻ thơng tin bất động sản, thông tin được cung cấp tràn lan, một
chiều, khơng có tính xác thực, khơng có nhận xét từ người dùng.
Vì thế nhóm em quyết định xây dựng trang web thông tin bất động sản như một
trang kinh doanh và có cả thơng tin về thị trường bất động sản, có các chức năng cơ
lưu thơng tin bất động sản và nhắn tin để tăng tính tương tác giữa người dùng, tăng
tính xác thực cho thơng tin bất động sản.
Chúng em sẽ thêm chức năng recommend các thơng tin bất động sản dựa trên lượt
tìm kiếm của người dùng hoặc có thể dựa trên thơng tin, địa chỉ người dùng để có
các thơng tin bất động sản cần thiết cho người dùng.

-

Chọn lọc các chức năng:
Khảo sát qua các trang bất động sản lớn của Việt Nam hiện nay như diaoconline.vn,
batdongsan.com.vn, alonhadat.com.vn,… nhóm nhận thấy:
Khi tìm được một thơng tin bất động sản mình thích nhưng khách hàng
không thể nào lưu lại, mỗi lần muốn xem một thơng tin khách hàng phải tìm
đến đúng thơng tin đó. Hạn chế trong việc tìm kiếm thơng tin. Vì thế ứng


dụng của nhóm có thêm phần danh sách ưa thích, khi người dùng thấy thích
nơi nào có thể chọn lưu vào danh sách để xem lại sau.
Các trang bất động sản đều trình bày theo hình thức đơn giản, khiến người
dùng dễ dàng sử dụng khi lần đầu vào trang web. Cũng vì thế mà nhóm cũng
đã thiết kế giao diện gọn gàng khơng rối mắc.

Nhóm em sẽ thu thập tất cả các thơng tin thật và chính chủ để hạn chế các
thơng tin rác và khơng chính xác khiến người tim kiếm sai sự thật.
Ngồi ra cịn các chức năng cơ bản của các trang bất động sản như tìm kiếm,
đăng tin, sửa tin, xem thơng tin chi tiết.
• Phạm vi:
-

Phạm vi địa lý: Ứng dụng sử dụng tại Việt Nam.

-

Phạm vi chức năng:
Quản lý người sử dụng.
Quản lý bài viết.
Quản lý thơng tin bất động sản
Quản lý tìm kiếm thơng tin (recommend bài viết)

• Phương pháp thực hiện:
-

Làm việc cá nhân, sử dụng request để lấy thông tin công ty từ một trang web cụ thể, lưu
xuống database và xuất lên cho người dùng thấy.

-

Xậy dựng database với Postgresql.

-

Xây dựng hệ thống Restful API với javaSpring Boot.


• Cơng nghệ sử dụng:
-

ReacJs.


-

Postgresql.

-

Java

-

Tool: Visual Code, Intelij, Postman,…

Lí do sử dụng các cơng nghệ trên:
-

Sử dụng Spring boot được xem là một tiêu chuẩn cho sự cho cấu hình giúp nâng cao
năng suất cho developer. Được xem là cấu hình thiết kế phần mềm tối ưu nhất, tạo ra
ứng dụng độc lập được ứng dụng trong tương lai.

-

Cơ sở dữ liệu PostgreSQL là một hệ thống quản lý dữ liệu nguồn mở cấp doanh nghiệp.
Nó hỗ trợ cả SQL cho quan hệ và JSON cho các truy vấn khơng liên quan. Nó được hỗ

trợ bởi một cộng đồng các nhà phát triển có kinh nghiệm, những người đã đóng góp to
lớn để làm cho nó trở thành hệ thống DBMS có độ tin cậy cao.

-

Reactjs là một frontend được nhiều phần mềm sử dụng vì tính phong phú và đa dạng,
được nhiều thư việc hỗ trợ, nên có thể tuỳ biến phần frontend trở nên đẹp hơn mà
khơng thơ cứng.

• Kết quả mong đợi:
-

Hoàn thiện ứng dụng web thu thập và chia sẻ thông tin bất động sản, đáp ứng đủ các
nhu cầu cơ bản.

-

Tạo ra hệ thống cho người dùng có thể đăng thơng tin rao bán trên website.

• Định hướng phát triển: Mở rộng thêm các trang web khác, thêm các tính năng mới tiện
lợi cho người dùng.


Kế hoạch thực hiện: (thời gian thực hiện trong 17 tuần)
STT

Cơng việc

Phase 1: Tìm hiểu và xây dựng ứng dụng web có


Thời gian thực hiện

Phân cơng

4 tuần

backend và frontend
1

Sprint 1: Tìm hiểu các định nghĩa về
JavaSpring Boot+ Reactjs + Postgresql
- JavaSpring Boot là gì?
- Reactjs là gì?

Tuần 1 – 2 (21/3/2021 –

- Postgresql là gì?

4/4/2021)

1.1

Khánh,Phong

- Cách kết hợp chúng lại với nhau
Sprint 2: Xây dựng ứng dụng cơ bản kết
2

hợp JavaSpring Boot+ Reactjs +
Postgresql

- Xây dựng ứng dụng cơ bản để hiểu về luồng Tuần 3 – 4 (11/4/2021 –

2.1

chạy của các ngôn ngữ, kết hợp 2 sever spring 25/4/2021)

Khánh,Phong

boot và reactjs thành 1
Phase 2: Xây dựng ứng dụng thu nhập và chia sẻ

13 tuần

thông tin của các công ty
3

Sprint 3: Xây dựng RESTful API với
database postgresql
- Tạo database và kết nối postgresql

3.1

- Tạo API để lấy thông tin từ một đường link

Tuần 5 – 8 (2/5/2021 –

cụ thể, xuất ra thông tin và trả về cho người

30/5/2021)


dùng.
- Tạo API thêm, sửa, xoá các lĩnh vực.

Khánh


4

Sprint 4: Xây dựng Frontend với Reactjs
- Tạo trang web với Reactjs

4.1

- Gọi các API từ Backend lên Frontend để sử
dụng

Tuần 5 – 10 (02/05/2021
– 13/06/2021)

Phong

- Thiết kế và chỉnh sửa UI/UX
Phase 3: Kiểm thử và đánh giá
5

2 tuần

Sprint 5: Kiểm thử
Tuần 11 - 12


5.1

- Kiểm thử

(14/06/2021 –

- Đánh giá

01/07/2021)

Khánh,Phong

Xác nhận của CBHD

TP. HCM, ngày 30 tháng 06 năm 2021

(Ký tên và ghi rõ họ tên)

Sinh viên
(Ký tên và ghi rõ họ tên)


MỤC LỤC

TÓM TẮT ĐỒ ÁN....................................................................................... 1
Chương 1. TỔNG QUAN ......................................................................... 2
1.1.

Đặt vấn đề ...............................................................................................2


1.2.

Phát biểu bài toán ....................................................................................2

1.2.1. Giới thiệu hệ thống website “Tìm kiếm và chia sẻ thơng tin bất động
sản”

2

1.2.2. Khảo sát hệ thống liên quan ................................................................3
1.3.

Mục tiêu và phạm vi đề tài......................................................................4

1.3.1. Mục tiêu ...............................................................................................4
1.3.2. Phạm vi ................................................................................................4
1.3.3. Đối tượng sử dụng ...............................................................................5
1.3.4. Kết quả dự kiến ...................................................................................5

Chương 2. CƠ SỞ LÝ THUYẾT ............................................................. 6
2.1.

JavaSpring Boot ......................................................................................6

2.1.1. Khái niệm ............................................................................................6
2.1.2. Tại sao nên sử dụng JavaSpring Boot .................................................6
2.1.3. Áp dụng Java vào đề tài ......................................................................6
2.2.

Postgresql ................................................................................................6


2.2.1. Giới thiệu về Postgesql ........................................................................6
2.2.2. Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu Postgresql ...................7


2.2.3. Áp dụng PostgreSQL vào đề tài ..........................................................8
2.3.

Reactjs .....................................................................................................8

2.3.1. Giới thiệu về Reactjs ...........................................................................8
2.3.2. Tại sao nên sử dụng Reactjs ................................................................9

Chương 3. PHÁT BIỂU BÀI TOÁN ..................................................... 12
3.1.

Giới thiệu hệ thống website “Tìm kiếm và chia sẻ thơng tin bất động

sản”

12

3.2.

Khảo sát các hệ thống liên quan ...........................................................13

3.2.1. Website batdongsan.com.vn ..............................................................13
3.2.2. Website mogi.vn ................................................................................15
3.2.3. So sánh hệ thống với các website ......................................................16
3.3.


Yêu cầu hệ thống ..................................................................................18

3.3.1. Yêu cầu chức năng ............................................................................18
3.3.2. Yêu cầu phi chức năng ......................................................................19

Chương 4. ĐẶC TẢ CÁC CHỨC NĂNG ............................................. 21
4.1.

Chức năng đăng bài viết .......................................................................21

4.2.

Chức năng tìm kiếm bài viết .................................................................21

4.3.

Chức năng u thích, lưu lại thông tin bài viết quan tâm .....................21

4.4.

Chức năng recommend bài viết ............................................................22

4.5.

Chức năng quản lý người dùng .............................................................22

4.6.

Chức năng quản lý bài viết ...................................................................22


4.7.

Chức năng quản lý các báo cáo ............................................................22

Chương 5. THIẾT KẾ DỮ LIỆU .......................................................... 23
5.1.

Sơ đồ cơ sở dữ liệu ...............................................................................23


5.2.

Mô tả chi tiết các bảng ..........................................................................23

5.2.1. Bảng “user” – Tài Khoản người Dùng ..............................................23
5.2.2. Bảng “role” – Vai trò của người dùng...............................................25
5.2.3. Bảng “privilege” – Quyền hạn có trong hệ thống .............................25
5.2.4. Bảng “role_privilege” – Quyền hạn của vai trò ................................26
5.2.5. Bảng “user_address” – Địa chỉ của người dùng................................27
5.2.6. Bảng “country” – Quốc gia ...............................................................28
5.2.7. Bảng “province” – Tỉnh, Thành Phố .................................................28
5.2.8. Bảng “district” – Xã, Huyện..............................................................29
5.2.9. Bảng “apartment” – Thông tin bất động sản .....................................29
5.2.10. Bảng “apartment_detail” – Thông tin chi tiết bất động sản ..............31
5.2.11. Bảng “apartment_address” – Địa chỉ bất động sản ...........................32
5.2.12. Bảng “category” – Thể loại bất động sản ..........................................33
5.2.13. Bảng “favourite” – Danh sách bất động sản yêu thích của người dùng
34
5.2.14. Bảng “tracking_category” – Danh sách thông tin tracking của người

dùng đối với thể loại......................................................................................35
5.2.15. Bảng “tracking_district” – Danh sách thông tin tracking của người
dùng đối với huyện/xã ...................................................................................36
5.2.16. Bảng “tracking_province” – Danh sách thông tin tracking của người
dùng đối với quận/thành phố.........................................................................37

Chương 6. HIỆN THỰC HỆ THỐNG – SƠ ĐỒ USECASE .............. 38
6.1.

Danh sách actor .....................................................................................38

6.2.

Sơ đồ usecase tổng quát ........................................................................39

6.3.

Đặc tả một số use-case chính ................................................................42


6.3.1. Đặc tả use-case “Đăng Ký" ...............................................................42
6.3.2. Đặc tả use-case “Đăng Nhập" ...........................................................43
6.3.3. Đặc tả use-case “Đổi mật khẩu " .......................................................44
6.3.4. Đặc tả use-case “Đăng xuất " ............................................................45
6.3.5. Đặc tả use-case “Lọc/Tìm kiếm bất động sản" .................................45
6.3.6. Đặc tả use-case “Trang cá nhân" .......................................................46
6.3.7. Đặc tả use-case “Quản lý bất động sản cá nhân" ..............................47
6.3.8. Đặc tả use-case “Quản lý u thích, lưu lại thơng tin bài viết" ........48
6.3.9. Đặc tả use-case “Chỉnh sửa thông tin" ..............................................49
6.3.10. Đặc tả use-case “Tạo bất động sản" ..................................................50

6.3.11. Đặc tả use-case “Gợi ý bất động sản liên quan" ...............................51
6.3.12. Đặc tả use-case “Quản lý thể loại" ....................................................52
6.3.13. Đặc tả use-case “Quản lý bất động sản" ............................................53
6.3.14. Đặc tả use-case “Làm nổi bật bất động sản" .....................................54
6.3.15. Đặc tả use-case “Quản lý người dùng khách hàng" ..........................55

Chương 7. THIẾT KẾ GIAO DIỆN ..................................................... 56
7.1.

Danh sách các màn hình .......................................................................56

7.2.

Hình ảnh một số màn hình chính ..........................................................58

7.2.1. Màn hình “Đăng ký” .........................................................................58
7.2.2. Màn hình “Đăng nhập”......................................................................59
7.2.3. Màn hình “Đổi mật khẩu” .................................................................60
7.2.4. Màn hình “Trang chủ” .......................................................................60
7.2.5. Màn hình “Tạo bất động sản”............................................................62
7.2.6. Màn hình “Cập nhập bất động sản” ..................................................64


7.2.7. Màn hình “Cập nhập thơng tin cá nhân” ...........................................66
7.2.8. Màn hình “Danh sách nhà đất bán” ...................................................66
7.2.9. Màn hình “Danh sách nhà đất cho thuê” ...........................................68
7.2.10. Màn hình “Danh sách bất động sản phù hợp” ...................................70
7.2.11. Màn hình “Chi tiết bất động sản” ......................................................72
7.2.12. Màn hình “Quản lý bất động sản” .....................................................74
7.2.13. Màn hình “Quản lý người dùng” .......................................................74

7.2.14. Màn hình “Quản lý thể loại” .............................................................75

Chương 8. HƯỚNG PHÁT TRIỂN ...................................................... 76
8.1.

Hướng phát triển ...................................................................................76

TÀI LIỆU THAM KHẢO ........................................................................ 77


DANH MỤC HÌNH
Hình 2 1: Lý do vì sao nên sử dụng Reactjs .............................................................11
Hình 3.1 Trang chủ của batdongsan.com.vn .............................................................14
Hình 3.2. Trang chủ của mogi.vn ..............................................................................15
Hình 5.1: Sơ đồ cơ sở dữ liệu tổng quát....................................................................23
Hình 6.1: Sơ đồ Usecase tổng quát của hệ thống ......................................................40
Hình 7.1: Màn hình "Đăng ký" .................................................................................59
Hình 7.2: Màn hình "Đăng nhập" .............................................................................60
Hình 7.3: Màn hình "Đổi mật khẩu" .........................................................................60
Hình 7.4: Màn hình "Trang chủ"...............................................................................62
Hình 7.5: Màn hình "Tạo bất động sản" ...................................................................64
Hình 7.6: Màn hình "Cập nhật bất động sản" ...........................................................66
Hình 7.7: Màn hình "Cập nhật thơng tin cá nhân" ....................................................66
Hình 7.8: Màn hình "Danh sách nhà đất bán" ...........................................................68
Hình 7.9: Màn hình "Danh sách nhà đất cho thuê" ...................................................70
Hình 7.10: Màn hình "Danh sách bất động sản phù hợp" .........................................72
Hình 7.11: Màn hình "Chi tiết bất động sản" ............................................................74
Hình 7.12: Màn hình "Quản lý bất động sản" ...........................................................74
Hình 7.13: Màn hình "Quản lý người dùng" .............................................................75
Hình 7.14: Màn hình "Quản lý thể loại" ...................................................................75


DANH MỤC BẢNG
Bảng 3.1 Bảng so sánh giữa các hệ thống .................................................................18
Bảng 4.1: Đặc tả chức năng bài viết .........................................................................21
Bảng 4.2: Đặc tả chức năng tìm kiếm bài viết ..........................................................21
Bảng 4.3: Đặc tả chức năng u thích lưu lại thơng tin bài viết ...............................21
Bảng 4.4: Đặc tả chức năng recommend bài viết......................................................22
Bảng 4.5: Đặc tả chức năng quản lý người dùng ......................................................22


Bảng 4.6: Đặc tả chức năng quản lý bài viết.............................................................22
Bảng 4.7: Đặc tả chức năng quản lý báo cáo ............................................................23
Bảng 5.1: Mô tả bảng “user” – Thông tin người dùng..............................................25
Bảng 5.2: Mơ tả bảng “role” – Vai trị của người dùng ............................................25
Bảng 5.3: Mô tả bảng “privilege” – Quyền hạn có trong hệ thống ..........................26
Bảng 5.4: Mơ tả bảng “role_privilege” – Quyền hạn của vai trị .............................27
Bảng 5.5: Mơ tả bảng “user_address” – Địa chỉ của người dùng .............................28
Bảng 5.6: Mô tả bảng “country” – Quốc gia.............................................................28
Bảng 5.7: Mô tả bảng “province” – Tỉnh, Thành Phố ..............................................29
Bảng 5.8: Mô tả bảng “district” – Xã, Huyện ...........................................................29
Bảng 5.9: Mô tả bảng “apartment” – Thông tin bất động sản ..................................31
Bảng 5.10: Mô tả bảng “apartment_detail” – Thông tin chi tiết bất động sản .........32
Bảng 5.11: Mô tả bảng “apartment_address” – Địa chỉ của bất động sản ................33
Bảng 5.12: Mô tả bảng “category” – Thể loại bất động sản .....................................34
Bảng 5.13: Mô tả bảng “favourite” – Người dùng yêu thích bất động sản ..............35
Bảng 5.14: Mô tả bảng “tracking_category” – Thông tin tracking của người dùng
đối với category .........................................................................................................36
Bảng 5.15: Mô tả bảng “tracking_ district” – Thông tin tracking của người dùng đối
với xã, huyện .............................................................................................................37
Bảng 5.16: Mô tả bảng “tracking_ province” – Thông tin tracking của người dùng

đối với tỉnh, thành phố ..............................................................................................38
Bảng 6.1: Danh sách các actor của hệ thống.............................................................39
Bảng 6.2: Bảng danh sách các usecase của hệ thống ................................................42
Bảng 6.3: Đặc tả usecase “Đăng Ký” .......................................................................43
Bảng 6.4: Đặc tả usecase “Đăng Nhập” ....................................................................44
Bảng 6.5: Đặc tả usecase “Đổi mật khẩu” ................................................................45
Bảng 6.6: Đặc tả usecase “Đăng xuất” .....................................................................45
Bảng 6.7: Đặc tả usecase “Lọc/Tìm kiếm bất động sản” ..........................................46
Bảng 6.8: Đặc tả usecase “Trang cá nhân” ...............................................................47


Bảng 6.9: Đặc tả usecae “Quản lý bất động sản cá nhân” ........................................48
Bảng 6.10: Đặc tả usecase “Quản lý yêu thích, lưu lại thơng tin bài viết” ...............49
Bảng 6.11: Đặc tả usecase “Chỉnh sửa thông tin” ....................................................50
Bảng 6.12: Đặc tả usecase “Tạo bất động sản”.........................................................51
Bảng 6.13: Đặc tả usecase “Gợi ý bất động sản liên quan” ......................................52
Bảng 6.14: Đặc tả usecase “Quản lý thể loại” ..........................................................53
Bảng 6.15: Đặc tả usecase “Quản lý bất động sản” ..................................................54
Bảng 6.16: Đặc tả usecase “Làm nổi bật bất động sản” ...........................................55
Bảng 6.17: Đặc tả usecase “Quản lý người dùng khách hàng” ................................56
Bảng 7.1: Bảng danh sách các màn hình ..................................................................58


TÓM TẮT ĐỒ ÁN
- Tổng quan đề tài: đặt vấn đề, lý do chọn đề tài, phát biểu bài toán, mục tiêu và phạm

vi tiếp cận đề tài.
- Tìm hiểu thực trạng, thị trường, khả năng phát triển.
- Phân tích các dịch vụ hệ thống website thông tin bất động sản trên thị trường.
- Tìm hiểu và áp dụng các công nghệ, cấu trúc mới để xây dựng hệ thống chia sẻ

thông tin bất động sản.
- Phát triển hệ thống với các tính năng cơ bản dựa trên các hệ thống liên quan, thêm
những tính năng nâng cao để tăng tính tiện lợi cho người dùng và tạo sự khác biệt.
- Giải quyết bài toán về độ tin cậy của thơng tin bất động sản được chia sẻ, tăng tính
tương tác cho người dùng với hệ thống.
- Trình bày kết luận và hướng phát triển đồ án.

1


Chương 1. TỔNG QUAN
1.1. Đặt vấn đề
- Thị trường bất động sản là một trong những thị trường có vị trí và vai trị quan trọng
đối với nền kinh tế quốc dân, có quan hệ trực tiếp với các thị trường tài chính tiền tệ,
thị trường xây dựng, thị trường vật liệu xây dựng, thị trường lao động... Phát triển và
quản lý có hiệu quả thị trường này sẽ góp phần quan trọng vào quá trình thúc đẩy
phát triển kinh tế - xã hội, tạo khả năng thu hút các nguồn vốn đầu tư cho phát triển,
đóng góp thiết thực vào q trình phát triển đơ thị và nơng thơn bền vững theo hướng
cơng nghiệp hố, hiện đại hóa đất nước
- Với các kiến thức về công nghệ thông tin, ta có thể phát triển được 1 phần mềm hỗ
trợ các chức năng cung cấp các thông tin thật và giúp người bn bán và người mua
có thể trao đổi thuận tiện hơn. Ngồi ra cũng giúp người mua có thể tìm kiếm các
thơng tin phù hợp với nhu cầu của bản thân và tin tưởng vào các thông tin đăng trên
website thay vì thơng qua các cị đất khơng uy tin trên thị trường lúc bấy giờ.
1.2. Phát biểu bài tốn
1.2.1. Giới thiệu hệ thống website “Tìm kiếm và chia sẻ thông tin bất
động sản”
- Hệ thống sẽ thu thập, rút trích có chọn lọc thơng tin bất động sản một cách hiệu quả
bao gồm: nội dung, giá cả, địa chỉ, thơng tin chi tiết, hình ảnh của bất động sản, ...
của trang bất động sản nổi tiếng hiện nay đó là: batdongsan.com.vn. Sau đó sắp xếp

và lưu trữ thơng tin một cách có hệ thống để dễ dàng sử dụng và chia sẻ thông tin tới
khách hàng một cách hợp lý (rõ ràng, dễ nhìn, dễ đọc) và có lợi ích đối với khách
hàng.
- Hệ thống giúp khách hàng không phải đi đến từng trang web nêu trên để tìm kiếm
thơng tin khi cần thiết mà chỉ cần truy cập vào trang web là đủ.

2


- Website có cơng cụ sắp xếp một cách hiệu quả giúp người dùng cần tìm một số
thơng tin một cách nhanh nhất có thể, ví dụ tìm theo: lượt thích nhiều nhất, lượt bình
luận nhiều nhất, mới nhất ...
- Website có cơng cụ tìm kiếm một cách hiệu quả giúp người dùng cần tìm một số thơng
tin một cách nhanh nhất có thể, ví dụ tìm theo: loại nhà đất, địa chỉ bất động sản, giá cả bất
động sản,...

- Hệ thống cịn cho phép người dùng đăng thơng tin bất động sản của mình lên để
chia sẻ rộng rãi tới những người dùng khác và những khách hàng tìm năng.
- Trên mỗi tin tức được chia sẻ, hệ thống cho phép người dùng vào bày tỏ trạng thái
như Thích, Bình luận lên bài viết giúp bài viết có tính tin cậy hơn, khơng cịn là thơng
tin từ một chiều. Ngồi ra cịn có 2 icon thêm vào danh sách ưa thích hoặc bỏ khỏi
danh sách ưa thích. Tính năng này giúp người dùng khi thấy những thông tin nhà đất
mà có hứng thú sẽ lưu lại để tiện theo dõi.
- Ngồi ra, trên mỗi tin tức được chính người dùng chia sẻ trên hệ thống, người dùng
sẽ có quyền sửa hoặc xố tin tức đó nếu thấy nội dung cung cấp bị sai lệch, và người
quản trị là người có quyền sửa hoặc xố tồn bộ tin tức, để khi có ai đó báo cáo sai
lệch về tin tức nào, người quản trị sẽ trực tiếp sửa hoặc gỡ bỏ.

1.2.2. Khảo sát hệ thống liên quan
- Nhóm đã tham khảo nhiều hệ thống website bất động sản như batdongsan.com.vn.

- Hầu hết các website đề chia sẻ thông tin bất động sản, cho phép tìm kiếm loại hình bất
động sản mà người dùng quan tâm, cho phép đăng bài rao bán về bất động sản của người
dùng nhưng những thông tin website cung cấp đều mang tính một chiều, người dùng
khơng có khả năng xác thực tính an tồn hay đúng đắn của thơng tin, khiến cho việc tìm
kiếm trở nên mơ hồ. Chính vì lẽ đó hệ thống sẽ đưa chức năng cải thiện những vấn đề
trên và đặc biệt hơn nữa là thiết kế một website mang tính đột phá như một trang tin tức
về bất động sản cho phép người dùng có thể vừa tìm hiểu thị trường và có cả các thơng

3


tin cụ thể và chính xác hơn.

1.3. Mục tiêu và phạm vi đề tài
1.3.1. Mục tiêu
- Xây dựng một website trên nền tảng web với mục đích chính là tìm kiếm và chia sẻ

thông tin bất động sản.
- Xây dựng chức năng thêm vào danh sách ưu thích để tiện cho người dùng.
- Xây dựng server theo thời gian thực, cập nhật các thông tin bài viết người dùng
đăng hoặc chia sẻ.
- Xây dựng chức năng đăng thông tin bất động sản.
- Xây dựng chức năng cập nhật và xoá thông tin bất động sản.
- Xây dựng chức năng đăng nhập và hệ thống người dùng để tăng tính bảo mật.
- Xây dựng chức năng tìm kiếm thơng tin bất động sản cơ bản và nâng cao.
- Xây dựng chức năng sắp xếp với các yêu cầu cơ bản để giúp người dùng tiện trong
lúc tìm kiếm thơng tin.
1.3.2. Phạm vi
Sau khi tìm hiểu và nghiên cứu sơ bộ về nhu cầu sử dụng của người dùng, nhóm quyết
định phạm vi thực hiện đề tài như sau:

- Phạm vi địa lý: Ứng dụng được sử dụng tại Việt Nam
- Phạm vi chức năng:
• Quản lý thơng tin người dùng
• Quản lí thơng tin bất động sản

4


• Quản lí bài viết của người dùng
• Tìm kiếm thơng tin loại hình bất động sản
• Sắp xếp thơng tin bất động sản
• Cập nhật thơng tin bất động sản mới nhất
• Danh sách ưa thích
1.3.3. Đối tượng sử dụng
Các cá nhân có nhu cầu tìm kiếm và chia sẻ thông tin bất động sản.
1.3.4. Kết quả dự kiến
- Hồn thành website cung cấp thơng tin bất động sản.

- Hoàn thành chức năng cho phép người dùng lưu vào danh sách ưa thích.
- Hồn thành chức năng tìm kiếm và sắp xếp tin tức.
- Hoàn thành chi tiết về 1 thông tin bất động sản.

5


Chương 2. CƠ SỞ LÝ THUYẾT
2.1. JavaSpring Boot
2.1.1. Khái niệm
- Spring Boot là một dự án phát triển bởi JAV (ngơn ngữ java) trong hệ sinh thái
Spring framework. Nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình

lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng
dụng..
2.1.2. Tại sao nên sử dụng JavaSpring Boot
- Khi sử dụng Java chúng ta không mất qua nhiều công đoạn và thời gian để tạo một
web project đẻ chạy. Mọi thứ đã được Java tự động làm hết như sử dụng các
framework PHP như Symfony, Laravel,… cái mà chúng ta quan tâm chỉ là develop
Controller. Một quan điểm khác của mình là thấy Java web sau khi build chạy rất
nhanh hơn tốc độ PHP sau khi dùng APC Cache.
2.1.3. Áp dụng Java vào đề tài
- Nhóm chúng em sử dụng Java để làm Backend dễ dàng hơn và có nhiều chức năng
phát triển hơn.
2.2. Postgresql
2.2.1. Giới thiệu về Postgesql
- PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng (objectrelational database management system) có mục đích chung, hệ thống cơ sở dữ liệu
mã nguồn mở tiên tiến nhất hiện nay.
- PostgreSQL được phát triển dựa trên POSTGRES 4.2 tại phịng khoa học máy tính
Berkeley, Đại học California.

6


- PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy nhiên,
PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều
nền tảng khác nhau như Mac OS X, Solaris và Windows.
- PostgreSQL là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần mềm
khả dụng theo license của PostgreSQL, một license nguồn mở tự do. Theo đó, bạn sẽ
được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức.
- PostgreSQL khơng u cầu q nhiều cơng tác bảo trì bởi có tính ổn định cao. Do
đó, nếu bạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn
so với các hệ thống quản trị dữ liệu khác.

2.2.2. Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu Postgresql
Ưu điểm:
- PostgreSQL có thể chạy các trang web và ứng dụng web động với LAMP.
- Ghi nhật ký viết trước của PostgreSQL làm cho nó trở thành một cơ sở dữ liệu có
khả năng chịu lỗi cao
- Mã nguồn PostgreSQL có sẵn miễn phí theo giấy phép nguồn mở. Điều này cho
phép bạn tự do sử dụng, sửa đổi và triển khai nó theo nhu cầu kinh doanh của bạn.
- PostgreSQL hỗ trợ các đối tượng địa lý để bạn có thể sử dụng nó cho các dịch vụ
dựa trên vị trí và hệ thống thơng tin địa lý.
- PostgreSQL hỗ trợ các đối tượng địa lý để nó có thể được sử dụng làm kho lưu trữ
dữ liệu không gian địa lý cho các dịch vụ dựa trên vị trí và hệ thống thơng tin địa lý.
- Dễ sử dụng
- Hạn chế việc bảo trì hệ thống
Nhược điểm:

7


- Postgres không thuộc sở hữu của một tổ chức. Vì vậy, nó đã gặp khó khăn khi đưa
tên của mình ra khỏi đó mặc dù có đầy đủ tính năng và có thể so sánh với các hệ
thống DBMS khác
- Những thay đổi được thực hiện để cải thiện tốc độ địi hỏi nhiều cơng việc hơn
MySQL vì PostgreSQL tập trung vào khả năng tương thích.
- Nhiều ứng dụng nguồn mở hỗ trợ MySQL, nhưng có thể khơng hỗ trợ PostgreSQL
- Về số liệu hiệu suất, nó chậm hơn MySQL.
Tại sao nên sử dụng PostgreSQL:
- PostgreSQL sở hữu một hệ tính năng đa dạng giúp hỗ trợ các nhà phát triển xây
dựng app, các nhà quản trị bảo vệ tồn vẹn dữ liệu, và tạo ra một mơi trường chịu lỗi
fault-tolerant giúp bạn quản lý dữ liệu bất kể tập dữ liệu lớn hay nhỏ. Bên cạnh hệ
thống nguồn mở và miễn phí, PostgreSQL cũng có khả năng mở rộng tuyệt vời. Ví

dụ, bạn có thể định nghĩa các kiểu dữ liệu riêng của bạn, xây dựng các hàm tùy chỉnh,
hay viết mã từ các ngơn ngữ lập trình khác nhau mà không cần biên dịch lại cơ sở dữ
liệu!
- PostgreSQL tuân theo tiêu chuẩn SQL nhưng không mâu thuẫn với các tính năng
truyền thống hay có thể dẫn đến các quyết định kiến trúc gây hại. Nhiều tính năng
theo tiêu chuẩn SQL được hỗ trợ, tuy nhiên đôi khi có thể có cú pháp hoặc hàm hơi
khác một chút.
2.2.3. Áp dụng PostgreSQL vào đề tài
Nhờ những tính năng nổi trội của PostgreSQL, nhóm đã sử dụng PostgreSQL dùng
làm hệ quản trị cơ sở dữ liệu chính. Server sử dụng PostgreSQL để lưu trữ toàn bộ
dữ liệu, dữ liệu này sẽ được server sử dụng REST API để gọi lên.
2.3. Reactjs
2.3.1. Giới thiệu về Reactjs

8


React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu
hướng Single Page Application. Trong khi những framework khác cố gắng hướng
đến một mơ hình MVC hồn thiện thì React nổi bật với sự đơn giản và dễ dàng phối
hợp với những thư viện Javascript khác. Nếu như AngularJS là một Framework cho
phép nhúng code javasscript trong code html thơng qua các attribute như ng-model,
ng-repeat...thì với react là một library cho phép nhúng code html trong code javascript
nhờ vào JSX, có thể dễ dàng lồng các đoạn HTML vào trong JS.Tích hợp giữa
javascript và HTML vào trong JSX làm cho các component dễ hiểu hơn.
React là một thư viện UI phát triển tại Facebook để hỗ trợ việc xây dựng những thành
phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được.
React được sử dụng tại Facebook trong production, và Instagram được viết hoàn toàn
trên React.
Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên

phía client, mà cịn được render trên server và có thể kết nối với nhau. React so sánh
sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay
đổi nhất trên DOM.
2.3.2. Tại sao nên sử dụng Reactjs
Dễ sử dụng:
- React là một thư viện GUI nguồn mở JavaScript tập trung vào một điều cụ
thể; hoàn thành nhiệm vụ UI hiệu quả. Nó được phân loại thành kiểu “V” trong mơ
hình MVC (Model-View-Controller).
- Là lập trình viên JavaScript, bạn sẽ dễ dàng hiểu được những điều cơ bản về
React. Bạn thậm chí có thể bắt đầu phát triển các ứng dụng dựa trên web bằng cách
sử dụng react chỉ trong vài ngày.
- Để củng cố hiểu biết của mình, bạn hãy thử khám phá thêm nhiều hướng
dẫn về React. Chúng mang đến nhiều thông tin về cách sử dụng công cụ: videos,
hướng dẫn và dữ liệu làm phong phú góc nhìn của bạn.

9


×