1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật phần mềm: Rút trích và trực quan hóa dữ liệu bất động sản

108 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Rút trích và trực quan hóa dữ liệu trong lĩnh vực bất động sản
Tác giả Nguyễn Công Hiếu, Vũ Cát
Người hướng dẫn ThS. Trần Anh Dũng
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật phần mềm
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. HCM
Định dạng
Số trang 108
Dung lượng 25,96 MB

Nội dung

- So sánh, trực quan hoá dữ liệu dưới dạng biểu đồ - Dự đoán được giá tiền theo nhu cầu người dùng - Để xuất các bài đăng phù hợp nhu cầu người dùng Về mặt ứng dụng nhóm thực hiện khá tố

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA CONG NGHE PHAN MEM

NGUYEN CÔNG HIEU — 18520743

VŨ CAT - 18520515

KHOA LUAN TOT NGHIEP

RUT TRÍCH VÀ TRUC QUAN HOA DỮ LIEU

TRONG LINH VUC BAT DONG SAN

Extraction and data visualization in Real Estate

KY SU NGANH KY THUAT PHAN MEM

TP HO CHÍ MINH, 2022

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA CONG NGHE PHAN MEM

NGUYEN CÔNG HIEU - 18520743

VŨ CAT - 18520515

KHOA LUAN TOT NGHIEP

RUT TRICH VA TRUC QUAN HOA DU LIEU

TRONG LĨNH VUC BAT DONG SAN

Extraction and data visualization in Real Estate

KY SU NGANH KY THUAT PHAN MEM

GIANG VIEN HUONG DAN

ThS TRAN ANH DUNG

TP HO CHi MINH, 2022

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

NAY của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

1 TS Nguyễn Tan Trần Minh Khang — Chủ tịch

2 ThS Lê Thanh Trọng — Thư ký

3 ThS Huỳnh Tan Anh - Ủy viên

Trang 4

ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIET NAM

TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THONG TIN

TP HCM, ngày 10 tháng 07 năm 2022

NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP

(CUA CÁN BO HUONG DAN)

Tên khóa luận:

RÚT TRÍCH VÀ TRỰC QUAN HOÁ DỮ LIỆU

TRONG LĨNH VUC BAT ĐỘNG SAN

Nhóm SV thực hiện: Cán bộ hướng dẫn/phản biện:

Nguyễn Công Hiếu — 18520743 ThS: Trần Anh Dũng

Vũ Cát - 18520515

Đánh giá Khóa luận

1 Về cuôn báo cáo:

Số trang 103 Sốchương 5

Số bảng số liệu 19 Số hìnhvẽ 35

Số tài liệu tham khảo II Sảnphẩm 1Một số nhận xét về hình thức cuốn báo cáo:

Báo cáo đầy đủ các phần yêu cầu của khoá luận Hình thức trình bày phù hợp theo yêu

cầu trình bày theo khoa đã cung cấp Các danh mục hình, danh mục bảng, tài liệu tham khảo

trình bày rõ ràng, hợp lý Sinh viên chủ động chỉnh sửa báo cáo theo góp ý của giảng viên

hướng dẫn

2 Về nội dung nghiên cứu:

Trang 5

Nhóm sinh viên tập trung tìm hiểu và nghiên cứu phương pháp rút trích thông tin từ cáctrang web bất động sản Nhóm đã tiến hành khảo sát các trang web bất động sản như

batdongsan.com.vn, mogi.vn, alonhadat.com.vn đề phân tích đánh giá các tiêu chí lựa chọnthông tin, từ đó xây dựng các chức năng theo yêu cầu

Trực quan hóa dữ liệu dưới dạng các biểu đỗ

Tìm hiéu thuật toán hồi quy tuyến tinh dé dự đoán giá nhà đất

Đề xuất các thông tin bất động sản phù hợp với người dùng: khóa luận đã thực hiện đề

xuất dựa trên thông tin cá nhân và lịch sử tìm kiếm thông tin của người dùng

Nhóm sinh viên đã tìm hiểu và áp dụng các công nghệ dé phát triển hệ thống:

- Backend: Sử dụng NodeJS, Django, ExpressJs dé xây dựng hệ thống.

- So sánh, trực quan hoá dữ liệu dưới dạng biểu đồ

- Dự đoán được giá tiền theo nhu cầu người dùng

- Để xuất các bài đăng phù hợp nhu cầu người dùng

Về mặt ứng dụng nhóm thực hiện khá tốt các tính năng, nhưng vẫn còn những nhược

điểm như lượng thông tin chưa được phong phú (chỉ tập trung vào ba thành phố lớn Hà Nội,

Đã Nẵng và Thành Phó Hồ Chí Minh), thuật toán dự báo còn đơn giản

4 Về thái độ làm việc của sinh viên:

Trang 6

Nhóm sinh viên có thái độ nghiêm túc, chăm chỉ, tích cực thực hiện đề tài, đã tổng hợp

và van dụng nhiều kiến thức dé giải quyết các van đề trong đề tài, thé hiện được khả năng

nghiên cứu và áp dụng nhiều công nghệ đề xây dựng hệ thống Chủ động báo cáo định kỳ

thường xuyên và luôn hoàn thành rat tốt các công việc do giảng viên hướng dẫn đề ra

Đánh giá chung:

Kết quả đạt được của đề tài đáp ứng tốt yêu cầu của một khóa luận tốt nghiệp kỹ sư

ngành Kỹ thuật phần mềm Xếp loại Xuất sắc

Điểm từng sinh viên:

Nguyễn Công Hiếu: 9.5/10 (Chín rưỡi)

Vũ Cát: 9.5/10 (Chín rưỡi)

Người nhận xét

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

Trần Anh Dũng

Trang 7

ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HOA XÃ HOI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh PhúcCÔNG NGHỆ THÔNG TIN

TP HCM, ngày 16 tháng 07 năm 2022

NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP

(CUA CÁN BO PHAN BIEN)

Tên khóa luân:

RÚT TRÍCH VÀ TRỰC QUAN HOÁ DỮ LIỆU

TRONG LĨNH VUC BAT DONG SANNhóm SV thực hiện: Cán bộ hướng dẫn/phản biện:

Nguyễn Công Hiếu — 18520743 TS: Nguyễn Trịnh Đông

Vũ Cát - 18520515

Đánh giá Khóa luân

1 Về cuốn báo cáo:

Số trang 103 Số chương 5

