real-estate-game-final.mp4
An AI-powered real estate price prediction game where players guess hidden property prices using natural language search and market analysis. Challenge yourself with 43K+ real property listings from California & Georgia!
- Random Property Challenge: A random property listing appears with price hidden - study all available details carefully
- AI-Powered Search: Use natural language queries to find comparable properties and gain market insights. The AI uses natural language to understand your query and extract meaningful filters. Behind the scenes, Superlinked creates multi-modal vectors and Qdrant acts as the vector database.
- Interactive Map: Visualize property locations and explore the neighborhood
- Medal System: Earn Gold (ยฑ10% accuracy), Silver (ยฑ20%), or Bronze (ยฑ30%) medals based on your guess accuracy
- Advanced Filtering: Apply multiple filters including price range, bedrooms, bathrooms, property type, and more
- Weight Customization: Adjust search weights for different property attributes to fine-tune your analysis
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Leaflet - Interactive maps
- React Confetti - Celebration animations
- Python 3.12 - Programming language
- Superlinked - Multimodal, AI powered search framework
- Qdrant - Vector database for similarity search
- Docker & Docker Compose - Containerization and orchestration
- NVIDIA GPU Support - Hardware acceleration for embeddings
- Python 3.12.3
- Docker and Docker Compose
- NVIDIA GPU (optional, for faster embeddings)
-
Clone the repository
git clone https://github.com/gururaser/real-estate-game.git cd real-estate-game -
Create Python virtual environment
python3.12 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install Python dependencies
pip install -r requirements.txt
-
Download datasets
python scripts/downloader.py
-
Preprocess the data
python scripts/preprocess.py
-
Generate statistics for filters
python scripts/generate_statistics.py
-
Set up environment variables
# Copy environment files for frontend cp frontend/.env.example frontend/.env # Copy environment files for backend cp superlinked_app/.env.example superlinked_app/.env
-
Configure your environment
- Edit
frontend/.envwith your frontend configuration - Edit
superlinked_app/.envwith your Qdrant settings and other backend configurations - Update any other configuration as needed
- Edit
-
Start the services
# If you have NVIDIA GPU: docker-compose up --build # If you don't have NVIDIA GPU: docker-compose -f docker-compose.cpu.yml up --build
-
Wait for services to be ready
- Frontend: http://localhost:3000
- Superlinked API: http://localhost:8080
- Qdrant Dashboard: http://localhost:6333
-
Load data into the system
# Get data loader configuration curl http://localhost:8080/data-loader/ # Expected response format: { "result": { "properties": "DataLoaderConfig(path='data/processed_real_estate.csv', format=<DataFormat.CSV: 1>, name='properties', pandas_read_kwargs={'chunksize': 512})" } } # Start data loading (use the 'name' value from the response, typically 'properties') curl -X POST http://localhost:8080/data-loader/properties/run
-
Monitor data loading
- Check Superlinked service logs for data loading progress:
docker-compose logs -f superlinked
- Wait until all data is loaded into Qdrant vector database
- The process may take several minutes depending on your system
-
Access the application
- Open http://localhost:3000 in your browser
- Start playing the Real Estate Price Guessing Game!
- A
docker-compose.cpu.ymlfile has been created for systems without NVIDIA GPU - Data loading process may take 5-15 minutes depending on your system performance
- Make sure all services are healthy before accessing the application
Data loading fails
- Ensure
data/processed_real_estate.csvexists and is not empty - Check Superlinked service logs:
docker-compose logs superlinked - Verify Qdrant is running:
curl http://localhost:6333/health
Services won't start
- Check if ports 3000, 8080, 6333 are available
- Ensure Docker and Docker Compose are properly installed
- For GPU version, verify NVIDIA drivers are installed
Search not working
- Confirm data has been loaded successfully
- Check Superlinked API health:
curl http://localhost:8080/health - Verify environment variables in
.envfiles
Frontend not loading
- Ensure Node.js dependencies are installed:
cd frontend && npm install - Check if Next.js dev server is running
- Verify all backend services are healthy
-
Examine Property: A random property listing appears with price hidden. Study all available details carefully.

-
Search & Analyze: Use AI-powered natural language search to find comparable properties and market insights. Examples:
-
Make Your Guess: Enter your estimated price and submit your guess.

-
Win Medals: Achieve accuracy within 30% tolerance to earn medals:
The game uses real property data from:
- California real estate listings (Kaggle Dataset)
- Georgia real estate listings (Kaggle Dataset)
- 43K+ properties with comprehensive details including:
- Price and price per square foot
- Property details (bedrooms, bathrooms, living area)
- Location data (address, city, county, coordinates)
- Property features (pool, garage, parking, etc.)
- Market information (year built, property type, etc.)
Customize how different property attributes affect search similarity:
- Description weight
- Location weights (city, street address, county)
- Price-related weights
- Property feature weights
Apply various filters to refine your search:
- Price range
- Number of bedrooms/bathrooms
- Property type
- Location filters
- Boolean features (pool, garage, etc.)
real-estate-game/
โโโ frontend/ # Next.js React application
โ โโโ src/
โ โ โโโ app/
โ โ โ โโโ page.tsx # Landing page
โ โ โ โโโ game/ # Game page and components
โ โ โ โโโ components/ # Shared components
โ โ โโโ ...
โ โโโ package.json
โ โโโ Dockerfile
โโโ superlinked_app/ # Python backend with Superlinked
โ โโโ api.py # Superlinked API application
โ โโโ index.py # Vector index configuration
โ โโโ query.py # Search query definitions
โ โโโ config.py # Application configuration
โ โโโ filters.py # Search filters
โ โโโ Dockerfile
โโโ scripts/ # Data processing scripts
โ โโโ preprocess.py # Data preprocessing
โ โโโ generate_statistics.py # Statistics generation
โ โโโ downloader.py # Data downloading
โโโ data/ # Property data and statistics
โ โโโ RealEstate_California.csv
โ โโโ RealEstate_Georgia.csv
โ โโโ processed_real_estate.csv
โ โโโ column_statistics.json
โโโ docker-compose.yml # Docker orchestration
โโโ requirements.txt # Python dependencies
POST /api/v1/search/property- Natural language property searchGET /health- Health check endpointGET /data-loader/- Get data loader configurationPOST /data-loader/{name}/run- Start data loading process
POST /collections/default/points/query- Query random property from vector database- Vector similarity search for property matching
- REST API on port 6333
- gRPC API on port 6334
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Superlinked - Multimodal, AI powered search framework
- Qdrant - High-performance vector database
- OpenStreetMap - Map data and tiles
- Real estate data providers - Property listing data
Gurur Aลer
- LinkedIn: linkedin.com/in/gururaser
- GitHub: github.com/gururaser
Built with โค๏ธ using Next.js, Superlinked, and Qdrant


