shaansubbaiah / Portfolio

👤 Automatically generate and deploy a beautiful, responsive, static-site to display your GitHub projects.
MIT License
82 stars 13 forks source link
avatar github-pages github-profile nodejs personal-website portfolio vite website-builder website-generation

Automatically generate a beautiful, responsive site to display your GitHub projects.
Live demo at shaansubbaiah.github.io
If you find Portfolio useful, make sure to 🌟 the repository!

Features

Getting Started

Install

  1. Clone the repo or download the latest release
git clone git@github.com:shaansubbaiah/Portfolio.git
  1. Install dependencies
cd Portfolio

npm install
  1. Run Portfolio
node portfolio.js
  1. Set the Github token, edit the config and then build!

See Configuration

A token can be created at https://github.com/settings/tokens/new

Make sure you have selected atleast public_repo, read:user permissions while creating the token!

  1. You can deploy the website to your github pages site (generally https://.github.io) from Portfolio. OR Manually copy contents in dist/ to your github pages repository.

  2. Done

Development

Portfolio now uses ViteJS which significantly improves over the previosuly existing development workflow.

The website files are in src/

To view the site with hot-reload on changes, run:

npm run dev

If there's data missing, you might have to build the site once so it writes the GitHub data to ./github-data.json

Building

Run Portfolio and select the build option.

Under the hood, Portfolio runs vite build which reads the config from vite.config.js and the build files are at dist/

Configuration

username: String - your Github username

repos: Integer - number of repositories to display, MAX 100

avatar: String - path(local/remote) to an image for the avatar and favicon. If not specified, uses your GitHub avatar.

linkedinURL: String - your LinkedIn profile link. Set to null in config.json to disable it / press enter while setting it up.

twitterId: String - your Twitter profile id. Set to null in config.json to disable it / press enter while setting it up. (Portfolio will automatically get your Twitter ID if you have added it to your GitHub profile)

gitlabId: String - your GitLab profile id. Set to null in config.json to disable it / press enter while setting it up.

navLinks: Object Array - adds navigation links at the top. DON'T EXCEED 3

where,
name: String - Text to display
link: String - URL the text links to

infoLinks: Object Array - adds additional links in the information section.

where,
name: String - Text to display
link: String - URL the text links to

socialPreviewImage: String - displays repo's social preview image in the card. To enable, set value = "enabled".

Contributing

See CONTRIBUTING.md

Related

Gitfolio

Dev Portfolio

License

MIT Copyright (c) 2022 Shaan Subbaiah