Back to homeKembali ke beranda

TerraVision — AI House Price Prediction App

Node.jsExpress.jsPostgreSQLGoogle Cloud PlatformCloud StorageApp EngineCloud SQLVertex AIFirebase AuthenticationJWT
TerraVision Banner

TerraVision is a mobile application developed as a capstone project for Bangkit Academy 2024 Batch 1. The app provides price estimation, property listing, and interactive filtering to help home buyers and real estate investors evaluate property values across key regions in Indonesia.

Situs ini tidak mengizinkan preview di dalam halaman. Buka langsung di tab baru ya.

Open in new tab

The problem

Real estate is a major investment sector in Indonesia, but many first-time buyers and investors lack access to clear valuation data, leading to mispriced purchases and poor financial planning.

7.82%
households in Indonesia own a second home (BPS, 2022)
95%
of real estate investors fail due to poor planning and valuation

Key challenges in the property market:

What TerraVision does

TerraVision delivers a complete real estate companion tailored for target cities including Jakarta, Bekasi, Depok, Bandung, Bogor, and Tangerang:

Architecture & Technology

Node.jsExpress.jsPostgreSQLGoogle Cloud PlatformCloud StorageApp EngineCloud SQLVertex AIFirebase Authentication
TerraVision's Architecture

The system is split into an offline model training pipeline and an online serving path, connected end-to-end:

  1. Model Training Pipeline (offline) — raw property data in Cloud Storage is processed with Dataflow, trained on Vertex AI Training, and versioned in the Vertex AI Model Registry.
  2. Model deployment — the registered model is deployed to a Vertex AI Endpoint, exposing it as a callable inference service.
  3. Backend (GCP) — an Express.js REST API on App Engine handles authentication, property listings, search/filter, and forwards prediction requests to the Vertex AI Endpoint, returning results as JSON.
  4. Mobile App — the Android client talks to the backend over HTTPS/JSON, so it never calls the ML endpoint directly.

Supporting the core flow:

My Role & Key Responsibilities

As part of the Cloud Computing, I was responsible for connecting the machine learning model to the mobile app — designing and running the backend that sits between them, from data storage to inference to the API the app consumes:

  1. AI → Backend → App Integration

    • Integrated the trained price prediction model with the backend by calling the Vertex AI Endpoint from Express.js, so the mobile app gets predictions through a single REST call instead of talking to the ML service directly.
    • Designed the request/response contract between the app and backend for prediction requests, keeping the mobile client simple and decoupled from the ML infrastructure.
  2. REST API Development

    • Designed and built server-side application logic using Node.js and Express.js.
    • Implemented Authentication & User Management on top of Firebase Authentication, issuing and validating JWT tokens for protected routes.
    • Built Property Management logic covering listing creation, search, filtering, and pagination.
  3. Cloud Infrastructure & Service Integration (GCP)

    • Deployed the Node.js application server on Google App Engine for scalable service hosting.
    • Provisioned and managed relational database instances using Cloud SQL (PostgreSQL) for users, properties, price history, and predictions.
    • Integrated Google Cloud Storage (GCS) for secure handling and hosting of user-uploaded property images and model artifacts.
    • Set up Cloud Logging, Cloud Monitoring, and Error Reporting to track backend health and catch issues early.
    • Configured IAM roles, VPC, and firewall rules to secure communication between the backend, database, and ML endpoint.