Mục tiêu đề tài: Hệ thống tìm kiếm và gợi ý bất động sản được thực hiện dựa trên các mục đích cụ thể sau: - Thứ nhất là xây dựng được một ứng dụng có tính thực tiễn cao, có thể đưa vào s
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KỲ
Trần Huy Quỳnh 18521329 Nguyễn Hữu Minh Quý 18521315
Thành phố Hồ Chí Minh, 2021
1
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
2
Trang 3LỜI CẢM ƠN
Chúng em xin cảm ơn thầy – Ths Trần Anh Dũng đã giúp đỡ chúng em trong quátrình thực hiện và giải đáp thắc mắc về đồ án Qua đó chúng em có đủ kiến thức để hoànthành đồ án
Dù đã cố gắng hoàn thành đề tài trong phạm vi và khả năng cho phép nhưng chắcchắn sẽ không tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm,góp ý và tận tình chỉ bảo từ Thầy nhằm hoàn thiện những kiến thức mà nhóm chúng em
đã học tập và là hành trang để nhóm chúng em thực hiện tiếp đề tài trong tương lai
Chúng em xin chân thành cảm ơn
Nhóm thực hiện
Thành phố Thủ Đức, tháng 12 năm 2021
3
Trang 4ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Xây dựng hệ thống tìm kiếm và gợi ý bất động sản
Giảng viên hướng dẫn: ThS Trần Anh Dũng
Thành viên:
Nguyễn Hữu Minh Quý – 18521315
Trần Huy Quỳnh – 18521329
Thời gian thực hiện: Từ 27/09/2021 đến 24/12/2021
Nội dung đề tài:
1 Lý do chọn đề tài:
Ngày nay, việc sở hữu một thiết bị có thể truy cập Internet đã dễ dàng hơn nhiều do cáccông ty ngày càng tạo ra nhiều sản phẩm có giá thành rẻ Điều đó đã giúp cho Internet pháttriển và phủ sóng khắp mọi nơi, kéo theo đó là sự bùng nổ của các website cung cấp cácdịch vụ trực tuyến Và bất động sản là một lĩnh vực có sự quan tâm rất lớn vì mỗi ngườiđều muốn sở hữu cho mình một nơi ở để sinh sống, học tập và làm việc Nắm bắt đượcnhững nhu cầu đó của khách hàng, nhiều công ty, doanh nghiệp, tổ chức cá nhân nói chung
đã tạo ra các hệ thống bất động sản ngay trên các trang webgiúp mọi người dễ dàngtrong việc tìm kiếm nơi phù hợp và nhanh chóng Nhưng với thực trạng hiện nay, cóquá nhiều thông tin về bất động sản khiến cho khách hàng rất khó khăn trong việc lựachọn
Nhận thấy những hạn chế trong việc lựa chọn bất động sản của khách hàng nên nhóm em
đã thảo luận và quyết định chọn đề tài “Xây dựng hệ thống tìm kiếm và gợi ý bất độngsản” để giúp khách hàng có thể dễ dàng tìm kiếm các bất động sản vừa ý về chất lượng vàtài chính
2 Mục tiêu đề tài:
Hệ thống tìm kiếm và gợi ý bất động sản được thực hiện dựa trên các mục đích cụ thể sau:
- Thứ nhất là xây dựng được một ứng dụng có tính thực tiễn cao, có thể đưa vào sửdụng trong thực tế, giúp người dùng có thể đăng bán, tìm kiếm, xem thông tin cácbất động sản dễ dàng và nhanh chóng Ngoài ra hệ thống có thể gợi ý được các bấtđộng sản để người dùng có thể đưa ra sự lựa chọn chính xác nhất
- Thứ hai là giúp cho nhóm em có thể tìm hiểu về các công nghệ mới hiện nay Điều
đó giúp nhóm em có nhiều kinh nghiệm hơn, tạo tiền đề để phát triển sự nghiệp saunày
4
Trang 5- Nhóm hy vọng dựa trên nền tảng lý thuyết được thầy cô truyền thụ lại cùng với sựtìm hiểu của nhóm có thể tạo ra kết quả tốt cho đồ án này.
3 Nhiệm vụ của đề tài:
- Cải tiến và hoàn thiện trang quản lý
- Áp dụng các thuật toán để cải tiến hệ thống gợi ý 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
- Crawl thêm nhiều dữ liệu để nội dung thêm phong phú
4 Đối tượng nghiên cứu:
- NodeJS, Express, MongoDB, ReactJS
- Recommender System:Content based recommender system, Collaborative filtering recommender system
• Quản lý thông tin người dùng
• Quản lý thông tin bất động sản
- Nghiên cứu các công nghệ cần thiết để hoàn thiện hệ thống
- Nghiên cứu về các thuật toán gợi ý để chọn ra thuật toán thích hợp
- Tham khảo các trang web bất động sản uy tín tại Việt Nam
- Tham khảo ý kiến của giảng viên để có thể được định hướng đúng, đạt kết quả tốt
5
Trang 67 Kế hoạch thực hiện: (thời gian thực hiện trong 12 tuần)
Phase 1: Tìm hiểu các thuật toán gợi ý và hoàn
1.1 - Tìm hiểu các thuật toán gợi ý
27/9/2021 –18/10/2020
QuỳnhQuý1.2 - Hoàn thiện trang quản lý
Phase 2: Ứng dụng các thuật toán gợi ý vào hệ
thống, tạo chức năng đăng bán bất động sản
7 tuần
2.1 - Nghiên cứu, phân tích và ứng dụng các thuật
toán gợi ý vào hệ thống
Tuần 4 –8(18/10/2021 –22/11/2021)
QuỳnhQuý
2.2 - Tạo chức năng đăng bán bất động sản
Tuần 9 – 10(22/11/2021 –6/12/2021)
QuỳnhQuý
3.1 - Kiểm thử
- Đánh giá
Tuần 11 – 12(6/12/2021 –20/12/2021)
QuỳnhQuý
6
Trang 7Mục lục
Hệ thống gợi ý theo nội dung (Content-based approach): 19
Hệ thống gợi ý lọc cộng tác (Collaborative filtering): 20
Trang 8Tìm kiếm: 28
Trang 99
Trang 12Chương 1: Giới thiệu đề tài 1.1 Nội dung đề tài:
1.1.1 Lý do chọn đề tài:
Ngày nay, việc sở hữu một thiết bị có thể truy cập Internet đã dễ dàng hơn nhiều docác công ty ngày càng tạo ra nhiều sản phẩm có giá thành rẻ Điều đó đã giúp choInternet phát triển và phủ sóng khắp mọi nơi, kéo theo đó là sự bùng nổ của cácwebsite cung cấp các dịch vụ trực tuyến Và bất động sản là một lĩnh vực có sựquan tâm rất lớn vì mỗi người đều muốn sở hữu cho mình một nơi ở để sinh sống,học tập và làm việc Nắm bắt được những nhu cầu đó của khách hàng, nhiều công
ty, doanh nghiệp, tổ chức cá nhân nói chung đã tạo ra các hệ thống bất động sảnngay trên các trang webgiúp mọi người dễ dàng trong việc tìm kiếm nơi phùhợp và nhanh chóng Nhưng với thực trạng hiện nay, có quá nhiều thông tin vềbất động sản khiến cho khách hàng rất khó khăn trong việc lựa chọn
Nhận thấy những hạn chế trong việc lựa chọn bất động sản của khách hàng nênnhóm em đã thảo luận và quyết định chọn đề tài “Xây dựng hệ thống tìm kiếm vàgợi ý bất động sản” để giúp khách hàng có thể dễ dàng tìm kiếm các bất động sảnvừa ý về chất lượng và tài chính
- Thứ hai là giúp cho nhóm em có thể tìm hiểu về các công nghệ mới hiệnnay Điều đó giúp nhóm em có nhiều kinh nghiệm hơn, tạo tiền đề để pháttriển sự nghiệp sau này
- Nhóm hy vọng dựa trên nền tảng lý thuyết được thầy cô truyền thụ lại cùngvới sự tìm hiểu của nhóm có thể tạo ra kết quả tốt cho đồ án này
12
Trang 131.1.3 Nhiệm vụ của đề tài:
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ư: giá cả, địa chỉ, thể hiện chitiết thông tin bất động sản
Xây dựng hệ thống gợi ý cho từng người dùng: gợi ý bất động sản theo các thôngtin giá cả, địa chỉ của bất động sản theo các thông tin người dùng đã tìm kiếm trướcđó
1.1.4 Đối tượng nghiên cứu:
NodeJS, Express, MongoDB, ReactJS
Recommender System: Content based recommender system, Collaborative filtering recommender system
Search Engine
1.2 Phương pháp khảo sát:
Các website/ứng dụng tham khảo: batdongsan.com.vn, mogi.vn, hoozing.com…
13
Trang 14Chương 2: Cơ sở lý thuyết 2.1 Tìm hiểu Nodejs:
Nodejs cung cấp kiến trúc hướng sự kiện (event-driven) và non-blocking I/OAPI, tối ưu hóa thông lượng của ứng dụng và có khả năng mở rộng cho mọihàm trong Node.js là không đồng bộ (asynchronous) Do đó, các tác vụ đềuđược xử lý và thực thi ở chế độ nền
- Ưu điểm:
Realtime: Đây là tính năng quan trọng nhất của NodeJS Realtime ở đây chính
là xử lý giao tiếp từ client tới máy chủ theo thời gian thực Giống như khi bạnlướt Facebook thì mỗi khi bạn comment hay like một topic nào đó thì ngay lậptức chủ topic và những người đã comment trên đó sẽ nhận được thông báo làbạn đã comment
Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ
(non-blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Servertrả dữ liệu về Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơchế thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng
từ các cuộc gọi API trước (Realtime)
Chạy rất nhanh: NodeJs được xây dựng dựa vào nền tảng V8 Javascript
Engine nên việc thực thi chương trình rất nhanh
14
Trang 15Đơn luồng nhưng khả năng mở rộng cao: 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 đề hạn chế để xử lý yêu cầu.Node.js sử dụng một chương trình đơn luồng và các chương trì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
2.2 Tìm hiểu Express framework:
- Khái niệm:
Express js là một Framework nhỏ, nhưng linh hoạt được xây dựng trên nềntảng của Nodejs Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặcmobile
- Ưu điểm:
Framework giúp cho việc phát triển ứng dụng được rút ngắn đi rất nhiều Cũngnhư 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ênNodeJs 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ếncho 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
Trang 16Ngoài ra, MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các kháiniệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao vàkhả năng mở rộng dễ dàng.
- Ưu đ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ộcnhư trong RDBMS nên khi thao tác với mongoDB thì phải hết sức cẩn thậ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 choviệ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 vấn nhanh hơn nhiều so với hệ quản trị cơ sở dữ
liệu quan hệ RDBMS do dữ liệu truy vấn được cached lên bộ nhớ RAM để lượt
truy vấn sau diễn ra nhanh hơn mà không cần đọc từ ổ cứng
2.4 Tìm hiểu Reactjs:
- Khái niệm:
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 độngtrê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 rendertrước và cập nhật ít thay đổi nhất trên DOM
- Ưu điểm:
16
Trang 17Dễ sử dụng, giao diện thân thiện với người 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)
Sử dụng ReactJS, lập trình viên có thể tạo ra những ứng dụng web hấp dẫn,nhanh và hiệu quả với mã hóa tối thiểu Người dùng sẽ cảm nhận rõ độ tối ưucủa ReactJS ở các component (thành phần) riêng lẻ
Thay vì phải làm việc trên toàn bộ ứng dụng website, khi sử dụng ReactJS,developer có thể chia nhỏ cấu trúc UI thành những component đơn giản hơ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 , mở rộng cú pháp tùy chọn choJavaScript 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 rendernhiề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 ứngdụng có khối lượng lớn
Sử dụng JSX, người dùng có thể mở rộng cú pháp với nhiều lựa chọn dễ dàng.Quá trình viết cấu trúc trang web cũng rõ ràng hơn
17
Trang 18Hiệu suất tốt hơn với Virtual DOM:
Các dự án ứng dụng trên website thường dễ gặp rắc rối trong quá trình DOM.Với lợi thế sử dụng Virtual-DOM, ReactJS sẽ giúp người dùng tránh được vấn
đề này
Bên cạnh đó, ReactJS cũng cho phép người dùng xây dựng các Virtual DOM
và host chúng trong bộ nhớ Ưu điểm này sẽ giúp Virtual thay đổi ngay khiDOM thực tế có sự thay đổi Cập nhật liên tục giúp các ứng dụng tránh tìnhtrạng bị gián đoạn Người dùng sử dụng liên tục, website ổn định giúp doanhthu duy trì và tăng trưởng vượt bậ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
Thân thiện với SEO:
React cho phép tạo giao diện người dùng có thể được truy cập trên các công cụtìm kiếm khác nhau Tính năng này là một lợi thế rất lớn vì không phải tất cảcác khung JavaScript đều thân thiện với SEO
Ngoài ra, vì React có thể tăng tốc quá trình của ứng dụng nên có thể cải thiệnkết quả SEO Cuối cùng tốc độ web đóng một vai trò quan trọng trong tối ưuhóa SEO
2.5 Tìm hiểu thuật toán gợi ý:
2.5.1 Tổng quan:
Hệ thống gợi ý (Recommender systems hoặc Recommendation systems) là mộtdạng của hệ hỗ trợ ra quyết định, cung cấp giải pháp mang tính cá nhân hóa màkhông phải trải qua quá trình tìm kiếm phức tạp Hệ gợi ý học từ người dùng vàgợi ý các sản phẩm tốt nhất trong số các sản phẩm phù hợp
Hệ thống khuyến nghị thường được xây dựng tự động dựa trên hồ sơ (profile) củangười dùng Hệ thống so sánh hồ sơ người dùng với một số đặc điểm tài liệu tham
18
Trang 19khảo, và tìm cách dự đoán “đánh giá” mà người dùng sẽ cung cấp cho một nộidung mà người dùng đó vẫn chưa đánh giá.
Thông tin về người sử dụng được dùng cho hệ thống khuyến nghị tự động có thểchia thành hai loại: thông tin ẩn và thông tin hiện Các thông tin ẩn bao gồm cácthông tin như thời gian người mua xem sản phẩm, quá trình người dùng duyệt quacác sản phẩm trước khi chọn sản phẩm cuối cùng để xem, nguồn mà người dùngtruy cập đến trang hiện tại,… Các nội dung này rất dễ thu thập, nhưng thường có
độ nhiễu cao và không có tương tác trực tiếp với người dùng (hệ thống tự động ghilại lịch sử) Các thông tin hiện là các kết quả nhận được khi người dùng trực tiếpđưa ra đánh giá về sản phẩm như thích/ không thích, chấm điểm, bình luận… Cácthông tin này thường khó thu thập hơn rất nhiều so với thông tin ẩn, nhưng độchính xác cao hơn và rất hữu ích cho việc khuyến nghị
Kết quả của hệ khuyến nghị là dự đoán “đánh giá” của người dùng cho một sảnphẩm nhất định hoặc danh sách những sản phẩm mà người dùng có thể thích.Recommendation System thường được chia làm hai nhóm lớn:
- Content-based system: đánh giá đặc tính của items được recommend Vídụ: một user xem rất nhiều các bộ phim về cảnh sát hình sự, vậy thì gợi ýmột bộ phim trong cơ sở dữ liệu có chung đặc tính hình sự tới user này.Cách tiếp cận này yêu cầu việc sắp xếp các items vào từng nhóm hoặc đitìm các đặc trưng của từng items Tuy nhiên, có những items không cónhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từng item đôi khi làbất khả thi
- Collaborative filtering: hệ thống gợi ý items dựa trên sự tương quan
(similarity) giữa các users và items Có thể hiểu rằng ở nhóm này, một itemđược recommend tới một user dựa trên những users có hành vi tương tự
2.5.2 Hệ thống gợi ý theo nội dung (Content-based approach):
19
Trang 20Hệ thống gợi ý dựa theo nội dung (Content-based recommendation systems): là sự
kế thừa và mở rộng của lĩnh vực nghiên cứu lọc thông tin
Trong hệ thống thì các đối tượng được biểu diễn bởi các đặc điểm liên quan tớichúng
Ví dụ, hệ thống gợi ý văn bản như hệ thống lọc tin NewsWeeder sử dụng những từcủa các văn bản như các đặc điểm
Một số hệ thống gợi ý dựa trên nội dung học một hồ sơ cá nhân về sở thích củangười sử dụng dựa trên các đặc điểm xuất hiện trong chính các đối tượng người sửdụng đã đánh giá (rated) Hồ sơ người sử dụng của một hệ thống gợi ý theo nộidung phụ thuộc vào phương pháp học máy được dùng
Cây quyết định (Decision trees), mạng norton (neural nets) và biểu diễn dựa theovector (vector-based representations) đều có thể được sử dụng để học hồ sơ ngườidùng Hồ sơ người dùng trong gợi ý dựa theo nội dung là những dữ liệu lâu dài vàđược cập nhật theo thời gian
2.5.3 Hệ thống gợi ý lọc cộng tác (Collaborative filtering):
Hệ thống gợi ý dựa theo lọc cộng tác (Collaborative recommendation systems): làphương pháp gợi ý được triển khai rộng rãi nhất và thành công nhất trong thực tế
Hệ thống theo lọc công tác phân tích và tổng hợp các điểm số đánh giá của các đốitượng, nhận ra sự tương đồng giữa những người sử dụng trên cơ sở các điểm sốđánh giá của họ và tạo ra các gợi ý dựa trên sự so sánh này Hồ sơ (profile) củangười sử dụng điển hình trong hệ thống lọc cộng tác bao gồm một vector các đốitượng (item) và các điểm số đánh giá của chúng, với số chiều tăng lên liên tục khingười sử dụng tương tác với hệ thống theo thời gian
20
Trang 21Một số hệ thống sử dụng phương pháp chiết khấu dựa trên thời gian (time-baseddiscounting) để tính toán cho yếu tố “trượt” đối với sự quan tâm của người sửdụng Trong một số trường hợp điểm số đánh giá (rating) có thể là nhị phân
(thích/không thích) hoặc các giá trị số thực cho thấy mức độ ưu tiên
Thế mạnh lớn nhất của kỹ thuật gợi ý theo lọc cộng tác là chúng hoàn toàn độc lậpvới sự biểu diễn của các đối tượng đang được gợi ý, và do đó có thể làm việc tốtvới các đối tượng phức tạp như âm thanh và phim
Hệ thống gợi ý lọc cộng tác có 2 hướng tiếp cận là:
- Lọc cộng tác dựa trên người dùng - User based approach:bản chất của lọccộng tác dựa trên người dùng chính là tìm người dùng có sở thích tương tự vớingười dùng hiện tại và gợi ý những thứ họ thích cho người dùng hiện tại
- Lọc cộng tác dựa trên sản phẩm - Item based approach:Chúng ta không cần
quan tâm đến user trong giải thuật lọc cộng tác dựa trên các item Mục đích của
phương pháp này chính là dựa vào dữ liệu trong quá khứ của các items để tìm
ra các items có độ tương đồng và gợi ý cho người dùng Chính vì thế nó khôngcần quan tâm đến người dùng hiện tại
Lọc cộng tác dựa trên giả định rằng những người đã đồng ý trong quá khứ sẽ đồng
ý trong tương lai và rằng họ sẽ thích các loại mặt hàng tương tự như họ thích trongquá khứ
Khi xây dựng mô hình từ hành vi của người dùng, sự phân biệt thường được thựchiện giữa các hình thức thu thập dữ liệu rõ ràng và tiềm ẩn
Hệ thống recommender so sánh dữ liệu đã thu thập với dữ liệu tương tự vàkhác nhau được thu thập từ những người khác và tính toán danh sách các mụcđược đề xuất cho người dùng
21
Trang 22Một trong những ví dụ nổi tiếng nhất về lọc cộng tác là lọc cộng tác theotừng mục (những người mua x cũng mua y), một thuật toán được phổ biến rộng rãibởi hệ thống gợi ý của Amazon.com.
Các phương pháp lọc cộng tác thường gặp phải ba vấn đề: Cold Start, khảnăng mở rộng và sự thưa thớt (sparsity)
Một loại thuật toán lọc cộng tác cụ thể sử dụng hệ số ma trận hóa (matrixfactorization), kỹ thuật xấp xỉ ma trận cấp thấp (low-rank matrix approximation).Các phương pháp lọc cộng tác được phân loại là bộ lọc cộng tác dựa trên bộ nhớ
và dựa trên mô hình Một ví dụ nổi tiếng về các phương pháp dựa trên bộ nhớ làthuật toán dựa trên người dùng và các phương pháp dựa trên mô hình làKernel-Mapping Recommender
22
Trang 23Chương 3: Mô Hình Usecase 3.1 Danh sách actor:
1 Nhân viên quản lý(Admin) Người có trách nhiệm quản lý trang web bất động
Trang 243.2.2 Usecase Nhân viên quản lý:
24
Trang 253.3 Danh sách các Use-case:
1 Đăng ký Thêm tài khoản người dùng mới
7 Quản lý đăng tin Đăng tin bất động sản, sửa tin đăng, xóa tin đăng
8 Quản lý bất động sản Thêm xóa sửa các thông tin bất động sản
9 Quản lý tiện ích Thêm xóa sửa các tiện ích
10 Quản lý danh mục bất động
sản
Thêm xóa sửa các danh mục bất động sản
11 Quản lý đăng tin Xác nhận tin đăng của khách hàng
12 Quản lý tài khoản Xóa tài khoản khách hàng
25
Trang 263.4 Đặc tả Use-case:
3.4.1 Đăng ký:
Tên chức năng Đăng ký
Tóm tắt Chức năng đăng ký trên hệ thống
Dòng sự kiện chính 1 Hệ thống hiển thị form đăng ký
2 Nhập thông tin vào form đăng ký và chọn nút “Đăng ký”
3 Hệ thống kiểm tra thông tin đăng ký
4 Thông báo về kết quả đăng kýDòng sự kiện khác 3.1 Thông tin đăng ký bị trùng hoặc người dùng điền thiếu thông
Actor: khách hàng và nhân viên quản lý
Điều kiện: Chọn chức năng đăng ký trên hệ thống
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng đăng nhập thành công vào hệ thống, có thể sử dụng cácquyền mà hệ thống cho phép
26
Trang 273.4.2 Đăng nhập:
Tên chức năng Đăng nhập
Tóm tắt Chức năng đăng nhập vào hệ thống
Dòng sự kiện chính 1 Hệ thống hiển thị form đăng nhập
2 Nhập tên và tài khoản (bắt buộc) và nhấn “Đăng nhập”
3 Hệ thống kiểm tra thông tin đăng nhập
4 Hệ thống hiển thị trang chủ
Dòng sự kiện khác 3.1 Thông tin đăng nhập sai:
Hệ thống hiển thị thông báo tài khoản đăng nhập không hợp lệ.Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực thiện use
case
Actor: Khách hàng và nhân viên quản lý
Điều kiện: Chọn chức năng đăng nhập trên hệ thống
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng đăng nhập thành công vào hệ thống, có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
27
Trang 283.4.3 Xem thông tin chi tiết bất động sản:
Tên chức năng Xem thông tin chi tiết bất động sản
Tóm tắt Chức năng xem thông tin chi tiết của bất động sản được chọn.Dòng sự kiện chính 1 Hệ thống danh sách các bất động sản trên trang chủ hoặc trên
trang tìm kiếm
2 Người dùng chọn một bất động sản để xem thông tin
3 Hiển thị thông tin chi tiết của bất động sản gồm: danh mục bấtđộng sản, địa chỉ, giá, số lượng phòng, diện tích, các tiện ích
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị danh sách bất động sản Người dùng có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
28
Trang 293.4.4 Xem danh sách bất động sản:
Tên chức năng Xem danh sách bất động sản
Tóm tắt Chức năng xem danh sách bất động sản
Dòng sự kiện chính 1 Người dùng vào trang chủ website
2 Hệ thống danh sách các bất động sản trên trang chủ hoặc trêntrang tìm kiếm
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị danh sách bất động sản Người dùng có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
29
Trang 303.4.5 Tìm kiếm:
Tên chức năng Tìm kiếm thông tin bất động sản
Tóm tắt Chức năng tìm kiếm bất động sản theo địa chỉ, giá, danh mục.Dòng sự kiện chính 1 Hệ thống hiển thị thanh tìm kiếm trên màn hình
2 Người dùng chọn và nhập thông tin tìm kiếm
3 Hiển thị danh sách bất động sản theo mức độ đánh giá
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị danh sách bất động sản Người dùng có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
30
Trang 313.4.6 Gợi ý bất động sản:
Tên chức năng Gợi ý bất động sản
Tóm tắt Chức năng gợi ý bất động sản trên hệ thống
Dòng sự kiện chính 1 Chọn xem thông tin của bất động sản
2 Xem thông tin gợi ý bất động sản do hệ thống đề xuất
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị danh sách bất động sản Người dùng có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
31
Trang 323.4.7 Quản lý đăng tin:
3.4.7.1 Đăng tin bất động sản:
Tên chức năng Đăng tin bất động sản
Tóm tắt Chức năng cho phép người dùng đăng tin bất động sản lên hệ thốngDòng sự kiện chính 1 Chọn chức năng đăng tin
2 Hệ thống hiển thị form đăng tin
3 Nhập đầy đủ thông tin và chọn “Đăng tin”
4 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
5 Hệ thống lưu dữ liệu và thông báo tin đăng đang chờ xét duyệt.Dòng sự kiện khác 4.1 Thông tin không hợp lệ:
Hệ thống hiển thị thông báo màu đỏ tại chỗ bị lỗi và yêu cầu nhậplại thông tin
Trạng thái hệ thống
trước khi thực thiện use
case
Actor: Khách hàngĐiều kiện: Đã đăng nhập
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị thông báo tin đang chờ xét duyệt
Các yêu cầu đặc biệt Không có
32
Trang 333.4.7.2 Xóa tin đăng
Tên chức năng Xóa tin đăng
Tóm tắt Chức năng xóa tin đã đăng của người dùng
Dòng sự kiện chính 1 Vào quản lý tin đăng và chọn tin đã đăng muốn xóa
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị thông báo
Điểm mở rộng Không có
3.4.7.3 Sửa tin đăng:
Tên chức năng Sửa tin đăng
Tóm tắt Cập nhật thông tin về tin đã đăng
Dòng sự kiện chính 1 Vào quản lý tin đăng, chọn tin đăng muốn sửa và nhấn sửa
2 Hệ thống hiển thị form sửa tin đăng
2 Người dùng nhập thông tin mới vào form và chọn “Lưu”
3 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
4 Hệ thống lưu dữ liệu và thông báo thành công
Dòng sự kiện khác 3.1 Thông tin không hợp lệ:
Hệ thống hiển thị thông báo yêu cầu nhập lại thông tin
Các yêu cầu đặc biệt Không có
33
Trang 34Trạng thái hệ thống
trước khi thực thiện use
case
Actor: khách hàngĐiều kiện: Người dùng đã đăng nhập vào hệ thống và có quyền sửdụng chức năng này
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng cập nhật thành công thông tin của tin đăng trên hệthống
Điểm mở rộng Không có
3.4.8 Quản lý thông tin bất động sản:
3.4.8.1 Xóa thông tin bất động sản
Tên chức năng Xóa thông tin bất động sản
Tóm tắt Chức năng xóa thông tin chi tiết về bất động sản
Dòng sự kiện chính 1 Chọn một bất động sản muốn xóa
Trạng thái hệ thống sau
khi thực hiện use case
Hiển thị thông tin chi tiết về bất động sản Người dùng có thể sửdụng các quyền mà hệ thống cho phép
Điểm mở rộng Không có
3.4.8.2 Thêm thông tin bất động sản:
Tên chức năng Thêm thông tin bất động sản
Tóm tắt Chức năng thêm bất động sản trên hệ thống
Dòng sự kiện chính 1 Chọn chức năng thêm bất động sản
34
Trang 352 Hệ thống hiển thị form thêm bất động sản.
3 Nhập đầy đủ thông tin và chọn “Thêm bất động sản”
4 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
5 Hệ thống lưu dữ liệu và thông báo thành công
Dòng sự kiện khác 4.1 Thông tin không hợp lệ:
Hệ thống hiển thị thông báo màu đỏ tại chỗ bị lỗi và yêu cầu nhậplại thông tin
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng thêm thành công bất động sản mới vào hệ thống
Điểm mở rộng Không có
3.4.8.3 Sửa thông tin bất động sản:
Tên chức năng Sửa thông tin bất động sản
4 Hệ thống lưu dữ liệu và thông báo thành công
Dòng sự kiện khác 3.1 Thông tin không hợp lệ:
35
Trang 36Hệ thống hiển thị thông báo yêu cầu nhập lại thông tin.
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng cập nhật thành công thông tin bất động sản trên hệthống
Điểm mở rộng Không có
3.4.9 Quản lý tiện ích:
3.4.9.1 Xem danh sách tiện ích:
Tên chức năng Xem danh sách tiện ích
Tóm tắt Xem danh sách các tiện ích
Dòng sự kiện chính 1 Vào trang tiện ích
2 Hiển thị danh sách các tiện ích
khi thực hiện use case
Hiển thị danh sách các tiện ích Người dùng có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
3.4.9.2 Thêm tiện ích:
Tên chức năng Thêm tiện ích
Tóm tắt Chức năng thêm tiện ích
36
Trang 37Dòng sự kiện chính 1 Chọn chức năng thêm tiện ích.
2 Hệ thống hiển thị form thêm tiện ích
3 Nhập đầy đủ thông tin và chọn “Thêm tiện ích”
4 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
5 Hệ thống lưu dữ liệu và thông báo thành công
Dòng sự kiện khác 4.1 Thông tin không hợp lệ:
Hệ thống hiển thị thông báo màu đỏ tại chỗ bị lỗi và yêu cầu nhậplại thông tin
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng thêm thành công tiện ích mới vào hệ thống
Điểm mở rộng Không có
3.4.9.3 Sửa tiện ích:
Tên chức năng Sửa thông tin tiện ích
Tóm tắt Cập nhật thông tin tiện ích
Dòng sự kiện chính 1 Người dùng vào mục thông tin, nhập thông tin mới vào form
thông tin và chọn “Lưu”
2 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
3 Hệ thống lưu dữ liệu và thông báo thành công
37
Trang 38Dòng sự kiện khác 2.1 Thông tin không hợp lệ:
Hệ thống hiển thị thông báo yêu cầu nhập lại thông tin
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng cập nhật thành công thông tin tiện ích trên hệ thống
Điểm mở rộng Không có
3.4.9.4 Xóa tiện ích:
Tên chức năng Xóa tiện ích
Tóm tắt Xóa tiện ích trên hệ thống
Dòng sự kiện chính 1 Vào mục danh sách tiện ích và chọn tiện ích muốn xóa khỏi hệ
Trang 39Trạng thái hệ thống sau
khi thực hiện use case
Người dùng xóa thành công tiện ích trên hệ thống
Điểm mở rộng Không có
3.4.10 Quản lý danh mục bất động sản:
3.4.10.1 Xem danh sách danh mục:
Tên chức năng Xem danh sách danh mục
Tóm tắt Xem danh sách các danh mục
Dòng sự kiện chính 1 Vào trang danh mục
2 Hiển thị danh sách các danh mục
khi thực hiện use case
Hiển thị danh sách các tiện ích Người dùng có thể sử dụng cácquyền mà hệ thống cho phép
Điểm mở rộng Không có
3.4.10.2 Thêm danh mục:
39
Trang 40Tên chức năng Thêm danh mục
Tóm tắt Chức năng thêm danh mục
Dòng sự kiện chính 1 Chọn chức năng thêm danh mục
2 Hệ thống hiển thị form thêm danh mục
3 Nhập đầy đủ thông tin và chọn “Thêm danh mục”
4 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
5 Hệ thống lưu dữ liệu và thông báo thành công
Dòng sự kiện khác 4.1 Thông tin không hợp lệ:
Hệ thống hiển thị thông báo màu đỏ tại chỗ bị lỗi và yêu cầu nhậplại thông tin
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng thêm thành công tiện ích mới vào hệ thống
Điểm mở rộng Không có
3.4.10.3 Sửa danh mục:
Tên chức năng Sửa thông tin danh mục
Tóm tắt Cập nhật thông tin danh mục
Dòng sự kiện chính 1 Người dùng vào mục thông tin, nhập thông tin mới vào form
thông tin và chọn “Lưu”
2 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì sẽ tiến hànhbước tiếp theo
3 Hệ thống lưu dữ liệu và thông báo thành công
40