Skip to content

A modern, responsive web application for viewing GitHub user profiles, repositories, followers, and repository details using the GitHub REST API.

Notifications You must be signed in to change notification settings

mo7amedshaban/GitHub-Profile-Viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Profile Viewer

A modern, responsive web application for viewing GitHub user profiles, repositories, followers, and repository details using the GitHub REST API.

Features

  • 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

Technologies Used

  • 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

Project Structure

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 

Pages

1. Search Page (index.html)

  • Simple search interface to find GitHub users
  • Input validation and error handling
  • Redirects to profile page on successful search

2. Profile Page (profile.html)

  • 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

3. Repositories Page (repositories.html)

  • 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

4. Followers Page (followers.html)

  • Grid layout displaying user followers
  • Pagination support (30 items per page)
  • Follower cards with avatar and username
  • Links to view follower profiles

5. Repository Details Page (repository.html)

  • 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)

Bootstrap Features Used

  • 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

ES6 Features Used

  • 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

API Endpoints Used

  • GET /users/{username} - Get user profile
  • GET /users/{username}/repos - Get user repositories
  • GET /users/{username}/followers - Get user followers
  • GET /repos/{owner}/{repo} - Get repository details
  • GET /repos/{owner}/{repo}/languages - Get repository languages

How to Use

  1. Open index.html in a web browser
  2. Enter a GitHub username (e.g., "octocat")
  3. Click "Search" to view the user profile
  4. Navigate through repositories, followers, and repository details
  5. Use the navigation buttons to explore different sections

Notes

  • 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

Browser Compatibility

  • Chrome (recommended)
  • Firefox
  • Safari
  • Edge
  • Any modern browser with ES6 support

License

This project is open source and available for educational purposes.

About

A modern, responsive web application for viewing GitHub user profiles, repositories, followers, and repository details using the GitHub REST API.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •