A veterinary clinic search and recommendation system that aggregates data from multiple sources to help pet owners find the best vet for their needs.
PetCare Vet Finder is a system designed to help pet owners find the ideal veterinary clinic for their pets. It aggregates data from multiple API sources and datasets, analyzes this data to provide meaningful recommendations, and presents results based on specific criteria such as location, pet type, desired services, and more.
-
Multi-source Data Aggregation: Combines vet clinic data from:
- Yelp Dataset
- Foursquare API
- TomTom API
- HERE API
-
Intelligent Recommendations:
- Scoring algorithms for clinic ranking
- Sentiment analysis of reviews
- Personalized recommendations based on user preferences
-
Advanced Filtering:
- Pet type (including exotic pet specialists)
- Specialty services (emergency, dental, surgery, etc.)
- Location and distance
- Price ranges
-
Data Processing:
- Deduplication of clinics across data sources
- Standardization of data formats
- Composite scoring based on ratings and review counts
-
Web Interface:
- Simple search experience
- Detailed view of recommended veterinarians
- API Manager: Interfaces with external APIs to collect vet data
- Data Connector: Standardizes and processes raw data into usable formats
- Vet Analyzer: Analyzes vet data for quality, categories, and other metrics
- Recommender: Applies filtering criteria and generates ranked recommendations
- Sentiment Analyzer: Processes review text to extract sentiment and keywords
- Web Application: Flask-based interface for searching and viewing results
External Sources → API Manager → Data Connector → DataFrame
↓
User Input → Web App → Recommender ← Vet Analyzer
↑ ↓
└── Results Display
- Python 3.8+
- Pip package manager
- API keys for:
- Foursquare
- TomTom
- HERE
- (Optional) Yelp dataset
-
Clone the repository:
git clone https://github.com/sridhs21/PCVF.git cd petcare-vet-finder -
Install dependencies:
pip install -r requirements.txt -
Create a
.envfile with your API keys:FOURSQUARE_API_KEY=your_foursquare_key TOMTOM_API_KEY=your_tomtom_key HERE_API_KEY=your_here_key YELP_DATASET_PATH=path/to/yelp_dataset ENABLE_YELP_DATASET=True -
Run the application:
python run.py
- Navigate to
http://localhost:5000in your browser - Enter your location and search criteria
- View recommendations and detailed information about each vet
- Filter results based on your specific requirements
# Example of using the API programmatically
from api import APIManager
from analysis import VetAnalyzer, VetRecommender
# Initialize components
api_manager = APIManager(
foursquare_api_key='your_key',
tomtom_api_key='your_key',
here_api_key='your_key'
)
# Get vet data for a location
vets_data = api_manager.get_combined_data(
location='New York, NY',
max_results_per_source=10
)
# Process and analyze data
analyzer = VetAnalyzer()
processed_data = analyzer.process_raw_data(vets_data)
# Get recommendations
recommender = VetRecommender()
recommendations = recommender.recommend(
df=processed_data,
pet_type='dog',
specialties=['dental', 'emergency'],
max_distance=5
)
# Get detailed information
result_details = recommender.get_recommendation_details(recommendations)petcare-vet-finder/
├── api/ # API integration modules
│ ├── __init__.py
│ ├── api_manager.py # Manages multiple API sources
│ ├── foursquare_api.py # Foursquare API client
│ ├── here_api.py # HERE API client
│ ├── tomtom_api.py # TomTom API client
│ └── yelp_dataset.py # Yelp dataset processor
├── analysis/ # Data analysis modules
│ ├── __init__.py
│ ├── analyzer.py # Vet data analysis
│ ├── data_connector.py # Data standardization
│ ├── recommender.py # Recommendation engine
│ └── sentiment_analyzer.py # Review sentiment analysis
├── app/ # Web application
│ ├── __init__.py
│ ├── config.py # Application configuration
│ ├── routes.py # Web routes and API endpoints
│ ├── templates/ # HTML templates
│ └── static/ # CSS, JS, and images
├── utils/ # Utility functions
│ ├── __init__.py
│ ├── api_utils.py # API request utilities
│ └── geocoding.py # Location geocoding
├── .env # Environment variables
├── run.py # Application entry point
└── requirements.txt # Dependencies
- Mobile Application: Native iOS and Android apps for searches
- User Accounts: Saved preferences and favorite vets
- Appointment Booking: Direct integration with vet scheduling systems
- Pet Health Records: Store and manage your pet's health information
- Review System: Allow users to submit reviews of vet experiences
- Emergency Vet Alerts: Notifications for nearby emergency vet services
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
