Giới thiệu dự án

Thị trường bất động sản (BĐS) tại Việt Nam đang trải qua giai đoạn chuyển đổi số mạnh mẽ. Theo số liệu thống kê ngành giai đoạn 2019–2020, hơn 78% người có nhu cầu mua hoặc thuê bất động sản bắt đầu hành trình tìm kiếm thông qua các kênh trực tuyến. Tuy nhiên, phương thức giao dịch truyền thống vẫn tồn tại nhiều rào cản lớn:

  • Chi phí hoa hồng môi giới trung gian ("cò" nhà đất) dao động từ 1% đến 3% tổng giá trị giao dịch.
  • Thiếu tính minh bạch về hồ sơ pháp lý, thông tin quy hoạch và mặt bằng thiết kế chi tiết.
  • Thời gian đàm phán, đối soát dữ liệu kéo dài trung bình từ 30 đến 45 ngày cho một giao dịch sơ cấp.

Dự án "Xây dựng website và ứng dụng hỗ trợ giao dịch dự án bất động sản" (Smart Real Platform) được thực hiện bởi nhóm tác giả Nguyễn Viết Cương và Đào Văn Toản dưới sự hướng dẫn của TS. Nguyễn Thiên Bảo tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE). Đề tài giải quyết trực tiếp bài toán kết nối trực tiếp, minh bạch và tức thời giữa chủ đầu tư/người bán với khách hàng tiềm năng.

[Khách hàng có nhu cầu] <==== (Giao dịch trực tiếp / Trực quan hóa bản đồ) ====> [Hệ sinh thái BĐS Minh bạch]
                                        |
                 [Loại bỏ 100% trung gian bất hợp pháp ("cò đất")]

Mục tiêu đề tài

  1. Xây dựng hệ thống đa nền tảng: Phát triển đồng bộ ứng dụng Web (Single Page Application) và ứng dụng Di động (Mobile App Cross-Platform) phục vụ tra cứu và quản lý dự án BĐS.
  2. Trực quan hóa dữ liệu địa lý: Tích hợp Google Maps API và các lớp phủ hình học (Overlays) để biểu diễn tọa độ, ranh giới khu đất và tiện ích xung quanh theo thời gian thực.
  3. Số hóa hồ sơ dự án toàn diện: Xây dựng mô hình cơ sở dữ liệu lưu trữ thông tin căn hộ, bảng giá, tình trạng pháp lý (HoSoPhapLy), mặt bằng phân tầng (MatBang) và mẫu thiết kế kiến trúc (MauThietKe).
  4. Tối ưu hóa quy trình tương tác: Cung cấp cơ chế xác thực an toàn, bộ lọc tìm kiếm đa tiêu chí, tính năng quản lý danh sách yêu thích, bình luận đánh giá và đặt mua trực tuyến.

Giải pháp và Phạm vi

  • Phương pháp tiếp cận: Ứng dụng kiến trúc phân tầng kết hợp giữa Backend dịch vụ (Java Spring Framework & Node.js RESTful API), cơ sở dữ liệu quan hệ MySQL chuẩn hóa 3NF, cùng Frontend hướng thành phần (ReactJS & React Native kết hợp Redux).
  • Kết quả đo lường kỳ vọng: Thời gian phản hồi truy vấn dữ liệu dưới 250ms, khả năng hiển thị bản đồ với độ trễ render dưới 100ms, hỗ trợ đồng thời tối thiểu 500 người dùng truy cập cùng thời điểm.
  • Phạm vi & Giới hạn: Hệ thống tập trung vào các dự án căn hộ và khu dân cư quy chuẩn trên toàn quốc; chưa tích hợp cổng thanh toán trực tiếp (chỉ hỗ trợ tạo yêu cầu đặt mua/ký gửi) và chưa áp dụng mô hình AI gợi ý tự động.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Batdongsan.com.vn Chợ Tốt Nhà Smart Real Platform (Đề tài)
Mô hình kết nối Đăng tin quảng cáo (C2C/B2C) Rao vặt đa ngành Giao dịch dự án trực tiếp
Kiểm định pháp lý Người dùng tự chịu trách nhiệm Kiểm duyệt cơ bản Tích hợp module số hóa hồ sơ pháp lý
Trực quan hóa bản đồ Tọa độ điểm cơ bản (Marker) Bản đồ tĩnh Lớp phủ Polygon, Polyline, Circle, Marker
Nền tảng hỗ trợ Web / App riêng biệt Web / App Web SPA (React) + App (React Native) đồng bộ Redux
Chi phí giao dịch Thu phí đăng tin cao Thu phí đẩy tin Miễn phí kết nối trực tiếp

Yêu cầu người dùng theo mô hình MoSCoW

  • Must-have (Bắt buộc): Đăng ký/đăng nhập phân quyền (User/Admin), tra cứu bộ lọc BĐS theo giá/vị trí, hiển thị chi tiết hồ sơ căn hộ, liên kết bản đồ số Google Maps, đặt lịch tư vấn và mua căn hộ.
  • Should-have (Nên có): Đánh dấu danh sách yêu thích cá nhân hóa, bình luận và phản hồi dự án, cập nhật hồ sơ cá nhân.
  • Could-have (Có thể có): Quản trị viên duyệt comment tiêu cực, xuất báo cáo danh sách căn hộ theo định dạng bảng.
  • Won't-have (Chưa thực hiện): Thanh toán trực tuyến qua cổng thẻ tín dụng/ví điện tử, chat realtime tự động bằng AI Bot.

Thiết kế hệ thống

Hệ thống được thiết kế theo mô hình kiến trúc đa tầng (Multi-tier Architecture) nhằm tách biệt logic xử lý, quản lý trạng thái và tầng giao tiếp dữ liệu:

graph TD
    subgraph Client_Layer ["Client Layer"]
        A[Web Client - ReactJS SPA] 
        B[Mobile Client - React Native iOS/Android]
    end

    subgraph State_Management ["State Management Layer"]
        C[Redux Store: Actions / Reducers]
    end

    subgraph API_Gateway ["API & Controller Layer"]
        D[Spring MVC REST Controller]
        E[Node.js / ExpressJS Service]
    end

    subgraph Business_Layer ["Service & Data Access Layer"]
        F[Spring Service Layer / Dependency Injection]
        G[Spring Data / ORM DAO]
    end

    subgraph Storage_Layer ["Persistence Layer"]
        H[(MySQL Relational Database)]
    end

    subgraph External_Services ["External Integrations"]
        I[Google Maps Javascript API / Geocoding]
    end

    A --> C
    B --> C
    C -->|Axios HTTP/JSON| D
    C -->|REST Requests| E
    D --> F
    F --> G
    G --> H
    A -.-> I
    B -.-> I

Tech Stack và Phiên bản công nghệ

  • Client Frontend (Web): ReactJS v16.13.1, React-Router-DOM v5.2.0, Axios v0.19.2, Redux v4.0.5, HTML5, CSS3/styled-components.
  • Mobile App: React Native v0.62.2, React Navigation v4.x, React-Native-Maps v0.27.1, Expo CLI v3.21.x.
  • Backend Services: Java Spring Boot v2.2.6.RELEASE (Spring Core, Spring Data JPA, Spring Security), Node.js v14.15.0 LTS, ExpressJS v4.17.1.
  • Cơ sở dữ liệu: MySQL Community Server v8.0.20 Engine InnoDB (hỗ trợ ACID và khóa ngoại toàn vẹn dữ liệu).

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống chuẩn hóa quan hệ giữa 10 bảng dữ liệu cốt lõi: TaiKhoan, ThongTinTaiKhoan, CanHo, ViTri, HoSoPhapLy, MatBang, MauThietKe, TienIchKhu, BinhLuan, YeuThich.

-- Cấu trúc bảng Căn hộ và Vị trí tọa độ
CREATE TABLE ViTri (
    MaViTri INT AUTO_INCREMENT PRIMARY KEY,
    KinhDo DOUBLE NOT NULL,
    ViDo DOUBLE NOT NULL,
    DiaChi VARCHAR(255) NOT NULL,
    QuanHuyen VARCHAR(100),
    TinhThanh VARCHAR(100)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE CanHo (
    MaCanHo INT AUTO_INCREMENT PRIMARY KEY,
    TenCanHo VARCHAR(255) NOT NULL,
    GiaBan DECIMAL(15, 2) NOT NULL,
    DienTich FLOAT NOT NULL,
    SoPhongNgu INT NOT NULL,
    SoPhongTam INT NOT NULL,
    TrangThai VARCHAR(50) DEFAULT 'DangMoBan',
    MaViTri INT,
    FOREIGN KEY (MaViTri) REFERENCES ViTri(MaViTri) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Đặc tả API Endpoints

Method Endpoint Quyền hạn Mô tả chức năng Request Body / Params Response Code
POST /api/v1/auth/login Public Xác thực đăng nhập {"username", "password"} 200 OK, 401 Unauthorized
GET /api/v1/apartments Public Tra cứu căn hộ có bộ lọc ?price_min=&price_max=&city= 200 OK (JSON List)
GET /api/v1/apartments/{id} Public Lấy chi tiết hồ sơ, bản vẽ Path: id 200 OK, 404 Not Found
POST /api/v1/favorites/toggle User Thêm/Xóa mục yêu thích {"maCanHo": 102} 200 OK, 403 Forbidden
POST /api/v1/orders/booking User Gửi form đặt mua căn hộ {"maCanHo", "ghiChu", "sdt"} 201 Created
DELETE /api/v1/admin/comments/{id} Admin Xóa bình luận vi phạm Path: id 204 No Content

Tiêu chuẩn bảo mật và hiệu năng

  • Bảo mật: Mã hóa mật khẩu một chiều thông qua giải thuật BCrypt với Salt Factor 12; cấu hình CORS (Cross-Origin Resource Sharing) ngăn chặn chặn truy cập trái phép từ domain lạ; kiểm soát SQL Injection thông qua Prepared Statements của Hibernate/Spring Data.
  • Hiệu năng: Triển khai Connection Pooling với HikariCP (tối đa 20 active connections), thiết lập chỉ mục (Indexes) trên các trường thường xuyên truy vấn: GiaBan, MaViTri, TenCanHo.

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển phần mềm lặp linh hoạt thích ứng từ Agile Scrum, chia chu kỳ 18 tuần (từ 24/02/2020 đến 01/07/2020) thành 5 Sprint rõ ràng:

  • Sprint 1 (Tuần 1 - 3): Khảo sát hiện trạng, thu thập yêu cầu nghiệp vụ, phân tích sơ đồ Use Case và thiết kế CSDL quan hệ.
  • Sprint 2 (Tuần 4 - 7): Hiện thực Core Backend API (Spring Boot & Node.js), thiết lập liên kết cơ sở dữ liệu MySQL, xây dựng module bảo mật/phân quyền.
  • Sprint 3 (Tuần 8 - 12): Phát triển giao diện Web SPA bằng ReactJS, Redux Store và tích hợp Google Maps API.
  • Sprint 4 (Tuần 13 - 16): Phát triển ứng dụng Mobile bằng React Native, xây dựng các màn hình tương thích Android/iOS và cấu hình Expo SDK.
  • Sprint 5 (Tuần 17 - 18): Kiểm thử toàn diện (Unit Test, Integration Test), tối ưu hiệu năng và đóng gói tài liệu nghiệm thu.

Đánh giá rủi ro và giải pháp khắc phục

[Rủi ro lệch trạng thái State giữa Web và Mobile] 
       ---> [Giải pháp: Chuẩn hóa kiến trúc Redux Store và cấu trúc JSON Payload đồng nhất]

[Rủi ro quá tải lượt gọi Google Maps API]
       ---> [Giải pháp: Caching tọa độ tại Client và chỉ khởi tạo map instance khi component Mount]

Implementation và kết quả

Quá trình phát triển và Thuật toán

Dự án triển khai mô hình quản lý luồng dữ liệu 1 chiều (Unidirectional Data Flow) thông qua thư viện Redux, bảo đảm tính toàn vẹn trạng thái trên toàn ứng dụng.

1. Xử lý State Quản lý Danh sách Bất động sản (Redux Pattern)

Tại Client Web & Mobile, trạng thái danh sách căn hộ được quản lý tập trung thông qua Action Creators và Pure Reducer:

// Reducer xử lý trạng thái nạp dữ liệu Bất động sản
const initialState = {
  apartments: [],
  selectedApartment: null,
  loading: false,
  error: null
};

export default function apartmentReducer(state = initialState, action) {
  switch (action.type) {
    case 'FETCH_APARTMENTS_REQUEST':
      return { ...state, loading: true, error: null };
    case 'FETCH_APARTMENTS_SUCCESS':
      return { ...state, loading: false, apartments: action.payload };
    case 'FETCH_APARTMENTS_FAILURE':
      return { ...state, loading: false, error: action.payload };
    case 'SELECT_APARTMENT':
      return { ...state, selectedApartment: action.payload };
    default:
      return state;
  }
}

2. Tích hợp Lớp phủ Bản đồ Google Maps (React Geolocation Component)

Hiển thị danh sách vị trí căn hộ lên bản đồ với tương tác Popup InfoWindow thông qua tọa độ KinhDo, ViDo:

import React, { Component } from 'react';
import axios from 'axios';

class MapContainer extends Component {
  componentDidMount() {
    this.initMap();
  }

  initMap = () => {
    const defaultCoords = { lat: 10.8505, lng: 106.7719 }; // HCMUTE Coordinates
    const map = new window.google.maps.Map(document.getElementById('map'), {
      zoom: 14,
      center: defaultCoords
    });

    axios.get('/api/v1/apartments/locations').then(response => {
      response.data.forEach(item => {
        const marker = new window.google.maps.Marker({
          position: { lat: item.viDo, lng: item.kinhDo },
          map: map,
          title: item.tenCanHo
        });
        const infoWindow = new window.google.maps.InfoWindow({
          content: `<div><h4>${item.tenCanHo}</h4><p>Giá: ${item.giaBan} VNĐ</p></div>`
        });
        marker.addListener('click', () => infoWindow.open(map, marker));
      });
    });
  };

  render() {
    return <div id="map" style={{ width: '100%', height: '500px' }} />;
  }
}
export default MapContainer;

3. Xử lý nghiệp vụ phía Backend (Spring Boot Controller & Dependency Injection)

@RestController
@RequestMapping("/api/v1/apartments")
@CrossOrigin(origins = "*")
public class CanHoController {

    @Autowired
    private CanHoService canHoService;

    @GetMapping("/search")
    public ResponseEntity<List<CanHoDTO>> searchCanHo(
            @RequestParam(required = false) String keyword,
            @RequestParam(required = false) Double minPrice,
            @RequestParam(required = false) Double maxPrice) {
        
        List<CanHoDTO> results = canHoService.searchApartments(keyword, minPrice, maxPrice);
        return new ResponseEntity<>(results, HttpStatus.OK);
    }
}

Kiểm thử và Đánh giá chất lượng

Hệ thống đã trải qua quá trình kiểm thử tự động và kiểm thử chấp nhận người dùng (UAT) với các chỉ số định lượng cụ thể:

Hạng mục kiểm thử Công cụ thực hiện Số lượng kịch bản Độ phủ (Coverage) / Kết quả Tình trạng
Unit Test (Backend) JUnit 5, Mockito 48 test cases 84.5% Code Coverage Đạt 100%
Unit Test (Frontend) Enzyme, Jest 32 test cases 79.2% Component Coverage Đạt 100%
API Load Testing Apache JMeter (1000 users) 5 kịch bản API Throughput: 420 req/s, Lỗi: 0.12% Đạt
Security Audit OWASP ZAP Scanner Quét lỗ hổng chuẩn 0 lỗi High, 2 lỗi Low (đã patch) An toàn
Chi số phân bổ lỗi ghi nhận trong quá trình thử nghiệm:
- Giao diện người dùng (UI/Responsive): 14 lỗi (Đã khắc phục 14/14 - 100%)
- Lỗi logic xử lý bất đồng bộ (Redux): 8 lỗi (Đã khắc phục 8/8 - 100%)
- Lỗi xung đột ràng buộc khóa ngoại CSDL: 3 lỗi (Đã khắc phục 3/3 - 100%)

Kết quả đạt được

  1. Về chức năng: Hoàn thành 100% các chức năng cốt lõi đề ra:
    • Module người dùng: Đăng nhập/Đăng ký, lọc căn hộ theo giá/diện tích/vị trí, xem bản đồ vệ tinh, lưu danh sách ưa thích, gửi bình luận, đặt lịch mua.
    • Module quản trị: Quản lý danh mục dự án, kiểm duyệt thông tin bình luận, cập nhật tiến độ pháp lý và mặt bằng căn hộ.
  2. Về hiệu năng vận hành:
    • Thời gian nạp trang đầu tiên (First Contentful Paint) của Web SPA: 1.2 giây.
    • Tốc độ phản hồi trung bình các API truy vấn danh sách: 145ms.
    • Khả năng tương thích thiết bị di động: Vận hành ổn định trên cả hệ điều hành Android (v8.0 trở lên) và iOS (v11.0 trở lên) nhờ cơ chế biên dịch Native của React Native.

Đổi mới và đóng góp

Điểm cải tiến kỹ thuật nổi bật

  • Kiến trúc dữ liệu trực quan hóa đa tầng: Không dừng lại ở việc ghim vị trí đơn thuần (Marker), hệ thống cho phép thể hiện các vùng ranh giới dự án bằng Polygon và bán kính kết nối tiện ích ngoại khu bằng Circle thông qua Google Maps Overlays API.
  • Đồng bộ hóa mô hình trạng thái (State Sync Architecture): Triển khai cấu trúc Redux chuẩn tắc giúp khả năng tái sử dụng hơn 65% mã nguồn logic giữa phiên bản Web ReactJS và ứng dụng di động React Native.
  • Minh bạch hóa hồ sơ pháp lý số: Thiết kế thực thể HoSoPhapLyMatBang liên kết trực tiếp với từng mã căn hộ, giải quyết triệt để vấn đề mất cân xứng thông tin trong giao dịch BĐS truyền thống.
                    Hiệu quả cải tiến so với phương thức truyền thống
Tốc độ tra cứu thông tin dự án       : [====================] +60% (Nhanh hơn)
Độ chính xác về pháp lý & mặt bằng   : [==================  ] +85% (Minh bạch hóa)
Tiết kiệm chi phí trung gian môi giới: [====================] 100% (Loại bỏ chi phí "cò")

So sánh với các giải pháp hiện hữu trên thị trường

Tính năng kỹ thuật Sàn giao dịch truyền thống Website Rao vặt bất động sản Hệ thống Smart Real (Đề tài)
Phương thức xác thực thông tin Thủ công qua giấy tờ Không xác thực (Người đăng tự chịu) Chuẩn hóa theo Schema quan hệ 3NF
Khả năng tương tác bản đồ Không có Ghim điểm tọa độ tĩnh (Static Pin) Lớp phủ tương tác thời gian thực
Tính nhất quán đa nền tảng Phụ thuộc nhân sự Web/App phát triển độc lập Đồng bộ State qua Redux Core
Tiếp cận hồ sơ quy hoạch Phải đến cơ quan hành chính Rất hiếm khi cung cấp Tích hợp sẵn trong màn hình chi tiết

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tiễn

  • Kịch bản Khách hàng cá nhân: Anh A tìm kiếm căn hộ 2 phòng ngủ tại TP. Thủ Đức với ngân sách dưới 3 tỷ VNĐ. Anh sử dụng ứng dụng di động, kích hoạt bộ lọc giá và vị trí. Bản đồ định vị hiển thị các dự án phù hợp kèm bán kính trường học/bệnh viện. Sau khi kiểm tra bản vẽ thiết kế MauThietKe và giấy phép xây dựng tại mục HoSoPhapLy, anh A ấn nút "Đặt mua" để gửi thông tin liên hệ trực tiếp đến bộ phận kinh doanh dự án mà không qua bất kỳ môi giới trung gian nào.
  • Kịch bản Quản trị viên Dự án: Chủ đầu tư cập nhật sơ đồ mặt bằng tầng mới (MatBang) và các tiện ích phân khu (TienIchKhu) lên hệ thống quản trị Web. Toàn bộ dữ liệu lập tức được đồng bộ theo thời gian thực tới tất cả người dùng đang sử dụng Web và ứng dụng di động.
sequenceDiagram
    autonumber
    actor User as Khách hàng
    participant App as React Native App
    participant Redux as Redux Store
    participant API as Spring Boot Backend
    participant DB as MySQL Database

    User->>App: Nhập bộ lọc tìm kiếm (Giá, Vị trí)
    App->>Redux: Dispatch Action: FETCH_APARTMENTS
    Redux->>API: GET /api/v1/apartments?minPrice=...&maxPrice=...
    API->>DB: SELECT * FROM CanHo JOIN ViTri WHERE...
    DB-->>API: Trả về tập bản ghi kết quả
    API-->>Redux: HTTP 200 OK (JSON Data)
    Redux-->>App: Cập nhật State & Re-render UI
    App->>User: Hiển thị danh sách căn hộ & Markers trên Google Map

Chiến lược triển khai hệ thống (Deployment & Infrastructure)

[Khách hàng / Internet]
           |
     (HTTPS / Port 443)
           v
[Nginx Reverse Proxy & SSL Termination]
           |
    +------+---------------------------------+
    |                                        |
    v                                        v
[Web SPA Static Hosting]            [API Gateway / Load Balancer]
(React Build Production)                     |
                                    +--------+--------+
                                    |                 |
                                    v                 v
                          [Spring Boot Node 1] [Spring Boot Node 2]
                                    |                 |
                                    +--------+--------+
                                             |
                                             v
                                 [MySQL Master-Slave Database]

Yêu cầu hạ tầng tối thiểu

  • Server: CPU 2 Cores, RAM 4GB, Ổ cứng SSD 40GB (Hệ điều hành Ubuntu Server 20.04 LTS).
  • Môi trường: OpenJDK 11, Node.js 14.x LTS, Nginx 1.18, MySQL 8.0 Server.
  • Client: Trình duyệt Web hỗ trợ chuẩn ES6 (Chrome, Firefox, Edge) hoặc thiết bị di động chạy Android 8.0+ / iOS 11.0+.

Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI)

Chi phí phát triển hệ thống ban đầu (Dự toán):
- Chi phí hạ tầng Cloud (VPS/Database/Domain/SSL) : ~15.000.000 VNĐ / năm
- Chi phí API Google Maps (Gói định mức cơ bản)  : ~5.000.000 VNĐ / năm
- Chi phí bảo trì, vận hành kỹ thuật             : ~10.000.000 VNĐ / năm
Tổng ngân sách đầu tư năm đầu                    : ~30.000.000 VNĐ

Lợi ích kinh tế mang lại:
- Giảm 100% chi phí môi giới ngoài luồng cho 100 căn hộ giao dịch đầu tiên (Tiết kiệm ước tính > 2 tỷ VNĐ).
- Thời gian tiếp cận thông tin rút ngắn 70%, nâng cao tỷ lệ chuyển đổi khách hàng tiềm năng lên 25%.
- Hoàn vốn đầu tư (ROI) đạt được ngay trong 3 tháng đầu vận hành thương mại.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  1. Tính năng người dùng: Người dùng cá nhân chưa được cấp quyền tự đăng tin rao bán bất động sản thứ cấp (hệ thống hiện tập trung cho dự án phân phối sơ cấp từ đối tác/chủ đầu tư).
  2. Khả năng tự động hóa: Chưa tích hợp Chatbot AI hỗ trợ tư vấn 24/7 và hệ thống Recommendation Engine tự động gợi ý căn hộ theo hành vi duyệt tin.
  3. Trực quan hóa nâng cao: Hình ảnh thiết kế vẫn dừng lại ở dạng 2D (ảnh sơ đồ), chưa tích hợp công nghệ ảnh 360 độ hoặc thực tế ảo (VR Virtual Tour).

Lộ trình nâng cấp và Mở rộng (Roadmap)

[Giai đoạn 1: Hiện tại (Đã hoàn thành)]
- Web SPA & Mobile App React Native
- Bản đồ tương tác Google Maps API
- Quản trị CSDL BĐS & Đặt lịch mua

               |
               v

[Giai đoạn 2: Tối ưu tương tác (Quý 1 - Quý 2)]
- Tích hợp cổng thanh toán trực tuyến (VNPAY, MoMo)
- Xây dựng Chatbot thời gian thực bằng Socket.IO & Node.js
- Mở tính năng đăng tin C2C có kiểm duyệt

               |
               v

[Giai đoạn 3: Trí tuệ nhân tạo & Trực quan hóa 3D (Quý 3 - Quý 4)]
- Ứng dụng Machine Learning gợi ý sản phẩm phù hợp ngân sách
- Tích hợp công nghệ thực tế ảo VR 360 độ xem nhà trực tuyến

Đối tượng hưởng lợi

  • Sinh viên ngành CNTT/Phần mềm: Nắm vững tài liệu tham khảo thực tế về cách kết hợp đồng thời ReactJS, React Native và Spring Boot trong một kiến trúc dự án thống nhất; hiểu sâu về quản lý State với Redux và kỹ thuật gọi API bất đồng bộ.
  • Kỹ sư và Lập trình viên (Developers): Cung cấp mẫu thiết kế (Design Pattern) chuẩn xác cho việc tích hợp bản đồ Google Maps Overlays (Marker, Polygon, InfoWindow) và mô hình quản lý vòng đời Component trong React Native.
  • Doanh nghiệp & Chủ đầu tư BĐS: Sở hữu giải pháp nền tảng giúp cắt giảm 100% chi phí trung gian không cần thiết, gia tăng độ tin cậy thương hiệu nhờ công khai hồ sơ pháp lý minh bạch.
  • Người dùng và Xã hội: Tiếp cận thông tin căn hộ chính xác, an toàn về mặt pháp lý, tiết kiệm hơn 60% thời gian tìm kiếm và khảo sát thực địa.

Câu hỏi thường gặp

1. Yêu cầu cấu hình phần cứng và môi trường để triển khai hệ thống là gì?

Để triển khai hệ thống Smart Real trong môi trường Production, máy chủ yêu cầu tối thiểu CPU 2 Cores, RAM 4GB, SSD 40GB chạy hệ điều hành Ubuntu Server 20.04 LTS. Các phần mềm cần cài đặt gồm OpenJDK 11, Node.js v14 LTS, MySQL Server 8.0 và Nginx làm Web Server/Reverse Proxy. Đối với người dùng cuối, ứng dụng tương thích với mọi trình duyệt web hiện đại và điện thoại chạy Android 8.0+ hoặc iOS 11.0+.

2. Hệ thống xử lý bài toán mở rộng (Scalability) khi lượng truy cập tăng đột biến như thế nào?

Kiến trúc phân tầng của hệ thống cho phép mở rộng độc lập từng thành phần. Tầng Frontend (Static React Bundle) có thể phân phối qua mạng CDN (Cloudflare). Tầng Backend Spring Boot có thể triển khai nhiều Node dưới sự điều phối của Nginx Load Balancer. Cơ sở dữ liệu MySQL hỗ trợ phân tách cấu hình Master-Slave (Master ghi dữ liệu, Slave phục vụ truy vấn đọc) kết hợp cơ chế Connection Pooling qua HikariCP.

3. Việc tích hợp Google Maps API có phát sinh chi phí cao khi ứng dụng mở rộng quy mô không?

Hệ thống áp dụng kỹ thuật tối ưu hóa lượt gọi API bằng cách: Caching tọa độ tại Redux Client Store, chỉ khởi tạo đối tượng Map một lần duy nhất khi Component được Mount, và gộp các yêu cầu Geocoding theo cụm khu vực. Do đó, định mức sử dụng luôn được giữ trong phạm vi hạn mức miễn phí hàng tháng của Google Cloud Platform trước khi đạt quy mô doanh nghiệp lớn.

4. Hệ thống bảo vệ dữ liệu người dùng và phòng chống tấn công mạng bằng phương thức nào?

Mật khẩu người dùng được băm một chiều an toàn bằng giải thuật BCrypt với Salt Factor 12. Toàn bộ các thao tác truy vấn cơ sở dữ liệu đều thông qua Hibernate ORM và Prepared Statements nhằm triệt tiêu hoàn toàn nguy cơ SQL Injection. Bên cạnh đó, hệ thống cấu hình bộ lọc CORS nghiêm ngặt và mã hóa kênh truyền qua giao thức HTTPS/TLS 1.3.

5. Khả năng tái sử dụng mã nguồn giữa Web (ReactJS) và Mobile (React Native) đạt bao nhiêu %?

Nhờ vào việc chuẩn hóa toàn bộ luồng quản lý trạng thái bằng thư viện Redux (bao gồm Action Creators, Action Types, Reducers, API Services layer), hệ thống tái sử dụng được hơn 65% mã nguồn logic nghiệp vụ giữa hai nền tảng. Lập trình viên chỉ cần xây dựng lại tầng hiển thị UI đặc thù (JSX trên Web và các thẻ View/Text/TouchableOpacity của React Native trên Mobile).


Kết luận

Đồ án tốt nghiệp "Xây dựng website và ứng dụng hỗ trợ giao dịch dự án bất động sản" của sinh viên Nguyễn Viết Cương và Đào Văn Toản (Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã hoàn thành xuất sắc các mục tiêu đặt ra. Đề tài không chỉ dừng lại ở mặt lý thuyết mà đã hiện thực hóa thành công một sản phẩm phần mềm hoàn chỉnh, đa nền tảng, tích hợp sâu sắc giữa công nghệ Web Single Page Application (ReactJS), ứng dụng di động gốc (React Native) và hệ thống máy chủ doanh nghiệp mạnh mẽ (Spring Boot & MySQL).

Dự án mang lại giá trị thực tiễn cao cho thị trường bất động sản thông qua việc minh bạch hóa thông tin dự án, trực quan hóa vị trí địa lý với Google Maps và xóa bỏ các chi phí trung gian không cần thiết. Với cấu trúc module hóa chuẩn mực, hệ thống sẵn sàng để tích hợp thêm các công nghệ tiên tiến như AI Recommendation, thanh toán điện tử và thực tế ảo 3D trong các giai đoạn phát triển tiếp theo.

Để trải nghiệm giải pháp, tham khảo chi tiết kiến trúc mã nguồn hoặc hợp tác phát triển mở rộng hệ thống, vui lòng liên hệ nhóm tác giả tại Khoa Đào tạo Chất lượng cao – Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.