Tải bản đầy đủ (.docx) (67 trang)

Đồ án tốt nghiệp khoa cntt haui 2018 2019

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 (4.37 MB, 67 trang )

1

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC

ĐỀ TÀI
“ Xây dựng website rao vặt bất động sản với Python”

Giảng viên hướng dẫn: Ths.NGÔ VĂN BÌNH
Sinh viên thực hiện

: MA VĂN SÔNG

Lớp

: Khoa học máy tính 4 – khóa 10


2

Mục lục
CHƯƠNG I. MỞ ĐẦU...................................................................................................7
1.Tên đề tài.................................................................................................................... 7
2. Lý do chọn đề tài.......................................................................................................7
3. Mục đích....................................................................................................................7


4. Mục tiêu.....................................................................................................................7
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT.................................................................................8
2.1. Tìm hiểu ngôn ngữ lập trình Python....................................................................8
2.2 Tìm hiểu về Framework Django..........................................................................11
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ.........................................................................18
3.1.Khảo sát, phát biểu và mô tả bài toán.................................................................18
3.1.1. Khảo sát...........................................................................................................18
3.1.2. Phát biểu bài toán............................................................................................18
3.1.3. Mô tả bài toán..................................................................................................18
3.2. Phân tích...............................................................................................................19
3.2. Chi tiết các usecase...............................................................................................20
3.2.1. Usecase Đăng nhập..........................................................................................20
3.2.2. Use Case Đăng ký............................................................................................23
3.2.3. Usecase Tìm kiếm...........................................................................................26
3.2.4. Usecase Xem tin rao vặt..................................................................................29
3.2.5. Usecase Lọc Bất Động Sản Theo Địa Điểm....................................................32
3.2.6. Usecase Xem tin tức........................................................................................34
3.2.7. Usecase Đăng xuất...........................................................................................37
3.2.8. Usecase Tạo tin rao vặt....................................................................................39
3.2.9. Usecase FAQ ( gửi câu hỏi )............................................................................42


3

3.2.10. Usecase Gửi yêu cầu......................................................................................45
3.2.11. Biểu đồ lớp lĩnh vực......................................................................................49
3.3. Thiết kế cơ sở dữ liệu...........................................................................................51
3.3.1 Mô hình quan hệ...............................................................................................51
3.3.2. Cơ sở dữ liệu...................................................................................................53
3.4 Giao diện................................................................................................................ 62

KẾT LUẬN CHUNG.....................................................................................................70
TÀI LIỆU THAM KHẢO.............................................................................................71

Mục Lục Hình Ảnh
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

1 Cha đẻ Python.....................................................................................................10
2 Framework Django.............................................................................................12
3 Mô hình hoạt động của django............................................................................14
4 Biểu đồ hoạt động của toàn hệ thống...................................................................20
5 Hành động của tác nhân User case đăng nhập....................................................21
6 Biểu đồ hoạt động đăng nhập..............................................................................22
7 Biểu đồ lớp tham gia User case đăng nhập..........................................................22
8 Biểu đồ trình tự User case đăng nhập..................................................................23

9 Hoạt động của tác nhân User case đăng ký.........................................................24
10 Biểu đồ hoạt động User case đăng ký................................................................25
11 Biểu đồ lớp tham gia User case đăng ký............................................................25
12 Biểu đồ trình tự User case đăng ký....................................................................26
13 Hoạt động của tác nhân User case tìm kiếm......................................................27
14 Biểu đồ hoạt động User case tìm kiếm..............................................................28
15 Biều đồ lớp User case tìm kiếm.........................................................................28
16 Biểu đồ trình tự User case tìm kiếm..................................................................29
17 Hoạt động của tác nhân xem tin rao vặt.............................................................30


4

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

18 Biểu đồ hoạt động User case xem tin rao vặt.....................................................31
19 Biểu đồ lớp tham gia User case xem tin rao vặt................................................31
20 Biểu đồ trình tự User case xem tin rao vặt.........................................................32
21 Hoạt độn của tác nhân User case lọc bất động sản............................................33
22 Biểu đồ hoạt động User case lọc bất động sản...................................................33
23 Biểu đồ lớp tham gia User case lọc bất động sản..............................................34
24 Biểu đồ trình tự User case lọc bất động sản.......................................................34
25 Hoạt động của tác nhân User case xem tin tức..................................................35
26 Biểu đồ hoạt động User case xem tin tức..........................................................36
27 Biểu đồ lớp tham gia User case xem tin tức......................................................36
28 Biểu đồ trình tự User case xem tin tức..............................................................37

29 Hoạt động của tác nhân User case đăng xuất.....................................................38
30 Biểu đồ hoạt động User case đăng xuất.............................................................38
31 Biểu đồ lớp tham gia User case đăng xuất.........................................................39
32 Biểu đồ trình tự User case đăng xuất.................................................................39
33 Hoạt động tác nhân tạo tin rao vặt.....................................................................40
34 Biểu đồ hoạt động User case đăng tin rao vặt....................................................41
35 Biểu đồ lớp tham gia User case tạo tin rao vặt..................................................41
36 Biểu đồ trình tự User case tạo tin rao vặt...........................................................42
37 Hoạt động tác nhân User case FAQ...................................................................43
38 Biểu đồ hoạt động User case FAQ.....................................................................44
39 Biểu đồ lớp tham gia User case FAQ.................................................................44
40 Biểu đồ trình tự User case FAQ.........................................................................45
41 Hoạt động tác nhân User case Gửi yêu cầu.......................................................46
42 Biểu đồ hoạt động User case gửi yêu cầu..........................................................47
43 Biểu đồ lớp tham gia User case Gửi yêu cầu.....................................................48
44 Biểu đồ trình tự User case Gửi yêu cầu.............................................................48
45 Biểu đồ lớp lĩnh vực toàn hệ thống....................................................................50
46 Mô hình quan hệ cơ sở dữ liệu..........................................................................52
47 Giao diện trang chủ...........................................................................................63
48 Giao diện đăng nhập..........................................................................................64
49 Giao diện đăng ký tài khoản..............................................................................65
50 Giao diện người dùng quản lý tin rao vặt..........................................................66
51 Giao diện tạo mới tin rao vặt.............................................................................67
52 Giao diện chi tiết tin rao vặt..............................................................................68


5

Hình 53 Giao diện quản trị admin...................................................................................69
Hình 54 Giao diện quản lý tin rao vặt.............................................................................69


MỤC LỤC BẢNG
Bảng 1 Các bảng trong cơ sở dữ liệu................................................................................54
Bảng 2 Bảng Category tin tức..........................................................................................54
Bảng 3 Bảng User............................................................................................................55
Bảng 4 Bảng Comments...................................................................................................55
Bảng 5 Bảng Post tin tức..................................................................................................56
Bảng 6 Bảng Ad_post.......................................................................................................58
Bảng 7 Bảng AddrProvine................................................................................................59
Bảng 8 Bảng AddrDistrict................................................................................................59
Bảng 9 Bảng AddrWard...................................................................................................59
Bảng 10 Bảng TypeProperty............................................................................................60
Bảng 11 Bảng AcreageRange...........................................................................................60
Bảng 12 PriceRange.........................................................................................................61
Bảng 13 Bảng Project.......................................................................................................61
Bảng 14 Bảng AdPostImages...........................................................................................62


6

