A web application that visualizes GitHub repository contributors' information, providing insights into pull requests, contributions, and contributor details.
contributor.info is a React TypeScript application that connects to the GitHub API to fetch repository data and displays meaningful information about contributors. The application uses Supabase for authentication and data storage.
- GitHub authentication
- Repository search and visualization
- Pull request analysis
- Contributor profile details
- Organization affiliation display
- Dark/light mode toggle
- Responsive UI built with Radix UI components and Tailwind CSS
contributor.info/
├── public/ # Static assets
├── src/ # Application source code
│ ├── components/ # React components
│ │ ├── ui/ # UI components (buttons, cards, etc.)
│ │ └── ... # Feature components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions and API clients
│ │ ├── github.ts # GitHub API integration
│ │ ├── supabase.ts # Supabase client setup
│ │ ├── types.ts # TypeScript type definitions
│ │ └── utils.ts # Helper utilities
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── .env # Environment variables (git-ignored)
├── index.html # HTML entry point
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── vite.config.ts # Vite build configuration
└── tailwind.config.js # Tailwind CSS configuration
┌─────────────────────────────────────┐
│ User Interface │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Auth UI │ │ Repository │ │
│ │ Components │ │ View │ │
│ └─────────────┘ └─────────────┘ │
└───────────┬─────────────────┬───────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Supabase │ │ GitHub API │
│ Authentication │ │ Integration │
│ & Storage │ │ │
└─────────────────┘ └─────────────────┘
- Node.js (v16 or later)
- npm or yarn
- GitHub account (for API access)
- Supabase account (for authentication and storage)
Create a .env
file in the root directory with the following variables:
VITE_GITHUB_TOKEN=your_github_personal_access_token
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
- Clone the repository:
git clone https://github.com/yourusername/contributor.info.git
cd contributor.info
- Install dependencies:
npm install
# or
yarn
- Start the development server:
npm run dev
# or
yarn dev
- Open your browser and navigate to
http://localhost:5173
To build the application for production:
npm run build
# or
yarn build
The build artifacts will be stored in the dist/
directory.
To preview the production build locally:
npm run preview
# or
yarn preview
To lint your code:
npm run lint
# or
yarn lint
- TypeScript: Configured in
tsconfig.json
andtsconfig.app.json
- Vite: Build tool configuration in
vite.config.ts
- Tailwind CSS: Styling configuration in
tailwind.config.js
- ESLint: Code linting rules in
eslint.config.js
- React: UI library
- TypeScript: Type-safe JavaScript
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Radix UI: Accessible component primitives
- Supabase: Backend as a Service for authentication and storage
- GitHub API: Data source for repository and contributor information
- React Router: Client-side routing
- React Hook Form: Form handling
- Zod: Schema validation
- Recharts: Charting library for data visualization