A comprehensive platform that combines Natural Language Processing (sentiment analysis) and Computer Vision (hand size detection) to provide personalized gift recommendations. Built for Hacktoberfest 2025 with a focus on modularity, testing, and contributor-friendliness.
- Custom Sentiment Analysis: Logistic Regression implemented from scratch
- Word2Vec Embeddings: Semantic understanding of text
- Tweet Processing: Specialized preprocessing for social media content
- Hand Detection: MediaPipe-powered hand landmark detection
- Size Estimation: Intelligent hand size classification
- Visual Feedback: Real-time visualization of measurements
- Multi-Signal Processing: Combines sentiment + hand size
- Smart Matching: Rule-based gift category mapping
- Confidence Scoring: Transparent recommendation reasoning
- Streamlit Web App: Interactive web interface
- CLI Tool: Command-line interface for batch processing
- REST API: RESTful endpoints for integration
# Clone the repository
git clone https://github.com/yourusername/gift-recommendation-platform.git
cd gift-recommendation-platform
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
pip install -e .streamlit run app/streamlit_app.py# Single prediction
gift-recommend --tweet "Having a great day!" --hand-image hand.jpg
# Batch processing
gift-recommend --tweets tweets.csv --hand-image hand.jpg --output results.jsonfrom src.nlp.sentiment_model import LogisticRegression
from src.cv.hand_detector import HandDetector
from src.recommendation.engine import RecommendationEngine
# Initialize components
detector = HandDetector()
engine = RecommendationEngine(gift_db)
# Get recommendations
sentiment_score = 0.85 # From NLP pipeline
hand_size = "small" # From CV pipeline
recommendations = engine.recommend(sentiment_score, hand_size)The platform follows a modular architecture:
βββββββββββββββββββ βββββββββββββββββββ
β NLP Module β β CV Module β
β β β β
β β’ Preprocessor β β β’ Hand Detector β
β β’ Embeddings β β β’ Size Estimatorβ
β β’ Sentiment β β β’ Visualizer β
βββββββββββ¬ββββββββ βββββββββββ¬ββββββββ
β β
ββββββββββββ¬ββββββββββββ
β
βββββββββββββββββββ
β Recommendation β
β Engine β
β β
β β’ Gift Database β
β β’ Scoring Rules β
β β’ Explainer β
βββββββββββββββββββ
For detailed architecture information, see docs/architecture.md.
- Sentiment Data: 10K+ labeled tweets
- Hand Images: 100+ images across size categories
- Gift Database: 50+ categorized gift items
- Sentiment Analysis: >85% accuracy
- Hand Size Detection: >90% accuracy
- End-to-End: >80% user satisfaction
# Run all tests
pytest
# Run with coverage report
pytest --cov=src tests/ --cov-report=html
# Run specific module tests
pytest tests/test_nlp/
pytest tests/test_cv/
pytest tests/test_recommendation/- Architecture Overview: System design and components
- API Reference: Complete API documentation
- User Guide: Installation, usage, and troubleshooting
- Contributing Guide: How to contribute to the project
We welcome contributions! This project is designed to be beginner-friendly and perfect for Hacktoberfest participation.
- π Bug fixes: Find and fix issues
- β¨ New features: Enhance existing modules
- π Documentation: Improve guides and examples
- π§ͺ Testing: Add test coverage
- π¨ UI/UX: Improve the interface
- Check out our Contributing Guide
- Look for issues labeled
good first issue - Join discussions in GitHub Issues
- Submit your first PR!
- Backend: Python 3.8+, NumPy, Pandas
- NLP: NLTK, Gensim (Word2Vec)
- Computer Vision: OpenCV, MediaPipe
- Web Framework: Streamlit, FastAPI
- Testing: Pytest, Coverage
- Code Quality: Black, Flake8
- Multi-language Support: Support for additional languages
- Advanced ML Models: Deep learning improvements
- Mobile App: React Native interface
- Real-time Updates: Live recommendation updates
- Social Integration: Direct social media integration
This project is licensed under the MIT License - see the LICENSE file for details.
- MediaPipe Team: For excellent hand detection capabilities
- Gensim Contributors: For Word2Vec implementation
- Streamlit Team: For the amazing web framework
- Hacktoberfest: For promoting open source collaboration
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π§ Email: [email protected]
Made with β€οΈ for Hacktoberfest 2025
Help us make gift-giving more personal and meaningful!