A modern React application for managing and visualizing GitHub issues across organizations. Built with React Router for seamless navigation and enhanced user experience. This project was built using Codex ChatGPT.
Try the app at https://evolvus.github.io/github-issue-manager/.
- Clean URL Structure: Each view has its own route (
/,/by-assignee,/by-tags, etc.) - Browser History: Back/forward buttons work seamlessly
- Active State Indicators: Visual feedback for current page
- Responsive Navigation: Collapsible navigation on mobile devices
- Real-time Charts: Opened vs Closed issues over time (week/month/year)
- Sprint Burndown Chart: Track remaining issues against an ideal burndown trajectory for sprint planning
- Key Metrics: Open, Closed, Backlog, and Sprint issues at a glance
- Top Contributors: See who's most active and who closes the most issues
- By Assignee View: Group issues by team members
- Click-through Filtering: Click on numbers to filter issues
- Avatar Integration: Visual team member identification
- Unassigned Issues: Track issues without assignees
- By Tags View: Organize issues by labels
- Color-coded Labels: GitHub's label colors preserved
- Quick Filtering: Click to filter by specific tags
- No-label Tracking: Identify issues without labels
- Kanban-style Layout: Drag and drop interface
- Status Columns: Backlog, Ready, In Progress, In Review, Done
- Collapsible Columns: Focus on specific statuses
- CSV Export: Download issues by status
- Project Selection: Choose from multiple projects
- Milestone Tracking: Visualize sprint progress
- Progress Bars: See completion percentages
- Due Date Monitoring: Track sprint deadlines
- Issue Grouping: All issues in a milestone
- Comprehensive Filtering: By state, assignee, tags, milestones, project status
- Global Search: Search across titles, repositories, assignees, and labels
- CSV Export: Download filtered results
- Responsive Grid: Card-based issue display
- Rich Issue Cards: Labels, assignees, milestones, and status
- Node.js 16+
- npm or yarn
- GitHub Personal Access Token with
reposcope
-
Clone the repository
git clone <repository-url> cd github-issues-manager
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
- Enter Organization: Type your GitHub organization name (e.g.,
vercel,facebook) - Add Token: Enter your GitHub Personal Access Token
- Load Data: Click "Load" to fetch issues and projects
- Navigate: Use the navigation bar to switch between different views
- React 18: Modern React with hooks
- React Router 6: Client-side routing with nested routes
- Vite: Fast build tool and dev server
- Tailwind CSS: Utility-first CSS framework
- Recharts: Beautiful, composable charts
- Lucide React: Beautiful & consistent icon toolkit
- GitHub GraphQL API: Modern API for GitHub data
src/
βββ components/
β βββ ui/ # Reusable UI components
β βββ Dashboard.jsx # Main dashboard view
β βββ ByAssignee.jsx # Assignee-based view
β βββ ByTags.jsx # Tag-based view
β βββ ProjectBoard.jsx # Kanban board view
β βββ Sprints.jsx # Milestone/sprint view
β βββ AllIssues.jsx # Comprehensive issue list
β βββ IssueCard.jsx # Individual issue display
β βββ Navigation.jsx # Route navigation
βββ App.jsx # Main app with routing
βββ main.jsx # App entry point
βββ index.css # Global styles
- Go to GitHub Settings β Developer settings β Personal access tokens
- Generate a new token with
reposcope - Copy the token and paste it in the app
Create a .env file for production settings:
VITE_GITHUB_API_URL=https://api.github.com/graphql- Modify
tailwind.config.jsfor theme customization - Update
src/index.cssfor global styles - Component-specific styles in each component file
- Create a new component in
src/components/ - Add the route to
src/components/Navigation.jsx - Add the route to
src/App.jsxRoutes
- Code Splitting: Each route loads independently
- Memoization: Optimized re-renders with useMemo
- Lazy Loading: Components load on demand
- Efficient Filtering: Client-side filtering for fast response
- Client-side Only: No server-side data storage
- Token Security: Tokens stored only in memory
- Direct API Calls: No proxy server needed
- HTTPS Only: Secure communication with GitHub
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
- GitHub for the excellent GraphQL API
- Codex ChatGPT for assisting in building this project
- The React Router team for the amazing routing solution
- The Tailwind CSS team for the utility-first approach
- All contributors and users of this project
Made with β€οΈ for the GitHub community