Problem Statement:
FOSS Search addresses the challenge faced by contributors in navigating the vast landscape of open-source projects like-
Overwhelming Choices: With millions of repositories on GitHub, finding the right project that matches one’s skills and interests is like finding a needle in a haystack.
Misaligned Contributions: Contributors struggle to identify repositories where their skills can make a significant impact.
Time-Consuming Selection: Reading through READMEs and exploring repository structures consumes a lot of time, discouraging potential contributors.
Solution Overview:
Our FOSS Search Engine revolutionizes the way users find open-source repositories by leveraging semantic search and real-time trending algorithms.
Semantic Search for Relevance: Using SentenceTransformers for semantic embeddings and Faiss for efficient similarity search, our engine understands the context of a user's query, delivering the most relevant repositories.
Real-Time Trends for Timely Contributions: By calculating a TrendScore based on stars, commits, and forks, users discover repositories gaining traction, ensuring their efforts contribute to active projects.
Personalized Recommendations: Advanced recommendation systems suggest repositories tailored to a user’s past interactions, skills, and interests, eliminating the guesswork.
Gamification and Badges: To enhance engagement, users earn badges for contributions and actions, motivating continuous participation.
Key Features:
Smart Search and Filtering: Uses cosine similarity on semantic embeddings to provide precise results, along with filters for language, stars, and update frequency.
Trending Repositories: Identifies trending projects in real-time using a dynamic TrendScore calculation, ensuring visibility to active and impactful repositories.
Personalized Recommendations: Combines Content-Based Filtering and Collaborative Filtering for accurate suggestions based on user interactions.
Gamification and Engagement: Encourages consistent contributions through badges, leveling systems, and social sharing options.
Why This Solution?
This project solves the pain point of choice overload by providing tailored recommendations, ensuring contributors find the right project faster. By highlighting trending repositories and using a powerful semantic search, it bridges the gap between potential contributors and impactful projects.
Technical Stack and Architecture:
Backend: Python with Flask for API endpoints, integrated with SentenceTransformers and Faiss for semantic search.
Frontend: Next.js with TailwindCSS for an intuitive and responsive user interface.
Data Processing: Uses GitHub’s REST API for data collection, with embeddings generated by all-MiniLM-L6-v2 model.
Indexing and Search: Faiss (IndexFlatIP) for efficient similarity search with normalized embeddings for cosine similarity.
Real-Time Sync: Scheduled data updates using Python schedulers to maintain real-time trend calculations.
Usages and Benefits:
For Contributors: Discover projects aligned with skills and interests, reducing time spent on selection and maximizing impact.
For Maintainers: Attract relevant contributors, increasing project activity and community engagement.
For the FOSS Community: Encourages more contributions by simplifying the discovery process and enhancing motivation through gamification.