KIẾN THỨC NỀN TẢNG
Flutter Framework
Flutter là một framework UI di động do Google phát triển, giúp tạo ra giao diện chất lượng cao cho cả iOS và Android một cách nhanh chóng Nó cho phép lập trình viên và tổ chức sử dụng các mã nguồn có sẵn để tối ưu hóa quá trình phát triển ứng dụng.
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 framework mới do Google phát triển, sử dụng ngôn ngữ lập trình Dart, với kỳ vọng khắc phục những nhược điểm của React Native.
Các ứng dụng phát triển bằng Flutter có giao diện và hiệu suất tương đương với các ứng dụng sử dụng Android SDK, khiến chúng khó phân biệt Chỉ với một số tham số bổ sung, phiên bản iOS của ứng dụng cũng có thể được triển khai dễ dàng.
Flutter có khả năng chạy với tốc độ 60 khung hình trên giây, mang lại trải nghiệm người dùng mượt mà vượt trội so với các ứng dụng được phát triển bằng các framework đa nền tảng khác như React Native và Ionic Những đặc điểm nổi bật của Flutter giúp tối ưu hóa hiệu suất và giao diện người dùng.
• 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
Flutter offers a highly expressive and flexible user interface, featuring a wide range of components that enable the creation of visually stunning designs in both Material Design and Cupertino styles It supports numerous motion APIs and smooth scrolling, enhancing the overall user experience.
Flutter widgets leverage platform-specific features such as scrolling, navigation, icons, and fonts to deliver optimal native performance on both iOS and Android devices.
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 là một giải pháp Visual Studio dành cho các dự án web app mới, cung cấp kiến trúc SOLID và khả năng mở rộng dễ dàng Nó bao gồm nhiều tính năng như quản lý người dùng, chức vụ, phân quyền, audit logging, quản lý cài đặt và hồ sơ người dùng ASP.NET Zero được phát triển dựa 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 giúp tiết kiệm thời gian phát triển nhờ cung cấp các tính năng phổ biến trong các dự án phần mềm, đồng thời tuân thủ kiến trúc SOLID Bên cạnh đó, tốc độ phát triển và khả năng sửa lỗi của nó vượt trội hơn so với các Framework dựa trên Javascript và 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 là dịch vụ lưu trữ hình ảnh miễn phí, cung cấp quy trình sử dụng đơn giản và tài liệu API dễ hiểu, giúp người dùng nhanh chóng triển khai tích hợp cho dự án của mình.
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 là hệ quản trị cơ sở dữ liệu miễn phí, được phát triển từ MySQL, nhằm thay thế công nghệ này Với tính tương thích cao và hiệu suất vượt trội, MariaDB mang lại những lợi ích đáng kể so với MySQL.
2.4.2 Tại sao lại là MariaDB?
MariaDB, được dẫn dắt bởi Michael “Monty” Widenius, là một hệ quản trị cơ sở dữ liệu nổi bật với sự tương thích rộng rãi trên nhiều hệ điều hành như Linux CentOS, Ubuntu và Windows Hệ thống này cung cấp các gói cài đặt đa dạng như tar, zip, MSI và rpm cho cả phiên bản 32bit và 64bit, mang lại hiệu suất vượt trội so với MySQL.
MariaDB ngày càng được nhiều nhà phát triển, bao gồm Wikipedia và Fullstack-Station, ưa chuộng sử dụng Xu hướng này cho thấy MariaDB đang dần thay thế MySQL, hệ quản trị cơ sở dữ liệu mã nguồn mở lâu đời nhất hiệ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 là công nghệ trích xuất dữ liệu tự động từ trang web, giúp tự động hóa quá trình sao chép thông tin mà không cần thao tác thủ công Chỉ cần sử dụng một crawler, người dùng có thể thu thập văn bản, giá cả, hình ảnh và liên kết sản phẩm một cách nhanh chóng, tiết kiệm thời gian so với phương pháp thủ công.
2.5.2 Tại sao lại là Web scraper?
Web scraper miễn phí và không cần cài đặt trên hệ thống Windows, mà là tiện ích tích hợp sẵn trong Chrome, giúp đơn giản hóa quá trình thu thập dữ liệu Nhờ đó, người dùng tiết kiệm được nhiều thời gian và công sức, từ đó có thể tập trung vào việc làm sạch bộ dữ liệu hiệu quả hơn.
• 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, hay còn gọi là Adobe Experience Design, là một công cụ thiết kế chuyên nghiệp được phát triển bởi Adobe Inc., giúp hỗ trợ người dùng trong việc thiết kế website và ứng dụng một cách hiệu quả.
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?
Sử dụng Adobe XD giúp người dùng hiểu rõ quy trình xây dựng Wireframe, từ đó thiết kế giao diện cho ứng dụng Mobile, Web và Landing Page một cách nhanh chóng Giao diện của Adobe XD với ít công cụ cho phép người dùng dễ dàng tìm kiếm và thao tác, ngay cả với những người không chuyên Hơn nữa, Adobe XD cho phép mở nhiều bản vẽ cùng lúc để thiết kế cho nhiều giao diện màn hình khác nhau.
Nếu bạn là lập trình viên hoặc quen thuộc với X-Code, việc chuyển sang Adobe XD sẽ rất dễ dàng do giao diện và cách điều hướng của phần mềm này tương tự như 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 cung cấp các tài nguyên như ký tự, hình ảnh, màu sắc và nhiều nội dung khác, giúp người dùng tiết kiệm thời gian trong việc tạo nội dung cho các dự án Adobe XD.
Prototype xem trước bản vẽ thiết kế rất tiện lợi nhờ vào việc tạo liên kết giữa các artboard và các đố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
3 https://uiuxbeginners.quora.com/How-to-Create-UI-UX-Design-with-Adobe-XD
CHUẨN BỊ DỮ LIỆU
Lựa chọn nền tảng đăng tin
Thông tin chung: batdongsan24h.com.vn [6] là một trang đăng tin mua bán
BĐS lâu đời, được ra mắt vào ngày 28/09/2015 bởi Công ty Cổ Phần Đầu Tư Toàn Hải Phát, nổi bật với ưu điểm là hoạt động sớm tại Việt Nam, cung cấp một lượng thông tin phong phú về thị trường Người dùng có thể đăng tin miễn phí và trải nghiệm tốc độ truy cập nhanh chóng.
Nhược điểm của nền tảng này là không cung cấp API cho các nhà phát triển, dẫn đến việc đăng tin miễn phí tạo ra bộ dữ liệu chất lượng thấp Mặc dù có nhiều thông tin, nhưng số lượng bài đăng lại rất hạn chế.
Nha.chotot.com là trang đăng tin bất động sản mới ra mắt vào ngày 28/06/2017, thuộc Công Ty TNHH Chợ Tốt Trang web này nổi bật với số lượng bài đăng phong phú hơn so với batdongsan24h.com.vn, tốc độ truy cập nhanh và hoàn toàn miễn phí cho người dùng.
Nhược điểm của việc thu thập dữ liệu là thường xuyên lấy thông tin từ các trang khác, dẫn đến chất lượng dữ liệu không cao Hơn nữa, không có API hỗ trợ cho các nhà phát triển, mặc dù số lượng bài đăng lớn nhưng vẫn không đảm bảo tính chính xác và độ tin cậy.
Batdongsan.com.vn là trang web hàng đầu tại Việt Nam chuyên về mua bán bất động sản, được thành lập vào ngày 22/12/2004 bởi Công ty Cổ phần PropertyGuru Việt Nam Với ưu điểm là trang đăng tin lớn nhất và đầu tiên, batdongsan.com.vn cung cấp tốc độ truy cập nhanh chóng Mặc dù là một trang đăng tin trả phí, nhưng việc này giúp lọc dữ liệu hiệu quả, đảm bảo chất lượng thông tin Ngoài ra, số lượng bài đăng trên trang này vượt trội hơn so với các trang khá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
Việc phân tích và lựa chọn trang web để tạo bộ dữ liệu là rất quan trọng, vì nó ảnh hưởng trực tiếp đến quyết định của nhà đầu tư Chất lượng nguồn dữ liệu là tiêu chí hàng đầu trong quá trình lựa chọn Do việc thu thập dữ liệu đòi hỏi nhiều tài nguyên như phần cứng và thời gian, trang batdongsan.com.vn sẽ được ưu tiên để triển khai tạo bộ dữ liệu, đặc biệt tập trung vào Thành phố Hồ Chí Minh.
Quá trình thu thập dữ liệu
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.2.2 Lựa chọn các thông tin của một bài đăng
Một bài đăng cần có các thông tin quan trọng được mô tả chi tiết trong hình bên dưới Tuy nhiên, một số thuộc tính của từng bài đăng có thể không cố định hoặc yêu cầu thao tác đặc biệt, như đã nêu trong 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 sẽ khác nhau
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
15 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
Sau khi xác định các thông tin cần thiết cho bộ dữ liệu, bạn có thể sử dụng Web scraper (tiện ích của Chrome) để cào dữ liệu Quá trình này sẽ được thực hiện tự động dựa trên sơ đồ trang web đã được cài đặt.
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.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 [9] 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ất động sản (BĐS) đóng vai trò quyết định trong khả năng sinh lời, với giá trị BĐS càng cao khi vị trí mang lại lợi ích lớn Mỗi BĐS đều có hai loại vị trí: vị trí tuyệt đối và vị trí tương đối Cả hai loại vị trí này đều quan trọng trong việc xác định giá trị tổng thể của BĐS.
Kích thước, hình thể và diện tích của thửa đất hay lô đất là yếu tố quan trọng, với kích thước tối ưu đáp ứng nhu cầu cụ thể của đa số cư dân trong khu vực.
Địa hình của bất động sản (BĐS) ảnh hưởng lớn đến giá trị của nó, đặc biệt là vị trí cao hay thấp so với các BĐS xung quanh Những khu vực thấp thường xuyên bị ngập nước trong mùa mưa hoặc chịu tác động của triều cường sẽ có giá trị thấp hơn, trong khi những khu vực cao hơn thường có giá trị cao hơn.
Hình thức bên ngoài của bất động sản, bao gồm nhà ở và các công trình xây dựng khác, đóng vai trò quan trọng trong việc xác định giá trị Nếu hai bất động sản có giá xây dựng tương đương, bất động sản nào có kiến trúc phù hợp với thị hiếu sẽ có giá trị cao hơn Ngược lại, những bất động sản không đáp ứng được sở thích của thị trường sẽ có giá trị thấp hơn.
Đặc điểm của đất, bao gồm độ dày lớp bề mặt, tính chất thổ nhưỡng và tính chất vật lý, có ảnh hưởng đáng kể đến giá trị bất động sản (BĐS) Mức độ ảnh hưởng này phụ thuộc vào mục đích sử dụng đất; ví dụ, độ màu mỡ của đất rất quan trọng cho việc sử dụng vào nông nghiệp, nhưng lại không có giá trị lớn khi đất được sử dụng 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
Các bất động sản (BĐS) nằm ở những khu vực thường xuyên chịu ảnh hưởng của thiên tai như bão, lụt, động đất và khí hậu khắc nghiệt có thể gặp nhiều rủi ro Những sự cố này không chỉ gây thiệt hại về tài sản mà còn dẫn đến sự giảm giá trị của BĐS Ngược lại, những khu vực an toàn hơn thường có giá trị BĐS ổn định và tăng trưởng tốt hơn.
Ngoài ra, các yếu tố về pháp lý cũng có ảnh hưởng lớn đến giá trị của một BĐS
Để phân tích và xác định ngưỡng phù hợp cho từng loại hình bất động sản, cần thu thập nhiều dữ liệu Trong nghiên cứu này, việc lọc các bất động sản có giá ảo sẽ chỉ dựa vào các yếu tố cơ bản như giá, diện tích và giá trung bình của cùng loại hình trong khu vực, nhằm tạo ra một bộ lọc đơn giản để loại bỏ những bất động sản không thực.
Sau khi tham khảo ý kiến từ một số nhà môi giới trong khu vực, ngưỡng cao được xác định là từ 70% đến 80%, trong khi ngưỡng thấp dao động từ 25% đến 30% Dựa trên các thông số đã cân nhắc, bộ lọc nhóm đã được quyết định áp dụng.
Để tối ưu hóa giá trị bất động sản, cần loại bỏ những bất động sản có giá theo mét vuông (triệu/m2) cao hơn 80% so với giá trị trung bình của cùng loại hình trong khu vực Mặc dù một số bất động sản có thể nằm ở khu vực trung tâm và có nhiều tiện ích, giá trị của chúng cũng không nên vượt quá 80% so với mức trung bình.
Để loại bỏ các bất động sản có giá bán thấp không hợp lý, cần xác định những BĐS có giá theo mét vuông (triệu/m2) thấp hơn 25% so với giá trị trung bình của cùng loại hình trong khu vực Những BĐS có giá bán thấp thường là do chủ sở hữu gặp vấn đề tài chính cần thanh lý, nhưng thường chỉ giảm giá từ 10-20% so với mặt bằng chung Việc chọn ngưỡng 25% giúp đảm bảo rằng quá trình lọc giá ảo diễn ra hiệu quả và đúng mục đích.
Việc cào dữ liệu từ trang web chỉ đơn thuần là thu thập các bài đăng thô và lưu trữ chúng Tuy nhiên, để phù hợp với đề tài nghiên cứu, cần chuẩn hóa bộ dữ liệu và kết hợp với hai yếu tố của bộ lọc bất động sản ảo, như đã nêu trong bảng 3.1.
• Loại bỏ các bài đăng có giá là “thoả thuận”
• Loại bỏ các bài đăng không có diện tích
• Loại bỏ các bài đăng với địa chỉ không đầy đủ
Để tối ưu hóa việc đánh giá và phân tích bất động sản, cần loại bỏ các bài đăng có mức giá theo m² cao hơn 80% và thấp hơn 25% so với các bất động sản tương tự trong cùng khu vực Đồng thời, các thuộc tính chi tiết của bất động sản sẽ được chuyển thành các nhãn (tags) nhằm hỗ trợ việc tìm kiếm và quyết định một cách hiệu quả hơn.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
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
8 Đăng bài BĐS Thành viên
9 Quản lý bài đăng cá nhân Thành viên
10 So sánh BĐS Thành viên
11 Quản lý ví tiền cá nhân Thành viên
12 Quản lý thông tin cá nhân Thành viên
13 Xem báo cáo cá nhân Thành viên
14 Quản lý bài đăng trên hệ thống Kiểm duyệt viên
15 Xác nhận nạp tiền Kiểm duyệt viên
16 Quản lý người dùng Admin
17 Quản lý gói đăng bài Admin
18 Xem báo cáo tổng quan Admin
19 Quản lý phân quyền Admin
Bảng 4.1: Bảng danh sách yêu cầu khách hàng
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ệ,
22 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
Để đăng bài trên nền tảng, người dùng cần cập nhật đầy đủ thông tin cá nhân (BR-5) Việc kiểm duyệt nội dung chỉ được thực hiện bởi các kiểm duyệt viên hoặc quản trị viên hệ thống (BR-6).
29 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
Bài đăng BR-14 cần cung cấp đầy đủ thông tin bao gồm tên bài đăng, diện tích, giá tiền và địa chỉ Ràng buộc Tĩnh Để thực hiện việc này, người dùng phải đă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
Người dùng cần đăng ký tài khoản để có thể đăng nhập vào hệ thống, nhằm mục đích cấp quyền truy cập cho họ Để thực hiện điều này, cần có những điều kiện tiên quyết nhất định.
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ý”
33 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”
35 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”
37 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
Người dùng thường tìm kiếm thông tin liên quan đến bài đăng để đáp ứng nhu cầu thông tin của mình Mục đích chính là cung cấp những dữ liệu cần thiết mà người dùng đang mong muốn Để đạt được điều này, cần có những điều kiện tiên quyết rõ ràng và phù hợp.
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”
39 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”
41 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 đồ”
44 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”
46 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”
49 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”
52 Hình 4.12: Sơ đồ hoạt động của “Đăng bài”
53 Hình 4.13: Sơ đồ hoạt động của “Chỉnh sửa bài đăng”
54 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”
56 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”
58 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”
60 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
Người dùng có thể xem biểu đồ giá bất động sản theo từng khu vực mong muốn, giúp họ nắm bắt thông tin thị trường một cách dễ dàng Hệ thống được thiết kế để cung cấp dữ liệu chi tiết về giá cả bất động sản tại các khu vực khác nhau, đáp ứng nhu cầu tìm hiểu và so sánh của người dùng.
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”
62 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”
64 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ệ”
67 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”
69 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”
73 Hình 4.24: Sơ đồ hoạt động của “Thêm người dùng mới”
74 Hình 4.25: Sơ đồ hoạt động của “Chỉnh sửa thông tin người dùng”
75 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
Admin có khả năng xem báo cáo tổng thể của người dùng trong toàn hệ thống Mục đích chính của hệ thống là tạo ra báo cáo tổng hợp để cung cấp cái nhìn tổng quát về hoạt động của người dùng Để thực hiện điều này, cần có các điều kiện tiên quyết nhất định.
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ể”
77 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”
79 Hình 4.28: Sơ đồ hoạt động của “Thêm danh mục mới”
80 Hình 4.29: Sơ đồ hoạt động của “Chỉnh sửa danh mục”
81 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”
83 Hình 4.31: Sơ đồ hoạt động của “Thêm thuộc tính mới”
84 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”
87 Hình 4.33: Sơ đồ hoạt động của “Thêm gói bài đăng mới”
88 Hình 4.34: Sơ đồ hoạt động của “Chỉnh sửa thông tin gói bài đăng”
89 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”
Sơ đồ logic
4.7.1 Thiết kế sơ đồ logic
4.7.2 Mô tả sơ đồ logic
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaNguoiDung int Mã người dùng
2 TenTaiKhoan string Tên tài khoản
4 QuyenHan string Quyền hạn của tài khoản
5 HoTen string Họ tên người dùng
6 GioiTinh string Giới tính người dùng
8 SoDT string Số điện thoại người dùng
10 Email string Địa chỉ email người dùng
11 NgayLapTaiKhoan datetime Ngày lập tài khoản
Bảng 4.46: Mô tả chi tiết bảng “Người dùng”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaBaiDang int Mã bài đăng
2 TagLoaiBaiDang string Nhãn loại bài đăng
3 MaDanhMuc int Thời điểm đăng
5 TenBaiDang string Tên bài đăng
6 ThoiDiemDang datetime Thời điểm đăng
16 LuotYeuThich int Lượt yêu thích
17 DiemBaiDang demical Điểm bài đăng
19 TagTimKiem string Nhãn tìm kiếm
22 DoUuTien int Độ ưu tiên
23 FeatureImage string Ảnh đại diện
Bảng 4.47: Mô tả chi tiết bảng “BaiDang”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaDanhMuc int Mã danh mục
2 TenDanhMuc string Tên danh mục
3 Tag string Nhãn danh mục
5 DanhMucCha int Mã danh mục cha
Bảng 4.48: Mô tả chi tiết bảng “DanhMuc”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaThuocTinh 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.49: Mô tả chi tiết bảng “ThuocTinh”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaChiTiet int Mã chi tiết bài đăng
2 MaThuocTinh int Mã thuộc tính
3 MaBaiDang int Mã bài đăng
4 GiaTri string Giá trị thuộc tính
Bảng 4.50: Mô tả chi tiết bảng “ChiTietBaiDang”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaHinhAnh int Mã hình ảnh
3 MaBaiDang int Mã bài đăng
Bảng 4.51: Mô tả chi tiết bảng “HinhAnh”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
Bảng 4.52: Mô tả chi tiết bảng “Xa”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
Bảng 4.53: Mô tả chi tiết bảng “Huyen”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
Bảng 4.54: Mô tả chi tiết bảng “Tinh”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaThamSo 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.55: Mô tả chi tiết bảng “ThamSo”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaGoi 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.56: Mô tả chi tiết bảng “GoiBaiDang”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaNguoiDung int Mã người dùng
2 MaBaiDang int Mã bài đăng
Bảng 4.57: Mô tả chi tiết bảng “BaiGhimYeuThich”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaChiTietHoaDon 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
6 MaBaiDang int Mã bài đăng
7 MaGoi int Mã gói bài đăng
8 MaNguoiDung int Mã người dùng
Bảng 4.58: Mô tả chi tiết bảng “ChiTietHoaDonBaiDang”
STT Tên thuộc tính Loại Ý nghĩa/ghi chú
1 MaGiaoDich int Mã lịch sử giao dịch
2 MaNguoiDung int Mã người dùng
3 MaKiemDuyetVien int Mã kiểm duyệt viên
4 SoTien double Số tiền giao dịch
5 ThoiDiem datetime Thời điểm giao dịch
Bảng 4.59: Mô tả chi tiết bảng “LichSuGiaoDich”
Thiết kế kiến trúc
Hệ thống sử dụng kiến trúc client-server ứng dụng Flutter Framework, ASP.NET Solution và giao thức API để trao đổi thông tin
Hình 4.49: Kiến trúc tổng quát của hệ thống
Flutter được phát triển để hoạt động độc lập với back-end ASP.NET Core Sau khi triển khai, ứng dụng Flutter sẽ hoạt động độc lập trên các nền tảng Android và iOS, kết nối với máy chủ thông qua RESTful API.
In the architecture of an ASP.NET Core Solution, there is no presence of HTML, JavaScript, or CSS code Instead, it solely provides endpoints for authentication based on token codes and utilizes application services through REST APIs.
Bên trong ASP.NET Core Solution, các thành phần được xây dựng dựa trên nguyên tắc SOLID:
• Single Responsibilty Priciple (SRP): mỗi class chỉ nên giữ 1 trách nhiệm duy nhất và một lớp chỉ có một, và chỉ một lý do để thay đổi
• Open/Closed Priciple (OCP): Có thể thoải mái mở rộng 1 class, nhưng không được thay đổi bên trong class đó
Nguyên tắc Thay thế Liskov (LSP) quy định rằng trong một chương trình, các đối tượng của lớp con có thể thay thế cho lớp cha mà không làm ảnh hưởng đến tính chính xác của chương trình.
• Interface Segregation Priciple (ISP): Thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ, với nhiều mục đích cụ thể
The Dependency Inversion Principle (DIP) states that high-level modules should not depend on low-level modules; both should rely on abstractions Additionally, interfaces should not depend on details; rather, the implementation should depend on the interface, ensuring that classes communicate through abstractions rather than concrete implementations.
Thiết kế giao diện
Hình 4.50: Giao diện “Đăng nhập”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Username TextFormField Nhập tên đăng nhập
2 Password TextFormField Nhập mật khẩu Nội dung ở dạng kí tự tròn
3 Quên mật khẩu FlatButton Chuyển đến trang quên
4 Đăng nhập FlatButton Đăng nhập vào hệ thống
Thực hiện khi các thông tin đã được điền đầy đủ
5 Đăng ký FlatButton Tạo tài khoản mới
6 Tiếp tục với tư cách khách FlatButton Truy cập ứng dụng với tư cách khác
Bảng 4.60: Mô tả chi tiết màn hình “Đăng nhập”
Hình 4.51: Giao diện “Đăng ký”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
3 Emial TextFormField Nhập email Định dạng email
4 Tên đăng nhập TextFormField Nhập tên đăng nhập
5 Mật khẩu TextFormField Nhập mật khẩu Nội dung ở dạng kí tự tròn
6 Nhập lại mật khẩu TextFormField Nhập lại mật khẩu Nội dung ở dạng kí tự tròn
7 Đăng ký FlatButton Đăng ký tài khoản
Thực hiện khi các thông tin đã được điền đầy đủ Bảng 4.61: Mô tả chi tiết màn hình “Đăng ký”
4.9.3 Màn hình Quên mật khẩu
Hình 4.52: Giao diện “Quên mật khẩu”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Email TextFormField Nhập email khôi phục Định dạng email
2 Gửi FlatButton Gửi email khôi phục
Thực hiện khi các thông tin đã được điền đầy đủ
Bảng 4.62: Mô tả chi tiết màn hình “Quên mật khẩu”
4.9.4.1 Màn hình Trang chủ chế độ người dùng khách
Hình 4.53: Giao diện “Trang chủ” ở chế độ “Khách”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện việc tìm kiếm
3 Hiển thị bộ lọc nâng cao FlatButton Hiển thị bộ lọc nâng cao Đổi màu nếu sử dụng bộ lọc
4 Bài đăng ListView Danh sách bài đăng
5 LogIn IconButton Đến màn hình đăng
6 Bản đồ BottomTabBar Đến màn hình bản đồ
Bảng 4.63: Mô tả chi tiết màn hình “Trang chủ” ở chế độ “Khách”
Hình 4.54: Giao diện “Trang chủ” khi đã đăng nhập
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện việc tìm kiếm
3 Hiển thị bộ lọc nâng cao FlatButton Hiển thị bộ lọc nâng cao Đổi màu nếu sử dụng bộ lọc
4 Bài đăng ListView Danh sách bài đăng
5 Bản đồ BottomTabBar Đến màn hình bản đồ
6 Bài đăng mới BottomTabBar Đến màn hình đăng bài Cấp người dùng
7 Cá nhân BottomTabBar Đến màn hình cá nhân Cấp người dùng
8 Quản trị BottomTabBar Đến màn hình quản trị Cấp kiểm duyệt viên, admin Bảng 4.64: Mô tả chi tiết màn hình “Trang chủ” khi đã đăng nhập
4.9.4.3 Màn hình Bộ lọc bài đăng
Hình 4.55: Giao diện “Bộ lọc bài đăng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Loại bài DropDownButton Chọn loại bài đăng
2 Giá tiền DropDownButton Chọn và nhập giá tiền
3 Diện tích DropDownButton Chọn và nhập diện tích
4 Địa chỉ TextFormField Nhập địa chỉ
6 Tỉnh DropDownButton Lựa chọn tỉnh/thành
Sau khi chọn, hiện Drop
8 Tên dự án TextFormField Nhập tên dự án
9 Chủ dự án TextFormField Nhập chủ dự án
10 Sử dụng bộ lọc FlatButton Áp dụng bộ
11 Đặt lại giá trị FlatButton Đặt lại giá trị bộ lọc
Bảng 4.65: Mô tả chi tiết màn hình “Bộ lọc bài đăng”
4.9.4.4 Màn hình Chi tiết bài đăng
Hình 4.56: Giao diện “Chi tiết bài đăng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Yêu thích IconButton Đánh dấu là bài đăng yêu thích
2 Location on map IconButton Di chuyển tới vị trí
3 Đơn vị tiền SwitchButton Đổi đơn vị tiền triệu/m2 hoặc tỷ
3 Tag FlatButton Tìm kiếm bài đăng theo tag
4 Bài viết cùng chủ đề GestureDetector Truy cập bài viết cùng chủ đề
5 Điện thoại IconButton Chuyển đến điện thoại
124 và nhập số để gọi
6 Tin nhắn IconButton Chuyển đến tin nhắn
Bảng 4.66: Mô tả chi tiết màn hình “Chi tiết bài đăng”
4.9.5.1 Màn hình Xem bản đồ
Hình 4.57: Giao diện “Xem bản đồ”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm InputDecoration Nhập kinh độ và vĩ độ để tìm kiếm vị trí
Phải nhập theo định dạng “kinh độ, vĩ độ”
2 Loại bản đồ FloatingActionButton Chuyển bản đồ sang
3 Vị trí hiện tại FloatingActionButton Di chuyển đến vị trí hiện tại của thiết bị
Yêu cầu thiết bị phải bật định vị và chia sẻ vị trí với ứng dụng
4 Thông tin bài đăng GestureDetector
Hiển thị thông tin cơ bản về bài đăng và di chuyển đến chi tiết bài đăng
Hiển thị khi người dùng nhấn vào các bài đăng được đánh dấu trên bản đồ
5 Đánh dấu Marker Đánh dấu các vị trí bài đăng
Bài đăng phải còn hạn
6 Thông tin đánh dấu InfoWindow
Hiển thị loạivà giá tiền của bài đăng được đánh dấu
Bảng 4.67: Mô tả chi tiết màn hình “Xem bản đồ”
4.9.5.2 Màn hình Tìm kiếm trên bản đồ
Hình 4.58: Giao diện “Tìm kiếm trên bản đồ”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Danh sách các địa điểm ListView
Hiển thị danh sách các địa điểm khi người dùng tìm kiếm
“kinh độ, vĩ độ” và tìm kiếm
2 Thông tin khu vực Text
Hiển thị tên địa chỉ, xã, huyện, tỉnh và đất nước (nếu có)
Bảng 4.68: Mô tả chi tiết màn hình “Tìm kiếm trên bản đồ”
Hình 4.59: Giao diện “Đăng bài”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tiêu đề TextFormField Nhập tiêu đề bài đăng
2 Tỉnh thành phố DropdownSearch Chọn vào nhập tỉnh thành phố
Chọn quận huyện với tỉnh thành phố tương ứng
4 Chọn xã phường DropDownButton Chọn xã/phường với quận huyện tương ứng
Sau khi chọn chuyển sang màn
5 Địa chỉ TextFormField Nhập địa chỉ cụ thể
6 Chọn phương thức DropDownButton Lựa chọn phương thức
7 Chọn hình thức DropDownButton Lựa chọn hình thức
DropDownButton của hình thức bổ sung (nếu có)
8 Chọn hình thức bổ sung DropDownButton Lựa chọn hình thức bổ sung
9 Diện tích TextFormField Nhập diện tích
11 Một số hình thức bổ sung ExpansionTile Thu hoặc đóng chi tiết bài đăng
Hiện ra list texform hoặc dropdown cho người dùng chọn
12 Chọn gói bài đăng DropDownButton Chọn gói bài đăng
Sau khi chọn hiện ra số button chọn ngày kết thúc
Chọn ngày kết thúc của bài đăng
14 Mô tả TextFormField Nhập mô tả bài đăng
15 Tên dự án TextFormField Nhập tên dự án
16 Chủ dự án TextFormField Nhập chủ dự án
17 Mô tả dự án TextFormField Nhập mô tả dự án
18 Hình ảnh GridView Tập hợp các hình ảnh của bài đăng
19 Thêm hình ảnh IconButton Thêm một hình ảnh cho grid
Sau khi chọn them hình ảnh vào Gridview hình ảnh
Widget Đăng tin với nội dung vừa nhập
Hiển thị dialog hỏi ý người dùng nếu thành công chuyểnn sang màn hình detail của bài đăng Bảng 4.69: Mô tả chi tiết màn hình “Đăng bài”
Hình 4.60: Giao diện “Trang cá nhân”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Hiển thị ảnh đại diện CircleAvatar Hiển thị ảnh đại diện của người dùng
2 Đổi ảnh đại diện FlatButton Đến thư viện ảnh chọn ảnh đổi ảnh đại diện
3 Hiển thị họ tên Text Hiển thị họ tên người dùng
4 Hiển thị chức vụ Text Hiển thị chức vụ người dùng
5 Hiển thị số tiền GestureDetector Hiển thị số tiền và đưa đến trang ví tiền
6 Hiển thị số bài đăng GestureDetector
Hiển thị số bài đăng và đưa tới trang quản lý bài đăng cá nhân
7 Xem thông tin cá nhân FlatButton Đưa đến trang tài khoản của tôi
8 Xem ví tiền FlatButton Đưa đến trang ví tiền
9 Xem thống kê FlatButton Đưa đến trang thống kê
10 Cài đặt FlatButton Đưa đến trang cài đặt
11 Trợ giúp FlatButton Đưa đến trang trợ giúp
12 Danh sách bài ghim FlatButton Đưa đến trang danh sách bài ghim Bảng 4.70: Mô tả chi tiết màn hình “Cá nhân”
4.9.7.1 Màn hình Tài khoản của tôi
Hình 4.61: Giao diện “Tài khoản của tôi”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Hiển thị ảnh đại diện CircleAvatar Hiển thị ảnh đại diện của người dùng
2 Hiển thị họ tên Text Hiển thị họ tên người dùng
3 Hiển thị chức vụ Text Hiển thị chức vụ người dùng
4 Tài khoản Text Hiển thị tên tài khoản
5 Emai Text Hiển thị tên email
6 Điện thoại Text Hiện thị số điện thoại
7 Ngày tham gia Text Hiển thị ngày tham gia
8 Chỉnh sửa thông tin FlatButton Đưa đến trang chỉnh sửa thông tin cá nhân Bảng 4.71: Mô tả chi tiết màn hình “Tài khoản của tôi”
4.9.7.2 Màn hình Chỉnh sửa thông tin cá nhân
Hình 4.62: Giao diện “Chỉnh sửa thông tin cá nhân”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
4 Điện thoại TextField Nhập số điện thoại
5 Lưu thông tin FlatButton Cập nhật thôn tin cá nhân
Chỉ lưu khi các thông tin được
135 nhập đầy đủ Bảng 4.72: Mô tả chi tiết màn hình “Chỉnh sửa thông tin cá nhân”
4.9.7.3 Màn hình Ví tiền của tôi
Hình 4.63: Giao diện “Ví tiền của tôi”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Ví tiền TabBar Đưa đến nạp tiền hoặc xem lịch xử giao dịch
2 Hình momo Image Hiển thị hình momo
3 Hướng dẫn chuyển tiền Text Hiển thị nội dung hướng dẫn chuyển tiền
4 Nạp tiền FlatButton Đưa đến trang nạp tiền
5 Hiển thị bộ GestureDetector Hiển thị bộ loc
Danh sách lịch sử giao dịch
ListView Hiển thị danh sách lịch sử giao dịch
7 Giao dịch GestureDetector Hiển thị chi tiết giao dịch Bảng 4.73: Mô tả chi tiết màn hình “Ví tiền của tôi”
Hình 4.64: Giao diện “Nạp tiền”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Số tiền nạp TextField Nhập số tiền nạp Người dùng chỉ được nhập số
2 Nạp tiền FlatButton Lưu thông tin nạp tiền Số tiền phải lớn hơn 1000 Bảng 4.74: Mô tả chi tiết màn hình “Nạp tiền”
4.9.7.5 Màn hình Bộ lọc lịch sử giao dịch
Hình 4.65: Giao diện “Bộ lọc lịch sử giao dịch”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
Loại lịch sử giao dịch DropDownButton Chọn loại lịch sử giao dịch
2 Thời gian DateRangePicker Chọn khoản thời gian
Sử dụng bộ lọc FlatButton Áp dụng bộ lọc tìm kiếm
4 Đặt lại giá trị FlatButton Đặt lại giá trị bộ lọc
Bảng 4.75: Mô tả chi tiết màn hình “Bộ lọc lịch sử giao dịch”
4.9.7.6 Màn hình Báo cáo thông kê
Hình 4.66: Giao diện “Báo cáo thống kê”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Thống kê TabBar Đưa đến biểu đồ cột hoặc biểu đồ tròn
2 Loại giao dịch DropDownButton Chọn loại giao dịch thống kê
3 Thống kê biểu đồ cột BarChart Thông kê dưới dạng biểu đồ cột
4 Thống kê PieChart Thống kê dòng tiền
Bảng 4.76: Mô tả chi tiết màn hình “Báo cáo thống kê”
Hình 4.67: Giao diện “Cài đặt”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Đổi chế độ nền FlatButton Đổi chế độ nền của ứng dụng
2 Đổi mật khẩu FlatButton Đến màn hình đổi mật khẩu
3 Đăng xuất FlatButton Đăng xuất ứng dụng
Bảng 4.77: Mô tả chi tiết màn hình “Cài đặt”
4.9.7.8 Màn hình Đổi mật khẩu
Hình 4.68: Giao diện “Đổi mật khẩu”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Mật khẩu hiện tại TextFormField Nhập mật khẩu hiện tại Ký tự tròn
2 Mật khẩu mới TextFormField Nhập mật khẩu mới Ký tự tròn
3 Nhập lại mật khẩu mới TextFormField Nhập lại mật khẩu mới Ký tự tròn
Bảng 4.78: Mô tả chi tiết màn hình “Đổi mật khẩu”
4.9.7.9 Màn hình Bài đăng của tôi
Hình 4.69: Giao diện “Bài đăng của tôi”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện việc tìm kiếm
3 Chọn loại tìm kiếm DropDownButton Chọn loại tìm kiếm Đổi loại hình sẽ thay đổi cách tìm kiếm
4 Bài đăng ListView Danh sách bài đăng
5 Bản đồ BottomTabBar Đến màn hình bản đồ
6 Gia hạn ExpansionTile Ẩn/hiện thông tin gia
7 Chọn ngày kết thúc RoundedButtonWidget Chọn ngày cần gia hạn
Sau khi chọn xong hiển thị nút gia hạn
8 Gia hạn RoundedButtonWidget Gia hạn với thông tin đã chọn
9 Chỉnh sửa GestureDetector Chỉnh sửa cho bài đăng
Sau khi nhấn chuyển đến màn hình chỉnh sửa bài đăng
10 Xóa GestureDetector Xóa bài đăng Xóa bài đăng được chọn Bảng 4.79: Mô tả chi tiết màn hình “Bài đăng của tôi”
4.9.7.10 Màn hình Bài ghim yêu thích
Hình 4.70: Giao diện “Bài ghim yêu thích”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện việc tìm kiếm
3 Chọn loại tìm kiếm DropDownButton Chọn loại tìm kiếm Đổi loại hình sẽ thay đổi cách tìm kiếm
4 Bài đăng ListView Danh sách bài đăng
Bấm vào chuyển đến màn hình chi tiết bài đăng Bảng 4.80: Mô tả chi tiết màn hình “Bài ghim yêu thích”
4.9.7.11 Màn hình Biểu đồ giá
Hình 4.71: Giao diện “Biểu đồ giá”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Khu vực Marquee Hiển thị tên khu vực và chọn khu vực khác
2 Bộ lọc InkWell Lọc BĐS theo thuộc tính
3 Danh sách TabBar Chọn loại danh mục
Biểu đồ giá tại khu vực theo danh mục người dùng đã chọn Bảng 4.81: Mô tả chi tiết màn hình “Biểu đồ giá”
4.9.7.12 Màn hình Tra cứu bất động sản và kết quả tra cứu
Hình 4.72: Giao diện “Tra cứu bất động sản”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Đơn vị tiền SwitchButton Đổi đơn vị tiền triệu/m2 hoặc tỷ
2 Số tiền thấp nhất TextFormField Số tiền thấp nhất của
3 Số tiền cao nhất TextFormField Số tiền cao nhất của
BĐS DropdownSearch Chọn loại hình BĐS muốn tìm kiếm
5 Thuộc tính của BĐS ExpansionTile Bộ lọc thuộc tính cho các BĐS
6 Danh sách các quận ExpansionTile
Hiển thị danh sách các quận có chứa BĐS phù hợp
Nhấn vào sẽ mở ra danh sách các xã có chứa BĐS phù hợp
7 Danh sách các xã InkWell Hiển thị danh sách các xã chứa BĐS phù hợp
Nhấn vào để truy cập trang chứa các bài viết liên quan đến thông tin của người dùng Bảng 4.82 cung cấp mô tả chi tiết về màn hình "Tra cứu bất động sản".
4.9.8 Màn hình Quản trị (Chỉ hiển thị với admin và kiểm duyệt viên)
Hình 4.73: Giao diện “Quản trị”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tổng quan tháng Text Hiển thị tháng năm theo thời gian hiện tại
Hiển thị số người dùng mới trong tháng hiện tại
Hiển thị số bài đăng mới trong tháng hiện tại
4 Quản lý người dùng ElevatedButton Di chuyển đến trang quản lý người dùng
Hiển thị khi là admin
5 Quản lý vai trò ElevatedButton Di chuyển đến trang quản lý vai trò
Hiển thị khi là admin
6 Quản lý danh mục ElevatedButton Di chuyển đến trang quản lý danh mục
Hiển thị khi là admin
7 Quản lý gói bài đăng ElevatedButton Di chuyển đến trang quản lý gói bài đăng
Hiển thị khi là admin
8 Quản lý thuộc tính ElevatedButton Di chuyển đến trang quản lý thuộc tính
Hiển thị khi là admin
9 Kiểm duyệt giao dịch ElevatedButton Di chuyển đến trang kiểm duyệt giao dịch
Hiển thị khi là admin hoặc kiểm duyệt viên
Bảng 4.83: Mô tả chi tiết màn hình “Quản trị”
4.9.8.1 Màn hình Quản lý người dùng
Hình 4.74: Giao diện “Quản lý người dùng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện việc tìm kiếm
3 Thêm người dùng IconButton Chuyển đến trang thêm người dùng
4 Danh sách người dùng ListView
Hiển thị danh sách người dùng trong hệ thống
5 Avatar CircleAvatar Ảnh đại diện Hiển thị ảnh mặc
150 định nếu không có ảnh đại diện
6 Tên Text Tên người dùng
7 Email Text Địa chỉ email người dùng Bảng 4.84: Mô tả chi tiết màn hình “Quản lý người dùng”
4.9.8.2 Màn hình Xem thông tin chi tiết người dùng
Hình 4.75: Giao diện “Xem thông tin chi tiết người dùng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Chỉnh sửa IconButton Chỉnh sửa thông tin người dùng
2 Avatar CircleAvatar Ảnh đại diện
3 Tên Text Tên người dùng
4 Vai trò Text Vai trò của người dùng
5 Tài khoản Text Tên tài khoản đăng nhập
6 Kích hoạt Icon Tài khoản có được kích hoạt hay không
Tích xanh khi kích hoạt và dấu x đỏ khi không được kích hoạt
7 Email Text Địa chỉ email
8 Xác nhận email Icon Xác nhận địa chỉ email
9 Điện thoại Text Số điện thoại
10 Ngày tham gia Text Ngày tạo tài khoản
11 Phân quyền ElevatedButton Chỉnh sửa vai trò hoặc quyền cho người dùng
Chuyển hướng đến trang web quản lý
Bảng 4.85: Mô tả chi tiết màn hình “Xem thông tin chi tiết người dùng”
4.9.8.3 Màn hình Thêm mới/Chỉnh sửa thông tin người dùng
Hình 4.76: Giao diện “Thêm mới/Chỉnh sửa thông tin người dùng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
3 Email TextFormField Nhập email Định dạng email
4 Tên đăng nhập TextFormField Nhập tên tài khoản
5 Điện thoại TextFormField Nhập số điện thoại
6 Mật khẩu TextFormField Nhập mật khẩu
Có thể không nhập khi chỉnh sửa
7 Xác nhận TextFormField Nhập lại mật khẩu để Có thể không
153 mật khẩu xác nhận nhập khi chỉnh sửa
8 Vai trò CheckboxListTile Chọn vai trò Không chọn sẽ mặc định là user
9 Kích hoạt Checkbox Kích hoạt/Không kích hoạt tài khoản
Thêm mới/Chỉnh sửa người dùng
Thực hiện khi các thông tin đã được điền đầy đủ Bảng 4.86: Mô tả chi tiết màn hình “Thêm mới/Chỉnh sửa người dùng”
4.9.8.4 Màn hình Quản lý vai trò
Hình 4.77: Giao diện “Quản lý vai trò”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Thêm vai trò IconButton Thêm vai trò mới
Chuyển hướng đến trang web quản lý
2 Danh sách ListView Danh sách vai trò trong hệ thống
3 Tên Text Tên vai trò
4 Ngày tạo Text Ngày vai trò được tạo
5 Tĩnh Container Vai trò ở chế độ tĩnh Vai trò không thể xóa
6 Mặc định Container Vai trò ở chế độ mặc định
Vai trò mặc định khi đăng ký
7 Chỉnh sửa Icon Chỉnh sửa vai trò Chuyển đến trang web quản lý Bảng 4.87: Mô tả chi tiết màn hình “Quản lý vai trò”
4.9.8.5 Màn hình Quản lý danh mục
Hình 4.78: Giao diện “Quản lý danh mục”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện tìm kiếm
3 Thêm danh mục IconButton Di chuyển đến trang tạo danh mục mới
4 Danh sách ListView Danh sách danh mục trong hệ thống
5 Tên Text Tên danh mục
6 Nhãn Text Nhãn của danh mục
7 Trạng thái Text Trạng thái của danh Có 2 trạng thái là
8 Chỉnh sửa Icon Di chuyển đến trang chỉnh sửa danh mục Bảng 4.88: Mô tả chi tiết màn hình “Quản lý danh mục”
4.9.8.6 Màn hình Thêm mới/Chỉnh sửa danh mục
Hình 4.79: Giao diện “Thêm mới/Chỉnh sửa danh mục”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tên TextFormField Nhập tên danh mục
2 Nhãn TextFormField Nhập nhãn danh mục
Chọn danh mục cha (Tối đa 2 lớp)
Danh mục có thể không có danh mục cha
4 Kích hoạt Checkbox Kích hoạt/Không kích hoạt danh mục
Thêm mới/Chỉnh sửa danh mục
Thực hiện khi thông tin điền đầy đủ
Bảng 4.89: Mô tả chi tiết màn hình “Thêm mới/Chỉnh sửa danh mục”
4.9.8.7 Màn hình Quản lý gói bài đăng
Hình 4.80: Giao diện “Quản lý gói bài đăng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện tìm kiếm
3 Thêm gói bài đăng IconButton Di chuyển đến trang tạo gói bài đăng mới
4 Danh sách ListView Danh sách các gói bài đăng trong hệ thống
5 Tên Text Tên gói bài đăng
6 Phí Text Phí của gói bài đăng
7 Trạng thái Text Trạng thái của gói bài đăng
Di chuyển đến trang chỉnh sửa gói bài đăng
Bảng 4.90: Mô tả chi tiết màn hình “Quản lý gói bài đăng”
4.9.8.8 Màn hình Thêm mới/Chỉnh sửa gói bài đăng
Hình 4.81: Giao diện “Thêm mới/Chỉnh sửa gói bài đăng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tên TextFormField Nhập tên gói bài đăng
2 Phí TextFormField Nhập phí gói bài đăng
3 Độ ưu tiên TextFormField Nhập độ ưu tiên gói bài đăng (1-10)
Nếu không nhập mặc định là 1
4 Thời gian tối thiểu TextFormField
Nhập thời gian tối thiểu của gói bài đăng (1-365)
Nếu không nhập mặc định là 1
5 Mô tả TextFormField Nhập mô tả gói bài
Kích hoạt/Không kích hoạt gói bài đăng
Thêm mới/Chỉnh sửa gói bài đăng
Thực hiện khi các thông tin đã được điền đầy đủ Bảng 4.91: Mô tả chi tiết màn hình “Thêm mới/Chỉnh sửa gói bài đăng”
4.9.8.9 Màn hình Quản lý thuộc tính
Hình 4.82: Giao diện “Quản lý thuộc tính”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm
2 Search IconButton Thực hiện việc tìm kiếm
3 Thêm thuộc tính IconButton Di chuyển đến trang tạo thuộc tính mới
4 Danh sách ListView Danh sách các thuộc tính trong hệ thống
5 Tên Text Tên thuộc tính
6 Kiểu dữ liệu Text Kiểu dữ liệu của thuộc tính
7 Trạng thái Text Trạng thái của thuộc tính
8 Chỉnh sửa Icon Di chuyển đến trang chỉnh sửa thuộc tính Bảng 4.92: Mô tả chi tiết màn hình “Quản lý thuộc tính”
4.9.8.10 Màn hình Thêm mới/Chỉnh sửa thuộc tính
Hình 4.83: Giao diện “Thêm mới/Chỉnh sửa thuộc tính”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tên TextFormField Nhập tên thuộc tính
2 Kiểu dữ liệu DropdownButton Chọn kiểu dữ liệu cho thuộc tính mới
3 Kích hoạt Checkbox Kích hoạt/Không kích hoạt thuộc tính
Thêm mới/Chỉnh sửa thuộc tính
Thực hiện khi thông tin đủ Bảng 4.93: Mô tả chi tiết màn hình “Thêm mới/Chỉnh sửa thuộc tính”
4.9.8.11 Màn hình Kiểm duyệt giao dịch
Hình 4.84: Giao diện “Kiểm duyệt giao dịch”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Hiển thị bộ lọc nâng cao GestureDetector Hiển thị bộ loc
2 Giao dịch ListView Danh sách Giao dịch
3 Nội dung giao dịch ExpansionTile Hiển thị nội dung giao dịch
Chọn vào icon để hiển thị thêm thông tin
4 Duyệt nạp tiền FlatButton Kiểm duyệt nạp tiền
Người dùng đã chuyển tiền qua momo
Bảng 4.94: Mô tả chi tiết màn hình “Kiểm duyệt giao dịch”
4.9.8.12 Màn hình Quản lý bài đăng
Hình 4.85: Giao diện “Quản lý bài đăng”
STT Tên Kiểu Chức năng/Biến cố Ghi chú
1 Tìm kiếm TextFormField Nhập nội dung tìm kiếm
2 Search IconButton Thực hiện việc tìm kiếm
3 Chọn loại tìm kiếm DropDownButton Chọn loại tìm kiếm Đổi loại hình sẽ thay đổi cách tìm kiếm
4 Bài đăng ListView Danh sách bài đăng
5 Bản đồ BottomTabBar Đến màn hình bản đồ
6 Gia hạn ExpansionTile Ẩn/hiện thông tin gia hạn
RoundedButton Widget Chọn ngày cần gia hạn
Sau khi chọn xong hiển thị nút gia hạn
Gia hạn với thông tin đã chọn
9 Chỉnh sửa GestureDetector Chỉnh sửa cho bài đăng
Sau khi nhấn chuyển đến màn hình chỉnh sửa bài đăng
10 Xóa GestureDetector Xóa bài đăng Xóa bài đăng được chọn Bảng 4.95: Mô tả chi tiết màn hình “Quản lý bài đăng”