ChadFenwick/reso_ouid
0
RESO Organizations Search App
A modern web application for searching and exploring RESO (Real Estate Standards Organization) organization data. Built with Flask and Docker for easy deployment.
✨ Features
- 🔍 Smart Search - Search organizations by name, type, state, and country
- 🏢 Visual Icons - Organization type icons for quick identification
- 📋 Copy IDs - One-click copy of Organization Unique IDs
- 📄 Pagination - 25 results per page with smart navigation
- ⌨️ Keyboard Shortcuts - Press Escape to clear filters, Enter to search
- 🔄 Real-time Data - Fetches live data from https://services.reso.org/orgs
- 🐳 Docker Ready - Easy deployment with Docker/Docker Compose
- 📱 Responsive Design - Works on desktop and mobile
🚀 Quick Start
Option 1: Hugging Face Spaces (Recommended)
Visit the live app at: RESO Organizations Search on Hugging Face
Option 2: Deploy to Hugging Face Spaces
- Create a new Space on Hugging Face
- Choose "Gradio" as the SDK (or "Docker" for more control)
- Upload these files to your Space:
app_hf.py(renamed toapp.py)requirements.txttemplates/index.html
Option 3: Docker Compose (Local)
git clone <your-repo-url>
cd reso_ouid
docker-compose up -dOption 4: Local Development
git clone <your-repo-url>
cd reso_ouid
pip install -r requirements.txt
python app_hf.py🌐 Access the app at: http://localhost:7860 (Hugging Face) or http://localhost:7766 (local)
🎮 How to Use
- Search Organizations - Type in the search box or use dropdown filters
- Copy Organization IDs - Click the 📋 button next to any ID
- Navigate Pages - Use pagination controls for large result sets
- Clear Filters - Click "Clear Filters" or press
Escape - Quick Search - Press
Enterfrom any field to search
🔧 API Endpoints
Query Parameters for /api/organizations:
query- Search by organization nametype- Filter by organization typestate- Filter by state/provincecountry- Filter by countrypage- Page number (default: 1)per_page- Results per page (default: 25)
Example API Call:
curl "http://localhost:7766/api/organizations?type=MLS&state=CA&page=1"📊 Organization Types
The app recognizes these organization types with visual icons:
🗂️ Data Fields
Each organization includes:
- Organization Name & Unique ID
- Type & Classification
- Complete Address (street, city, state, postal code, country)
- Geographic Coordinates (latitude/longitude)
- Website & Contact Information
- Certification Details
🛠️ Tech Stack
- Backend: Python 3.11, Flask 2.3.3
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Data Source: RESO Organizations API
- Deployment: Docker, Docker Compose
- Features: Pagination, Real-time search, Copy-to-clipboard
🐳 Docker Configuration
The app runs on port 5000 inside the container and can be mapped to any host port:
# docker-compose.yml
services:
reso-search:
build: .
ports:
- "7766:5000" # Host:Container
environment:
- FLASK_ENV=production📝 Development
Project Structure
reso_ouid/
├── app.py # Flask application
├── requirements.txt # Python dependencies
├── Dockerfile # Container configuration
├── docker-compose.yml # Multi-container setup
├── templates/
│ └── index.html # Web interface
└── README.md # This fileAdding Features
- Fork the repository
- Create a feature branch
- Make your changes
- Test with Docker
- Submit a pull request
🤝 Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
📄 License
This project is open source. Feel free to use it for your real estate data needs.
