Inspiration

As an open source enthusiast, I've always been fascinated by the collaborative nature of GitHub repositories. However, I noticed that newcomers to open source often struggle with understanding complex issues and knowing where to start. During the Google Hackathon, I was inspired to create a tool that could democratize issue analysis using AI. The idea was to bridge the gap between raw GitHub data and actionable insights, making open source contribution more accessible to everyone.

What it does

Repo Doctor is an AI-powered web application that helps open source contributors analyze GitHub issues more effectively. Users can enter any public GitHub repository URL and get:

  • Issue Dashboard: A comprehensive view of all open issues with filtering and search capabilities
  • AI-Powered Analysis: Intelligent summaries, severity ratings, and fix suggestions for individual issues using Google Gemini AI
  • Statistics Overview: Visual breakdown of issue types (bugs, features, documentation, questions) and their distribution
  • Detailed Insights: Step-by-step fix strategies, code hints, potential pitfalls, and comment summaries

The app bridges the gap between raw GitHub data and actionable insights, making it easier for developers to understand complex issues and contribute meaningfully to open source projects.

How we built it

i built Repo Doctor using modern web technologies and AI integration:

Frontend Stack:

  • Next.js 16 with App Router for dynamic routing and server components
  • TypeScript for type safety and better developer experience
  • Tailwind CSS + shadcn/ui for responsive, accessible UI components
  • React hooks for state management and API calls

Backend/API:

  • Next.js API routes for server-side logic and API proxying
  • GitHub REST API integration with proper authentication and rate limiting
  • Google Gemini AI (gemini-2.0-flash) for natural language processing and issue analysis

Architecture:

  • Dynamic routes for repository-specific pages (/dashboard/[owner]/[repo])
  • API routes for data fetching (/api/repo/[owner]/[repo], /api/parse-url)
  • Component-based UI with reusable elements (IssueCard, StatsCards, etc.)
  • Environment-based configuration for API keys

The development process followed an iterative approach: prototyping the GitHub API integration first, then adding AI analysis, and finally refining the user experience.

Challenges we ran into

  • AI Prompt Engineering: Crafting prompts that consistently produce structured, useful analysis for diverse issue types required extensive testing and refinement. Issues range from simple typos to complex architectural problems.

  • API Rate Limiting: GitHub's API limits (60 requests/hour without authentication) necessitated implementing caching strategies and user feedback for rate limit scenarios.

    Accomplishments that we're proud of

  • Seamless AI Integration: Successfully integrated Google Gemini to provide intelligent, context-aware issue analysis that goes beyond simple summarization.

  • User-Centric Design: Created an intuitive interface that makes complex GitHub data accessible to developers of all experience levels.

What we learned

  • API Integration Patterns: Best practices for handling external APIs, authentication, rate limiting, and error recovery.

  • User Experience Design: The value of progressive disclosure and clear visual hierarchy in data-rich applications.

  • Open Source Contribution: Gained perspective on the challenges faced by contributors and how tools can facilitate better collaboration.

What's next for repo-doctor

Future enhancements for Repo Doctor include:

  • Pull Request Analysis: Extend AI analysis to pull requests, providing code review suggestions and merge conflict insights.

  • Multi-Repository Support: Allow users to analyze multiple repositories simultaneously and track contribution patterns.

  • Collaborative Features: Add commenting, sharing, and team collaboration tools for issue analysis.

  • Advanced Filtering: Implement more sophisticated search and filtering options based on labels, assignees, and timelines.

Built With

Share this project:

Updates