Discover beginner-friendly GitHub issues tailored to your skills and start contributing with confidence
- β¨ Features
- ποΈ Architecture
- βοΈ Cloud Infrastructure
- π οΈ Tech Stack
- π Getting Started
- π¦ Deployment
- π Authentication
- π¨ UI/UX
- π API Documentation
- π€ Contributing
- π License
- π Smart Issue Discovery - Find beginner-friendly issues across GitHub
- ποΈ Advanced Filtering - Filter by difficulty level and technology stack
- π GSoC Organizations Filter - Discover issues from Google Summer of Code participating organizations
- π GitHub OAuth - Secure authentication via Supabase
- π¬ Community Hub - Join Discord & WhatsApp communities
- π Dark Mode - Beautiful space-themed UI with glassmorphism
- π± Responsive Design - Works seamlessly on all devices
IssuePilot highlights issues from organizations that have historically participated in Google Summer of Code (GSoC). This feature helps you:
- Discover projects with active mentorship programs
- Find beginner-friendly issues in GSoC-relevant repositories
- Explore organizations that value open-source contributions
Important Disclaimer:
β οΈ Not a guarantee: Contributing to GSoC organizations does NOT guarantee selection into the GSoC program- π Selection criteria: GSoC acceptance depends on your proposal quality, contribution history, communication with mentors, and competition
- π― Our goal: We simply help you find relevant issuesβyour success depends on your effort and engagement
- π‘ Best practice: Contribute to projects you're genuinely interested in, regardless of GSoC status
The GSoC organizations list is manually curated and updated annually (around February-March).
- Serverless Architecture - AWS Lambda + API Gateway
- Real-time Auth - Supabase with GitHub OAuth
- Automated Data Pipeline - EventBridge scheduled cron jobs
- Rate Limiting - API Gateway throttling for security
- CI/CD - Automatic deployments via Vercel
- Performance - Optimized with React + Vite
graph TB
subgraph "Frontend - Vercel"
A[React + Vite App]
B[Supabase Auth]
end
subgraph "AWS Cloud Infrastructure"
C[API Gateway]
D[Lambda: getIssues]
E[Lambda: cronJob]
F[DynamoDB]
G[EventBridge]
end
subgraph "External Services"
H[GitHub API]
I[Supabase]
end
A -->|API Calls| C
A -->|OAuth| B
B -->|Session| I
C -->|Invoke| D
D -->|Query| F
D -->|Fetch| H
G -->|Schedule| E
E -->|Update| F
E -->|Fetch| H
style A fill:#4DA3FF
style C fill:#FF9900
style D fill:#FF9900
style E fill:#FF9900
style F fill:#FF9900
style I fill:#3ECF8E
- User Request β Frontend (Vercel)
- API Call β AWS API Gateway (with rate limiting)
- Lambda Execution β Fetch from DynamoDB
- Response β JSON data to frontend
- Cron Job β EventBridge triggers Lambda every 12 hours
- Data Sync β Fresh issues from GitHub API β DynamoDB
| Service | Purpose | Configuration |
|---|---|---|
| Lambda | Serverless compute for API & cron jobs | Node.js 18.x, 512MB RAM |
| API Gateway | RESTful API endpoint | Rate limiting: 100 req/s |
| DynamoDB | NoSQL database for issues | On-demand billing |
| EventBridge | Scheduled cron jobs | Runs every 12 hours |
| CloudWatch | Logging & monitoring | 7-day retention |
| IAM | Access management | Least privilege policies |
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Frontend (Vercel) β
β ββ React 18 + Vite β
β ββ Supabase Auth β
β ββ Auto-deploy on Git push β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β βοΈ AWS API Gateway β
β ββ REST API: /v1/Issues β
β ββ CORS enabled β
β ββ Rate limiting: 100 req/s, burst 200 β
β ββ CloudWatch logging β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β β‘ AWS Lambda Functions β
β ββ getIssues: Fetch issues by category β
β ββ cronJob: Sync GitHub data β
β ββ Timeout: 10s, Memory: 512MB β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β ποΈ DynamoDB β
β ββ Table: Issues β
β ββ Partition Key: category β
β ββ On-demand capacity β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
- AWS Free Tier: 1M Lambda requests/month
- Vercel Free Tier: Unlimited deployments
- Supabase Free Tier: 500MB database, 50K monthly active users
- Estimated Monthly Cost: $0 (within free tiers)
Node.js >= 18.x
npm >= 9.x
Git
AWS Account (for backend)
Supabase Account (for auth)- Clone the repository
git clone https://github.com/Th-Shivam/IssuePilot.git
cd IssuePilot- Install dependencies
npm install- Set up environment variables
Create a .env file in the root directory:
# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# AWS API Gateway
VITE_API_BASE_URL=your_api_gateway_url
VITE_API_URL=your_api_gateway_url- Run development server
npm run devVisit http://localhost:5173 π
- Push to GitHub
git add .
git commit -m "Ready for deployment"
git push origin main- Deploy to Vercel
- Add Environment Variables in Vercel
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYVITE_API_BASE_URLVITE_API_URL
- Deploy! π
See AWS_DEPLOYMENT.md for detailed Lambda & API Gateway setup.
IssuePilot uses Supabase for authentication with GitHub OAuth provider.
-
Create Supabase Project
- Visit supabase.com
- Create new project
- Copy URL and anon key
-
Configure GitHub OAuth
- GitHub Settings β Developer settings β OAuth Apps
- Create new OAuth app
- Set callback URL:
https://your-project.supabase.co/auth/v1/callback
-
Enable in Supabase
- Authentication β Providers β GitHub
- Add Client ID and Secret
- Save
- β Secure session management
- β Automatic token refresh
- β Protected routes
- β User profile with GitHub avatar
- Theme: Space-inspired dark mode
- Colors:
- Primary:
#4DA3FF(Blue) - Secondary:
#8A2BE2(Purple) - Background:
#0a0e27(Dark Navy)
- Primary:
- Typography: Inter, system fonts
- Effects: Glassmorphism, gradients, smooth animations
| Page | Route | Description |
|---|---|---|
| Landing | / |
Hero section with CTA |
| Explore | /explore |
Browse & filter issues |
| Community | /community |
Discord & WhatsApp links |
| Login | /login |
GitHub OAuth authentication |
https://t9gywgbya3.execute-api.us-east-1.amazonaws.com/v1
Fetch issues by category and tech stack.
Query Parameters:
| Parameter | Type | Required | Values |
|---|---|---|---|
category |
string | Yes | Beginner, Medium, Hard |
techStack |
string | No | Language name (e.g., JavaScript) |
Example Request:
curl "https://api-url/v1/Issues?category=Beginner&techStack=JavaScript"Example Response:
{
"count": 25,
"items": [
{
"id": "issue-123",
"title": "Add dark mode toggle",
"repository": "awesome-project",
"difficulty": "Beginner",
"techStack": "JavaScript",
"url": "https://github.com/...",
"labels": ["good first issue", "enhancement"]
}
]
}- Rate: 100 requests/second
- Burst: 200 requests
- Quota: 10,000 requests/day
Throttled Response:
{
"message": "Too Many Requests"
}HTTP Status: 429
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature- Make your changes
- Commit with conventional commits
git commit -m "feat: add amazing feature"- Push to your fork
git push origin feature/amazing-feature- Open a Pull Request
feat:New featurefix:Bug fixdocs:Documentationstyle:Formattingrefactor:Code restructuringtest:Adding testschore:Maintenance
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub API for providing issue data
- Supabase for authentication infrastructure
- AWS for serverless backend
- Vercel for seamless deployment
- Open Source Community for inspiration
Shivam Singh
