Python FastAPI Streamlit Docker Supabase Documentation
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.