Số bảng số liệu 19 Số hình vẽ 35

Số tài liệu tham khảo II San phim 1Một số nhận xét về hình thức cuốn báo cáo:

Cách thức trình bày khóa luận phù hợp với các quy định, phân bố nội dung từng mục

rõ ràng, cụ thể, có hình ảnh trực quan Các chương mục được trình bày hợp lý và theo

thứ tự.

Trang 8

2 Về nội dung nghiên cứu:

e _ Khóa luận tập trung tìm hiểu và nghiên cứu phương pháp rút trích thông tin từ cáctrang web bất động sản Khóa luận khảo sát các trang web bất động sản như

batdongsan.com.vn, mogi.vn, alonhadat.com.vn dé phân tích đánh giá các tiêu chí lựa chon

thông tin, trên cơ sở đó sẽ xây dựng các chức năng sử dụng theo yêu cầu Khóa luận cũngđưa ra một số biểu đồ biểu diễn quá trình tăng giảm giá bat động sản, dự báo giá đất dựa

trên dữ liệu đã thu thập được Khóa luận sử dụng kỹ thuật lập trình Web bằng ngôn ngữ lậptrình JavaScript dựa trên các bộ khung phát trién phần mềm NodeJS, Express và cơ sở ditliệu MongoDB.

e _ Sinh viên đã tiến hành tìm hiểu cơ sở lý thuyết để áp dụng vào phát triển hệ thống:

o Backend: Sử dụng NodeJS, Django, ExpressJs dé xây dựng hệ thống

o Frontend: Sử dụng HTML và ReactJS

o Database: MongoDB

o Xây dựng hệ thống Restful API với NodeJS, Express va Django

¢ Phan phân tích thiết kế đã cơ bản giải quyết được các yêu cầu chung cho bài toánphân tích thiết kế hệ thống thông tin Từ việc đặc tả các usecase đến các sơ đồ kỹ thuật cần

thiết dé phát triển hệ thống

Tóm lại, Khóa luận đã lựa chọn cách tiếp cận nghiên cứu các lý thuyết liên quan sau

đó phân tích thiết kế hệ thống và triển khai xây dựng phan mềm

3 Về chương trình ứng dung:

Trên cơ sở lý thuyết và quá trình phát triển hệ thống, Khóa luận đã đưa ra kết quả là một

phần mềm có các ưu điểm và nhược điểm sau:

Ưu điểm: Ứng dụng có đầy đủ chức năng quản lý người dùng Các chức năng trong hệ

thống thỏa các yêu cầu bài toán Các dữ liệu sau khi rút trích được trực quan hóa bằng biểu

đồ, hình ảnh sinh động Giao diện ứng dụng thân thiện, trải nghiệm người dung đạt yêu cầu

Nhược điểm:

Trang 9

Dữ liệu trên hệ thống tập trung vào ba thành phó lớn Hà Nội, Da Nẵng và Thành Phố Hồ

Chí Minh Thuật toán dự bào còn đơn giản.

4, Về thái độ làm việc của sinh viên:

Sinh viên chủ động liên lạc với GVPB để cung cấp tài liệu, Khóa luận Thái độ lễ phép,đúng mực Tích cực chỉnh sửa Khóa luận khi có phản hỗồi từ GVPB

Đánh giá chung:

Khóa luận đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư, xếp loại Giỏi

Điểm từng sinh viên:

Nguyễn Công Hiếu: 9.0/10

Trang 10

Trong suốt quá trình học tập tại Khoa Công nghệ Phần mềm, trường

Đại học Công nghệ Thông tin, chúng em luôn nhận được sự quan tâm, hướng

dẫn và giúp đỡ tận tinh của các thay, cô giáo trong khoa cùng với sự động

viên và giúp đỡ của bạn bẻ và mọi người xung quanh.

Lời đầu tiên chúng em xin được bày tỏ lòng biết ơn sâu sắc đến ThS.

Trần Anh Dũng đã giúp đỡ bọn em một cách tận tình, cũng như hướng dan

đưa ra những hướng đi đúng đắn giúp bọn em hoàn thành khoá luận lần này một cách thành công nhất.

Nhân dịp này chúng em cũng xin cảm ơn thầy Lê Thanh Trọng - cố vấn học tập của bọn em suốt 4 năm qua Thầy luôn quan tâm và giúp đỡ, đưa ra những kinh nghiệm và giúp tụi em có thể hoàn thành khoá học và tiến tới thực hiện khoá luận thành công như ngày hôm nay Một lần nữa tụi

em xin cảm ơn thay.

Đề tài đã được nhóm em nghiên cứu và thực hiện thành công Tuy

nhiên nhóm em vẫn còn những hạn chế về năng lực và những thiếu sót trong quá trình nghiên cứu và thực hiện khoá luận Nhóm em xin lắng nghe và

tiếp thu những góp ý của giáo viên phản biện dé hoàn thiện sản phẩm, bổ sung kiến thức.

Nhóm em xin chân thành cảm ơn.

TP HCM, ngày tháng năm

Nguyễn Công Hiếu

Vũ Cát

Trang 11

ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

TRƯỜNG ĐẠI HỌC NAM CÔNG NGHỆ THÔNG TIN Độc Lập - Tự Do - Hạnh Phúc

ĐÈ CƯƠNG CHI TIẾT

TÊN ĐÈ TÀI: RÚT TRÍCH VÀ TRỰC QUAN HÓA DỮ LIỆU TRONG LĨNH

VỰC BÁT ĐỘNG SẢN

(Extraction and data visualization in Real Estate)

Cán bộ hướng dẫn: ThS Trần Anh Dũng

Thời gian thực hiện: Từ ngày 28/02/2022 đến ngày 13/06/2022

Sinh viên thực hiện:

Nguyễn Công Hiếu - 18520743

Vũ Cát - 18520515

Nội dung đề tài:

Mục tiêu:

e_ 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 bat

động sản: xem tin bat động sản, tìm kiếm thông tin như: thông tin dé liên lạc người

bán, giá cả, địa chỉ, thé hiện chỉ tiết thông tin bat động sản

©_ Xây dựng hệ thống cho phép người dùng có thể tìm kiếm, so sánh thông tin một

cách trực quan dựa trên dữ liệu thu thập được từ các trang thông tin khác

e _ Xây dựng trang web thông tin có các tin tức về thị trường bất động sản

Trang 12

