A modern, responsive web application built with Blazor Server that allows users to explore GitHub profiles and repositories with detailed insights, statistics, and visualizations. This comprehensive tool enables users to search for any GitHub user and view their profile details, repository information, star history, gists, and network connections all in one place.
To increase the API rate limit and access private repository information, the application offers two authentication methods:
- Sign in with GitHub: Securely sign in using your GitHub account.
- Personal Access Token: Manually enter your GitHub Personal Access Token.
Both methods allow you to bypass the standard 60 requests/hour limit and utilize your own API quota (5,000 requests/hour).
- User Search: Quickly search and find any GitHub user by their username. The real-time search feature provides instant results with user avatars and profile links.
- Repository Explorer: Browse through all public repositories with detailed information including stars, forks, language, and descriptions. Filter and sort repositories by various criteria.
- Gist Viewer: Access and browse user's gists with syntax highlighting. View code snippets, notes, and shared files directly from the profile page.
- README Preview: Read repository README files without leaving the application. Properly rendered markdown content helps you understand projects quickly.
- Star History Charts: Visualize the growth of repository stars over time with interactive charts. Understand how a project's popularity has evolved since its creation.
- Profile Statistics: View comprehensive profile statistics including total stars received, total forks, primary languages, and contribution metrics.
- Network Analysis: Explore a user's network by viewing their followers and following lists. Identify connections and key contributors in the open-source community.
The application includes a fully documented API powered by Scalar.
- Interactive Docs: Access the API documentation at
/docsto explore endpoints and test requests. - Integration: Use the API to programmatically access user profiles, repositories, and statistics.
- Advanced Filtering: Filter repositories by language, sort by stars or date, and search within a user's repositories to find exactly what you're looking for.
- Responsive Design: Fully responsive interface that works seamlessly across desktop, tablet, and mobile devices.
- Rate Limit Monitoring: Real-time display of API quota usage to help manage GitHub API limits.
- ASP.NET Core 9.0: The core web framework used for the application.
- Blazor Server: Provides the interactive web UI framework.
- C#: The primary programming language for backend logic.
- Blazor Components: Reusable interactive UI components.
- Bulma CSS: A modern CSS framework used for styling and responsive design.
- JavaScript: Used for client-side interactions and integrations.
- Chart.js: Library used for rendering data visualization charts.
- Markdig: Used for processing and rendering Markdown content for README files.
- Memory Caching: Implemented to optimize performance and reduce API calls.
- HttpClient: Handles communication with the GitHub API.
- Docker: Support for containerized deployment.
- .NET 9.0 SDK
- Git
- (Optional) Docker for containerized deployment
-
Clone the repository:
git clone https://github.com/sametcn99/GPVBlazor.git cd GPVBlazor -
Navigate to the project directory:
cd GPVBlazor/GPVBlazor -
Restore dependencies:
dotnet restore
-
Run the application:
dotnet run
To build and run the application using Docker:
-
Build the Docker image:
docker build -t gpvblazor . -
Run the container:
docker run -d -p 8080:8080 --name gpvblazor-app gpvblazor
The application interacts with the GitHub API. While it works without authentication, the API rate limit is restricted to 60 requests per hour. To increase this limit to 5,000 requests per hour and access private repository information, you can configure a Personal Access Token.
- Generate a Personal Access Token in your GitHub Developer Settings.
- Enter the token in the authentication section on the application's home page.
- The token is stored securely in your browser's local storage and is never sent to any server other than GitHub's API.
- Components: Contains all Blazor components (Displays, Layout, Pages).
- Services: Contains business logic and API interaction services (UserService, AuthService, etc.).
- Models: Defines data models used throughout the application.
- wwwroot: Contains static assets like CSS, JavaScript, and icons.
See the LICENSE.txt file for details.