OSS Engine is a web platform to discover, filter, and score open-source repositories based on multiple quality metrics: maintenance, community engagement, documentation, and code quality. Find the best repos to contribute to or use, powered by GitHub APIs, Gemini AI, and custom scoring logic.
-
Advanced search & filter
- Keywords in repo name & description
- Primary programming language
- Number of open “good first issues”
- Recent commit activity
- Topics/tags
-
Scoring pipeline
- Batch scores top 100 repos by maintenance & community metrics
- Top 15 repos scored further for documentation & code quality
- Caching of scores for performance
-
Interactive frontend
- Filter panel with multi-criteria options
- Repo cards showing key metrics & scores
- Responsive React TypeScript UI
Backend (FastAPI)
-
services.ingest.repo_searcher: GitHub REST & GraphQL search & filtering -
services.scoring: Modules for maintenance, community, documentation, code quality -
services.api: Exposes endpoints:/score: Score a single repo/search_and_score: Filter repos and batch score top results
-
Database: JSON cache (
score_cache.json)
Frontend (React + TypeScript)
FilterPanel: Multi-criteria filtersResultsList&RepoCard: Display repo info & scores- Uses
REACT_APP_API_BASEto connect to backend
- Node.js >=16, npm or yarn
- Python 3.9+
- GitHub personal access token with repo read access
- Gemini AI API key
cd backend
export GITHUB_TOKEN=your_github_token
export GEMINI_API_KEY=your_gemini_api_key
pip install -r requirements.txt
uvicorn services.api:app --reload --host 0.0.0.0 --port 8000cd frontend
echo "REACT_APP_API_BASE=http://localhost:8000" > .env
npm install
npm startOpen: http://localhost:3000
- Use filter panel to set keywords, language, issues, topics, commit recency
- Click Search to retrieve scored repositories
- View results in cards with scores and highlights
- Top 15 repos show extended scores: documentation & code quality
Request:
GET /score?owner=octocat&repo=Hello-WorldResponse:
{
"repo": "octocat/Hello-World",
"community_score": 7.8,
"maintenance_score": 8.2,
"documentation_score": 6.5,
"code_quality_score": 7.0
}| Variable | Description | Required |
|---|---|---|
GITHUB_TOKEN |
GitHub personal access token | ✅ |
GEMINI_API_KEY |
Gemini AI API key | ✅ |
REACT_APP_API_BASE |
Backend API URL | Frontend only |
- CORS errors: Ensure
CORSMiddlewareis enabled with correct origins - GitHub API limits: Check token quota or enable caching
- Missing dependencies: Verify
npm install&pip install - React errors: Ensure
tsconfig.jsonhas"esModuleInterop": trueand.tsxextensions
Contributions welcome!
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature - Commit:
git commit -m "Add your feature" - Push:
git push origin feature/your-feature - Open a Pull Request
#OpenSource #GitHub #React #FastAPI #Python #TypeScript #AI #Community #RepoScoring #OSS
MIT License © 2025 OSS Engine Contributors