e _ Xây dựng hệ thống tích hợp AI phân tích, dự đoán giá nhà đất theo từng khu vực và

đề xuất những thông tin bat động sản phù hợp với thông tin tìm kiếm và nhu cầu của

người dùng

e _ Xây dựng hệ thống với các công nghệ mới như NodeJS, ReactJS, MongoDB Nhóm

em chọn những công nghệ này vi chúng có tinh bao quát rộng hơn, NodeJS hỗ trợ

bat đồng bộ giúp nhiều phương thức chạy động thời, MongoDB là một NoSQL hỗ

trợ dễ dàng trong việc thêm dữ liệu, không cần khai báo biến mà sử dụng “key:value”, còn ReactJS là một frontend mới nỗi do facebook tao 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

Pham vi:

e Pham vi địa ly: Ung dung sử dụng tại Việt Nam

e Phạm vi chức năng:

Quản lý người sử dụng.

Quản lý bài viết

Quan lý thông tin bat động sản

Quan lý các biéu đồQuản lý tìm kiếm thông tin (recommend bài viết)

Quản lý AI hệ thống

Đố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ại thị

trường Việt Nam

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

e Tim hiểu và phân tích các website bat động sản hiện có trên thị trường

e Làm việc cá nhân, sử dung request đề lấy thông tin từ những trang web cụ thể, lưu

xuống database và xuất lên cho người dùng thấy

Trang 13

Xây dựng database với MongoDB.

Xây dựng giao diện với ReactJS

e _ Xây dựng hệ thống Restful API với NodeJS, Express va Django

Công nghệ sử dụng:

ReactJs: Xây dựng Front End MongoDB: Xây dung database NodeJS, Django: Xây dựng Back End

ExpressJs: Xây dựng APIPostman: Kiểm tra các API đã xây dựng

PrimeReact, chartjs: Các Framework dùng dé trực quan hóa dữ liệu

Visual Code: IDE đề thực hiện đồ án

Kết quả mong doi:

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

Trực quan hóa dữ liệu thu thập được và hiển thị cho người dùng

Tích hợp được AI dự đoán giá bắt động sản theo khu vựcXây dựng được hệ thống có thé phát triển sử dụng rộng rãi trong tương lai

Kế hoạch thực hién:(M6 ta kế hoạch làm việc và phân công công việc cho từng sinh viên

tham gia)

Trang 14

Thời gian thực hiện Công việc

Giai đoạn 1: Tìm hiểu, nghiên cứu

- Các Framework va thư viện

(Nextjs, Vuejs, Bulma )

- Đánh giá các công nghệ đã mô tả.

- _ Lựa chọn công nghệ sẽ phát triển

- Lựa chọn công nghệ dé deploy vàpublic sản phẩm (AWS, Azure, )

Trang 15

Giai đoạn 2: Triển khai

Sprint 4 (04/04-17/04/2022)

Thiết kế giao diện và thiết

kế database

'Vũ Cát (Front-end):

-_ Thiết kế giao diện

- _ Thiết kế source code

Nguyễn Công Hiếu (Back-end):

-_ Thiết kế source code-_ Thiết kế database

Sprint 5 (18/04-08/05/2022)

Xây dựng tính năng AI dự đoán giá

Cả 2 thành viên:

- Thém third-party dé xem lịch sửtìm kiếm của người dùng

-_ Xây dựng AI và phát triển API

phân tích dự đoán giá.

- _ Xây dựng giao diện gợi ý các bat

- Phân tích địa điểm, thời gian, nhu

cầu của người dùng đề đưa ra đề xuất

- Tich hợp API với giao diện chức

năng gợi ý các bất động sản phù hợp với

người dùng.

Trang 16

Giai đoạn 3: Hoàn thiện, trình bày

Sprint 7+ (30/05-13/06/2022)

Cải thiện giao diện, sửa lỗi và sẵn sàng

Cả 2 thành viên

-_ Sửa các lỗi liên quan đến hệ thống

trình bày - Cải thiện giao diện trải nghiệm

Xác nhận của CBHD TP HCM, ngày 22 tháng 02 năm 2022

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

Ths Trần Anh Dũng

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

Nguyễn Công Hiếu

Sinh viên 2

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

Vũ Cát

Trang 17

MỤC LỤC

TOM TAT KHOA LUẬN -2-s° se ©EEE+ee©EEE+eseEEEveedertrxeseerrressrrrrvee 1

Chuong1 TONG QUAN

LL Lý do chọn đề taii scssssssssssssssssscccssseccsssnsecssssssccsssnsccsssuseccssnsscesssnscsssennseessens 2

1.2 Tinh năng mới, khác biệt

1.3 Giới thiệu hệ thống website “Rút trích và trực quan hóa thông tin bất

2.1.1 Giới thiệu về Nodel§ ccccc s22 6

2.1.2 Tai sao nên sử dụng NodeJS Set 62.1.3 Áp dụng NodeJS vào đề tài - 22-22 22zccEEEEEcEEEEcrrrrrrrrrrree 7

2.2 ExpressJS ÍramewWOrk -s5< 5c 2n 010001010400 08s 7

2.2.1 Giới thiệu về ExpressJS cccccccccc2cSvveerrrrrrrrrkrrrrreerrrrre 7

2.2.2 Tai sao nên sử dụng ExpressJS - - 5c ccccxsccsrreereree 9

2.2.3 Áp dụng ExpressJS vào để tài 2ccccccccvrcrrtrktrrrrrrkrrrrrrrvee 9

2.3 Django — Python: -s<55<55ssSsS939191139303030380301040880403010050 9

2.3.1 Tổng quan về Django: -:¿¿ ©22v2++++t22EEEvvvrrrrrtrrrrrrrrrrrrrrrri 9

2.3.2 Nhiing loi thé cla Djangor 0 10

Trang 18

2.3.3 Sự phổ biến của DjangO: -22¿22222cc222vErrrerrkrrrrtrrrrrrsrrrrree 12.3.4 Áp dụng Django vào dé tài:

2.4 MongoDB o- 5c c<S< sư *nHH H111 0000004140808 se 11

2.4.1 Giới thiệu về MongoDB

2.4.2 Tai sao nên sử dụng hệ quản trị cơ sở dir liệu MongoDB 2

2.4.3 Áp dụng MongoDB vào đề tai

