A comprehensive web application for evaluating and prioritizing GitHub repositories for open-source contributions. Features automated scoring, detailed metrics analysis, and team collaboration tools.
- Automated Analysis: Fetches repository data from GitHub API and calculates objective metrics
- Smart Scoring: Weighted algorithm evaluates 7 key metrics for comprehensive scoring
- Visual Dashboard: Interactive charts, tables, and progress indicators
- Team Collaboration: Share evaluations, track contribution status, and prioritize projects
- Custom UI: Professional, non-generic interface with smooth animations
- Responsive Design: Works seamlessly across desktop, tablet, and mobile devices
| Metric | Weight | Description |
|---|---|---|
| Activity | 20% | Commit frequency, issues, releases in last 90 days |
| Maintainer Response | 20% | Average response time to issues and PRs |
| Guidelines | 15% | Quality of contribution documentation |
| Code Structure | 15% | Organization, modularity, ease of navigation |
| Test Coverage | 10% | Testing infrastructure and CI/CD |
| Community | 10% | Engagement, discussions, welcoming atmosphere |
| Relevance | 10% | Alignment with your interests and tech stack |
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS with custom components
- State Management: Zustand
- Database: PostgreSQL with Prisma ORM
- API Integration: GitHub REST and GraphQL APIs
- Charts: Recharts
- Testing: Jest, React Testing Library, Playwright
- Deployment: Vercel (recommended)
-
Clone or download the repository
# If you have this code in a git repository: git clone <your-repository-url> cd github-repo-evaluator # Or simply navigate to your project directory if you have the files locally cd github-repo-evaluator
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables:
DATABASE_URL="postgresql://username:password@localhost:5432/github_repo_evaluator" GITHUB_TOKEN="your_github_personal_access_token"
-
Set up the database
npx prisma generate npx prisma db push npx prisma db seed
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Database
npx prisma studio # Open database GUI
npx prisma migrate dev # Run database migrations
npx prisma db seed # Seed database with test data
# Testing
npm run test # Run unit tests
npm run test:e2e # Run end-to-end tests
npm run test:coverage # Generate coverage report
# Code quality
npm run lint # ESLint
npm run type-check # TypeScript checking- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
-
Build the application
npm run build
-
Set up production database
- Create PostgreSQL database
- Run migrations:
npx prisma migrate deploy
-
Configure environment variables
DATABASE_URL="your_production_database_url" GITHUB_TOKEN="your_github_token" NEXTAUTH_URL="https://your-domain.com" NEXTAUTH_SECRET="your_nextauth_secret"
- Paste GitHub URL: Enter any GitHub repository URL
- Automatic Analysis: System fetches data and calculates metrics
- Manual Scoring: Rate subjective metrics (guidelines, community, relevance)
- View Results: Get comprehensive score and detailed breakdown
- Filter & Sort: Filter by score, language, status; sort by any metric
- View Modes: Switch between table and grid views
- Export Data: Download repository data as CSV
- Refresh Data: Update repository metrics from GitHub
- Status Tracking: Mark repositories as evaluated, watching, contributed, or completed
- Open Issues: Direct link to "good first issue" filtered issues
- View README: Quick access to repository documentation
- Contact Maintainers: Link to discussions or issue creation
The project includes comprehensive testing:
- Unit Tests: Components, utilities, and services
- Integration Tests: API routes and database operations
- End-to-End Tests: Complete user workflows
- Coverage Target: 80% minimum coverage
Run tests:
npm run test # Unit and integration tests
npm run test:e2e # End-to-end tests
npm run test:coverage # Coverage report- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Create a Pull Request (if using a git hosting service)
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub API for repository data
- Open source community for inspiration
- Contributors and testers
If you encounter any issues or have questions:
- Check the application logs for error details
- Ensure all environment variables are properly configured
- Verify your GitHub token has the necessary permissions
- Check the database connection and migrations
Happy Contributing! 🎉