|
1 | | -<p align="center"> |
2 | | - <img width="200px" height="200px" src="Data/Images/Logo.png" alt="Logo"> |
3 | | -</p> |
4 | | -<h1 align="center">GitHubUserDataExtractor</h1> |
5 | | -<p align="center"> |
6 | | -A Tool Which Gives Access To Some Information about any user on GitHub, directly on your Terminal Screen<br> |
7 | | -For information on all the most recent upgrades and changes, read this <a href="changelog.md">changelog</a>. |
8 | | -</p> |
9 | | - |
10 | | -> ( ꈍᴗꈍ) |
11 | | -> |
12 | | -> git clone https://github.com/QuantumByteStudios/GitHubUserDataExtractor.git --depth=1 |
13 | | -
|
14 | | -> [!IMPORTANT] |
15 | | -> - GitHub feed viewing is now supported! |
16 | | -> - The only visible events are Release, Create, Publish, Fork, and Star/Watch events. |
17 | | -
|
18 | | -# Runtime Screenshots |
19 | | - |
20 | | -<p align="center"> |
21 | | - <img src="Data/Images/GitHubUserDataPreviewImg0.png" alt="Preview"> |
22 | | -</p> |
23 | | -<!-- <img src="Data/Images/warning.png" alt="Preview"> --> |
24 | | -<!--<img src="GitHubUserDataPreviewImgTermux.jpeg" alt="Preview">--> |
25 | | -<br> |
26 | | - |
27 | | -<b>Actual user feed: </b><br> |
28 | | - |
29 | | -<p align="center"> |
30 | | - <img src="Data/Images/GitHubUserDataFeedPreviewImg.png" alt="Preview"> |
31 | | -</p> |
32 | | - |
33 | | -<b>This is how you will see it: </b><br> |
34 | | - |
35 | | -<p align="center"> |
36 | | - <img src="Data/Images/GitHubUserDataFeedRawPreviewImg.png" alt="Preview"> |
37 | | -</p> |
38 | | -<br> |
| 1 | +# GitHubUserDataExtractor |
| 2 | + |
| 3 | +**GitHubUserDataExtractor** is a cross-platform Python tool designed to extract and display public GitHub user data both in the terminal and through a visual HTML dashboard. It provides a streamlined way to fetch a user’s profile, recent activity, and contribution statistics using GitHub’s REST API and external visualization services. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- Retrieves a GitHub user's public profile and recent activity |
| 8 | +- Displays formatted JSON data in the terminal with color-coded output |
| 9 | +- Generates a dynamic HTML dashboard styled with Bootstrap |
| 10 | +- Embeds contribution graphs, language usage charts, and GitHub stats |
| 11 | +- Native HTML viewer support for Linux (PyWebView) and Windows (PyQt5) |
| 12 | +- Clean file structure with modular code organization |
| 13 | + |
| 14 | +## Installation |
| 15 | + |
| 16 | +Clone the repository and install dependencies: |
| 17 | + |
| 18 | +```bash |
| 19 | +git clone https://github.com/QuantumByteStudios/GitHubUserDataExtractor.git |
| 20 | +cd GitHubUserDataExtractor |
| 21 | +pip install -r requirements.txt |
| 22 | +``` |
| 23 | + |
| 24 | +Ensure you are using Python 3.7 or higher. |
| 25 | + |
| 26 | +## Usage |
| 27 | + |
| 28 | +Run the application using: |
| 29 | + |
| 30 | +```bash |
| 31 | +python src/main.py |
| 32 | +``` |
| 33 | + |
| 34 | +You will be prompted to enter a GitHub username. The tool will: |
| 35 | + |
| 36 | +1. Fetch the user's public GitHub profile and display it in the terminal. |
| 37 | +2. Retrieve recent events like stars, forks, and releases. |
| 38 | +3. Generate an HTML report and open it in a native desktop viewer. |
| 39 | +4. Clean up temporary files after closing the viewer. |
| 40 | + |
| 41 | +Runtime Screenshot |
| 42 | + |
| 43 | +## Project Structure |
| 44 | + |
| 45 | +``` |
| 46 | +GitHubUserDataExtractor/ |
| 47 | +│ |
| 48 | +├── src/ |
| 49 | +│ ├── cli/ # Terminal input/output logic |
| 50 | +│ ├── core/ # API and HTML generation logic |
| 51 | +│ └── ui/htmlviewers/ # Platform-specific GUI viewers |
| 52 | +│ |
| 53 | +├── assets/ |
| 54 | +│ └── templates/ # HTML/CSS/JS templates |
| 55 | +│ |
| 56 | +├── tests/ # Unit tests |
| 57 | +├── requirements.txt |
| 58 | +├── README.md |
| 59 | +``` |
| 60 | + |
| 61 | +## Output |
| 62 | + |
| 63 | +The tool creates a temporary HTML report (`index.html`) inside the `assets/output/` directory. This report includes: |
| 64 | + |
| 65 | +- Recent GitHub events (filtered by event types) |
| 66 | +- Contribution graphs and language usage charts |
| 67 | +- Visual badges and statistics via third-party services |
| 68 | + |
| 69 | +This file is opened in a native GUI window and then automatically cleared on exit. |
| 70 | + |
| 71 | +## Use Cases |
| 72 | + |
| 73 | +- Developers reviewing their own GitHub contributions and stats |
| 74 | +- Technical recruiters assessing candidate GitHub activity |
| 75 | +- Educators demonstrating API integration and data visualization |
| 76 | +- Hackathon teams building offline GitHub user snapshots |
| 77 | + |
| 78 | +## Technologies |
| 79 | + |
| 80 | +- Python 3 |
| 81 | +- GitHub REST API |
| 82 | +- Requests (HTTP client) |
| 83 | +- Colorama (terminal color formatting) |
| 84 | +- PyQt5 (Windows HTML viewer) |
| 85 | +- PyWebView (Linux HTML viewer) |
| 86 | +- Bootstrap 5 (UI styling) |
| 87 | +- External visualization APIs: |
| 88 | + - GitHub Readme Stats |
| 89 | + - GitHub Streak Stats |
| 90 | + - GitHub Profile Summary Cards |
| 91 | + |
| 92 | +## API Limitations |
| 93 | + |
| 94 | +This tool uses unauthenticated GitHub API requests and is therefore subject to rate limiting: |
| 95 | + |
| 96 | +- 60 requests per hour per IP address |
| 97 | + |
| 98 | +To increase limits, you can optionally extend the tool to use a personal access token. |
| 99 | + |
| 100 | +## License |
| 101 | + |
| 102 | +This project is licensed under the MIT License. See `LICENSE.md` for details. |
| 103 | + |
| 104 | +## Author |
| 105 | + |
| 106 | +Developed by QuantumByteStudios. Contributions and suggestions are welcome. |
| 107 | +For inquiries, email us at [contact@quantumbytestudios.in](mailto:contact@quantumbytestudios.in). |
0 commit comments