2.7.2 Ví dụ về Hồi quy tuyến tính -¿¿+++22v++++zvvvvrrerrvsrrrsrr §2.7.3 Áp dụng thuật toán Hồi quy tuyến tính vào khóa luận - 25

Chương 3 PHÁT BIEU BÀI TOÁN -cccccvccvvvvvvexxeesssseerree 26

3.1 Giới thiệu hệ thống website “Rút trích và trực quan hóa thông tin bat

Trang 19

43.1 Dang ki LOGE AO @ ) 50

4.3.2 Đăng nhập aco eM ccc Gh WEE Q4 HH kế 52

4.3.3 Tìm Kags voscccececeeeeesssssssssseceeececceccnesssssnnnsnnnnnnnssessseeeeeeeeceeceecenssnnnnnnnnente 544.3.4 Shp XẾP: HH HH Hee 56

4.3.5 _ Thiết lập biểu đồề: 2222c222vvvreEErvrrerrrrrrrerrrrrrrrer 584.3.6 Dự đoán giá nhà đất: -. -cc22ccccccccrverrrrrrrrrerrrrerce 604.3.7 Đề xuất bài viết cho người dùng -cccccccescccrcreeeerrrrre 624.4 Thiết kế kiến trúc: cccceesstertrrrrkestetttrrrrksserssrrrre 64

4.4.1 Mô hình kiến trúc -:-:-22222vv++rrttrtrvrvrrrrrrrrrrrrrrrrrerrrrr 64

