Skip to content

Th-Shivam/IssuePilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ IssuePilot

Your Gateway to Open Source Contribution

Discover beginner-friendly GitHub issues tailored to your skills and start contributing with confidence

Live Demo GitHub License

IssuePilot Banner


πŸ“– Table of Contents


✨ Features

🎯 Core Features

  • πŸ” 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

πŸŽ“ GSoC Organizations Filter

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).

πŸš€ Technical Highlights

  • 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

πŸ—οΈ Architecture

System Design

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
Loading

Data Flow

  1. User Request β†’ Frontend (Vercel)
  2. API Call β†’ AWS API Gateway (with rate limiting)
  3. Lambda Execution β†’ Fetch from DynamoDB
  4. Response β†’ JSON data to frontend
  5. Cron Job β†’ EventBridge triggers Lambda every 12 hours
  6. Data Sync β†’ Fresh issues from GitHub API β†’ DynamoDB

☁️ Cloud Infrastructure

AWS Services Used

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

Infrastructure Highlights

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  🌐 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                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Cost Optimization

  • 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)

πŸ› οΈ Tech Stack

Frontend

React Vite JavaScript CSS3

Backend & Cloud

AWS Lambda API Gateway DynamoDB EventBridge

Authentication & Database

Supabase GitHub OAuth

DevOps & Deployment

Vercel Git GitHub Actions


πŸš€ Getting Started

Prerequisites

Node.js >= 18.x
npm >= 9.x
Git
AWS Account (for backend)
Supabase Account (for auth)

Installation

  1. Clone the repository
git clone https://github.com/Th-Shivam/IssuePilot.git
cd IssuePilot
  1. Install dependencies
npm install
  1. 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
  1. Run development server
npm run dev

Visit http://localhost:5173 πŸŽ‰


πŸ“¦ Deployment

Frontend Deployment (Vercel)

  1. Push to GitHub
git add .
git commit -m "Ready for deployment"
git push origin main
  1. Deploy to Vercel

Deploy with Vercel

  1. Add Environment Variables in Vercel
  • VITE_SUPABASE_URL
  • VITE_SUPABASE_ANON_KEY
  • VITE_API_BASE_URL
  • VITE_API_URL
  1. Deploy! πŸš€

Backend Deployment (AWS)

See AWS_DEPLOYMENT.md for detailed Lambda & API Gateway setup.


πŸ” Authentication

Supabase + GitHub OAuth

IssuePilot uses Supabase for authentication with GitHub OAuth provider.

Setup Steps:

  1. Create Supabase Project

    • Visit supabase.com
    • Create new project
    • Copy URL and anon key
  2. Configure GitHub OAuth

    • GitHub Settings β†’ Developer settings β†’ OAuth Apps
    • Create new OAuth app
    • Set callback URL: https://your-project.supabase.co/auth/v1/callback
  3. Enable in Supabase

    • Authentication β†’ Providers β†’ GitHub
    • Add Client ID and Secret
    • Save

Features:

  • βœ… Secure session management
  • βœ… Automatic token refresh
  • βœ… Protected routes
  • βœ… User profile with GitHub avatar

🎨 UI/UX

Design System

  • Theme: Space-inspired dark mode
  • Colors:
    • Primary: #4DA3FF (Blue)
    • Secondary: #8A2BE2 (Purple)
    • Background: #0a0e27 (Dark Navy)
  • Typography: Inter, system fonts
  • Effects: Glassmorphism, gradients, smooth animations

Key Pages

Page Route Description
Landing / Hero section with CTA
Explore /explore Browse & filter issues
Community /community Discord & WhatsApp links
Login /login GitHub OAuth authentication

πŸ“Š API Documentation

Base URL

https://t9gywgbya3.execute-api.us-east-1.amazonaws.com/v1

Endpoints

GET /Issues

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 Limiting

  • Rate: 100 requests/second
  • Burst: 200 requests
  • Quota: 10,000 requests/day

Throttled Response:

{
  "message": "Too Many Requests"
}

HTTP Status: 429


🀝 Contributing

We welcome contributions! Here's how you can help:

Development Workflow

  1. Fork the repository
  2. Create a feature branch
git checkout -b feature/amazing-feature
  1. Make your changes
  2. Commit with conventional commits
git commit -m "feat: add amazing feature"
  1. Push to your fork
git push origin feature/amazing-feature
  1. Open a Pull Request

Commit Convention

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation
  • style: Formatting
  • refactor: Code restructuring
  • test: Adding tests
  • chore: Maintenance

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • GitHub API for providing issue data
  • Supabase for authentication infrastructure
  • AWS for serverless backend
  • Vercel for seamless deployment
  • Open Source Community for inspiration

πŸ“ž Contact

Shivam Singh

GitHub LinkedIn Email


⭐ Star this repo if you find it helpful!

Made with ❀️ and ☁️ by Shivam Singh

Visitors

About

Discover beginner-friendly GitHub issues tailored to your skills and start contributing with confidence

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors