Skip to content

Steventanardi/PropParse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Status: MVP Platform: Windows 100% Offline License: MIT

🏠 PropParse Lite

Offline AI-Powered WhatsApp Property Parser
Extract structured property data from unstructured WhatsApp messages β€” fully offline, zero setup.


🎯 What It Does

PropParse Lite takes messy WhatsApp property listing messages like this:

Dijual rumah di BSD
LT 120 / LB 90
3 KT, 2 KM
Harga 1.5M nego
Hub 08123456789

And instantly extracts structured data:

Location Type LT LB BR BA Price Contact Notes
BSD House 120 90 3 2 1.5M 08123456789 nego

No internet required. No API keys. No data leaves your device.


✨ Features

  • 🧠 Hybrid AI + Regex Parsing β€” Regex handles deterministic fields; LLM handles semantic understanding
  • πŸ”’ 100% Offline β€” All processing happens locally on your device
  • 🌏 English + Indonesian β€” Supports both 3 BR and 3 KT (Kamar Tidur) formats
  • ⚑ Blazing Fast β€” Regex-only mode parses in <5ms; hybrid mode in <2 seconds
  • πŸ“€ Export to CSV/JSON β€” One-click export to spreadsheet or structured data
  • πŸ“‹ Paste, Upload, or Drag & Drop β€” Multiple input methods
  • 🎨 Premium Dark UI β€” Glassmorphism design with micro-animations

πŸ“ Architecture

Raw WhatsApp Text
       ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Regex Engine    β”‚ β†’ Phone, Price, LT/LB, BR/BA, Type, Notes
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  LLM Parser      β”‚ β†’ Location, Property Type (semantic)
β”‚  (Qwen2.5-0.5B)  β”‚   via llama-server (OpenAI-compatible API)
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Validator       β”‚ β†’ Cross-check regex vs LLM, normalize, merge
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       ↓
  Structured JSON / Table / CSV

Fallback: When LLM is unavailable, the app runs in Regex-Only mode β€” still extracts 8 out of 9 fields accurately.


πŸš€ Getting Started

Prerequisites

1. Clone & Install

git clone https://github.com/<your-username>/PropParse.git
cd PropParse
npm install

2. Run in Development Mode

npm run tauri dev

This compiles the Rust backend and opens the desktop app. On the first run, compilation takes 2–5 minutes.

3. (Optional) Enable AI Mode

Download the LLM model and llama-server binary:

powershell -ExecutionPolicy Bypass -File scripts\download-model.ps1

This downloads:

  • Qwen2.5-0.5B-Instruct (Q4_K_M quantization, ~400MB)
  • llama-server.exe from llama.cpp (~50MB)

After downloading, restart the app β€” it auto-detects and starts the LLM server.


πŸ“Š Extracted Fields

Field Regex LLM Example
πŸ“ Location β€” βœ… BSD, Serpong, Sudirman
🏠 Property Type βœ… βœ… House, Apartment, Land
πŸ“ Land Size (LT) βœ… βœ… 120 mΒ²
🏒 Building Size (LB) βœ… βœ… 90 mΒ²
πŸ›οΈ Bedrooms βœ… βœ… 3
🚿 Bathrooms βœ… βœ… 2
πŸ’° Price βœ… βœ… 1.5M, 500jt, Rp 2.000.000.000
πŸ“ž Contact βœ… βœ… 08123456789
πŸ“ Notes βœ… βœ… nego, furnished, SHM, BU

πŸ—οΈ Tech Stack

Layer Technology
Desktop Shell Tauri 2.0 (Rust)
Frontend Vanilla HTML/CSS/JS
LLM Runtime llama.cpp (llama-server)
AI Model Qwen2.5-0.5B-Instruct (GGUF Q4_K_M)
Fonts Inter, JetBrains Mono (Google Fonts)

πŸ“ Project Structure

PropParse/
β”œβ”€β”€ src/                           # Frontend
β”‚   β”œβ”€β”€ index.html                 # App layout
β”‚   β”œβ”€β”€ styles.css                 # Dark glassmorphism theme
β”‚   β”œβ”€β”€ main.js                    # App orchestration & events
β”‚   β”œβ”€β”€ parser.js                  # Pipeline orchestrator
β”‚   β”œβ”€β”€ regex-engine.js            # Deterministic field extraction
β”‚   β”œβ”€β”€ llm-client.js              # OpenAI-compatible LLM client
β”‚   β”œβ”€β”€ validator.js               # Cross-check & normalize
β”‚   └── export.js                  # CSV/JSON export
β”œβ”€β”€ src-tauri/                     # Rust backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ lib.rs                 # Tauri commands & app state
β”‚   β”‚   β”œβ”€β”€ sidecar.rs             # llama-server lifecycle
β”‚   β”‚   └── main.rs                # Entry point
β”‚   β”œβ”€β”€ binaries/                  # llama-server binary (gitignored)
β”‚   β”œβ”€β”€ resources/models/          # GGUF model file (gitignored)
β”‚   β”œβ”€β”€ capabilities/default.json  # Security permissions
β”‚   β”œβ”€β”€ Cargo.toml                 # Rust dependencies
β”‚   └── tauri.conf.json            # App configuration
β”œβ”€β”€ scripts/
β”‚   └── download-model.ps1         # Model & binary downloader
β”œβ”€β”€ package.json
β”œβ”€β”€ .gitignore                     # Excludes models, binaries, secrets
└── README.md

πŸ” Privacy & Security

  • Zero data collection β€” No telemetry, no analytics, no phone-home
  • No API keys β€” No external services, no cloud dependencies
  • Local-only processing β€” Text never leaves your machine
  • No secrets in repo β€” .gitignore blocks .env, .pem, .key, model files, binaries
  • CSP enforced β€” Content Security Policy restricts network access to 127.0.0.1:8321 only

πŸ§ͺ Supported Formats

Indonesian (Bahasa Indonesia)

Dijual rumah di Kelapa Gading
LT 200 / LB 150
4+1 KT, 3+1 KM
Harga 5M nego
SHM, furnished
Hub 081234567890

English

For sale: 2BR apartment in Sudirman
Building area 45sqm
Price: IDR 800jt
Contact +628567890123

Mixed / Abbreviated

Ruko BSD 3lt
LT/LB 75/225
Hrg 3.5M nego
BU, SHM
WA 08123456789

⌨️ Keyboard Shortcuts

Shortcut Action
Ctrl+Enter Parse messages
Ctrl+V Paste into input
Click cell Copy cell value

🧩 Future Enhancements

  • WhatsApp Web auto-import
  • OCR for image-based listings
  • Multi-message batch parsing improvements
  • Custom extraction templates
  • CRM integration (Google Sheets, Airtable)
  • macOS and Linux builds

πŸ“ License

MIT License β€” see LICENSE for details.


Built with πŸ—οΈ Tauri + 🧠 llama.cpp + ❀️ for offline-first tools

About

Offline AI-Powered WhatsApp Property Parser - Tauri + llama.cpp

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors