A modern, responsive web application for viewing GitHub user profiles, repositories, followers, and repository details using the GitHub REST API.
- User Search: Search for any GitHub user by username
- Profile View: Display comprehensive user profile information with stats and progress bars
- Repositories: Browse user repositories with search and sorting capabilities
- Followers: View user followers with pagination support
- Repository Details: View detailed information about individual repositories including languages, stats, and metadata
- HTML5: Semantic markup
- CSS3: Custom styles with Bootstrap 5
- JavaScript (ES6): Modern JavaScript with modules
- Bootstrap 5: Responsive grid system and components
- Bootstrap Icons: Icon library
- GitHub REST API: Data source
github-profile-viewer/ ├── index.html # Search page ├── profile.html # User profile page ├── repositories.html # Repositories listing page ├── followers.html # Followers page with pagination ├── repository.html # Repository details page ├── css/ │ └── style.css # Custom styles ├── js/ │ ├── config.js # API configuration │ ├── search.js # Search functionality │ ├── profile.js # Profile page logic │ ├── repositories.js # Repositories page logic │ ├── followers.js # Followers page logic with pagination │ └── repository.js # Repository details logic └── README.md # This file
- Simple search interface to find GitHub users
- Input validation and error handling
- Redirects to profile page on successful search
- User avatar, name, bio, and contact information
- Stats cards with progress bars for repositories, followers, and gists
- Navigation buttons to view repositories and followers
- Link to view profile on GitHub
- Grid layout displaying all user repositories
- Search functionality to filter repositories
- Sorting options (Recently Updated, Most Stars, Most Forks, Name)
- Repository cards showing language, stars, forks, and description
- Links to view repository details and GitHub
- Grid layout displaying user followers
- Pagination support (30 items per page)
- Follower cards with avatar and username
- Links to view follower profiles
- Comprehensive repository information
- Stats cards for stars, forks, watchers, and open issues
- Repository metadata (branch, dates, size, license)
- Repository settings (visibility, features)
- Language breakdown with progress bars
- Links to parent repository (if forked)
- Grid System: Responsive layout with rows and columns
- Cards: Content containers with headers, bodies, and footers
- Badges: Labels for languages, topics, and stats
- Progress Bars: Visual representation of stats and language usage
- Buttons: Various button styles and sizes
- Forms: Input fields and select dropdowns
- Navbar: Navigation header
- Alerts: Error and info messages
- Spinners: Loading indicators
- Pagination: Page navigation for followers
- Modules: Import/export for code organization
- Arrow Functions: Concise function syntax
- Async/Await: Asynchronous API calls
- Template Literals: String interpolation
- Destructuring: Object and array destructuring
- Const/Let: Block-scoped variables
- Fetch API: Modern HTTP requests
- Array Methods: map, filter, sort, forEach, reduce
GET /users/{username}
- Get user profileGET /users/{username}/repos
- Get user repositoriesGET /users/{username}/followers
- Get user followersGET /repos/{owner}/{repo}
- Get repository detailsGET /repos/{owner}/{repo}/languages
- Get repository languages
- Open
index.html
in a web browser - Enter a GitHub username (e.g., "octocat")
- Click "Search" to view the user profile
- Navigate through repositories, followers, and repository details
- Use the navigation buttons to explore different sections
- No authentication required (uses public GitHub API)
- Rate limit: 60 requests per hour for unauthenticated requests
- All data is fetched in real-time from GitHub
- Responsive design works on desktop, tablet, and mobile devices
- Chrome (recommended)
- Firefox
- Safari
- Edge
- Any modern browser with ES6 support
This project is open source and available for educational purposes.