LỜI MỞ ĐẦU
Ngày nay, với việc dân số ngày một gia tăng kéo theo đó là nhu cầu về nhà ở cũng
ngày một lớn. Cùng với công nghệ đang ngày một phát triển đời sống nhân dân được
nâng cao lên. Sự phát triển của công nghệ tiêu biểu là cuộc cách mạng công nghiệp 4.0
thế giới đang dần xoay mình thay đổi, số hóa mọi thứ. Lĩnh vực bất động sản cũng không
nằm ngoài lệ của xu hướng đó. Với việc ứng dụng công nghệ thông tin, người dân có nhu
cầu mua bán bất động sản sẽ dễ dàng tìm được căn hộ ưng ý nhất với bản thân mình.
Với những nguyên nhân trên em quyết định xây dựng lên “website rao vặt bất động
sản” với mục đích giúp cho người dân có nhu cầu mua bán bất động sản có thể tìm mua
hoặc bán căn hộ của mình mọi lúc mọi nơi. Không còn phải tốn những chi phí in thuê,

phát tờ rơi, banner quảng cáo truyền thống. Không chỉ dừng lại ở đó “website rao vặt bất
động sản” còn giúp cho những người có nhu cầu mua bán bất động sản có cái nhìn tổng
quát về thị trường nhà đất hay chung quy là thị trường bất động sản theo từng ngày.
Qua 4 năm học tập và nghiên cứu tại khoa Công nghệ thông tin Trường Đại học Công
nghiệp Hà Nội, em đã được thầy cô truyền đạt cho những kiến thức cả về lý thuyết và
thực hành để em áp dụng được những kiến thức đó vào thực tế và làm quen với công việc
của một kỹ sư tương lai. Trong quá trình làm đề tài bản thân em đã được sự hướng dẫn
của Thạc sĩ Ngô Văn Bình là giảng viên khoa CNTT. Em xin được gửi lời cảm ơn chân
thành nhất tới thầy cùng thầy cô trong khoa Công nghệ thông tin.
Việc thực hiện đề tài còn nhiều điểm chưa hoàn thiện.Vì vậy em rất mong nhận được
sự chỉ bảo của các thầy cô để hoàn thiện đề tài .
Em xin chân thành cảm ơn !
Hà Nội ,tháng 3 năm 2019


7

CHƯƠNG I. MỞ ĐẦU
1.Tên đề tài
Đề tài : Xây dựng website rao vặt bất động sản với Python - Django
2. Lý do chọn đề tài
Nước ta đang bước vào thời kỳ vàng son của dân số. Kéo theo đó là nhu cầu nhà ở rất
lớn tại các thành phố lớn như Hà Nội, Hồ Chí Minh … Cũng như các vùng khác trên toàn
Việt Nam.
Nhu cầu mua bán bất động sản ngày một tăng lên. Cùng với sự phát triển của công nghệ
4.0 bắt buộc người mua và bán bất động sản phải thay đổi hình thức marketing truyền
thống sang hình thức marketing mới. Giúp cho người mua và bán bất động sản có thể tìm
được đúng đối tượng cần mua, bán bất động sản.
Với nhu cầu thiết yếu đó, việc nên có một kênh chuyên về mua bán bất động sản là rất
cần thiết trong thời buổi hiện nay. Bất động sản là một ngành có đặc thù riêng biệt và có

nhiều lĩnh vực khác nhau.
3. Mục đích
Cung cấp một kênh chuyên biệt về mua bán bất động sản tại Việt Nam. Giúp cho
người mua, bán nhà đất có thể đăng bài bán nhà. Người có nhu cầu mua nhà vào xem và
lựa chọn cho mình ngôi nhà phù hợp theo nhu cầu của mình.
4. Mục tiêu
- Tìm hiểu về ngôn ngữ lập trình Python
- Tìm hiểu về Framework Django
- Xây dựng website rao vặt bất động sản


8

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1. Tìm hiểu ngôn ngữ lập trình Python
2.1.1Giới thiệu về Python
Python là một ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng (Objectoriented) và là một ngôn ngữ bậc cao (hight-level), ngữ nghĩa động (dynamic semantics).
Python hỗ trợ các module và gói (packeges), khuyến khích chương trình module hóa và
tái sử dụng code. Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng
mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và được phân phố
tự do.
Các đặc điểm của ngôn ngữ lập trình Python:
 Ngữ pháp đơn giản, dễ đọc.
 Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object-oriented)
 Hỗ trợ module và hỗ trợ gói (package)
 Xử lý lỗi bằng ngoại lệ (Exception)
 Kiểu dữ liệu động ở mức cao.
 Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập
trình.
 Có khả năng tương tác với các module khác viết trên C/C++( hoặc Java cho

Python hoặc .Net cho IronPython).
 Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface).
Python là ngôn ngữ có khả năng chạy trên nhiều nền tảng.


9

Python có cho mọi hệ điều hành: Windows, Linux/Unix, OS/2, Mac, Amiga, và
những hệ điều hành khác. Thậm chí có cả những phiên bản chạy trên .NET, máy
ảo Java, và điện thoại di động (Nokia Series 60). Với cùng một mã nguồn sẽ chạy giống
nhau trên mọi nền tảng.
Python rất đơn giản và dễ học
Python có cộng đồng lập trình rất lớn, hệ thống thư viện chuẩn, và cả các thư viện
mã nguồn mở được chia sẻ trên mạng.
Python là ngôn ngữ mã nguồn mở
Python dùng giấy phép nguồn mở nên được sử dụng và phân phối tự do, ngay cả
trong việc thương mại. Giấy phép Python được quản lý bởi Python Software
Foundation.

2.1.2. Lịch sử phát triển
Python đã được hình thành vào cuối những năm 1980, và việc thực hiện nó vào tháng
12 năm 1989 bởi Guido van Rossum tạiCentrum Wiskunde & Informatica
(CWI) ở Hà Lan như là một kế thừa cho ngôn ngữ ABC (tự lấy cảm hứng từ SETL) có
khả năng xử lý ngoại lệ và giao tiếp với Hệ điều hành Amoeba. Van Rossum là tác giả
chính của Python, và vai trò trung tâm của ông trong việc quyết định hướng phát triển
của Python.


10


Hình 1 Cha đẻ Python

“ Về nguồn gốc của Python, Van Rossum đã viết vào năm 1996:
Hơn sáu năm trước, vào tháng 12 năm 1989, tôi đã tìm kiếm một dự án lập trình "sở
thích" mà nó đã chiếm đóng tâm trí tôi trong suốt tuần lễ Giáng sinh. Văn phòng của
tôi ... sẽ đóng cửa, nhưng tôi đã có một máy tính ở nhà, và không có nhiều thứ khác trên
tay. Tôi quyết định viết một bộ thông dịch (interprester) cho ngôn ngữ kịch bản mới mà
tôi đã từng nghĩ đến: một hậu duệ của ABC có thể hấp dẫn các hacker Unix/C. Tôi đã
chọn Python như là một tiêu đề làm việc cho dự án. “
Python 2.0 đã được phát hành vào ngày 16 tháng 10 năm 2000 và có nhiều tính năng
mới, bao gồm bộ thu gom rác theo chu kỳ (cycle-detecting garbage) và hỗ trợ Unicode.
Với việc phát hành này quá trình phát triển đã được thay đổi và trở nên minh bạch hơn và
cộng đồng hậu thuẫn.
Hiện tại, phiên bản python 2.x đã ngưng phát triển. Phiên bản cuối cùng của Python 2.x
là 2.7.


11

Python 3.0 được phát hành năm 2008, sau một thời gian dài thử nghiệm.
Cho tới năm 2018, Python 3.x đang có phiên bản 3.7
2.1.3. Các kiểu dữ liệu cơ bản trong Python
-

Kiểu int: Kiểu số nguyên (không có chứa dấu chấm thập phân), có thể lưu các
số nguyên âm và dương.

-

Ví dụ: 113, -114


-

Kiểu float: Kiểu số thực (có chứa dấu chấm thập phân),

-

ví dụ: 5.2, -7.3

-

Kiểu complex: Kiểu số phức,

-

ví dụ 1: z = 2+3j thì 2 là phần thực, 3 là phần ảo (j là từ khóa để đánh dấu phần
ảo)

-

ví dụ 2: z=complex(2,3) thì 2 là phần thực, 3 là phần ảo

-

khi xuất kết quả ta có thể xuất:

-

print(“Phần thực= “,z.real) ==>Phần thực= 2


-

print(“Phần ảo= “,z.imag) ==> Phần ảo= 3

-

Kiểu str: Kiểu chuỗi, để trong nháy đôi hoặc nháy đơn

-

Ví dụ: “Obama”, ‘Putin’

-

Kiểu bool: để lưu giá trị True hoặc False

-

Ví dụ 1: t1=True

-

Ví dụ 2: t2=False


12

Ngoài ra Python còn có các kiểu dữ liệu khác như List, Tuple, Dictionary.
Trang chủ ngôn ngữ Python:
2.2 Tìm hiểu về Framework Django


Python không có sẵn khả năng làm web, chính vì thế cần phải có một số module
nhật định để đưa Python lên web. Nếu muốn phát triển những ứng dụng cực kỳ
đơn giản – nhưng một page check thử server có chạy hay không – chúng ta có thể
dùng cgi module.
Với nhu cầu ngày càng đa dạng, lập trình viên nên chuyển sang một số framework
Python như Django hay Flask để có thể cho ra các ứng dụng web phức tạp.
Đa phần những framework này cần phải đi kèm với dịch vụ web như Apache khi
tiến đến production, và đây cũng là lúc khuyết điểm xuất hiện. So với PHP, quá
trình deploy của Python trên remote server sẽ khá khó khăn nếu mới thực hiện lần
đầu.
Các dịch vụ nổi tiếng như Instagram, Reddit, Quora và Disqus đều được phát triển
trên nền Python.

2.2.1. Giới thiệu về Framework Django
Trang chủ của Framework Django: />

13

Hình 2 Framework Django

 Django là một web framework miễn phí mã nguồn mở được viết bằng Python.
Django sử dụng mô hình Model-View-Control (MVC). Django được phát triển
bởi Django Software Foundation(DSF) – một tổ chức phi lợi nhuận độc lập.
 Mục tiêu chính của Django là đơn giản hóa việc tạo các website phức tạp có sử
dụng cơ sở dữ liệu. Django tập trung vào tính năng “có thể tái sử dụng” và “có thể
tự chạy” của các component, tính năng phát triển nhanh, không làm lại những gì
đã làm. Một số website phổ biến được xây dựng từ Django
là Pinterest, Instagram, Mozilla, và Bitbucket.
Một số thế mạnh của Django so với các framework khác:

 Học tập nhanh. Tương tự Python, Django cũng rất dễ học, không như Ruby hay
Rails.
 Tự động tạo SQL tables. Django sẽ thay bạn làm công việc này khi bạn đã xác
định được cấu trúc.


14

 Tạo forms. Khi bạn đã tạo được Form class trong Django và linked đến model,
form generator trong Django sẽ đảm nhận render form, xác minh và lưu trưc
tiếp data.
 Admin Interface. Tương tự SQL table, khi bạn đã xác định được cấu trúc,
Django sẽ tạo một admin interface cho phép bạn quản lý database (không khác
gì PhpMyAdmin được build-in trong Django.)
 Django Shell. Python shell, ngay trong môi trường của Django project, chính
là lợi thế mà Django shell mang lại. Tính năng này rất hữu hiệu khi debug
(thường khó thực hiện trên PHP hơn).

2.2.2 Sơ lược các tính năng cơ bản của Framework Django
Django làm việc trên mô hình MVC (Model – View –Control)

Hình 3 Mô hình hoạt động của django

 Models: ánh xạ các đối tượng và quan hệ cơ sở dữ liệu, cung cấp các phương
thức nội bộ để thực thi đồng thời cũng bổ sung các tính năng hạn chế về mối
quan hệ giữa các đối tượng cơ sở dữ liệu. Models trình bày các bảng trong cơ
sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọn truy cập cơ sở dữ liệu
trực tiếp mới mẻ hơn, chuyên nghiệp hơn.



15

 View: là một hàm/phương thức làm một công việc cụ thể nào đó, một View
thường đi kèm với một Template
 Templates: Chứa các file html nhận dữ liệu từ file View.
 Composer: Django cho phép chúng ta cài đặt các thư viện bên ngoài thông qua
pip có trong kho Packagist.
 Application: Là một phần của phát triển ứng dụng, chứa các file Models, View,

 Urls (Router): Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết
(link). Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một
định danh liên kết thống nhất sẽ được tạo ra bởi laravel.
 Makemigrations, migrate: cung cấp một hệ thống kiểm soát các phiên
bản lược đồ cơ sở dữ liệu (database cheme), làm cho web ứng dụng có khả năng
tương tác phù hợp những thay đổi logic, các đoạn mã code của ứng dụng và
những thay đổi cần thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và
cập nhật các ứng dụng.
 Tests: Cho phép lập trình viên viết code để test các chức năng trong mỗi app.
 Paginations: Tính năng tự động phân trang được đưa vào django giúp đơn
giản hóa các nhiệm vụ thực hiện phân trang so với các phương pháp thông
thường.
2.2.4 Cách cài đặt
Trước khi cài đặt Django yêu cầu máy của chúng ta đã cài đặt Python, có thể là
Python 2.x hoặc 3.x . 1 phần mềm web server như xampp. Bản thân django mặc định
sinh ra cho chúng ta một cơ sở dữ liệu mặc định là Sqlite. Chúng ta cũng có thể kết
nối với các cơ sử dữ liệu khác như Mysql, MongoDB, PostgreSql …
Chúng ta sẽ dùng Python 3.6 và Django 2.0 để tạo app này. Và tất nhiên, chúng ta vẫn
đang ở trong folder myfirstapp và đã activate virtualenv.
Tạo project



16

Django có sẵn chức năng tạo một project template có cấu trúc hoàn chỉnh và mẫu mực
cho một Project mà chúng ta đang muốn code. Trên cmd của window chúng ta gõ câu
lệnh như hình bên dưới:

$ django-admin startproject mysite

Và một folder tên mysite đã được tạo ra, chứa các thành phần căn bản trong đó cho các
Developer.
Chú ý: Không đặt tên project là django hoặc test. Và không như PHP đặt code ở
/var/www, Django sẽ tránh đặt ở các folder root, để bảo mật code. Bạn có thể đặt code
ở /home/username
Giờ hãy xem startproject đã tạo những gì:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
 Folder ngoài cùng mysite không liên quan gì đến code, chúng ta có thể đổi tên tùy
ý.
 manage.py: một CLI giúp chúng ta tương tác nhanh với Django
 Folder mysite bên trong thực chất là một Py0thon package, và tên của nó sẽ là tên
package chúng ta dùng để import trong code. VD: import mysite.urls


17


 mysite/__init__.py: File rỗng, có mục đích biến folder này thành một Python
package
 mysite/settings.py: Các settings của project ở trong này.
 mysite/urls.py: Định nghĩa các URL của trang web.
 mysite/wsgi.py: Dùng khi deploy project.
Development server
Để chạy project django, gõ câu lệnh sau trong command line (Windows) hoặc
Terminal (Linux or MacOS).
$ python manage.py runserver
Kết quả:
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work
properly until they are applied.
Run 'python manage.py migrate' to apply them.
December 16, 2016 - 15:50:53
Django version 1.10, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.


18

CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ
3.1.Khảo sát, phát biểu và mô tả bài toán

3.1.1. Khảo sát
Nhu cầu mua, bán nhà ở hay bất động sản đang ngày một tăng lên tại Việt Nam. Do
đang ở thời kỳ vàng của dân số, thu nhập của người dân ngày một tăng lên. Vậy nên

đại đa số người dân Việt Nam đều có nhu cầu mua bán nhà đất.
Theo nghiên cứu của CBRE Việt Nam, phân khúc cao cấp và hạng sang ghi nhận mức
tăng vào khoảng 8 - 9% so với năm ngoái. Loại hình nhà ở trung cấp, bình dân gần
như ít biến động, chỉ những dự án đẹp mới có mức tăng tầm 1 - 3%. Dự kiến giá nhà
cao cấp có thể tăng lên đến 6.000 - 7.000 USD/m2 khi nguồn cung trong trung tâm
hạn chế. Còn phân khúc trung cấp sẽ ổn định và khó tăng giá cao.
Xu hướng mua bất động sản để an cư cũng đang giảm dần trong năm 2018, nhường
chỗ cho hình thức đầu tư. Điều này có thể thấy ở phân khúc cao cấp và hạng sang,
nhu cầu mua đầu tư chiếm đến 61% thay vì 50% như 2017, khách hàng mua để ở chỉ
chiếm 26% và đầu tư ngắn hạn tầm 13%, trong khi năm 2017 mua để ở là 35% và đầu
tư ngắn hạn là 15%.
Năm 2018 cũng là năm ghi nhận sự thay đổi trong nhu cầu mua nhà của khách ngoại.
Nếu như năm 2017, Việt kiều là đối tượng người nước ngoài chính mua bất động sản
Việt Nam thì năm 2018, 70% lượng khách nước ngoài mua nhà là nhà đầu tư Trung
Quốc, Hàn Quốc và Mỹ với tỷ lệ lần lượt là 41%, 19% và 3%.

3.1.2. Phát biểu bài toán
Trong xã hội ngày nay, nhu cầu mua bán bất động sản ngày một tăng lên. Đáp ứng nhu
cầu này, dịch vụ rao bán bất động sản ngày càng được phát triển và dần trở nên quen
thuộc, gần gũi với người dân. Để đẩy mạnh dịch vụ mua bán nhà đất mọi lúc, mọi nơi
một cách hiệu quả nhất, hình thức rao vặt bất động sản trực tuyến được ra đời.

3.1.3. Mô tả bài toán
Website rao vặt giúp cho người mua, bán bất động sản có cái nhìn toàn diện hơn về thị
trường bất động sản thông qua các tính năng:


19

- Tin tức: chức năng này cho phép người dùng cập nhật tin tức bất động sản, giá nhà

đất, sự kiện sắp diễn ra...
- Tìm kiếm: chức năng này cho phép người dùng tìm kiếm các bất động sản theo nơi ở,
vị trí hiện tại, tình thành, quận huyện ..
- Xem Tin Rao vặt: chức năng này cho phép người dùng xem các tin rao vặt mà người
cần bán đăng, xem thông tin người bán.
-Lọc tin rao vặt: chức năng này cho phép người dùng lọc tìm các bất động sản đang
được rao bán theo từng khu vực địa điểm cụ thể.
- Đăng tin rao vặt: Cho phép người dùng đăng tin rao vặt bất động sản 24/7 trên
website.
- Gửi yêu cầu: Chức năng này cho phép người dùng có yêu cầu về bất động sản hay
thắc mắc muốn được giải đáp có thể liên hệ với quản trị viên của website.
- FAQ: Chức năng này cho phép người dùng gửi câu hỏi để những người dùng khác có
thể chia sẻ giải đáp thắc mắc cho người đăng câu hỏi. Ngược lại, người dùng có thể trả
lời bất cứ câu hỏi nào xuất hiện trên website.
3.2. Phân tích
3.2.1. Tác nhân
- Tác nhân trong hệ thống: Người dùng, Admin, Khách vãng lai


20

Hình 4 Biểu đồ hoạt động của toàn hệ thống

3.2. Chi tiết các usecase

3.2.1. Usecase Đăng nhập
a. Mô tả Usecase
 Mô tả tóm tắt:
- Tên User case: Đăng nhập
- Mục đích: Cho phép người dùng đăng nhập vào hệ thống để có thể thực hiện

đầy đủ chức năng của hệ thống.
- Hình thức: Đăng nhập bằng tài khoản đã đăng ký.


21

 Mô tả chi tiết:
- User case bắt đầu khi người dùng muốn đăng nhập vào hệ thống hoặc đăng
nhâp để thực hiện các chức năng khác của hệ thống.
- Hệ thống hiển thị màn hình đăng nhập, cho phép người dùng đăng nhâp bằng tài
khoản đã đăng ký tại website.
- Đăng nhập bằng tài khoản đăng ký trực tiếp tại website, người dùng thực hiện nhập
tên đăng nhập, mật khẩu và kích chọn đăng nhập.
- Chọn “Lưu mật khẩu đăng nhập” Nếu muốn tự động đăng nhập cho những
lần truy suất sau.
- Hệ thống kiểm tra tính xác thực của tài khoản người dùng, xác thực xem tên
đăng nhập và mật khẩu mà người dùng nhập vào đã đúng chưa.
Nếu tên đăng nhập hoặc mật khẩu không chính xác thực hiện luồng xử lý đăng nhập
lỗi E4: Người dùng nhập sai tên hoặc mật khẩu. Hệ thống hiển thị Message “ERROR:
Invalid username. Bạn quên mật khẩu?” Người dùng phải nhập lại tên và mật khẩu, sau
đó tiếp tục User case, trong trường hợp người dùng không nhập lại tên hoặc mật khẩu thì
User case kết thúc.
- User case kết thúc


22
Hình 5 Hành động của tác nhân User case đăng nhập

b. Biểu đồ hoạt động


Hình 6 Biểu đồ hoạt động đăng nhập

c. Biểu đồ lớp tham gia sử dụng


23
Hình 7 Biểu đồ lớp tham gia User case đăng nhập

d.Biểu đồ trình tự

Hình 8 Biểu đồ trình tự User case đăng nhập

3.2.2. Use Case Đăng ký
a.Mô tả Use Case
- Tên User case: Đăng ký
- Mục đích: Cho phép người dùng đăng ký sử dụng hệ thống để có thể thực hiện đầy
đủ chức năng của hệ thống ở quyền thành viên đăng ký.
- Hình thức: Đăng ký bằng facebook hoặc đăng ký bằng tài khoản gmail.
* Mô tả chi tiết :


24

-User case bắt đầu khi người dùng click đăng ký tài khoản để sử dụng hệ thống.
- Hệ thống hiển thị màn hình đăng ký, cho phép người dùng nhập họ tên, email, số
điện thoại, username, password để đăng ký làm thành viên của website.
- Hệ thống kiểm tra tính chính xác tính hợp lệ của email và sự khớp nhau giữa 2
trường “mật khẩu” và “nhập lại mật khẩu”.
- Nếu địa chỉ gmail không hợp lệ thực hiện luồng xử lý đăng ký lỗi E1: Địa chỉ email
không hợp lệ và yêu cầu người dùng nhập lại địa chỉ email. Nếu địa chỉ email đã được

đăng ký tài khoản thực hiện luồng xử lý lỗi E2: email đã tồn tại, hệ thống yêu cầu
người dùng nhập địa chỉ email khác hoặc thực hiện đăng nhập với tài khoản có địa chỉ
email đó. Nếu 2 trường hợp mật khẩu không nhập giống nhau thực hiện luồng xử lý
đăng ký lỗi E3: Mật khẩu không trùng khớp yêu cầu người dùng nhập lại trường mật
khẩu. Nếu điền hợp lệ tất cả các trường đăng ký sẽ thành công và User case kết thúc.

Hình 9 Hoạt động của tác nhân User case đăng ký


25

b. Biểu đồ hoạt động

Hình 10 Biểu đồ hoạt động User case đăng ký

c. Biểu đồ lớp tham gia User case

Hình 11 Biểu đồ lớp tham gia User case đăng ký

d. Biểu đồ trình tự


×