Planwise is an AI-powered recommendation platform that helps users discover personalized plans in Madrid based on their preferences and location. Our system combines multiple advanced machine learning techniques to deliver recommendations that are accurate, diverse, and tailored to each individual user.
- Personalized Recommendations: Get place suggestions that match your unique interests
- Location Awareness: Discover places within comfortable travel distance
- Multi-model Architecture: Leverages ensemble learning for superior recommendation quality
- Category Diversity: Balanced recommendations across different categories
- Seamless Integration: API-driven architecture with multiple frontends
The project consists of two main components:
recommendation-system/
├── api/ # FastAPI backend service
├── reco/ # Core recommendation engine
│ ├── planwise/ # Model implementation and streamlit app
│ └── tests/ # Test suite
└── docs/ # Project documentation
To run Planwise locally, you'll need to start two separate components:
The API provides recommendation endpoints and database access.
# Navigate to the API directory
cd api
# Set up using Docker
docker compose -f docker-compose.dev.yml up -d --build
# API will be available at http://localhost:8080
For detailed API setup instructions, see the API README.
The Streamlit app provides a user-friendly interface to interact with the system.
# Navigate to the planwise directory
cd reco/planwise
# Install dependencies
pip install -r requirements.txt
# Run the app
streamlit run app.py
# Streamlit interface will be available at http://localhost:8501
Planwise uses a hybrid ensemble of recommendation models:
- Autoencoder Recommender: Deep learning model that reconstructs user preferences
- SVD Recommender: Collaborative filtering using matrix factorization
- Transfer Learning Recommender: Leverages patterns from movie domain to place recommendations
- Madrid Embeddings Recommender: Location-specific semantic understanding
- Ensemble Recommender: Meta-model that combines all approaches for optimal results
For comprehensive documentation, please visit our GitHub Pages documentation site.
Key documentation sections:
Contributions are welcome! Please read our contributing guidelines before submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.