Skip to content

Latest commit

Β 

History

History
158 lines (120 loc) Β· 4.03 KB

File metadata and controls

158 lines (120 loc) Β· 4.03 KB

GitHub PR Tracker

GitHub PR Tracker

A modern, feature-rich application for tracking and analyzing GitHub Pull Requests with AI-powered insights.

🌟 Features

  • Real-time PR Tracking: Monitor pull requests across repositories with live updates
  • AI Analysis: Get intelligent insights about your PRs using Google's Gemini Pro AI
  • Analytics Dashboard: Visualize PR statistics with interactive charts
  • Authentication: Secure Google authentication with Firebase
  • Favorites System: Save and quickly access your frequently monitored repositories
  • Responsive Design: Seamless experience across all devices
  • Advanced Filtering: Filter PRs by status, labels, and search terms
  • Export Functionality: Export PR data to CSV format

πŸš€ Tech Stack

  • Frontend: React with TypeScript
  • State Management: Zustand
  • Styling: Tailwind CSS
  • Authentication: Firebase Auth
  • Database: Supabase
  • AI Integration: Google Gemini Pro
  • Charts: Recharts
  • Icons: Lucide React
  • Build Tool: Vite

πŸ“‹ Prerequisites

Before you begin, ensure you have:

  • Node.js (v16 or higher)
  • npm or yarn
  • Git

πŸ› οΈ Environment Variables

Create a .env file in the root directory with the following variables: env VITE_FIREBASE_API_KEY= VITE_FIREBASE_AUTH_DOMAIN= VITE_FIREBASE_PROJECT_ID= VITE_FIREBASE_STORAGE_BUCKET= VITE_FIREBASE_MESSAGING_SENDER_ID= VITE_FIREBASE_APP_ID= VITE_FIREBASE_MEASUREMENT_ID= VITE_SUPABASE_URL= VITE_SUPABASE_ANON_KEY= VITE_GITHUB_TOKEN= VITE_GOOGLE_AI_KEY=

πŸš€ Installation

  1. Clone the repository:

git clone https://github.com/yourusername/github-pr-tracker.git

2. Install dependencies:
```bash
cd github-pr-tracker
npm install
  1. Start the development server:

npm run dev


## πŸ“ Project Structure
src/
β”œβ”€β”€ components/ # React components
β”œβ”€β”€ services/ # Service layer (AI, Queue)
β”œβ”€β”€ store/ # Zustand store definitions
β”œβ”€β”€ types/ # TypeScript type definitions
β”œβ”€β”€ lib/ # Library configurations
β”œβ”€β”€ App.tsx # Main application component
└── main.tsx # Application entry point

## πŸ”’ Authentication Flow

1. Users sign in with Google via Firebase Authentication
2. User data is stored in Supabase
3. Authentication state is managed using Zustand store

## πŸ€– AI Integration

The application uses Google's Gemini Pro AI model for:
- PR analysis
- Code review suggestions
- Commit message analysis
- Development insights

## πŸ“Š Data Management

- **GitHub API**: Fetches PR data using Octokit
- **Rate Limiting**: Implements queue system for API requests
- **State Management**: Uses Zustand for global state
- **Persistence**: Favorites stored in local storage

## 🎨 Styling

- Utilizes Tailwind CSS for responsive design
- Custom animations and transitions
- Consistent color scheme and typography
- Mobile-first approach

## πŸ” Features in Detail

### Pull Request Table
- Sortable columns
- Status indicators
- Label management
- Comment tracking
- Quick actions

### Analytics Dashboard
- PR status distribution
- Timeline views
- Label statistics
- Activity metrics

### AI Chat Interface
- Real-time analysis
- Code suggestions
- Performance insights
- Chat history

## 🀝 Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## πŸ“ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## πŸ‘₯ Authors

- Your Name - Initial work - [YourGitHub](https://github.com/Mujtabaa07)

## πŸ™ Acknowledgments

- Firebase for authentication
- Supabase for database
- Google for AI capabilities
- GitHub for API access
- Open source community

## πŸ“§ Contact

Your Name - Mohamed Mujtaba - mohamedmujtaba07@gmail.com

Project Link:([https://github.com/yourusername/github-pr-tracker](https://github.com/Mujtabaa07/GitHub_PR_Tacker))