4.4.2 Mô[ả HS HH roi 64

4.4.3 Thiết kế cơ sở dữ liệu: -ccccceciirrrrrtriirrrrrrrrrrirrrrii 66

4.5 Thiết kế giao diện:

4.5.1 Màn hình đăng kí tài khoản: - (5c 5à Street 71

Trang 20

4.5.2 Màn hình đăng nhập: - ¿6-2 Street 72 4.5.3 Màn hình trang chủ: 73

4.5.4 Man

4.5.5 Màn hình xem chi tiết thông tin bài viết:

4.5.6 Màn hình xem thông tin biểu đồ: -¿+c+ccvsccesrr 76

4.5.7 Màn hình biểu đồ giá nhà đất trung bình theo thành phố

4.5.8 Màn hình dự đoán giá nhà đất trung bình theo quận (huyện): 784.5.9 Màn hình dự đoán giá nhà đất

Chương5 KET LUẬN VÀ HƯỚNG PHAT TRIÉN -s- 80

5.1 Ua GiGi ans cesssssssccccnnsnsssescccccsnnnessscncccsnsnesscscccensnssseeeceeessnsssesseceesnnneeeeseeees 805.2, Nhược GIGI: cesseseccscccsssseseccccccnsnssecsccccccsnssessececcennuessceecceessnssecssceeesnunesseeeeeees 80

5.3 Kết quả đạt Guqcs sesccsssssssssssssssccsssscccssssccssssecccssnsscssssseccsssnsscesssnscssssssscesssnes 805.3.1 VE mặt nghiên cứu: -¿-52+++++etErxerrerrrerrerrrkerrrrr 805.3.2 Về mặt sản phẩm: ccccccc+222EVvvvrrrrtrrrrrrvrrrrrrrrrer 81

5.4 Hướng phát triỂn: e se©©+seetvseetrkeeerkseerreserrsserri 81

TÀI LIEU THAM KHAOocssssssssscsssssssssssssscssssscssssssscsnsssscssnssssnsasssssesasssssssenssseee 82

Trang 21

DANH MỤC HÌNH ANH

Hình 2.1 Blocking I/O (trái) và Non-Blocking I/O (phải)

Hình 2.2 Cấu trúc của ExpressJs

Hình 2.3 Li do vì sao nên sử dụng ReactJS 16

Hình 2.4 Đường hồi quy tuyến tính 222++£+22EEVYv2++rtttEEEEEEvrrrrrrrrrrrrrrrree 19Hình 2.5 Đường hồi quy và đường thực tẾ 2222cccccetttEErttrrrrrrrrrrrrrrrree 24

Hình 3.1 Trang chủ của batdongSañn.COI.VII - óc t2 vvsEekerterrrererrrerre 27

Hình 3.2 Trang chủ của mOgi.VI 5-5 22422323 12 1212121111311 1101111 29 Hình 3.3 Trang chủ website alonhadat.COm.VII 5252 £‡k‡+‡s£srerrkexrk 31

Hình 4.1 Sơ đồ phân rã chức năng .-::-222©222++tt222+++tEEEEErrrtrrrrrrerrkrrrrrrr 37

Hình 4.2 Sơ đồ Use-case tổng quan 222ccccccccccvvveerrresrrrrsxsecreerrrrrserc 2

Hình 4.3 Sơ đồ hoạt động chức năng đăng kí ¿ ©2¿+222+z+t2vvxvzrerrrsecrrrr 50Hình 4.4 Sơ đỗ tuần tự chức năng đăng kí -22222222+++222EEEvvvrrrrrrrrrrrrrrrree 51

Hình 4.6 Sơ đồ tuần tự chức năng đăng nhập -2¿2+z++222++zecvvszrrrrr 53

Hình 4.7 Sơ đồ hoạt động chức năng tìm kiếm :¿+¿2222vvvvvcverrtrrrrrreercee 54Hình 4.8 Sơ đồ tuần tự chức năng tìm kiếm - ¿ ©22¿222+z++2vvv+rrecvvsrrecrr 55

Hình 4.9 Sơ đồ hoạt động chức năng sắp xẾp -+¿-2222vvvc+rrrvcvzvsrcccee 56Hình 4.10 Sơ đồ tuần tự chức năng sắp xẾp 2¿ ©22¿222+z+v2Cvxvzrerrrrerrrrr 57

Hình 4.11 Sơ đồ hoạt động chức năng thiết lập biểu đồ -ccccc-+2 58

Hình 4.12 Sơ đồ tuần tự chức năng thiết lập biểu đồ -cc:¿-©22c5sscccce2 59

Hình 4.13 Sơ đồ hoạt động chức năng dự đoán giá nhà đất - - 60Hình 4.14 Sơ đồ tuần tự chức năng dự đoán giá nhà đất -cccce+ 61Hình 4.15 Sơ đồ hoạt động chức năng đề xuất bài viết - - c5 62

Hình 4.16 Sơ đồ tuần tự chức năng đề xuất bài viết -cccccc+ccccvvsecccee 63

Hình 4.17 Cơ sở dữ liệu SQLite - + 5+5 c+cs‡xeeererxertrrerrerrrrerrrrrrver 66

Hình 4.18 Cơ sở dữ liệu MongoDB ¿- 5555 S+2x+xtxkereekerererrerrree 69

Hình 4.19 Màn hình đăng kí - ¿52-5 2 222123 E12 22212111 1311217121011 1e 71

Trang 22

h 4.20 Man hình đăng nhập - ¿52551 E2 E211 371212101 1111 1 re 72

h 4.22 Màn hình thông tin bài việt

h 4.23 Màn hình thông tin chỉ tiết bài viết

4.25 Màn hình thông tin biểu đồ giá nhà đất trung bình theo thành phố 71

h 4.26 Màn hình thông tin biểu đỗ giá nhà đất trung bình theo quận (huyện) 78

h 4.27 Màn hình dự đoán giá nhà đất theo khu vực và diện tích - 79

Trang 23

DANH MỤC BẢNG

Bảng 3.1 Bang so sánh giữa các hệ thong bất động sản -c -ccccc.c .34

Bảng 4.1 Bảng danh sách người dùng -5- 5-55 5sscccseereererrrrrrrrrrrr 30

Bang 4.3 Bang đặc ta use case đăng kí ¿- tt dư 41 Bang 4.4 Bảng đặc ta use case đăng nhập - ¿+ tt tre 42 Bảng 4.5 Bảng đặc ta use case xem tin tỨC - 5-5252 5222SSc2t+tsrrrerrereeree 43

Bảng 4.6 Bảng đặc tả use case tìm kiếm .2¿-2222+2222+2+t2EEEEvretrErvrrerrkrrrrrrg 44

Bảng 4.7 Bảng đặc tả use case sắp XẾp 2c22cc 22222 vvrrrtrrrrrkrrrrrrrrrrrkrrrcee 45Bảng 4.8 Bang đặc ta use case thiết lập biểu đồ - 22222222+ccccvxvcrerrrseccrg 46

Bảng 4.9 Bảng đặc tả use case dự đoán giá nhà đất

Bảng 4.10 Bang đặc ta use case đề xuất thông tin bất động sản - 49

Bảng 4.11 Bang mô ta thông tin các table trong database - 66 Bảng 4.12 Bang mô ta table S€T St E3 kg ngư 67

Bang 4.13 Bang mô ta table LogSearch ¿+5 25+ S+2++xxexerexexerexerxrseeevee 68

Bang 4.14 Bảng mô ta table LOglPOSLL - - 2 5 222 S+2t+E‡Eersrerkrkerrrrrrererrer 69 Bang 4.15 Các collection trong database MongoDDb s5 + scvxveexexexex 70

Bảng 4.16 Thông tin chỉ tiết collection PostDetail cccccccz22ccvvvecccee 70Bảng 4.17 Mô tả thành phần màn hình đăng kí -¿2z+2222++++ccvszcezx 71

Bảng 4.18 Mô tả thành phan màn hình đăng nhập

Trang 24

ngược lại.

-Controller

MVC là một mẫu kiến trúc phần mềm đề tạo

lập giao diện người dùng trên máy tính.

MVC chia thành ba phần được kết nối với

nhau như tên gọi: Model (dữ liệu), View

(giao điện) và Controller (bộ điều khiển)

Interface

API là một tap các quy tắc và cơ chế màtheo đó, một ứng dụng hay một thành phần

sẽ tương tác với một ứng dụng hay thành

phan khác API có thé trả về dữ liệu mà bạn

cần cho ứng dụng của mình ở những kiểu dữliệu phổ biến như JSON hay XML

Transfer

REST là một dạng chuyên đồi cấu trúc dữliệu, một kiểu kiến trúc để viết API Nó sửdụng phương thức HTTP đơn giản để tạo

cho giao tiếp giữa các máy Vì vậy, thay vì

sử dụng một URL cho việc xử lý một số

thông tin người dùng, REST gửi một yêu

cầu HTTP như GET, POST, DELETE,

đến một URL để xử lý đữ liệu

Trang 25

RDBMS | Relational Database RDBMS có nghĩa là hệ quản trị cơ sở dữ liệu

Management System quan hé OLS

UI User Interface Giao diện người dùng

URL Uniform Resource URL là định vị tài nguyên thông nhất Cụ

Locator thé, URL là địa chỉ của một tai nguyên duy

nhất trên Web

Trang 26

- Hệ thống cũng tích hợp chức năng dự đoán giá nhà đất, giúp người ding có thé

dự đoán được giá tiền ở khu vực mình lựa chọn thông qua diện tích mong muốn.

Thêm vào đó, hệ thống sẽ phân tích thông tin người dùng, thông tin tìm kiếm dé đềxuất những bài đăng bat động sản phù hợp nhất với nhu cầu người dùng

- Hệ thống được xây dựng dựa trên nền tảng Web nên người dùng dễ dàng tiếpcận và sử dụng Nhóm sử dụng công nghệ Django — Python và NodeJS cho phía

Back-end, và sử dụng ReactJS cho Front-end đề thực hiện khoá luận

- Đề án đã được nhóm nghiên cứu và thực hiện, đưa ra những tính năng phù hợpnhất cho người dùng Đây mà một ý tưởng mới, hiện tại chưa có hệ thống nào thực

hiện nên có khả năng thu hút được khách hàng nếu phát triển thương mại

Trang 27

Chương 1 TONG QUAN1.1 Lý do chọn đề tài

- Trong nền kinh tế thị trường hiện nay, bất động san là một trong những thịtrường có vị trí và vai trò quan trọng, có quan hệ trực tiếp với các thị trường khác nhưtài chính tiền tệ, xây dựng, buôn bán vật liệu xây, nguôn lao động, Nếu phát triển

va quản lý tốt thị bat động sản thì sẽ góp phan to lớn vào quá trình phát triển kinh tế

- xã hội, tạo khả năng thu hút các nguồn đầu tư lớn cho sự phát triển, đóng góp quantrọng vào quá trình đô thị hoá, công nghiệp hoá, hiện đại hóa đất nước

- Với nền tảng kiến thức về công nghệ thông tin, chúng ta có thé phát triển đượcmột website hỗ trợ các chức năng cung cấp các thông tin thật và giúp người bán và

khách hàng có thê trao đổi thuận tiện hơn Ngoài ra người mua có thé dé dàng tìm

kiếm các thông tin phù hợp với nhu cầu của bản than và tin tưởng vào các thông tinđăng trên website thay vì thông qua các cò đất, một bên trung gian không uy tín trên

thị trường lúc bay giờ

1.2 Tính năng mới, khác biệt

Sau khi tham khảo một số trang web bất động sản hiện nay nhóm nhận thấy

những bắt cập cần phải cải thiện sau đây:

- Rút trích và trực quan hóa dữ liệu để người dùng dé dàng tìm kiếm thông tin

về bat động sản-_ Chưa có thống kê về thị trường bat động sản của từng khu vực

- _ Chưa có chức năng dự đoán giá của bat động sản trong tương lai

- Xem lịch sử tìm kiếm của người dùng

Từ đó nhóm quyết định thực hiện ứng dụng web với đầy đủ chức năng cơ bản

như tra cứu thông tin, ngoài ra cũng bé sung một vài chức năng mới như trực quanhoá dữ bat động sản phục vụ việc tìm kiếm và đề xuất phù hợp với người dùng

Chức năng:

Trang 28

- Kế thừa toàn bộ các chứng năng ứng dụng đã có.

- Thêm chức năng dự đoán giá.

-_ Thêm biểu đồ dé trực quan hóa dữ liệu một cách dé dàng

- _ Thêm chức năng xem lịch sử tim kiếm của người dùng

1.3 Giới thiệu hệ thống website “Rút trích và trực quan hóa thông tin bat

độ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 chỉ tiết, hình ảnh của bất động sản, của trang bat động sản nỗi tiếng hiện nay đó là: alonhadat.com.vn Sau đó sắp xếp,

trực quan hóa 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à đủ

- 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ụ tim theo: loại nhà dat, địa chi bat động sản, giá cả bất động sản,

- Website có công cụ trực quan dữ liệu một cách hiệu quả giúp người dùng so sánh

thông tin giữa các trang web một cách nhanh nhất có thể

- 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 tiềm nang.

- Ngoài ra, trên mỗi tin tức được chính người dùng chia sé trên hệ thống, ngườidùng sẽ có quyền sửa hoặc xoá 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 xoá toàn bộ tin tức, dé khi có ai đó báo cáo

sai lệch về tin tức nao, người quản trị sẽ trực tiếp sửa hoặc gỡ bỏ

Trang 29

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

1.4.1 Mục tiêu

- Xây dựng một website trên nền tang web với mục đích chính là tìm kiếm, trựcquan đữ liệu 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 ưa 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 bat động san

- Xây dựng chức năng đăng nhập và hệ thống người dùng dé tăng tính bảo mật

- Xây dựng chức năng tìm kiếm thông tin bat độ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 dé giúp người dùng tiệntrong lúc tìm kiếm thông tin

- Xây dựng chức năng trực quan hóa dữ liệu bằng biéu đồ, chức năng dự đoán

giá nhà đất theo biểu đồ

1.4.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:

* Quan lý thông tin người dùng

+ Quản lí thông tin bat động sản

Trang 30

+ Tìm kiếm thông tin loại hình bat động sản

+ Sắp xếp thông tin bat động sản

* Cập nhật thông tin bat động sản mới nhất

* Danh sách ưa thích

1.4.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.4.4 Kết quả dự kiến

- Hoàn thành website cung cấp thông tin bất động sản

- Hoàn thành chức năng xây dựng biểu đồ

- 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.

- Hoàn thành chức năng tìm kiếm và sắp xép tin tức

- Hoàn thành chỉ tiết về 1 thông tin bất động sản

Trang 31

Chương 2 CƠ SỞ LÝ THUYET

2.1 NodeJS

2.1.1 - Giới thiệu về NodeJS

NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine — trình

thông dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn

giản và dé đàng mở rộng

NodeJS được phát triển bởi Ryan Dahl vào năm 2009 và có thể chạy trên nhiều

hệ điều hành khác nhau: OS X, Microsoft Windows, Linux

Phan Core bên dưới của NodeJS được viết hầu hết bằng C++ nên cho tốc độ

xử lý và hiệu năng khá cao.

NodeJS tao ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian

thực.

NodeJS áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh,

cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể

2.1.2 Tại sao nên sử dụng NodeJS

Các ứng dụng NodeJS được viết bằng javascript, ngôn ngữ này là một ngôn

ngữ khá thông dụng Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript

có những đặc tính mà làm cho nó rất khác biệt so với các ngôn ngữ lập trình động

còn lại, cụ thé là nó không có khái niệm về đa luồng, tat cả là đơn luồng và hướng sựkiện.”

Tốc độ xử lý nhanh Nhờ cơ chế xử lý bat đồng độ (non-blocking), NodeJS có

thể xử lý hàng ngàn kết nối cùng lúc mà không gặp bắt cứ khó khăn nào

Dé dàng mở rộng Nếu bạn có nhu cau phát triển website thì tinh năng dé dang

mở rộng của NodeJS là một lợi thé cực kỳ quan trọng

Trang 32

Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tang, đa thiết bị.

Node.js sử dụng một mô hình luồng duy nhất với sự kiện lặp Cơ chế tổ chức

sự kiện giúp các máy chủ đề đáp ứng một cách không ngăn chặn và làm cho máy chủ

cao khả năng mở rộng như trái ngược với các máy chủ truyền thống mà tạo dé hạnchế đề xử lý yêu cầu Node.js sử dụng một chương trình đơn luồng và các chươngtrình tương tự có thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu

máy chủ truyền thống như Apache HTTP Server

Hình 2.1 Blocking I/O (trái) và Non-Blocking I/O (phải)

2.1.3 Áp dụng NodeJS vào đề tài

Trong hệ thống ứng dụng của nhóm, NodeJS được áp dụng dé làm phanbackend cho hệ thống, vì những ưu điểm của NodeJS dành cho một ứng dụng nhỏ rất

là tiện lợi đặc biệt là tốc độ xử lí

2.2 ExpressJS framework

2.2.1 Giới thiệu về ExpressJS

ExpressJS là một Framework nhỏ, nhưng linh hoạt được xây dựng trên nền tảngcủa NodeJS Nó cung cấp các tính năng mạnh mẽ dé phát triển web hoặc mobile

Trang 33

Về các package hỗ trợ: Expressjs có vô số các package hỗ trợ nên không phải lo

lắng khi làm việc với Framework này

Về performance: Express cung cấp thêm về các tính năng (feature) để dev lập

trình tốt hơn Chir không làm giảm tốc độ của NodeJS

Và hơn hết, các Framework nổi tiếng của NodeJS hiện nay đều sử dụngExpressJS như một core function, chang hạn: SailsJS, MEAN

Hình 2.2 Cấu trúc của ExpressJs

- App.js chứa các thông tin về cầu hình, khai báo, các định nghĩa, để ứng dụng

của chúng ta chạy trơn tru.

- Package.json chứa các package cho ứng dụng chạy, có chức năng tương tự như

composer.json hoặc Gemfile trong PHP hoặc RoR.

- Folder routers: chứa các router có trong ứng dung

- Folder view: chtra view/template cho tmg dung

- Folder public chứa các file css, js, images, cho ứng dụng

Trang 34

2.2.2 Tại sao nên sử dụng ExpressJS

Framework giúp cho việc phát triển ứng dụng được rút ngắn đi rất nhiều Cũng

như các framework dựa trên những ngôn ngữ khác như Rails (Ruby); Django (Python); Laravel, CakePHP (PHP) Express được xây dựng dựa trên NodeJS Vậy

nó có ưu điểm gì để ta lựa chọn cho việc phát triển ứng dụng

Express hỗ trợ việc phát triển ứng dụng theo mô hình MVC, mô hình phổ biến

cho việc lập trình web hiện nay.

Cho phép định nghĩa Middleware hỗ trợ cho việc tổ chức và tái sử dụng code.Định nghĩa routes và các request method đến server một cách dễ dàng

Hỗ trợ REST API.

Va còn rất nhiều thứ ma framework này hỗ trợ

2.2.3 Áp dụng ExpressJS vào đề tai

Trong hệ thống ứng dụng của nhóm, ExpressJS được áp dụng dé làm phần

framework backend cho hệ thống, vì những ưu điểm của ExpressJS có dành cho một

ứng dụng nhỏ rất là tiện lợi đặc biệt là tốc độ xử lí, hỗ trợ Rest API, cộng đồng lớn

mạnh.

2.3 Django - Python:

2.3.1 Tổng quan về Django:

Django là một framework bậc cao của Python có thé thúc đây việc phát triển

phần mềm thần tốc và clean, thiết kế thực dụng Được xây dựng bởi nhiều lập trìnhviên kinh nghiệm, Django tập trung lớn những van dé phát triển Web, bạn có thé pháttriển trang web của bạn mà không cần xây dựng từ những căn bản Đặc biệt

nó free va open source.

Trang 35

2.3.2 Những lợi thé của Django:

Hoàn thiện: Django phát triển theo tư tưởng "Batteries included" (có thể hiểu

ý nghĩa là tích hợp toàn bộ, chỉ cần gọi ra mà dùng) Nó cung cấp mọi thứ chodeveloper không cần phải nghĩ phải dùng cái ngoài Chúng ta chỉ cần tập trung vào

sản phẩm, tất cả đều hoạt động liền mạch với nhau.

Đa năng: Django có thể được dùng dé xây dựng hầu hết các loại website, từ

hệ thống quản lý nội dung, cho đến các trang mạng xã hội hay web tin tức Nó có thểlàm việc vớiframework client-side, và chuyển nội dung hầu hết các

loại format (HTML, RESS, JSON, XML )

Bao mật: Django giúp các developer trong các lỗi bao mật thông thường bằngcách cung cấp framework rằng có những kĩ thuật "phải làm như vậy" để bảo vệ

website Ví dụ: Django cung cấp bảo mật quản lý tên tài khoản và mật khẩu, tránhcác lỗi cơ bản như đề thông tin session lên cookie, mã hóa mật khâu thay vì lưu thẳng

Dé Scale: Django sử dụng kiến trúc shared-nothing dựa vào component (mỗiphan của kiến trúc sẽ độc lập với nhau, và có thé thay thé hoặc sửa đổi nếu cần thiết)

Có sự chia tách rõ ràng giữa các phần nghĩa là nó có thé scale cho việc gia tăng traffic

bằng cách thêm phần cứng ở mỗi cấp độ: caching, servers, database servers, hoặcapplication servers Nhiều web về kinh doanh đã thành công khi Django được scale

đáp ứng yêu cầu của họ

Dễ maintain: code Django được viết theo nguyên tắc thiết kế va pattern có thé

khuyến khích ý tưởng bảo trì và tái sử dụng code Trên thực tế, nó sự theo khái niệmDon't Repeat Yourself làm cho không có sự lặp lại không cần thiết, giảm một lượng

code.

Tính linh động: Django được viết bằng Python, nó có thé chạy đa nền tảng Nó

có nghĩa rằng bạn không ràng buộc một platform server cụ thé Django được hỗ trợ

10

Trang 36

tốt ở nhiều nhà cung cấp hosting, họ sẽ cung cấp hạ tầng và tài liệu cụ thể cho hosting

web Django.

2.3.3 Sự phổ biến của Django:

Thực sự chưa có một bài thống kê cụ thể về sự phó biến các framework Việc

đánh giá hiện nay dựa vào số lượng các web phổ biến dùng Django, số lượng ngườiđóng góp codebase, và số lượng người phát triển cả tình nguyện lẫn được trả công

Thì có thé cho rang Django là framework phổ biến

Các trang web phổ biến sử dung Django: Disqus, Instagram, KnightFoundation, MacArthur Foundation, Mozilla, National Geographic, Open

Knowledge Foundation, Pinterest, and Open Stack

2.3.4 Áp dung Django vào dé tài:

Trong ứng dung của nhóm, Django được sử dung để xây một micro servicephụ trợ cho service chính Dựa trên thế mạnh về dữ liệu của ngôn ngữ Python, nhóm

áp dụng Django đề xây dựng thuật toán và xử lí dữ liệu nhanh chóng hơn

2.4 MongoDB

2.4.1 Giới thiệu về MongoDB

MongoDB là phần mềm cơ sở đữ liệu mã nguồn mở NoSQL hỗ trợ đa nền tảngđược thiết kế theo hướng đối tượng Vì thế, nó có thể dùng đề lưu trữ dữ liệu có cấu

trúc phức tạp và đa dạng Dữ liệu được gọi là Big Data Đặc biệt, chương trình này

lưu trữ đữ liệu vào collection theo hướng tài liệu kiểu JSON thay vì bảng nên có hiệusuất cao và tính khả dụng cao

Trong khái niệm của MongoDB có nhắc đến NoSQL, vậy NoSQL

(Non-Relational SQL) là dang cơ sở dữ liệu mã nguồn mở được ra đời như một mô hìnhtiến bộ hơn về tốc độ, tính năng, so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS

NoSQL có kiểu dữ liệu JSON Đây là dang dữ liệu kiểu key và value cùng với hiệu

11

Trang 37

suất nhanh và khả năng mở rộng không bị ràng buộc bởi việc tạo khóa ngoại, khóa

chính, nên được ưa chuộng và sử dụng rat phổ biến.

Với NoSQL, có thể mở rộng dữ liệu một cách thoải mái mà không phải lo lắng

về khóa ngoại hay là khóa chính, hoặc các công việc như là kiểm tra ràng buộc như

hệ quản trị cơ sở dữ liệu truyền thống

Ưu điển: NoSQL giải quyết được các van đề dữ liệu lớn (big data) về các hệthống thông tin hoặc là phân tan dữ liệu

Nhược điển: cũng từ ưu điểm trên, do không hạn chế việc mở rộng dữ liệu nên

nó tồn tai một số nhược điểm như là: sự phụ thuộc vào từng bản ghi, tính nhất quán

hoặc là đặc tính toàn vẹn đữ liệu.

2.4.2 Tại sao nên sử dụng hệ quản tri cơ sở dữ liệu MongoDB

Ưu điểm:

- Đầu tiên có thể nhắc đến là tính linh hoạt lưu trữ đữ liệu theo các kích cỡkhác nhau, dữ liệu dưới dạng hướng tài liệu JSON nên bạn có thể chèn vào thoải mái

bắt cứ thông tin gì bạn muốn

- Khác với RDBMS, dữ liệu trong đây không có sự ràng buộc và không có yêu

cầu tuân theo khuôn khổ nhất định, điều này giúp bạn tiết kiệm thời gian cho việc

kiểm tra sự thỏa mãn về cầu trúc nếu muốn chèn, xóa, cập nhật hay thay đôi các dữ

liệu trong bảng.

- MongoDB dé dàng mở rộng hệ thống bằng cách thêm node vào cluster — cụmcác node chứa dữ liệu giao tiếp với nhau

- Ưu điểm thứ tư là tốc độ truy van nhanh hơn nhiều so với hệ quan trị cơ sở

dữ liệu quan hệ RDBMS do dữ liệu truy vấn được cached lên bộ nhớ RAM dé lượt

truy van sau diễn ra nhanh hơn mà không cần đọc từ 6 cứng

12

Trang 38

- Cũng là một ưu điểm về hiệu suất truy vấn của MongoDB, trường dữ liệu

“ id” luôn được tự động đánh chỉ mục để đạt hiệu suất cao nhất

Nhược điểm:

- Điều đầu tiên phải kê đến ở đây là MongoDB không có các tính chất ràng

buộc như trong RDBMS nên khi thao tác với mongoDB thì phải hết sức can thận

- MongoDB sử dụng sẽ hao tốn tài nguyên của hệ thống nhiều hơn RDBMS

Nhưng đến thời điểm hiện tại thì vẫn đề này không còn là điều lo ngại nữa vì các máytính mặt bằng chung cấu hình đều khá cao

Tại sao nên sử dụng MongoDB:

- Khi website có tính chất INSERT cao, bởi vì mặc định MongoDB có sẵn cơ

chê ghi với tôc độ cao và an toàn.

- Khi website ở dang real-time nhiều, nghĩa là nhiều người cùng thao tác với

ứng dụng trong thời gian thực Ví du như ứng dụng chat hay stream trực tuyến chang

hạn.

- Với website có nhiều dit liệu, giả sử ứng dụng web có đến 10 triệu bản ghi

thì khá khó khăn để query được với Mysql Chọn MongoDB vì MongoDB có khảnăng tìm kiếm thông tin liên quan cũng khá nhanh nên trường hợp nay nên dùng nó

2.4.3 Áp dụng MongoDB vào đề tài

Nhờ những tính năng nổi trội của MongoDB, nhóm đã sử dụng MongoDB dùng làm

hệ quản trị cơ sở dữ liệu chính Server sử dụng MongoDB để 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

13

Trang 39

2.5 ReactJS

2.5.1 Giới thiệu về ReactJS

React.js là một thư viện Javascript dang 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 hoàn thiện thi React nổi bật với sự đơn giản và dé dàng phốihợ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 javascript 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à Instagramhttp://www.instagram.com/ đượ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.5.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.

14

Trang 40

- Để 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.

Hỗ trợ Reusable Component trong Java:

- React cho phép bạn sử dụng lại components đã được phát triển thành các ứngdụng khác có cùng chức năng Tính năng tái sử dụng component là một lợi thế khác

biệt cho các lập trình viên.

Viét component dễ dàng hơn:

- React component dễ viết hơn vì nó sử dụng JSX, mở rộng cú pháp tùy chọn

cho JavaScript cho phép kết hợp HTML với JavaScript

- JSX là một sự pha trộn tuyệt vời của JavaScript và HTML Nó làm rõ toàn

bộ quá trình viết cầu trúc trang web Ngoài ra, phần mở rộng cũng giúp render nhiều

lựa chọn dễ dàng hơn.

- JSX có thé không là phần mở rộng cú pháp phổ biến nhất, nhưng nó đượcchứng minh là hiệu quả trong việc phát triển components đặc biệt hoặc các ứng dụng

có khối lượng lớn

Hiệu suất tốt hơn với Virtual DOM:

- React sẽ cập nhật hiệu quả quá trình DOM (Document Object Model — Mô

hình đối tượng tài liệu) Như đã biết, quá trình này có thê gây ra nhiều thất vọng trongcác dự án ứng dụng dựa trên web May mắn là React sử dụng virtual DOMs, vì vậy

có thể tránh được vấn đề này

- Công cụ cho phép xây dựng các virtual DOMs và host chúng trong bộ nhớ.

Nhờ vậy, mỗi khi có sự thay đổi trong DOM thực tế, thì virtual sẽ thay đổi ngay lập

tức.

- Hệ thống này sẽ ngăn DOM thực tế đề buộc các bản cập nhật được liên tục

Do đó, tốc độ của ứng dụng sẽ không bị gián đoạn

15

Ngày đăng: 08/11/2024, 17:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN