Skip to content

Manvendra27saini/DevProfileReviewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ DevProfile Viewer

A modern, responsive GitHub profile and repository viewer built with React, TypeScript, and the GitHub REST API. Discover GitHub profiles, explore repositories, and analyze developer statistics in a beautiful, user-friendly interface.

DevProfile Viewer TypeScript Vite GitHub API

โœจ Features

๐Ÿ” Profile Discovery

  • Search GitHub users by username
  • View comprehensive profile information
  • Display avatar, bio, location, company, and social links
  • Show join date and contact information

๐Ÿ“Š Repository Analytics

  • Browse user's public repositories
  • Sort by stars, forks, or last updated
  • Filter repositories by programming language
  • View repository statistics (stars, forks, language)
  • Display repository topics and descriptions
  • Quick access to repository links

๐Ÿ“ˆ Developer Statistics

  • Total commits across repositories
  • Pull request statistics (total and open)
  • Programming language breakdown
  • Repository count and follower metrics
  • Language usage visualization with color coding

๐ŸŽจ Modern UI/UX

  • Dark/Light Theme Toggle - Seamless theme switching with persistence
  • Responsive Design - Perfect on desktop, tablet, and mobile
  • Skeleton Loading - Beautiful loading states instead of spinners
  • Search History - Quick access to previously searched profiles
  • Shareable URLs - Direct links to user profiles
  • Hover Effects - Interactive animations and transitions

๐Ÿ› ๏ธ Advanced Features

  • Repository Filtering - Filter by programming language
  • Smart Sorting - Sort repos by stars, forks, or update time
  • Error Handling - Graceful 404 and API error management
  • Rate Limiting - Intelligent API usage to prevent limits
  • Local Storage - Persistent search history and theme preferences
  • URL Parameters - Shareable profile links (e.g., ?user=username)

๐Ÿš€ Live Demo

Visit the live application:

๐Ÿ—๏ธ Tech Stack

  • Frontend Framework: React 18.2.0
  • Language: TypeScript 4.7.4
  • Build Tool: Vite 3.0.4
  • Styling: CSS3 with CSS Variables
  • API: GitHub REST API v3
  • Hosting: Vercel
  • State Management: React Hooks (useState, useEffect, useContext)
  • Theme System: Context API with localStorage persistence

๐ŸŽฏ Project Structure

src/
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ UserProfile.tsx      # User profile display component
โ”‚   โ”œโ”€โ”€ RepoList.tsx         # Repository list container
โ”‚   โ”œโ”€โ”€ RepoCard.tsx         # Individual repository card
โ”‚   โ”œโ”€โ”€ RepoFilters.tsx      # Repository filtering controls
โ”‚   โ”œโ”€โ”€ ThemeToggle.tsx      # Dark/light theme switcher
โ”‚   โ”œโ”€โ”€ SkeletonLoader.tsx   # Loading state components
โ”‚   โ””โ”€โ”€ Loader.tsx           # Spinner component
โ”œโ”€โ”€ contexts/
โ”‚   โ””โ”€โ”€ ThemeContext.tsx     # Theme management context
โ”œโ”€โ”€ App.tsx                  # Main application component
โ”œโ”€โ”€ App.css                  # Global styles and theme variables
โ”œโ”€โ”€ types.ts                 # TypeScript type definitions
โ””โ”€โ”€ index.tsx                # Application entry point

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/devprofile-viewer.git
    cd devprofile-viewer
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev
  4. Open your browser Navigate to http://localhost:5173

Building for Production

npm run build
npm run preview

๐ŸŽฎ Usage

  1. Search for a GitHub user by entering their username in the search box
  2. View their profile including bio, stats, and top programming languages
  3. Explore repositories with filtering and sorting options
  4. Toggle between themes using the theme switcher
  5. Use search history to quickly revisit previous searches
  6. Share profiles using the generated URL parameters

Example Searches

Try searching for popular GitHub users:

  • torvalds - Linus Torvalds (Linux creator)
  • gaearon - Dan Abramov (React core team)
  • tj - TJ Holowaychuk (Express.js creator)
  • sindresorhus - Sindre Sorhus (Popular open source maintainer)

๐Ÿ”ง Configuration

Environment Variables

No environment variables required! The app uses the public GitHub API.

Theme Customization

Themes are controlled via CSS variables in App.css. You can customize:

  • Primary and secondary colors
  • Background colors
  • Border colors
  • Font families and sizes

๐Ÿ“ฑ Responsive Design

The application is fully responsive and optimized for:

  • Desktop (1200px+): Full sidebar layout with grid
  • Tablet (768px-1199px): Stacked layout with responsive grid
  • Mobile (320px-767px): Single column layout with touch-friendly controls

๐Ÿ” API Integration

GitHub REST API Endpoints Used:

  • GET /users/{username} - User profile information
  • GET /users/{username}/repos - User repositories
  • GET /repos/{owner}/{repo}/commits - Repository commits (limited)
  • GET /repos/{owner}/{repo}/pulls - Pull requests (limited)

Rate Limiting

  • Unauthenticated: 60 requests per hour per IP
  • Authenticated: 5,000 requests per hour (not implemented)

๐Ÿงช Testing

Manual Testing Checklist

  • Search functionality works with valid usernames
  • Error handling for invalid usernames (404)
  • Repository filtering by language
  • Repository sorting by stars/forks/updated
  • Theme toggle persistence
  • Search history functionality
  • Responsive design on different screen sizes
  • URL sharing with user parameters

๐Ÿค Contributing

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

Development Guidelines

  • Use TypeScript for type safety
  • Follow React best practices and hooks patterns
  • Maintain responsive design principles
  • Add proper error handling
  • Update documentation for new features

๐Ÿ› Known Issues & Limitations

  • Rate Limiting: Public GitHub API has 60 requests/hour limit
  • Commit/PR Data: Limited to first 10 repositories to prevent rate limiting
  • Private Repositories: Only public repositories are accessible
  • Real-time Data: Data is fetched on demand, not real-time

๐Ÿ”ฎ Future Enhancements

  • GitHub OAuth integration for higher rate limits
  • Repository contribution graphs
  • Advanced analytics and charts
  • Export profile data to PDF
  • Comparison between multiple users
  • GitHub organization support
  • Real-time GitHub activity feed
  • Repository language pie charts
  • GitHub stars timeline

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ‘จโ€๐Ÿ’ป Author

Your Name

๐Ÿ™ Acknowledgments

  • GitHub for providing the comprehensive REST API
  • React Team for the amazing framework
  • Vite for the blazing fast build tool
  • Open Source Community for inspiration and best practices

โญ Star this repository if you find it helpful!

Built with โค๏ธ using React, TypeScript, and the GitHub API

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published