A Streamlit-based application for property listings data validation and visualization, featuring interactive maps, real-time updates, and comprehensive analytics dashboard.
- 🏠 Interactive property listing validation interface
- 🗺️ Integrated MapBox satellite view for property location verification
- 📊 Real-time validation progress tracking
- 🔄 BigQuery integration for data storage and retrieval
- 👥 Multi-user validation support
- 📱 Responsive layout with split-screen viewing
- 🎯 Property-specific detail editing
- 📈 Real-time validation statistics
- 🌍 Interactive location distribution map
- 🔍 Advanced filtering capabilities:
- Property type selection
- Price range filtering
- Room count filtering
- 💡 Detailed property tooltips
- 📊 Summary metrics and KPIs
- Python 3.8 or higher
- Google Cloud Platform account with BigQuery enabled
- Mapbox API token
- Required Python packages (see
poetry.lock
)
- Install Poetry (if not already installed):
curl -sSL https://install.python-poetry.org | python3 -
- Clone and install dependencies:
git clone https://github.com/Aeontsolutions/data-validator.git
cd data-validator
poetry install
- Activate the virtual environment:
poetry shell
- Set up your development environment:
cp .env.example .env
# Edit .env with your development credentials
- Managing Dependencies
# Add a new dependency
poetry add package-name
# Add a development dependency
poetry add --group dev package-name
# Update dependencies
poetry update
- Running the Application
poetry run streamlit run Home.py
# For debug mode:
poetry run streamlit run Home.py --debug
├── .streamlit/ # Streamlit configuration
│ └── secrets.toml # Streamlit secrets
├── downloads/ # Downloaded files
│ └── screenshots/ # Screenshots
│ └── json/ # JSON data
├── resources/ # Resources
│ └── jamaican_communities_geocoded.csv # Google Cloud credentials
├── pages/ # Streamlit pages
│ ├── 1_Validator.py # Validation interface
│ └── 2_Dashboard.py # Analytics dashboard
│ └── 3_Scraper.py # Scraper interface
├── utils/ # Utility functions
│ └── bigquery_utils.py # BigQuery operations
│ └── scraper_utils.py # Scraper operations
├── .env # Environment variables
├── pyproject.toml # Poetry configuration
├── poetry.lock # Lock file
└── Home.py # Main application entry
- Navigate to the Validator page
- Enter your name in the validator field
- Select a property from the dropdown menu
- Review and verify property details:
- Price
- Square footage
- Room count
- Bathroom count
- Property type
- Location (via satellite map)
- Aesthetic score
- Click "Validate Property" to confirm or "Skip Property" to move to the next listing
- Navigate to the Dashboard page
- View summary statistics:
- Total properties
- Validated properties count
- Pending validations
- Explore the interactive map:
- Filter by property type
- Set price ranges
- Filter by number of rooms
- Hover over points for detailed information
- Navigate to the Scraper page
- Enter the location you want to scrape
- Click "Scrape Properties"
- Review and verify property details:
- Price
- Square footage
- Room count
- Bathroom count
- Property type
- Click "Download All" to download the properties
The application expects the following property data fields:
property_id
: Unique identifierprice
: Property pricesqft
: Square footagerooms
: Number of roomsbathroom
: Number of bathroomsproperty_type
: Type of propertylatitude
: Geographic coordinatelongitude
: Geographic coordinateaes_score
: Aesthetic scorelisting_urls
: Property listing URLvalidated
: Validation status
- Streamlit - Web application framework
- Google BigQuery - Data warehouse
- PyDeck - Geospatial visualization
- Mapbox - Satellite imagery
- Pandas - Data manipulation