HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM NGUYỄN MINH ĐỨC PHẠM QUỐC ĐẠT KHÓA LUẬN TỐT NGHIỆP ỨNG DỤNG BẤT ĐỘNG SẢN KẾT HỢP HỆ THỐNG HỖ TRỢ QUYẾT ĐỊNH DỰA TR
KIẾN THỨC NỀN TẢNG
Flutter Framework
Flutter [1, 2] là mobile UI framework của Google nhằm tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức
Flutter hoàn toàn miễn phí và cũng là mã nguồn mở
2.1.2 Tại sao lại là Flutter?
Flutter là một công nghệ mới được Google phát triển, một framework dựa trên ngôn ngữ lập trình Dart Đây được kỷ vọng sẽ là một công nghệ có thể khắc phục các nhược điểm của React Native
Các ứng dụng được xây dựng với Flutter hầu như không thể phân biệt với những ứng dụng được xây dựng bằng cách sử dụng Android SDK, cả về giao diện và hiệu suất Và chỉ cần thêm một số tham số là có thể triển khai phiên bản IOS của một ứng dụng
Với khả năng chạy hỗ trợ 60 khung hình trên giây, giao diện người dùng được tạo ra với Flutter thực thi tốt hơn nhiều so với những ứng dụng được tạo ra với các framework phát triển đa nền tảng khác chẳng hạn như React Native và Ionic Một số điểm đặc biệt của Flutter:
• Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng hữu ích như mixin, generic, isolate, và static type
• Flutter có các thành phần UI được thiết kế riêng theo Material Design của Google, có thể sử dụng trên cả hai nền tảng Android và iOS
• Các ứng dụng Flutter thường được phát triển bằng cách sử dụng IntelliJ IDEA, Android Studio và Visual Studio Code
• Fast Development: Tíng năng Hot Reload hoạt động rất nhanh Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện trong vài phút
• Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling
• Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và Android
Hình 2.1: Ví dụ minh họa cho Flutter
ASP.NET Zero
2.2.1 ASP.NET Zero là gì?
ASP.NET Zero [12]: Đây là một Visual Studio solution nền cho các dự án Web app mới Cung cấp kiến trúc SOLID và dễ dàng scale Có sẵn các vấn đề về quản lý người dung, chức vụ, phân quyền, audit logging, setting management, quản lý user profile, … Được xây dựng trên dự án mã nguồn mở ASP.NET Boilerplate
2.2.2 Tại sao lại là ASP.NET Zero?
ASP.NET Zero tiết kiệm thời gian phát triển bằng cách cung cấp các tính năng thường gặp ở các dự án phần mềm với kiến trúc SOLID Mặt khác, tốc độ phát triển và sửa lỗi sẽ nhanh hơn so với các Framework của Javascript/ Typescript
• Kiến trúc SOLID mã nguồn phân lớp, gọn gàng được xây dựng trên một khung cơ sở mạnh mẽ
• Hỗ trợ SaaS, multi tenancy, phiên bản, tính năng, đăng ký và quản lý thanh toán
• Xác thực & Ủy quyền Nâng cao người dùng, vai trò, quản lý quyền Nhiều tùy chọn đăng nhập tích hợp & tích hợp
• Phát triển ứng dụng nhanh chóng ngoài các tính năng tích hợp, công cụ RAD tăng tốc độ phát triển ứng dụng.
ImgBB
ImgBB [13] là một dịch vụ lưu trữ hình ảnh miễn phí Quá trình sử dụng và tài liệu API gọn nhẹ, nhanh chóng để triển khai tích hợp cho dự án
2.3.2 Tại sao lại là ImgBB?
ImgBB là một dịch vụ lưu trữ ảnh miễn phí lên đến 32MB cho mỗi file ảnh Đáp ứng được yêu cầu của đề tài
• Tốc độ tải ảnh và truy xuất nhanh
• Không giới hạn tổng dung lượng
MariaDB
MariaDB [3, 4, 14] là hệ quản trị cơ sở dữ liệu miễn phí được phát triển từ hệ quản trị cơ sở dữ liệu mã nguồn mở MySQL MariaDB được phát triển nhằm thay thế công nghệ cơ sở dữ liệu MySQL, vì thế nó tương thích và cho một hiệu suất cao hơn so với MySQL
2.4.2 Tại sao lại là MariaDB?
MariaDB được Michael “Monty” Widenius, developer hàng đầu của MySQL dẫn dắt và phát triển Ưu điểm lớn nhất của hệ quản trị này là tương thích với nhiều hệ điều hành, bao gồm Linux CentOS, Ubuntu và Window với các gói cài đặt tar, zip, MSI, rpm cho cả 32bit và 64bit với hiệu suất cao hơn so với MySQL
Vì thế, MariaDB đang ngày càng được đông đảo các nhà phát triển sử dụng, trong đó có wikipedia, Fullstack-Station, … MariaDB đang có xu hướng thay thế cho MySQL – hệ quản trị cơ sở dữ liệu mã nguồn mở lâu đời nhất được sử dụng từ trước đến nay
• Khắc phục những hạn chế của MySQL
• Bổ sung thêm nhiều loại Storage Engine như: Aria, XtraDB, FederatedX, OQGRAPH, SphinxSE, IBM DB2I, Spider
• Kết hợp cả SQL và NoSQL
• Hỗ trợ nhiều loại bảng mã ký tự, trong đó có tiếng Việt
Hình 2.2: Hệ quản trị cơ sở dữ liệu MariaDB 1
Web Scraper
Web scraper [15] là một công nghệ trích xuất dữ liệu từ trang web Có khả năng tự động hóa công việc thủ công của việc sao chép thông tin một cách thủ công Chỉ cần một crawler để thu thập các văn bản, giá cả, hình ảnh, liên kết sản phẩm trong một tệp xuất trong khi quy trình thủ công có thể mất nhiều thời gian
2.5.2 Tại sao lại là Web scraper?
Web scraper miễn phí, không cần cài đặt vào hệ thống Windows, mà là một tiện ích tích hợp của Chrome và cách sữ dụng rất đơn giản Do đó, tiết kiệm được nhiều thời gian, công sức cho việc lấy dữ liệu Thời gian tiết kiệm được sẽ tập trung cho việc làm sạch bộ dữ liệu
• Là một tiện ích mở rộng của trình duyệt Chrome
• Cách sử dụng đơn giản
• Hầu như không cần phải viết code
• Lấy dữ liệu nhanh, có thể chạy nhiều luồng
1 https://aws.amazon.com/vi/rds/mariadb/
Hình 2.3: Tiện ích Web Scraper 2
Adobe XD
Adobe XD [5] (còn được gọi là Adobe Experience Design) là một công cụ chuyên hỗ trợ về thiết kế website và ứng dụng được phát triển bởi Adobe Inc Adobe
XD một phần mềm rất hữu ích và hỗ trợ cho những người dùng trong việc thiết kế cũng như tạo nguyên mẫu cho nhiều ứng dụng khác nhau
2.6.2 Tại sao lại là Adobe XD?
Khi sử dụng Adobe XD có thể hiểu thêm được quy trình về xây dựng Wireframe, giúp tạo và thiết kế giao diện cho người dùng về App Mobile/Web/Landing Page nhanh chóng Giao diện Adobe XD ít công cụ, giúp người dùng dễ dàng tìm thấy các công cụ khác trong lúc thao tác hơn những phần mềm khác nên có thể sử dụng cả khi là một người không chuyên Trong lúc làm việc với Adobe XD, có thể cùng lúc mở nhiều bản vẽ cho nhiều giao diện màn hình
Nếu là một lập trình viên hoặc đã từng sử dụng và hiểu rõ về X-Code (công cụ lập trình iOS) thì việc chuyển hướng qua Adobe XD rất đơn giản bởi phần mềm này có giao diện khá tương tự và điều hướng với phần mềm X-Code
• Tạo hoặc chia sẻ liên kết đến người dùng khác
2 https://webscraper.io/blog/ultimate-web-scraping-guide
• Bộ dụng cụ UX (trải nghiệm người dùng) dễ dàng tạo ra các ứng dụng gốc cho các nền tảng khác nhau
• Repeat Grid tạo một hoặc nhiều đối tượng trong một lần click chuột
• Thư viện Creative Cloud chia sẻ các nội dung như ký tự, hình ảnh, màu sắc và những nội dung khác theo mong muốn để tạo nội dung cho các dự án Adobe XD tiết kiệm được nhiều thời gian hơn
• Prototype xem trước bản vẽ thiết kế vô cùng tiện lợi thông qua tạo liên kết giữa các artboard và những đối tượng đại diện cho màn hình trong ứng dụng
Hình 2.4: Ứng dụng Adobe XD 3
Hệ thống hỗ trợ người dùng ra quyết định
2.7.1 Ra quyết định là gì?
Ra quyết định [6] là một quá trình lựa chọn có ý thức giữa hai hoặc nhiều phản ánh để chọn ra một phản ánh và phản ánh này sẽ tạo ra được một kết quả mong muốn trong các điều kiện ràng buộc đã biết
3 https://uiuxbeginners.quora.com/How-to-Create-UI-UX-Design-with-Adobe-XD
• Quyết định có thể là nhận thức ở dạng mô tả;
• Quyết định có thể là nhận thức ở dạng quá trình;
• Quyết định có thể là một hoạt động giàu ý thức;
• Quyết định có thể là những thay đổi trạng thái kiến thức
2.7.2 Khái niệm hệ hỗ trợ ra quyết định
Hệ hỗ trợ ra quyết định (DSS – Decision Support System) [7] cho phép tổng hợp dữ liệu và phân tích dữ liệu qua các mô hình phức tạp để hỗ trợ cho những quyết định dạng không có cấu trúc hoặc bán cấu trúc
Hệ thống này có chức năng cung cấp thông tin và trợ giúp cho các nhà quản lý trong suốt quá trình xây dựng và thông qua các quyết định quản lý Các nhà quản lý có thể tìm những dữ liệu thích hợp, lựa chọn và sử dụng các mô hình thích hợp, điều khiển quá trình thực hiện nhờ những phương tiện có tính chuyên nghiệp
2.7.3 Phương pháp xây dựng hệ thống hỗ trợ ra quyết định
• Phân tích: nhằm xác định các vấn đề và các khả năng mà người dùng hoặc nhà quản lý có thể cho là hữu ích trong việc dẫn dắt tới các quyết định liên quan tới vấn đề đó
• Thiết kế: hệ thống DSS được thực hiện theo các bước lặp có sử dụng mẫu thử nghiệm Hệ thống đã thiết kế sẽ được đưa vào dùng thử, phát hiện các sai sót hoặc bất hợp lý, thực hiện điều chỉnh…; cứ thế lặp đi lặp lại cho tới khi có được một sản phẩm được coi là “phù hợp”
• Thực hiện: việc thiết kế DSS không bao gồm việc thực hiện một cách riêng rẽ mà việc phát triển hệ thống sẽ được thực hiện một cách liên tục Trong quá trình sử dụng hệ thống, các nhà quản lý sẽ đánh giá hệ thống và liên tục phát triển hệ thống cho phù hợp với yêu cầu của hệ thống.
HỆ HỖ TRỢ QUYẾT ĐỊNH
Sơ lược hệ thống hỗ trợ quyết định của đề tài
Thông thường, nhà đầu tư cần khảo sát thị trường nhà đất trong quá trình nhà đầu tư tìm kiếm BĐS phù hợp Điều này làm tiêu tốn rất nhiều thời gian, công sức, chi phí của nhà đầu tư Nên họ cần một hệ thống có thể đưa ra các thông tin nhanh về thị trường của loại hình BĐS tại khu vực quan tâm, các thông tin cần độ chính xác cao để họ có thể ra các quyết định đầu tư
Vì vậy, hệ thống hộ trợ quyết định của đề tài được xây dựng để đáp ứng nhu cầu trên Hệ thống sẽ tập trung chủ yếu vào việc xây dựng biểu đồ giá và đưa ra một số nhận xét để hỗ trợ người dùng ra quyết định Đây sẽ là điểm nổi bật của đề tài, tính năng chưa từng có mặt trên thị trường.
Các thách thức khi xây dựng hệ hỗ trợ quyết định
• Chất lượng của bộ dữ liệu cho hệ thống phải tốt
• Quá trình rút trích dữ liệu cần tham khảo ý kiến của các nhà môi giới cũng như đầu tư để chọn ngưỡng phù hợp, các ngưỡng sẽ dần hoàn thiện theo thời gian
• Tốc độ truy xuất biểu đồ giá phải nhanh, đồng nghĩa với thuật toán phân tích phải đạt hiệu suất cao
• Tốc độ của nhận xét giá của BĐS cũng phải nhanh để đáp ứng được lượng truy suất lớn từ người dùng.
Chuẩn bị dữ liệu
3.3.1 Lựa chọn nền tảng đăng tin
Thông tin chung: batdongsan24h.com.vn [8] là trang đăng tin mua bán BĐS lâu đời Được triển khai từ 28/09/2015 bởi Công ty Cổ Phần Đầu Tư Toàn Hải Phát
13 Ưu điểm: Là trang đã sớm hoạt động tại Việt Nam, nên sẽ có được lượng thông tin trải dài theo thị trường và có thể đăng tin miễn phí, tốc độ truy cập nhanh
Nhược điểm: Không có API cho nhà phát triển, việc cho phép đăng tin miễn phí cũng làm cho bộ dữ liệu chất lượng thấp, dù có lượng thông tin trải dài nhưng số lượng bài đăng rất ít
Thông tin chung: nha.chotot.com [9] là một trang đăng tin BĐS mới xuất hiện gần đây Được triển khai từ 28/06/2017 bởi Công Ty TNHH Chợ Tốt Ưu điểm: Số lượng bài đăng nhiều hơn so với batdongsan24h.com.vn, tốc độ truy cập nhanh, là trang đăng tin miễn phí
Nhược điểm: thường crawl dữ liệu từ các trang khác nên chất lượng dữ liệu rất thấp, không có API cho nhà phát triển, dù số lượng bài đăng nhiều nhưng không đảm bảo
Thông tin chung: batdongsan.com.vn [10] là một trang đăng tin mua bán BĐS đầu ngành tại Việt Nam Được triển khai từ 22/12/2004 bởi Công ty Cổ phần PropertyGuru Việt Nam Ưu điểm: Là trang đăng tin mua bán BĐS lớn nhất và đầu tiên tại Việt Nam, tốc độ truy cập nhanh, dù là trang đăng tin trả phí, nhưng việc trả phí cũng giống như một phễu lọc dữ liệu, khiến chất lượng của bộ dữ liệu được đảm bảm số lượng bài đăng lớn hơn nhiều so với hai trang trước
Nhược điểm: Không có API cho nhà phát triển, dữ liệu miễn phí chỉ xem được trong 1 tháng
3.3.1.4 Kết quả lựa chọn nền tảng
Việc phân tích, lựa chọn trang để tạo bộ dữ liệu rất quan trọng trong lĩnh vực này vì có thể ảnh hưởn trực tiếp đến nhà đầu tư Vậy nên, chất lượng của nguồn dữ
14 liệu là tiêu chí hàng đầu cho việc lựa chọn Vì việc lấy dữ liệu cần rất nhiều tài nguyên (phần cứng và thời gian) nên trang batdongsan.com.vn sẽ được ưu tiên để triển khai việc tạo bộ dữ liệu và trong đề tài này sẽ ưu tiên cho Thành phố Hồ Chí Minh
3.3.2 Quá trình thu thập dữ liệu
3.3.2.1 Vẽ sơ đồ trang web batdongsan.com.vn
Sơ đồ trang web rất lớn, hình bên dưới chỉ tập trung vùng chính để lấy dữ liệu
Hình 3.1: Sơ đồ trang batdongsan.com.vn
3.3.2.2 Lựa chọn các thông tin của một bài đăng
Các thông tin cần thiết của một bài đăng được mô tả chi tiết ở hình bên dưới Tuy nhiên một số thuộc tính của từng bài đăng sẽ không cố định hoặc cần thao tác đặc biệt, chi tiết như bảng bên dưới
Hình 3.2: Một số thuộc tính chính của bài đăng trên trang batdongsan.com.vn
STT Tên thuộc tính Ghi chú
1 Tiêu đề bài đăng Chắc chắn có
2 Địa chỉ BĐS Chắc chắn có nhưng có thể không đầy đủ
3 Giá Giá có thể là “thoả thuận”
4 Diện tích Có thể không có
5 Phòng ngủ Không có định, tuỳ thuộc vào từng bài đăng
6 Mô tả Chắc chắn có
7 Danh mục loại tin đăng Chắc chắn có
8 Các thuộc tính chi tiết của BĐS
Không có định, tuỳ thuộc vào từng bài đăng sẽ khác nhau, Cũng không theo thứ tự cố định
9 Tên người đăng Chắc chắn có
10 Số điện thoại người đăng Số điện thoại cần thêm một thao tác click để có thể hiện số
Bảng 3.1: Bảng mô tả chi tiết các thuộc tính chính của bài đăng
Khi đã xác định được các thông tin cần thiết cho bộ dữ liệu, tiến hành cào dữ liệu bằng Web scraper (một tiện ích của Chrome) Việc cào dữ liệu sẽ được cài đặt theo sơ đồ trang web, và tiến hành hoàn toàn tự động
Hình 3.3: Crawl dữ liệu bằng Web scraper Những dữ liệu bài đăng đã được cào về sẽ được lưu dưới dạng file xlsx và csv
3.3.2.4 Xử lý dữ liệu Đầu tiên, để xử lý dữ liệu, cần nghiên cứu sâu hơn về các yếu tố ảnh hưởng đến giá trị của một BĐS [11] Trong đó, các yếu tố thuộc nhóm tự nhiên là những yếu tố hàng đầu ảnh hưởng đến giá trị của một BĐS:
• Vị trí của BĐS: khả năng sinh lời do yếu tố vị trí BĐS mang lại càng cao thì giá trị của BĐS càng lớn Mỗi BĐS luôn đồng thời tồn tại 2 loại vị trí, vị trí tuyệt đối và vị trí tương đối Xét trên phương diện tổng quát, cả 2 loại vị trí nói trên đều có vai trò quan trọng trong việc xác lập giá trị của BĐS
• Kích thước, hình thể, diện tích thửa đất hoặc lô đất: một kích thước và diện tích thửa đất tối ưu khi nó thoả mãn một loại nhu cầu cụ thể của đa số dân cư trong vùng
• Địa hình BĐS toạ lạc: địa hình nơi BĐS toạ lạc cao hay thấp so với các BĐS khác trong vùng lân cận có tác động đến giá trị BĐS Ở những khu vực thấp, thường hay bị ngập nước vào mùa mưa hay bị hiện tượng triều cường thì giá của BĐS sẽ thấp, ngược lại giá của nó sẽ cao hơn
• Hình thức bên ngoài của BĐS (đối với BĐS là nhà hoặc là các công trình xây dựng khác): nếu 2 BĐS có giá xây dựng như nhau, BĐS nào có kiến trúc phù hợp với thị hiếu thì giá trị của nó sẽ cao hơn và ngược lại
• Đặc điểm trên mặt đất và dưới lòng đất (độ dày của lớp bề mặt, tính chất thổ nhưỡng, tính chất vật lý ) Mức độ ảnh hưởng của các yếu tố trên đến giá trị của BĐS tuỳ thuộc vào mục đích sử dụng đất Ví dụ: độ màu mỡ của đất có thể rất quan trọng đối với giá trị đất khi sử dụng vào mục đích nông nghiệp, nhưng lại không quan trọng khi sử dụng đất cho xây dựng
• Tình trạng môi trường: môi trường trong lành hay bị ô nhiễm nặng, yên tĩnh hay ồn ào đều ảnh hưởng trực tiếp đến giá trị BĐS
Xây dựng biểu đồ giá của từng loại hình theo khu vực
Sau khi đã thu thu thập, rút trích dữ liệu, nhóm đã tiến hành xây dựng biểu đồ giá của các loại hình BĐS theo từng phường tại địa bàn Thành phố Hồ Chí Minh Biểu đồ giá sẽ gồm giá của BĐS thấp nhất, cao nhất, trung bình và khoảng giá tập trung theo từng tháng Việc xây dựng biểu đồ giá không chỉ dừng lại tại các loại hình BĐS mà còn bao gồm cả các biểu đồ giá của các loại hình sau khi đã lựa chọn các thuộc tính thêm như số tầng, số phòng ngủ, trạng thái pháp lý… Các loại hình BĐS đã được xây dựng biểu đồ giá trong bảng bên dưới:
STT Loại hình STT Loại hình
1 Căn hộ chung cư 7 Khu nghỉ dưỡng
3 Nhà biệt thự 9 Kho, xưởng
5 Đất nền dự án 11 Shophouse
Bảng 3.3: Bảng các loại hình BĐS được xây dựng biểu đồ giá
Hình 3.5: Ví dụ biểu đồ giá của Căn hộ chung cư tại Phường Bến Nghé, Quận 1
Hình 3.6: Các bộ lọc thuộc tính của biểu đồ giá
Tính năng nhận xét nhanh cho biểu đồ giá
Như đã đề cập ở chương 3, các nhà đầu tư cần một số thông số như giá tăng hay giảm so với các tháng trước đó, so sánh giá của BĐS đang xem với thị trường khu vực để giúp họ có thể ra những quyết định nhanh hơn Tính năng này sẽ được tích hợp ngay trong khi nhà đầu tư xem các bài đăng BĐS trên nền tảng
Hình 3.7: Ví dụ về tính năng nhận xét trong bài đăng
Tính năng gợi ý bất động sản phù hợp
Về cơ bản, tính năng này gần như tính năng lọc bài đăng ở các nền tảng khác Nhưng các nền tảng khác thì chỉ dừng lại ở lọc được số phòng ngủ, hướng nhà, không đa dạng như của đề tài có thể lọc các thuộc tính: Số tầng, đường vào (m), số phòng ngủ, mặt tiền (m), trạng thái pháp lý, nội thất
25 Hình 3.8: Tính năng gợi ý bất động sản phù hợp
PHÂN TÍCH ĐẶC TẢ YÊU CẦU
Danh sách yêu cầu
STT Tên yêu cầu Ghi chú
1 Xem các bài đăng BĐS Khách
2 Tìm kiếm bài đăng theo bộ lọc Khách
4 Xem bài đăng đã ghim Khách
5 Xem định vị BĐS trên bản đồ Khách
6 Xem đánh giá giá BĐS trên thị trường Khách
9 Đăng bài BĐS Thành viên
10 Quản lý bài đăng cá nhân Thành viên
11 Xem biểu đồ giá BĐS trên thị trường Thành viên
12 Tìm kiếm BĐS theo nhu cầu Thành viên
13 So sánh BĐS Thành viên
14 Quản lý ví tiền cá nhân Thành viên
15 Quản lý thông tin cá nhân Thành viên
16 Xem báo cáo cá nhân Thành viên
17 Quản lý bài đăng trên hệ thống Kiểm duyệt viên
18 Xác nhận nạp tiền Kiểm duyệt viên
19 Quản lý người dùng Admin
20 Quản lý gói đăng bài Admin
21 Xem báo cáo tổng quan Admin
22 Quản lý phân quyền Admin
Bảng 4.1: Bảng danh sách yêu cầu
4.1.2 Bảng trách nhiệm cho từng yêu cầu
STT Nghiệp vụ Người dùng Phần mềm Ghi chú
1 Xem các bài đăng BĐS
Hiển thị bài đăng được chọn
2 Tìm kiếm bài đăng theo bộ lọc
Cung cấp thông tin cho bộ lọc
Hiển thị các bài đăng phù hợp với bộ lọc
3 Ghim bài đăng Nhấn nút ghim bài Xác nhận ghi bài Cho phép hủy, cập nhật
4 Xem bài đăng đã ghim
Kiểm tra và hiển thị bài đã ghim
BĐS trên bản đồ Lựa chọn khu vực Kiểm tra hợp lệ Cho phép hủy, cập nhật
6 Đăng nhập Cung cấp thông tin đăng nhập Kiểm tra hợp lê Cho phép hủy
7 Đăng ký Cung cấp thông tin đăng ký Kiểm tra hợp lê Cho phép cập nhật, hủy
Cung cấp thông tin về loại bài đăng, tiêu đề và nội dung
Kiểm tra hợp lệ, ghi nhận
9 Quản lý bài đăng cá nhân
Kiểm tra hợp lệ, ghi nhận
10 So sánh BĐS Lựa chọn 2 bài đăng Kiểm tra hợp lệ, hiển thị so sanh
Cho phép cập nhật, hủy
11 Quản lý ví tiền cá nhân
Kiểm tra hợp lệ, ghi nhận
12 Quản lý thông Kiểm tra hợp lệ,
28 tin cá nhân ghi nhận
13 Xem báo cáo cá nhân
Cung cấp thông tin về khoảng thời gian muốn xem
Kiểm tra hợp lệ, hiển thị báo cáo
Cho phép hủy, cập nhật
Quản lý bài đăng trên hệ thống
Kiểm tra hợp lệ, ghi nhận
Kiểm tra hợp lệ, ghi nhận
Kiểm tra hợp lệ, ghi nhận
Cho phép hủy, cập nhật
17 Quản lý gói đăng bài
Kiểm tra hợp lệ, ghi nhận
Cho phép hủy, cập nhật
18 Xem báo cáo tổng quan
Cung cấp thông tin về khoảng thời gian muốn xem
Kiểm tra hợp lệ, hiển thị báo cáo
Cho phép hủy, cập nhật
Kiểm tra hợp lệ, hiển thị thông tin
Cho phép cập nhật, hủy Bảng 4.2: Bảng trách nhiệm cho yêu cầu nghiệp vụ
STT Nghiệp vụ Người dùng Phần mềm Ghi chú
2 Tìm kiếm bài đăng theo bộ lọc
3 Ghim bài đăng Ghim bài Cập nhật theo giá trị mới
4 Xem bài đăng đã ghim
5 Xem định vị BĐS trên bản đồ
8 Đăng bài BĐS Thêm mới bài viết Cập nhật theo giá trị mới
9 Quản lý bài đăng cá nhân
11 Quản lý ví tiền cá nhân
12 Quản lý thông tin cá nhân
13 Xem báo cáo cá nhân Tạo mới báo cáo
Cập nhật dựa trên thời gian được cung cấp
14 Quản lý bài đăng trên hệ thống
17 Quản lý gói đăng bài
18 Xem báo cáo tổng Tạo mới báo cáo Cập nhật dựa trên thời gian được cung
Thêm mới người dùng, (cung cấp nhóm quyền)
Có thể thêm mới theo giá trị mới
Bảng 4.3: Bảng trách nhiệm cho yêu cầu tiến hóa
STT Nghiệp vụ Người dùng Phần mềm Ghi chú
BĐS Chọn bài đăng Thực hiện đúng theo yêu cầu
2 Tìm kiếm bài đăng theo bộ lọc
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
3 Ghim bài đăng Nhấn ghi bài đăng Thực hiện đúng theo yêu cầu
4 Xem bài đăng đã ghim
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
5 Xem định vị BĐS trên bản đồ
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
6 Đăng nhập Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
7 Đăng ký Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
8 Đăng bài BĐS Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
9 Quản lý bài đăng cá nhân
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
10 So sánh BĐS Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
11 Quản lý ví tiền cá nhân
Thực hiện đúng theo yêu cầu
12 Quản lý thông tin cá nhân
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
13 Xem báo cáo cá nhân Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
14 Quản lý bài đăng trên hệ thống
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
15 Xác nhận nạp tiền Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
16 Quản lý người dùng Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
17 Quản lý gói đăng bài Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
18 Xem báo cáo tổng quan
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
19 Quản lý phân quyền Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
Bảng 4.4: Bảng trách nhiệm cho yêu cầu hiệu quả
STT Nghiệp vụ Người dùng Phần mềm Ghi chú
1 Xem các bài đăng Đọc hướng dẫn sử Thực hiện đúng
BĐS dụng theo yêu cầu
2 Tìm kiếm bài đăng theo bộ lọc Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
3 Ghim bài đăng Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
4 Xem bài đăng đã ghim Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
5 Xem định vị BĐS trên bản đồ Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
6 Đăng nhập Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
7 Đăng ký Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
8 Đăng bài BĐS Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
9 Quản lý bài đăng cá nhân Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
10 So sánh BĐS Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
11 Quản lý ví tiền cá nhân Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
12 Quản lý thông tin cá nhân Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
13 Xem báo cáo cá nhân Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
14 Quản lý bài đăng trên hệ thống Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
15 Xác nhận nạp tiền Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
16 Quản lý người dùng Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
17 Quản lý gói đăng bài Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
18 Xem báo cáo tổng quan Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
19 Quản lý phân quyền Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu Bảng 4.5: Bảng trách nhiệm cho yêu cầu tiện dụng
• Phần cứng: o Điện thoại Android:
▪ Dung lượng trống: 100MB hoặc hơn o Điện thoại Iphone:
▪ CPU: Apple A8 hoặc hơn (từ Iphone 6)
▪ Dung lượng trống: 10MB hoặc hơn
• Phần mềm: o Điện thoại thông minh
▪ Hệ điều hành: Android 4.4, IOS 10
• Hardware: o CPU: 4-Core hoặc hơn o RAM: 8GB hoặc hơn
• Software: o Hệ điều hành: Windows Server 2008, CentOS7 … o Môi trường: Microsoft NET Core 5 o Hệ quản trị Cơ sở dữ liệu: MariaDB o Máy chủ Web: Internet Information Services (IIS).
Quy tắc nghiệp vụ
Mã Định nghĩa Loại Kiểu
BR-1 Cần tài khoản và mật khẩu để đăng nhập vào hệ thống Thực tế Tĩnh
Kiểm duyệt viên sau khi đã xác nhận nạp tiền vào ví khách hàng thì không thể thay đổi được
Số tiền trong ví cần phải lớn hơn hoặc bằng giá trị của giao dịch thì mới có thể thực hiện giao dịch
BR-4 Số tiền trong ví không thể rút ra Ràng buộc Tĩnh
BR-5 Người dùng phải cập nhật đầu đủ thông tin cá nhân thì mới có thể đăng bài Ràng buộc Động BR-6 Chỉ có kiểm duyệt viên hoặc quản trị hệ Ràng buộc Tĩnh
35 thống mới có thể xác nhận nạp tiền vào tài khoản người dùng
Hệ thống sẽ tính toán tự động số tiền khi đăng bài hoặc gia hạn bài đăng theo gói bài đăng
Việc truyền thông tin qua mạng liên quan đến thông tin tài chính hoặc thông tin nhận dạng cá nhân cần mã hóa 256-bit
BR-9 Chỉ có kiểm duyệt viên và quản trị hệ thống mới có thể kiểm duyệt bài đăng Ràng buộc Tĩnh
BR-10 Chỉ có quản trị hệ thống mới có thể quản lý danh mục Ràng buộc Động
BR-11 Chỉ có quản trị hệ thống mới có thể quản lý giá gói bài đăng Ràng buộc Động
BR-12 Quản trị hệ thống có thể quản lý phân quyền, chức vụ Ràng buộc Động
BR-13 Điểm yêu thích được tính theo công thức: lượt xem * 0.1 + lượt yêu thích Ràng buộc Động
BR-14 Thông tin bài đăng phải có thông tin: Tên bài đăng, diện tích, giá tiền, địa chỉ Ràng buộc Tĩnh BR-15 Người dùng đã đăng nhập vào hệ thống Ràng buộc Tĩnh
Bảng 4.6: Bảng quy tắc nghiệp vụ
Usecase, Đặc tả usecase và sơ đồ hoạt động
6 Xem bài đăng đã ghim
8 Tìm kiếm xung quanh khu vực
10 Tra cứu BĐS phù hợp
11 Quản lý thông tin cá nhân
15 Xem báo cáo cá nhân
Kiểm duyệt viên 16 Kiểm duyệt bài đăng không hợp lệ
19 Xem báo cáo tổng thể
21 Quản lý thuộc tính BĐS
22 Quản lý gói bài đăng Bảng 4.7: Danh sách các Actor và các Usecases tương ứng
Hình 4.1: Sơ đồ Usecase tổng quát
Hình 4.2: Sơ đồ Usecase cho Actor “Khách”
STT - tên: UC-1 Đăng ký
Primary Actor: Khách Secondary Actors: Hệ thống
Mô tả: Người dùng đăng ký tài khoản để đăng nhập vào hệ thống Mục đích: Cấp tài khoản cho người dùng truy cập vào hệ thống Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện đăng ký Điều kiện lúc sau: POST-1 Người dùng đăng ký thành công
Quy trình cơ bản: 1.0 Đăng ký hệ thống thành công
1 Người dùng khởi động ứng dụng
2 Người dùng nhập các thông tin đăng ký
4 Hệ thống lưu thông tin đăng ký thành công
Quy trình thay thế: Không có
Ngoại lệ: 1.0.E1 Người dùng đã có có tài khoản Ưu tiên: Cao
Bảng 4.8: Bảng đặc tả Usecase “Đăng ký”
39 Hình 4.3: Sơ đồ hoạt động của “Đăng ký”
STT - tên: UC-2 Đăng Nhập
Primary Actor: Khách Secondary Actors: Hệ thống
Mô tả: Người dùng đăng nhập tài khoản để truy cập vào hệ thống Mục đích: Hệ thống cho phép người dùng truy cập Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện đăng nhập
PRE-2 Người dùng đã có tài khoản Điều kiện lúc sau: POST-1 Người dùng đăng nhập thành công
Quy trình cơ bản: 2.0 Đăng nhập hệ thống thành công
Người dùng khởi động ứng dụng
Người dùng nhập tài khoản và mật khẩu
Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng khách truy cập vào hệ thống
Quy trình thay thế: Không có
Ngoại lệ: 2.0.E2 Đăng nhập hệ thống không thành công
Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo Ưu tiên: Cao
Bảng 4.9: Bảng đặc tả Usecase “Đăng nhập”
41 Hình 4.4: Sơ đồ hoạt động của “Đăng nhập”
STT - tên: UC-3 Xem bài đăng
Primary Actor: Tất cả Secondary Actors: Hệ thống
Mô tả: Người dùng xem các bài đăng về nhà đất
Mục đích: Hệ thống cho phép xem các bài đăng đã được phê duyệt Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet Điều kiện lúc sau:
Quy trình cơ bản: 3.0 Xem bài đăng thành công
Người dùng khởi động ứng dụng
Hệ thống cập nhật các bài đăng về ứng dụng
Quy trình thay thế: Không có
Ngoại lệ: 3.0.E2 Đăng nhập hệ thống không thành công
Thiết bị không kết nối internet Ưu tiên: Cao
Bảng 4.10: Bảng đặc tả Usecase “Xem bài đăng”
43 Hình 4.5: Sơ đồ hoạt động của “Xem bài đăng”
STT - tên: UC-4 Tìm kiếm bài đăng
Primary Actor: Tất cả Secondary Actors: Hệ thống
Mô tả: Người dùng cần tìm kiếm thông tin của bài đăng phù hợp Mục đích: Cung cấp thông tin mà người dùng đang muốn tìm kiếm Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet Điều kiện lúc sau:
Quy trình cơ bản: 4.0 Tìm kiếm thành công
Người dùng khởi động ứng dụng
Người dùng nhập thông tin cần tìm kiếm vào thanh tìm kiếm
Hệ thống truy xuất trong CSDL và trả về kết quả
Quy trình thay thế: Không
Ngoại lệ: Không có Ưu tiên: Thường
Bảng 4.11: Bảng đặc tả Usecase “Tìm kiếm bài đăng”
45 Hình 4.6: Sơ đồ hoạt động của “Tìm kiếm bài đăng”
STT - tên: UC-5 Ghim bài đăng
Primary Actor: Tất cả Secondary Actors: Hệ thống
Mô tả: Người dùng đánh dấu bài đăng đang quan tâm
Mục đích: Cho phép người dùng lưu lại bài đăng người dùng đang quan tâm Điều kiện tiên quyết:
PRE-3 Thiết bị của người dùng phải kết nối internet Điều kiện lúc sau:
Quy trình cơ bản: 5.0 Ghim thành công
Người dùng chọn vào bài đăng đang quan tâm
Hệ thống lưu lại bài đăng người dùng đã ghim
Quy trình thay thế: Không
Ngoại lệ: Không có Ưu tiên: Thường
Bảng 4.12: Bảng đặc tả Usecase “Ghim bài đăng”
47 Hình 4.7: Sơ đồ hoạt động của “Ghim bài đăng”
STT - tên: UC-6 Xem bài đăng đã ghim
Primary Actor: Tất cả Secondary Actors: Hệ thống
Mô tả: Người dùng xem lại danh sách bài đăng đã ghim
Mục đích: Hệ thông cho phép người dùng xem lại những bài đăng đã quan tâm Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet Điều kiện lúc sau:
Quy trình cơ bản: 6.0 Xem bài đăng đã ghim thành công
Người dùng vào mục bài đã ghim
Hệ thống trả về những bài đăng đã ghim
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.13: Bảng đặc tả Usecase “Xem bài đăng đã ghim”
STT - tên: UC-7 Xem bản đồ
Primary Actor: Tất cả Secondary Actors: Hệ thống
Mô tả: Người dùng người dùng xem bản đồ
Mục đích: Cho phép người dùng xem bản đổ thế giới Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet Điều kiện lúc sau:
Quy trình cơ bản: 7.0 Xem bản đồ thành công
Người dùng mở bản đồ
Hệ thống sử dụng API Google gửi lại bản đồ thế giới Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.14: Bảng đặc tả Usecase “Xem bản đồ”
50 Hình 4.8: Sơ đồ hoạt động của “Xem bản đồ”
STT - tên: UC-8 Tìm kiếm xung quanh khu vực
Primary Actor: Tất cả Secondary Actors: Hệ thống
Mô tả: Người dùng người dùng xem bản đồ và thông tin giá cả hiện thị trên bản đồ
Mục đích: Cho phép người dùng tìm kiếm nhà đất xung quanh theo vị trí trên bản đồ Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet
PRE-2 Đã mở bản đồ Điều kiện lúc sau:
Quy trình cơ bản: 8.0 Tìm kiếm thành công
Người dùng mở bản đồ
Hệ thống sử dụng API Google gửi lại bản đồ thế giới
Hệ thống cập nhật vị trí các nhà đất đang được đăng trên ứng dụng lên bản đồ
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.15: Bảng đặc tả Usecase “Tìm kiếm xung quanh khu vực”
52 Hình 4.9: Sơ đồ hoạt động của “Tìm kiếm xung quanh khu vực”
Hình 4.10: Sơ đồ Usecase cho Actor “Người dùng”
STT - tên: UC-9 Quản lý thông tin cá nhân
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng cập nhật thông tin cá nhân
Mục đích: Hệ thống cho phép người dùng thay đổi thông tin cá nhân Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền chỉnh sửa thông tin cá nhân Điều kiện lúc sau: POST-1 Người dùng cập nhật thông tin thành công
Quy trình cơ bản: 9.0 Cập nhật thông tin thành công
Người dùng truy cập vào thông tin cá nhân
Chọn “Cập nhật thông tin”
Người dùng nhập các thông tin cá nhân cần cập nhật
Hệ thống cập nhật thông tin thành công
Quy trình thay thế: Không có
Ngoại lệ: 9.0E1 Cập nhật thông tin không thành công
Hệ thống kiểm tra tính đúng đắn của thông tin người dùng nhập vào không hợp lệ và hiển thị thông báo
Yêu cầu người dùng nhập đúng thông tin cần cập nhật Ưu tiên: Cao
Bảng 4.16: Bảng đặc tả Usecase “Quản lý thông tin cá nhân”
55 Hình 4.11: Sơ đồ hoạt động của “Quản lý thông tin cá nhân”
STT - tên: UC-10 Quản lý bài đăng
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng đăng bài viết, chỉnh sửa nội dung hoặc xóa bài đăng
Mục đích: Hệ thống cho phép người dùng đăng bài viết mới, chỉnh sửa hoặc xóa bài viết đã đăng Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền Điều kiện lúc sau: Không có
Quy trình cơ bản: 10.0 Đăng bài thành công
Người dùng truy cập vào mục “Đăng bài”
Chọn phương thức “Mua bán/Cho thuê”
Người dùng nhập thông tin của BĐS
Người dùng tiếp tục chọn gói đăng tin phù hợp với nhu cầu
Hệ thống thu phí của người dùng đồng thời thêm bài đăng vào dữ liệu và thông báo xác nhận thành công
10.1 Cập nhật bài đăng thành công Người dùng truy cập vào quản lý bài đăng
Chọn bài đăng cần cập nhật
Chọn “Cập nhật bài đăng”
Người dùng nhập thông tin cần cập nhật của BĐS
Hệ thống cập nhật lại bài đăng vào dữ liệu và thông báo xác nhận thành công
10.2 Xóa bài đăng thành công Người dùng truy cập vào quản lý bài đăng
Chọn bài đăng cần xóa
Người dùng xác nhận lại
Hệ thống xóa bài đăng và thông báo xác nhận thành công
Quy trình thay thế: Không có
Ngoại lệ: 10.0E1 Đăng bài không thành công
Hệ thống kiểm tra số dư trong ví tiền của người dùng không đủ và hiển thị thông báo
Yêu cầu người dùng nạp thêm tiền vào ví Ưu tiên: Cao
Business rule: BR-3, BR-5, BR-7, BR-14, BR-15
Bảng 4.17: Bảng đặc tả Usecase “Quản lý bài đăng”
58 Hình 4.12: Sơ đồ hoạt động của “Đăng bài”
59 Hình 4.13: Sơ đồ hoạt động của “Chỉnh sửa bài đăng”
60 Hình 4.14: Sơ đồ hoạt động của “Xóa bài đăng”
STT - tên: UC-11 So sánh hai bài đăng
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng so sánh hai bài đăng khác nhau
Mục đích: Hệ thống cho phép người dùng so sánh hai bài đăng khác nhau Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền so sánh hai bài đăng Điều kiện lúc sau: Không có
Quy trình cơ bản: 11.0 So sánh hai bài đăng thành công
Người dùng chọn một bài đăng
Chọn “So sánh với bài đăng khác”
Hệ thống hiển thị ra danh sách các bài đăng khác để người dùng chọn
Người dùng chọn bài đăng mình muốn so sánh
Hệ thống so sánh thông tin hai bài đăng và hiển thị ra cho người dùng
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.18: Bảng đặc tả Usecase “So sánh hai bài đăng”
62 Hình 4.15: Sơ đồ hoạt động của “So sánh hai bài đăng”
STT - tên: UC-12 Gia hạn bài đăng
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng gia hạn thêm thời gian cho bài đăng
Mục đích: Hệ thống cho phép người dùng gia hạn thêm thời gian cho bài viết đã đăng Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền gia hạn bài đăng Điều kiện lúc sau: Không có
Quy trình cơ bản: 12.0 Gia hạn bài đăng thành công
Người dùng truy cập vào quản lý bài đăng
Chọn bài đăng muốn gia hạn
Người dùng chọn “Gia hạn bài đăng”
Người dùng có thể chọn lại gói bài đăng khác và gia hạn
Hệ thống cập nhật thêm thời gian cho bài đăng và thông báo gia hạn bài đăng thành công
Quy trình thay thế: Không có
Ngoại lệ: 12.0E1 Gia hạn bài đăng không thành công
Hệ thống kiểm tra số dư trong ví tiền của người dùng không đủ và hiển thị thông báo
Yêu cầu người dùng nạp thêm tiền vào ví Ưu tiên: Cao
Business rule: BR-3, BR-7, BR-15
Bảng 4.19: Bảng đặc tả Usecase “Gia hạn bài đăng”
64 Hình 4.16: Sơ đồ hoạt động của “Gia hạn bài viết”
STT - tên: UC-13 Xem báo cáo cá nhân
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng xem báo cáo cá nhân của tài khoản
Mục đích: Hệ thống cho phép người dùng xem báo cáo cá nhân của tài khoản Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền xem báo cáo cá nhân Điều kiện lúc sau: Không có
Quy trình cơ bản: 13.0 Xuất báo cáo cá nhân và hiển thị thành công
Người dùng truy cập vào thông tin cá nhân
Chọn “Xem báo cáo cá nhân”
Hệ thống xuất báo cáo cá nhân của người dùng và hiển thị lên màn hình
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.20: Bảng đặc tả Usecase “Xem báo cáo cá nhân”
66 Hình 4.17: Sơ đồ hoạt động của “Xem báo cáo cá nhân”
STT - tên: UC-14 Xem biểu đồ giá khu vực
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng xem biểu đồ giá theo từng khu vực mong muốn Mục đích: Hệ thống cho phép người dùng xem biểu đồ giá BĐS theo từng khu vực Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền xem biểu đồ giá Điều kiện lúc sau: Không có
Quy trình cơ bản: 14.0 Xem biểu đồ giá thành công
Người dùng truy cập vào thông tin cá nhân
Chọn khu vực muốn xem biểu đồ và các thuộc tính của BĐS (nếu có)
Hệ thống lấy dữ liệu của giá BĐS tại khu vực và hiển thị lên màn hình
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.21: Bảng đặc tả Usecase “Xem biểu đồ giá khu vực”
68 Hình 4.18: Sơ đồ hoạt động của “Xem biểu đồ giá khu vực”
STT - tên: UC-15 Tra cứu BĐS phù hợp
Primary Actor: Người dùng Secondary Actors: Hệ thống
Mô tả: Người dùng tra cứu BĐS phù hợp với nhu cầu bản thân
Mục đích: Hệ thống cho phép người dùng xem danh sách các khu vực có
BĐS phù hợp với nhu cầu của bản thân Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền tra cứu BĐS Điều kiện lúc sau: Không có
Quy trình cơ bản: 15.0 Tra cứu BĐS phù hợp thành công
Người dùng truy cập vào thông tin cá nhân
Chọn “Tra cứu BĐS phù hợp”
Nhập giá tiền thấp nhất (min) và cao nhất (max)
Chọn loại BĐS và thuộc tính kèm theo (nếu có)
Hệ thống lấy dữ liệu của các BĐS phù hợp và hiển thị theo từng khu vực lên màn hình
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Cao
Bảng 4.22: Bảng đặc tả Usecase “Tra cứu bất động sản phù hợp”
70 Hình 4.19: Sơ đồ hoạt động của “Tra cứu bất động sản phù hợp”
4.3.4 Usecase cho Kiểm duyệt viên
Hình 4.20: Sơ đồ Usecase cho Actor “Kiểm duyệt viên”
STT - tên: UC-16 Kiểm duyệt bài đăng không hợp lệ
Primary Actor: Kiểm duyệt viên Secondary Actors: Hệ thống
Mô tả: Kiểm duyệt viên kiểm tra tính hợp lệ của bài đăng từ phía người dùng
Mục đích: Hệ thống cho phép người dùng kiểm duyệt tính hợp lệ của các bài đăng Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền kiểm duyệt bài đăng Điều kiện lúc sau: Không có
Quy trình cơ bản: 16.0 Kiểm duyệt bài đăng không hợp lệ thành công
Người dùng truy cập vào quản lý bài đăng
Chọn “Các bài đăng cần kiểm duyệt”
Người dùng kiểm tra tính hợp lệ của bài đăng
Nếu bài đăng không hợp lệ, người dùng có thể chỉnh sửa hoặc xóa bài đăng
Hệ thống cập nhật thay đổi và thông báo kiểm duyệt thành công
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Trung bình
Bảng 4.23: Bảng đặc tả Usecase “Kiểm duyệt bài đăng không hợp lệ”
73 Hình 4.21: Sơ đồ hoạt động của “Kiểm duyệt bài đăng không hợp lệ”
STT - tên: UC-17 Xác nhận nạp tiền
Primary Actor: Kiểm duyệt viên Secondary Actors: Hệ thống
Mô tả: Kiểm duyệt viên xác nhận việc nạp tiền của khách hàng
Mục đích: Kiểm duyệt viên xác nhận nạp tiền và cập nhật ví tiền cho người dùng Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống
PRE-3 Người dùng đã được cấp quyền xác nhận nạp tiền Điều kiện lúc sau: Không có
Quy trình cơ bản: 17.0 Cập nhật ví tiền thành công
Kiểm duyệt viên truy cập vào quản lý nạp tiền
Chọn hóa đơn nạp tiền muốn duyệt
Kiểm tra trên hệ thống người dùng đã nạp tiền chưa và xác nhận
Hệ thống cập nhật số dư trong ví tiền của người dùng và thông báo đến người dùng nạp tiền thành công
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Trung bình
Business rule: BR-2, BR-6, BR-15
Bảng 4.24: Bảng đặc tả Usecase “Xác nhận nạp tiền”
75 Hình 4.22: Sơ đồ hoạt động của “Xác nhận nạp tiền”
Hình 4.23: Sơ đồ Usecase cho Actor “Admin”
STT - tên: UC-18 Quản lý người dùng
Primary Actor: Admin Secondary Actors: Hệ thống
Mô tả: Admin thêm tài khoản người dùng mới, chỉnh sửa thông tin hoặc xóa tài khoản người dùng
Mục đích: Admin quản lý thêm tài khoản cho người dùng mới và chỉnh sửa tài khoản người dùng Điều kiện tiên quyết:
PRE-1 Thiết bị của admin phải kết nối internet khi thực hiện PRE-2 Admin đã đăng nhập vào hệ thống Điều kiện lúc sau: Không có
Quy trình cơ bản: 18.0 Thêm người dùng mới thành công
Admin vào quản lý người dùng
Admin chọn “Thêm tài khoản”
Admin nhập thông tin tài khoản người dùng và ấn “Lưu”
Hệ thống thêm tài khoản mới và thông báo thêm tài khoản thành công
18.1 Cập nhật thông tin người dùng thành công Admin vào quản lý người dùng
Chọn tài khoản muốn cập nhật
Admin nhập thông tin cần cập nhật và ấn “Lưu”
Hệ thống cập nhật lại thông tin tài khoản người dùng và thông báo cập nhật tài khoản thành công
18.2 Xóa tài khoản người dùng thành công Admin vào quản lý người dùng
Chọn tài khoản muốn xóa và nhấn “Xóa tài khoản”
Hệ thống xóa tài khoản người dùng và thông báo xóa tài khoản thành công
Quy trình thay thế: Không có
Bảng 4.25: Bảng đặc tả Usecase “Quản lý người dùng”
79 Hình 4.24: Sơ đồ hoạt động của “Thêm người dùng mới”
80 Hình 4.25: Sơ đồ hoạt động của “Chỉnh sửa thông tin người dùng”
81 Hình 4.26: Sơ đồ hoạt động của “Xóa người dùng”
STT - tên: UC-19 Xem báo cáo tổng thể
Primary Actor: Admin Secondary Actors: Hệ thống
Mô tả: Admin xem báo cáo tổng thể của người dùng toàn hệ thống Mục đích: Hệ thống lập ra báo cáo tổng thể của người dùng Điều kiện tiên quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện
PRE-2 Người dùng đã đăng nhập vào hệ thống Điều kiện lúc sau: Không có
Quy trình cơ bản: 19.0 Lập báo cáo tổng thể thành công
Admin chọn “Xem báo cáo tổng thể”
Hệ thống lập ra báo cáo tổng thể của người dùng toàn hệ thống và hiển thị lên màn hình
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Thường
Bảng 4.26: Bảng đặc tả Usecase “Xem báo cáo tổng thể”
83 Hình 4.27: Sơ đồ hoạt động của “Xem báo cáo tổng thể”
STT - tên: UC-20 Quản lý danh mục
Primary Actor: Admin Secondary Actors: Hệ thống
Mô tả: Admin thêm danh muc mới, chỉnh sửa thông tin hoặc xóa danh mục
Mục đích: Admin quản lý thêm mới và chỉnh sửa danh mục Điều kiện tiên quyết:
PRE-1 Thiết bị của admin phải kết nối internet khi thực hiện PRE-2 Admin đã đăng nhập vào hệ thống Điều kiện lúc sau: Không có
Quy trình cơ bản: 20.0 Thêm danh mục mới thành công
Admin vào quản lý danh mục
Admin chọn “Thêm danh muc”
Admin nhập thông tin danh mục mới và ấn “Lưu”
Hệ thống thêm danh mục mới và thông báo thêm danh mục thành công
20.1 Cập nhật danh mục thành công Admin vào quản lý danh mục
Chọn danh mục muốn cập nhật
Admin nhập thông tin cần cập nhật và ấn “Lưu”
Hệ thống cập nhật lại thông tin danh mục và thông báo cập nhật danh mục thành công
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Thường
Bảng 4.27: Bảng đặc tả Usecase “Quản lý danh mục”
85 Hình 4.28: Sơ đồ hoạt động của “Thêm danh mục mới”
86 Hình 4.29: Sơ đồ hoạt động của “Chỉnh sửa danh mục”
87 Hình 4.30: Sơ đồ hoạt động của “Cập nhật thông tin hiển thị danh mục”
STT - tên: UC-21 Quản lý thuộc tính BĐS
Primary Actor: Admin Secondary Actors: Hệ thống
Mô tả: Admin thêm thuộc tính BĐS mới, chỉnh sửa thông tin hoặc xóa danh mục
Mục đích: Admin quản lý thêm mới và chỉnh sửa thuộc tính BĐS Điều kiện tiên quyết:
PRE-1 Thiết bị của admin phải kết nối internet khi thực hiện PRE-2 Admin đã đăng nhập vào hệ thống Điều kiện lúc sau: Không có
Quy trình cơ bản: 21.0 Thêm thuộc tính BĐS mới thành công
Admin vào quản lý thuộc tính BĐS
Admin chọn “Thêm thuộc tính BĐS”
Admin nhập thông tin thuộc tính BĐS mới và ấn “Lưu”
Hệ thống thêm thuộc tính BĐS mới và thông báo danh mục thành công
21.1 Cập nhật thuộc tính BĐS thành công Admin vào quản lý thuộc tính BĐS
Chọn thuộc tính BĐS muốn cập nhật
Admin nhập thông tin cần cập nhật và ấn “Lưu”
Hệ thống cập nhật lại thông tin thuộc tính BĐS và thông báo cập nhật thành công
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Thường
Bảng 4.28: Bảng đặc tả Usecase “Quản lý thuộc tính bất động sản”
89 Hình 4.31: Sơ đồ hoạt động của “Thêm thuộc tính mới”
90 Hình 4.32: Sơ đồ hoạt động của “Chỉnh sửa thuộc tính”
STT - tên: UC-22 Quản lý gói bài đăng
Primary Actor: Admin Secondary Actors: Hệ thống
Mô tả: Admin thêm gói bài đăng mới, chỉnh sửa thông tin hoặc cập nhật hiển thị gói bài đăng
Mục đích: Admin quản lý việc thêm gói bài đăng mới và chỉnh sửa hoặc cập nhật hiển thị gói bài đăng Điều kiện tiên quyết:
PRE-1 Thiết bị của admin phải kết nối internet khi thực hiện PRE-2 Admin đã đăng nhập vào hệ thống Điều kiện lúc sau: Không có
Quy trình cơ bản: 22.0 Thêm gói bài đăng mới thành công
Admin vào quản lý gói bài đăng
Admin chọn “Thêm gói bài đăng mới”
Admin nhập thông tin gói bài đăng mới và ấn “Lưu”
Hệ thống thêm gói bài đăng mới và thông báo thêm gói bài đăng thành công
22.1 Cập nhật thông tin gói bài đăng thành công Admin vào quản lý gói bài đăng
Chọn gói bài đăng muốn cập nhật
Admin nhập thông tin cần cập nhật và ấn “Lưu”
Hệ thống cập nhật lại thông tin gói bài đăng và thông báo cập nhật gói bài đăng thành công
22.2 Cập nhật hiển gói bài đăng thành công Admin vào quản lý gói bài đăng
Chọn gói bài đăng muốn cập nhật
Thay đổi hiển thị của gói bài đăng và ấn “Lưu”
Hệ thống cập nhật hiển gói bài đăng và thông báo cập nhật thành công
Quy trình thay thế: Không có
Ngoại lệ: Không có Ưu tiên: Thường
Bảng 4.29: Bảng đặc tả Usecase “Quản lý gói bài đăng”
93 Hình 4.33: Sơ đồ hoạt động của “Thêm gói bài đăng mới”
94 Hình 4.34: Sơ đồ hoạt động của “Chỉnh sửa thông tin gói bài đăng”
95 Hình 4.35: Sơ đồ hoạt động của “Cập nhật hiển thị cho gói bài đăng”
Sơ đồ tuần tự
4.4.1 Sơ đồ tuần tự việc đăng ký
Hình 4.36: Sơ đồ tuần tự cho việc “Đăng ký”
4.4.2 Sơ đồ tuần tự cho việc thêm bài đăng
Hình 4.37: Sơ đồ tuần tự cho việc “Thêm bài đăng”
4.4.3 Sơ đồ tuần tự cho việc nạp tiền
Hình 4.38: : Sơ đồ tuần tự cho việc “Nạp tiền”
4.4.4 Sơ đồ tuần tự cho việc gia hạn bài viết
Hình 4.39: Sơ đồ tuần tự cho việc “Gia hạn bài viết”
4.4.5 Sơ đồ tuần tự cho việc lập báo cáo
Hình 4.40: Sơ đồ tuần tự cho việc “Lập báo cáo”
Sơ đồ trạng thái
4.5.1 Sơ đồ trạng thái cho Đăng nhập
Hình 4.41: Sơ đồ trạng thái cho “Đăng nhập”
4.5.2 Sơ đồ trạng thái cho Thêm tài khoản
Hình 4.42: Sơ đồ trạng thái cho “Thêm tài khoản”
4.5.3 Sơ đồ trạng thái cho Nạp tiền cho tài khoản
Hình 4.43: Sơ đồ trạng thái cho “Nạp tiền cho tài khoản”
4.5.4 Sơ đồ trạng thái cho Tạo bài đăng mới
Hình 4.44: Sơ đồ trạng thái cho “Tạo bài đăng mới”
4.5.5 Sơ đồ trạng thái cho Tìm kiếm bài đăng
Hình 4.45: Sơ đồ trạng thái cho “Tìm kiếm bài đăng”
ERD và sơ đồ lớp
4.6.1 Mô hình thực thể ERD hoàn thiện
Hình 4.46: Mô hình thực thể ERD
4.6.3 Mô tả sơ đồ lớp
4.6.3.1 Danh sách các lớp đối tượng và quan hệ
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
4 GoiBaiDangs public Gói bài đăng
5 ChiTietHoaDonBaiDangs public Chi tiết hóa đơn bài đăng
6 LichSuGiaoDichs public Lịch sử giao dịch
7 BaiGhimYeuThichs public Bài ghim yêu thích
9 ChiTietBaiDangs public Chi tiết bài đăng
Bảng 4.30: Danh sách các lớp đối tượng và quan hệ
4.6.3.2 Mô tả chi tiết từng lớp đối tượng
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã người dùng
2 ProfilePictureId char Mã ảnh cá nhân
3 CreationTime DateTime Thời gian tạo
4 LastModificationTime DateTime Thời gian chỉnh sửa gần nhất
6 AutheticationSource string Nguồn xác thực
8 Username string Tên người dùng
9 EmailAddress string Địa chỉ email
12 EmailConfirmationCode string Mã xác thực email
13 PasswordReserCode string Mã đặt lại mật khẩu
14 LockoutEndDateUtc DateTime Ngày kết thúc khoá (theo múi giờ UTC)
15 AccessFailedCount int Số lần đăng nhập thất bại
17 PhoneNumber strin Số điện thoại
18 IsPhoneNumberConfirmed bool Đã xác thực số điện thoại
19 SecurityStamp string Timestamp theo dõi các thay đổi thuộc tính của User
20 IsTwoFactorEnabled bool Xác thực 2 bước
21 IsEmailConfirmed bool Đã xác thực email
22 IsActive bool Đang hoạt động
23 NormalizedUserName string Username ở dạng thường
24 NormalizedEmailAddress string Email ở dạng thường
25 ConcurrencyStamp string Stamp thay đổi
27 ShouldChangePassword onNextLogin bool Đổi mật khẩu trong lần đăng nhập tiếp theo
Thời gian hết hạn của Token đăng nhập (theo múi giờ UTC)
29 SignInToken string Token đăng nhập
Bảng 4.31: Mô tả chi tiết lớp “AbpUsers”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã quyền hạn
2 CreationTime datetime Thời gian tạo
3 CreatorUseId int Id của người tạo
4 DisplayName string Tên hiển thị
6 isGranted bool Được cấp quyền
7 isDefault bool Quyền mặc định
Bảng 4.32: Mô tả chi tiết lớp “AbpRoles”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã bài đăng
2 TagLoaiBaiDang string Nhãn loại bài đăng
3 ThoiDiemDang datetime Thời điểm đăng
12 LuotYeuThich int Lượt yêu thích
13 DiemBaiDang demical Điểm bài đăng
15 TagTimKiem string Nhãn tìm kiếm
17 UserId int Mã người dùng
18 DanhMucId int Mã danh mục
21 FeatureImage string Ảnh đại diện
Bảng 4.33: Mô tả chi tiết lớp “BaiDangs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã gói bài đăng
2 TenGoi string Tên gói bài đăng
3 Phi string Phí bài đăng
4 DoUuTien int Độ ưu tiên
5 ThoiGianToiThieu int Thời gian tối thiểu
6 MoTa string Mô tả gói bài đăng
7 TrangThai string Trạng thái gói bài đăng
Bảng 4.34: Mô tả chi tiết lớp “GoiBaiDangs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id string Mã chi tiết hóa đơn bài đăng
2 ThoiDiem datetime Thời điểm mua
3 GiaGoi double Giá gói bài đăng
4 SoNgayMua int Số ngày mua
7 BaiDangId int Mã bài đăng
8 GoiBaiDangId int Mã gói bài đăng
9 UserId int Mã người dùng
Bảng 4.35: Mô tả chi tiết lớp “ChiTietHoaDonBaiDangs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã lịch sử giao dịch
2 SoTien double Số tiền giao dịch
3 ThoiDiem datetime Thời điểm giao dịch
5 UserId int Mã người dùng
6 ChiTietHoaDonBaiDangId string Mã chi tiết hóa đơn bài đăng
7 KiemDuyetVienId int Mã kiểm duyệt viên
Bảng 4.36: Mô tả chi tiết lớp “LichSuGiaoDichs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã bài ghim
4 UserId int Mã người dùng
5 BaiDangId int Mã bài đăng
Bảng 4.37: Mô tả chi tiết lớp “BaiGhimYeuThichs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã hình ảnh
3 BaiDangId int Mã bài đăng
Bảng 4.38: Mô tả chi tiết lớp “HinhAnhs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã thuộc tính
2 GiaTri string Giá trị thuộc tính
3 ThuocTinhId int Mã thuộc tính
4 BaiDangId int Mã bài đăng
Bảng 4.39: Mô tả chi tiết lớp “ChiTietBaiDangs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã thuộc tính
2 TenThuocTinh string Tên thuộc tính
3 KieuDuLieu string Kiểu dữ liệu thuộc tính
Bảng 4.40: Mô tả chi tiết lớp “ThuocTinhs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã danh mục
2 TenDanhMuc string Tên danh mục
4 TrangThai string Trạng thái danh mục
5 DanhMucCha int Mã danh mục cha
Bảng 4.41: Mô tả chi tiết lớp “DanhMucs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
Bảng 4.42: Mô tả chi tiết lớp “Xas”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
Bảng 4.43: Mô tả chi tiết lớp “Huyens”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
Bảng 4.44: Mô tả chi tiết lớp “Tinhs”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 Id int Mã tham số
2 TenThamSo string Tên tham số
3 KieuDuLieu string Kiểu dữ liệu tham số
4 GiaTri string Giá trị tham số
Bảng 4.45: Mô tả chi tiết lớp “ThamSos”