Find the perfect open source repositories to contribute to based on your skills. Built with Express.js and React.
- 🎯 Skill-Based Matching - Find repositories that match your technical expertise
- 🚀 Beginner Friendly - Discover projects with good-first-issue labels
- ⭐ Quality Projects - Curated from popular and active repositories
- 🎨 Modern UI - Beautiful, responsive design with dark theme and glassmorphism
- ⚡ Fast Search - Quick results from GitHub's repository database
- Express.js - Node.js web framework
- Axios - HTTP client for GitHub API
- CORS - Cross-origin resource sharing
- dotenv - Environment variable management
- React - UI library
- Vite - Fast build tool and dev server
- CSS3 - Modern styling with custom properties and animations
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository
cd /Users/neelanshu./Desktop/Repo\ Reccomendation
-
Install backend dependencies
npm install
-
Install frontend dependencies
cd client npm install cd ..
-
Configure environment variables (optional)
cp .env.example .env # Add your GitHub personal access token to .env for higher rate limits
-
Start the backend server
npm run dev
The server will run on
http://localhost:5000 -
In a new terminal, start the frontend dev server
npm run client
The React app will run on
http://localhost:5173 -
Open your browser Navigate to
http://localhost:5173to use the application
# Build the React frontend
npm run build
# Start the server (serves built React app)
npm startSearch for repositories based on skills.
Request Body:
{
"skills": ["javascript", "react", "python"]
}Response:
{
"success": true,
"count": 15,
"repositories": [
{
"id": 123456,
"name": "awesome-project",
"fullName": "user/awesome-project",
"description": "An amazing open source project",
"url": "https://github.com/user/awesome-project",
"stars": 1500,
"forks": 200,
"language": "JavaScript",
"topics": ["react", "nodejs", "opensource"],
"openIssues": 25,
"updatedAt": "2024-01-15T10:30:00Z"
}
]
}Check API status.
Response:
{
"status": "OK",
"message": "API is running"
}- User Input - Enter your programming skills (e.g., JavaScript, Python, React)
- GitHub Search - The backend queries GitHub's API for repositories matching your skills with "good-first-issue" or "help-wanted" labels
- Results Display - View curated repositories sorted by popularity with detailed information
- Contribute - Click on any repository to visit it on GitHub and start contributing!
repo-recommendation/
├── server.js # Express server
├── routes/
│ └── api.js # API routes and GitHub integration
├── package.json # Backend dependencies
├── .env.example # Environment variables template
└── client/ # React frontend
├── src/
│ ├── App.jsx # Main app component
│ ├── index.css # Global styles and design system
│ ├── components/
│ │ ├── HomePage.jsx # Landing page
│ │ ├── HomePage.css
│ │ ├── SkillInput.jsx # Skill input component
│ │ ├── SkillInput.css
│ │ ├── ResultsPage.jsx # Results display
│ │ ├── ResultsPage.css
│ │ ├── RepositoryCard.jsx # Repository card
│ │ └── RepositoryCard.css
│ └── main.jsx # React entry point
├── index.html # HTML template
└── package.json # Frontend dependencies
- Add multiple skills to refine your search
- Quick-add popular skills with one click
- Tag-based interface for easy management
- Repository name and description
- Star count, forks, and open issues
- Primary programming language
- Topic tags
- Last update timestamp
- Direct link to GitHub
- Dark theme with vibrant gradients
- Glassmorphism effects
- Smooth animations and transitions
- Fully responsive design
- Hover effects and micro-interactions
- Unauthenticated: 60 requests per hour
- Authenticated: 5000 requests per hour
To increase rate limits, add a GitHub personal access token to your .env file:
GITHUB_TOKEN=your_github_token_here
MIT
Contributions are welcome! Feel free to open issues or submit pull requests.