Giter Club home page Giter Club logo

my-github-projects's Introduction

My GitHub Projects

Dev portfolio static site showing a user's GitHub repos grouped by topic

Netlify Status Scheduled Netlify deploy GitHub tag License

Made with Ruby Made with Node.js Uses GitHub GraphQL API

Made with Jekyll Theme Jekyll Bulma Made with Bulma Package - list.js Known Vulnerabilities gems

Showcase your GitHub repos as a statically-rendered site. Built on Jekyll and GitHub GraphQL API.

The project is deployed and hosted on Netlify. GitHub Actions is used to trigger a build daily, to ensure the latest repo info is used.

Website

view - Site

Preview

Repos

This page shows a list of all of the user's repos. With optional filter on name.

Sample screenshot 1

Topics

Show all repos grouped by topic (e.g. #jekyll or #github-pages-site).

Sample screenshot 2

Setup your own portfolio

How to reuse this repo and to make portfolio site for yourself.

  1. Fork this repo to your own GitHub account.
  2. Follow instructions in the docs for local or remote setup.
  3. Make any custom updates like config values and making the doc badges point to your repo.
  4. Comply with License section below.

In the setup instructions, you'll generate a GitHub secret token for your account. The GitHub GraphQL query will then get data for you as the authenticating user. You do not have to set your own GitHub username anywhere.

Documentation

view - Documentation

License

Released under MIT by @MichaelCurrin.

Feel free to use this project for your own portfolio - as a fork or a new project. Please add a link back to this repo.

If you use a significant portions of code for another project, you need to a copy of the original source in you repo.

my-github-projects's People

Contributors

dependabot[bot] avatar michaelcurrin avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

my-github-projects's Issues

Rename to dev-portfolio

Description

Easy to configure and reuse Jekyll site which showcases your GitHub repos by topic keyword

Add deploy to Netlify button

Add instructions around it saying you'll get errors on the first build and have to update token then rebuild.

Add topic labels on repos

To save space, perhaps shorten to first few, or show on hover over.

Click the link to go to the topic elsewhere in the page (or jump to topics page from repos page).

Curate filters

This can be useful as links to pages, or a choice of filters.

For example Python projects, ML, Javascript, Templates/Quickstarts

the label can be different to the tag

consider AND logic such as JS + Quickstarts.

This makes it more focussed for me (avoid the long tail) and targeted as portfolio of skills. And for me to find things or a share a link.

Create docs site

Even if its just basic Github Pages markdown.

Link to the content from the main site.

Keep them separate though. The main site is for people use consume info, not to the project code.

Restructure data

Site data comes in as repos list. Convert to a hash.

Output will be topics with name and hash of repos. Which can be ordered later by a field.

Data comes in as list as repos from gql
Iterate over that and the topics. In the output, add a topic key if one does not exist. Give it a topic name and empty hash by default. Then add a repo by user and repo name key, using site data as value

Now you can loop over topics and get repos in each, which need to be ordered after processing is done but possibly avoiding sorting just before you use it, or ordering is consistent style. You can even stored date sorted version and name sorted version though you might store a topic that is never used.

You can also look up a topic by name from frontmatter and then show its repos. Probably ordered by date. Maybe by name. There should be an elegant way to switch even if JS shows and hides.

Add a page of just quickstarts

Use OR logic

base
starter
quickstart
skeleton
scaffold
etc

Just a projects, not under topics. And then those can be excluded from the topics page maybe if I can find another view to see distribution of each so I can use the same keywords on all my quickstarts

Redesign frontend

  • Use bulma for sticky header
  • Remove footer
  • Use CSS-based Bulma accordions to switch between keywords - avoid having to use droplist or radio and removes need for split between form and result. Note - this only works for tags view.
  • Remove chosen keywords from frontend

Redesign

There are a couple things I don't like about this and a clean start could be nice.

Refactor the GQL to use a Python script and appropriate library. So don't have to refactor and maintain ruby.
Maybe write to a separate file to separate the logic. Fewer fetches at development.
Also add paging, based on my reporting repo. Maybe a library makes this easier or maybe not and it just makes other code simpler
Use Netlify or GH Pages/Actions workflow. Use deploy token or otherwise GH token for GH Actions

Build one view of my repos with topic filters at the bottom. See link from Joan.

Repeat this pattern for my starred repos.

Add fav repos

These are for me currently working on as quick reference, in an order I set - not necessarily to show someone.

Consolidate doc pages and about page

They are for difference audiences.

See what content should be duplicated or not.

Should setup instructions be on the website itself? Rather make it focussed on presentation to most people and rather include a short setup section with a link to docs.

Even consider a separate Github Pages docs site (Jekyll or Docsify), but that is not important. Esp for short docs.

Merge repo and topic pages

Filter by repo name or tag from droplist/radio.
Perhaps prefilter to topics to preferred ones or exclude some.

And for another issue:

And then a new kind topic page can be used to highlight without filtering and just selected topics, with images and set order. Perhaps split out each onto separate pages or find a way to navigate between all easily. Perhaps treat like a blog post where there is a preview of the recent or top rated in Python and a page to see all of them.

Maybe the topic and repos can be curated so not based on tags at all. Just before of repo names breaking but it is central to build a portfolio. And also use to make a quick reference page for me whether current topics or just topics I care about (Jekyll / Netlify) which might not make sense as hiring portfolio.

Add days

For created and modified dates, add bracket numbers or tooltips

Logic:

days = Current date minus target + 1
If less than 7 days then "days"
If less than 28 days then "weeks". Days / 7 and round off.
If less than 365 days then "months". Days / average month
Otherwise "years". Round off.

Stop build on mismatched repos

When selecting top of repos and topics to put them in, check if the repo names in the data / config file are all in the fetched repos list. Otherwise fail the build. This helps to keep track of repos that get renamed.

Do this in Ruby. Use sets - take the configured list and subtract the larger list and see if there are any items left.

Refactor backend

Keep using Ruby

Convert to external gem installable.
Refactor that to separate concerns

Allow passing of argument / env variable for dev mode to restrict items

Also look at paging for repos > 100

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.