Skip to content

sametgurtuna/github-rater

Repository files navigation

πŸš€ GitHub Profile Analyzer

Next.js TypeScript Tailwind CSS License

Advanced GitHub Profile Analysis Platform - Comprehensive insights, scoring, and AI-powered recommendations for developers to optimize their GitHub presence.

🌐 Live Demo

πŸš€ Try it now! - Experience the full power of GitHub Profile Analyzer with real-time analysis.

Demo Features:

  • βœ… Real-time Analysis: Analyze any GitHub profile instantly
  • βœ… Interactive Dashboard: Explore comprehensive insights and metrics
  • βœ… Multi-language Support: English and Turkish interface
  • βœ… Responsive Design: Works perfectly on all devices
  • βœ… Advanced Scoring: Multi-dimensional profile evaluation

πŸ’‘ Pro Tip: Try analyzing popular developers like torvalds, gaearon, or vercel to see the full potential!

✨ Features

πŸ” Intelligent Profile Analysis

  • Multi-dimensional Scoring System: Activity, Contribution, Popularity, Quality, and Diversity metrics
  • Real-time Data Processing: Live GitHub API integration for up-to-date information
  • Advanced Algorithms: Sophisticated scoring algorithms based on industry best practices
  • Rate Limit Management: Intelligent API request handling with rate limit awareness

πŸ“Š Rich Visual Dashboard

  • Interactive Charts: Programming language distribution and repository activity visualization using Chart.js
  • Score Cards: Color-coded performance indicators with detailed descriptions
  • Responsive Design: Optimized for all devices and screen sizes
  • Smooth Animations: Framer Motion powered UI transitions and micro-interactions

🎯 Smart Recommendations Engine

  • Personalized Insights: AI-powered suggestions based on profile analysis
  • Actionable Advice: Specific, implementable recommendations for profile improvement
  • Progress Tracking: Monitor improvements over time

🌍 Internationalization

  • Multi-language Support: English and Turkish with easy language switching
  • Localized Content: Culturally adapted messaging and terminology
  • Extensible Framework: Easy to add new languages

🎨 Modern UI/UX

  • Heroicons Integration: Beautiful, consistent icon library
  • Tailwind CSS: Utility-first CSS framework for rapid development
  • Framer Motion: Smooth animations and transitions
  • Responsive Layout: Mobile-first design approach

πŸ› οΈ Technology Stack

Technology Version Purpose
Next.js 14.2.31 Full-stack React framework with API routes
TypeScript 5.6.3 Type-safe development and better DX
Tailwind CSS 3.4.17 Utility-first CSS framework
Heroicons 2.1.5 Beautiful, consistent icon library
Chart.js 4.4.3 Interactive data visualization
Framer Motion 12.23.12 Smooth animations and transitions
Axios 1.7.9 HTTP client for API requests
GitHub API v3 Real-time GitHub data integration

πŸš€ Quick Start

Prerequisites

  • Node.js 18.0 or higher
  • npm 9.0 or higher
  • Git for version control

Installation

  1. Clone the repository

    git clone https://github.com/sametgurtuna/github-rater.git
    cd github-rater
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env.local

    Configure your .env.local:

    GITHUB_TOKEN=your_github_personal_access_token
    NEXT_PUBLIC_APP_URL=http://localhost:3000
  4. Run the development server

    npm run dev
  5. Open your browser Navigate to http://localhost:3000

πŸ“– Usage Guide

Basic Analysis

  1. Enter GitHub Username

    • Type any valid GitHub username in the search field
    • Examples: torvalds, gaearon, vercel
  2. Analyze Profile

    • Click "Analyze" or press Enter
    • Wait for real-time data processing
  3. Review Results

    • Score Cards: Overall performance metrics
    • Charts: Visual data representation
    • Insights: AI-generated recommendations
    • Repository List: Top projects and activity

Understanding Scores

Metric Description Weight
Overall Weighted average of all criteria 100%
Activity Account age and update frequency 25%
Contribution Repository count and fork contributions 20%
Popularity Followers and star count 20%
Quality Project documentation and features 20%
Diversity Different languages and topics 15%

Score Ranges

  • 90-100: πŸ† Exceptional - Elite developer status
  • 80-89: 🌟 Excellent - Outstanding performance
  • 70-79: πŸ‘ Good - Above average developer
  • 60-69: ⚠️ Average - Room for improvement
  • Below 60: πŸ”΄ Needs Work - Significant improvement required

πŸ”§ Configuration

Environment Variables

Variable Description Required Default
GITHUB_TOKEN GitHub Personal Access Token Yes -
NEXT_PUBLIC_APP_URL Application URL No http://localhost:3000
NODE_ENV Environment mode No development

GitHub Token Setup

  1. Go to GitHub Settings > Developer settings > Personal access tokens
  2. Click "Generate new token (classic)"
  3. Select scopes:
    • public_repo - Access public repositories
    • read:user - Read user profile data
    • read:org - Read organization data
  4. Copy the token and add it to your .env.local

πŸ—οΈ Project Structure

