Thanks to visit codestin.com
Credit goes to github.com

Skip to content

PortfolioHub is a modern web application built with Next.js that allows developers to create a custom portfolio using data from their GitHub account. The application requires a personal GitHub access token to obtain detailed user information and present it in a visually attractive dashboard with statistics, graphs and interactive elements.

License

Notifications You must be signed in to change notification settings

marichu-kt/PortfolioHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

47 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PortfolioHub Next.js React Tailwind

PortfolioHub โ€“ Your Personal GitHub Dashboard ๐Ÿ’ผ๐Ÿ“Š

Banner

๐Ÿ“‹ Table of Contents


๐Ÿš€ Project Description

PortfolioHub is a modern web application built with Next.js that allows developers to create a personalized portfolio using data from their GitHub account. The application requires a personal GitHub access token to retrieve detailed user information and present it in a visually appealing dashboard with statistics, charts, and interactive elements.


๐ŸŽฅ Demo

Demo

โœจ Features and Functionality

๐Ÿ“Š Statistics Dashboard

  • User profile: Basic GitHub user information (logo, username, and bio)
  • Profile statistics: total stars, total forks, total repositories, as well as the average stars per repo, total commits, and total languages used.
  • Language charts: Visualization of programming languages used in pie chart format
  • Contribution calendar: Heatmap of commits and activity
  • Language icons: Displays the logos of the programming languages used.
  • Advanced statistics: Detailed repository and activity metrics

๐ŸŽจ Interactive Components

  • Customizable themes: Interface with light and dark mode (ThemeSwitch)
  • PDF export: Generate the portfolio in PDF format for download and sharing.
  • QR sharing: Generate QR code to easily share the portfolio
  • Rotating planets: This extra feature is available in the code for greater customization, but it is disabled in the Demo for clarity.
  • Repository filters: Search and filter repositories by language or stars
  • Live code editor: Ability to customize and run code sections

๐Ÿ›  Technologies Used

Frontend

  • Next.js 13+: React framework with hybrid rendering (SSG/SSR)
  • React 18+: Main UI library
  • Tailwind CSS: Utility-first CSS framework for styling
  • Context API: Global state management for the application

APIs and Services

  • GitHub REST API: Retrieve user and repository data
  • GitHub GraphQL API: Specific queries for detailed data

Utilities and Libraries

  • React Loadable: Lazy loading of components
  • QR Code Generation: Generate QR codes for sharing
  • PDF Generation: Create PDF documents for export
  • Chart Libraries: Data visualization in charts

๐Ÿ“‹ System Requirements

Minimum Requirements

  • Node.js 16.8.0 or higher
  • npm 7.0 or higher
  • Personal GitHub access token with the appropriate scopes

Required GitHub Token Scopes

The token must have the following permissions:

  • repo (including all sub-permissions)
  • read:user
  • user:email
  • project
  • read:project
  • workflow

๐Ÿ’ป Installation and Setup

  1. Clone the Repository

    git clone https://github.com/marichu-kt/PortfolioHub
    cd portfoliohub
  2. Install Dependencies

    npm install
  3. Get and Configure the GitHub Token
    To run the script, you must create and configure a .env.local file in the root of the project with the content:

    NEXT_PUBLIC_GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXX

    Replace XXXXXXXXXXXXXXXXXXX with:

  4. Run the Application

    npm run dev

    The application will be available at http://localhost:3000

    Execution
  5. Build for Production

    npm run build
    npm start

๐Ÿ“ Project Structure

portfoliohub/
โ”œโ”€โ”€ public/                 # Static files
โ”‚   โ”œโ”€โ”€ images/            # General images
โ”‚   โ”‚   โ””โ”€โ”€ logo.png       # Application logo
โ”‚   โ””โ”€โ”€ textures/          # Textures for components
โ”‚       โ”œโ”€โ”€ earth.jpg
โ”‚       โ”œโ”€โ”€ jupiter.jpg
โ”‚       โ”œโ”€โ”€ mars.jpg
โ”‚       โ”œโ”€โ”€ moon.jpg
โ”‚       โ””โ”€โ”€ venus.jpg
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/        # React components
โ”‚   โ”‚   โ”œโ”€โ”€ Achievements.js
โ”‚   โ”‚   โ”œโ”€โ”€ AdvancedStats.js
โ”‚   โ”‚   โ”œโ”€โ”€ AnimatedSection.js
โ”‚   โ”‚   โ”œโ”€โ”€ GitHubCalendarS.js
โ”‚   โ”‚   โ”œโ”€โ”€ LanguageChart.js
โ”‚   โ”‚   โ”œโ”€โ”€ LiveCodeEditor.js
โ”‚   โ”‚   โ”œโ”€โ”€ LoginButton.js
โ”‚   โ”‚   โ”œโ”€โ”€ PdfExportButton.js
โ”‚   โ”‚   โ”œโ”€โ”€ QRShare.js
โ”‚   โ”‚   โ”œโ”€โ”€ RepoFilters.js
โ”‚   โ”‚   โ”œโ”€โ”€ RotatingPlanet.js
โ”‚   โ”‚   โ”œโ”€โ”€ Skills.js
โ”‚   โ”‚   โ””โ”€โ”€ ThemeSwitch.js
โ”‚   โ”œโ”€โ”€ context/           # React contexts
โ”‚   โ”‚   โ””โ”€โ”€ ThemeContext.js
โ”‚   โ”œโ”€โ”€ hooks/             # Custom Hooks
โ”‚   โ”‚   โ””โ”€โ”€ useAuth.js
โ”‚   โ”œโ”€โ”€ pages/             # Next.js pages
โ”‚   โ”‚   โ”œโ”€โ”€ _app.js        # Main app component
โ”‚   โ”‚   โ”œโ”€โ”€ customize.js   # Customization page
โ”‚   โ”‚   โ”œโ”€โ”€ dashboard.js   # Main dashboard
โ”‚   โ”‚   โ””โ”€โ”€ index.js       # Home page
โ”‚   โ”œโ”€โ”€ services/          # Services and APIs
โ”‚   โ”œโ”€โ”€ styles/            # Global styles
โ”‚   โ”‚   โ””โ”€โ”€ globals.css
โ”‚   โ””โ”€โ”€ utils/             # Utilities
โ”‚       โ””โ”€โ”€ languageicons.js
โ”œโ”€โ”€ next.config.js         # Next.js configuration
โ”œโ”€โ”€ tailwind.config.js     # Tailwind CSS configuration
โ”œโ”€โ”€ postcss.config.js      # PostCSS configuration
โ”œโ”€โ”€ package.json           # Dependencies and scripts
โ””โ”€โ”€ README.md              # This file

๐Ÿ”ฎ Upcoming Features

  • Predefined templates for different portfolio styles
  • More detailed commit and contribution analysis
  • Plugin system for extended features
  • More ideas comment here: Discussions

๐Ÿ”– Use of Author References for Planet Textures

To respect the copyright and attributions of the images used (exclusively for the planet texture images), I have used the tool:

๐Ÿ‘‰ SaferLayer

This tool allows embedding the author reference or the intended activity into the images, ensuring proper credit attribution clearly within the website and preventing their removal with Artificial Intelligence.


๐Ÿ“ซ Contact

If you have questions or want to provide suggestions, you can write to me at:
[email protected]


๐Ÿ“„ License

This project is licensed under the MIT License. See the file LICENSE for more details.

About

PortfolioHub is a modern web application built with Next.js that allows developers to create a custom portfolio using data from their GitHub account. The application requires a personal GitHub access token to obtain detailed user information and present it in a visually attractive dashboard with statistics, graphs and interactive elements.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published