github-rater/
β”œβ”€β”€ app/                    # Next.js 13+ app directory
β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”‚   └── analyze/       # Profile analysis endpoint
β”‚   β”œβ”€β”€ globals.css        # Global styles
β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   └── page.tsx           # Home page
β”œβ”€β”€ components/             # React components
β”‚   β”œβ”€β”€ ActivityChart.tsx  # Repository activity visualization
β”‚   β”œβ”€β”€ InsightsPanel.tsx  # AI insights display
β”‚   β”œβ”€β”€ LanguageChart.tsx  # Programming languages chart
β”‚   β”œβ”€β”€ ProfileHeader.tsx  # User profile header
β”‚   β”œβ”€β”€ RecommendationsPanel.tsx # Improvement suggestions
β”‚   β”œβ”€β”€ RepositoriesList.tsx    # Repository listing
β”‚   β”œβ”€β”€ ScoreCard.tsx      # Individual score display
β”‚   β”œβ”€β”€ ProfileAnalyzer.tsx # Main analysis component
β”‚   └── LanguageSwitcher.tsx # Language toggle
β”œβ”€β”€ contexts/               # React contexts
β”‚   └── LanguageContext.tsx # Internationalization
β”œβ”€β”€ locales/                # Translation files
β”‚   β”œβ”€β”€ en.json            # English translations
β”‚   └── tr.json            # Turkish translations
β”œβ”€β”€ services/               # Business logic
β”‚   └── github.ts          # GitHub API integration
β”œβ”€β”€ types/                  # TypeScript type definitions
β”‚   └── github.ts          # GitHub data types
└── public/                 # Static assets

🎨 Customization

Adding New Languages

  1. Create translation file

    // locales/fr.json
    {
      "site": {
        "title": "Analyseur de Profil GitHub",
        "description": "Analysez votre profil GitHub..."
      }
    }
  2. Update LanguageContext

    // contexts/LanguageContext.tsx
    const languages = {
      en: 'English',
      tr: 'Turkish',
      fr: 'FranΓ§ais'  // Add new language
    };

Customizing Scoring Algorithm

Modify the scoring logic in services/github.ts:

const calculateScore = (data: GitHubData): Score => {
  return {
    activity: calculateActivityScore(data),
    contribution: calculateContributionScore(data),
    popularity: calculatePopularityScore(data),
    quality: calculateQualityScore(data),
    diversity: calculateDiversityScore(data),
    overall: calculateOverallScore(data)
  };
};

πŸš€ Deployment

Vercel (Recommended)

  1. Connect Repository

    • Push code to GitHub
    • Connect repository to Vercel
  2. Configure Environment

    • Add GITHUB_TOKEN to Vercel environment variables
    • Set NEXT_PUBLIC_APP_URL to your domain
  3. Deploy

    • Vercel automatically deploys on push
    • Custom domain configuration available

Docker Deployment

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]
docker build -t github-profile-analyzer .
docker run -p 3000:3000 github-profile-analyzer

🀝 Contributing

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

Development Setup

  1. Fork the repository
  2. Create feature branch
    git checkout -b feature/amazing-feature
  3. Make changes and commit
    git commit -m 'Add amazing feature'
  4. Push to branch
    git push origin feature/amazing-feature
  5. Open Pull Request

Contribution Guidelines

  • Code Style: Follow existing TypeScript and React patterns
  • Testing: Add tests for new features
  • Documentation: Update README and code comments
  • Commits: Use conventional commit messages

Areas for Contribution

  • 🎨 UI/UX Improvements: Better designs and animations
  • πŸ”§ Performance: Optimize API calls and rendering
  • 🌍 Internationalization: Add more languages
  • πŸ“Š Analytics: Enhanced metrics and insights
  • πŸ”’ Security: Security audits and improvements

πŸ“Š Performance Metrics

  • Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
  • Bundle Size: < 200KB (gzipped)
  • First Contentful Paint: < 1.5s
  • Time to Interactive: < 3s

πŸ”’ Security

  • Rate Limiting: GitHub API request throttling with intelligent handling
  • Input Validation: Sanitized user inputs
  • CORS Protection: Configured for production domains
  • Environment Variables: Secure credential management

πŸ“ˆ Roadmap

Phase 1 (Current)

  • βœ… Multi-language support (EN/TR)
  • βœ… Advanced scoring algorithms
  • βœ… Responsive dashboard with animations
  • βœ… GitHub API integration with rate limiting
  • βœ… Interactive charts and visualizations

Phase 2 (Q4 2025)

  • πŸ”„ Team profile analysis
  • πŸ”„ Historical data tracking
  • πŸ”„ Export functionality
  • πŸ”„ Advanced charts and metrics

Phase 3 (Q1 2026)

  • πŸ”„ AI-powered insights
  • πŸ”„ Integration with other platforms
  • πŸ”„ Mobile app
  • πŸ”„ API for developers

πŸ› Troubleshooting

Common Issues

Rate Limit Exceeded

Error: API rate limit exceeded

Solution: Wait for rate limit reset or use authenticated requests

User Not Found

Error: User not found

Solution: Verify username spelling and account existence

Build Errors

Error: TypeScript compilation failed

Solution: Run npm run type-check for detailed errors

Debug Mode

Enable debug logging:

DEBUG=* npm run dev

πŸ“„ License

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

πŸ™ Acknowledgments

  • GitHub API for providing comprehensive developer data
  • Next.js Team for the amazing framework
  • Tailwind CSS for the utility-first CSS approach
  • Chart.js for beautiful data visualizations
  • Heroicons for consistent iconography
  • Framer Motion for smooth animations

πŸ“ž Support

⭐ Star History

Star History Chart


About

πŸ“Š Check your GitHub rating, view results and enhance your profile quality.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published