• Stars
    star
    109
  • Rank 319,077 (Top 7 %)
  • Language
    JavaScript
  • License
    Mozilla Public Li...
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A repository you can use to template your technical portfolio

Build your own Technical Portfolio

This repository allows you to create your own technical portfolio page! You are welcome to extend it for other uses, such as blogs or documentation.

If you have problems with this repository, please see our frequently asked questions page.

This repository was originally created for Grace Hopper Celebration 2020 and is constantly being updated based on the feedback of the workshop participants. You can find the slides from vGHC here.

Prerequisites

Getting Started

Copying the template repository

You'll need to copy this repository to your Github username and enable a few settings.

  1. Navigate to the tech-portfolio in your web browser.

  2. Fork this repo to your GitHub user. fork This repo contains all of the necessary files to deploy your technical portfolio; however, you need to configure this repository with the necessary settings to make it a GitHub Pages site.

    ‼️ Ensure you are on your forked repository by checking the upper left title of the repo. It should contain your GitHub user name.

  3. Navigate to Settings in your forked repo. Settings

  4. On the Settings page, navigate to "Options" and scroll to the bottom to the "GitHub Pages" section.

  5. Change the Source branch to "gh-pages" and keep the "/(root)" path and save this change. This contains the GitHub Actions workflow. GitHubPages

  6. Go to the Actions page of the repostiory. Actions Repo Page

  7. This original repo has a workflow file already configured and GitHub disables these when you fork them by default. To enable this pre-configured workflow, select the "I understand my workflows, go ahead and enable them."

    ‼️ The Actions workflow will not do anything until you make additional changes.

Now you are ready to move into the repo and make this portfolio your own!

Edit your portfolio with your personal info

  1. Navigate to the Code page of your repo and make sure you are on the main branch. Click on the "website" folder and open the siteConfig.js file. Code

  2. Click on the pencil icon to edit this file. siteConfig.js

There are four text fields and three social media links for you to update.

Update with your name and tagline

  1. Find the title: field and add your name. Remember to keep this field in single quotes.

    ...
    title: 'YOUR NAME',
  2. The next line is tagline:. This field appears on your portfolio front page. Replace the placeholder with a description of you in three adjectives and the type of work you do or are looking for. Keep this field in single quotes as well. While we didn't put a character limit, keep it to 140 characters or less!

 ...
 tagline: 'Technologist, awesome, and amazing.',

Update your site URL and organization

  1. The next line is url and should be your GitHub username.

    ...
    url: 'https://YOUR-GITHUB-USER.github.io',
  2. Keep the baseUrl and projectName fields the same.

    ‼️ We are using a project GitHub page, not a global one associated with your username. If you do want your portfolio to be located at your-user.github.io, you must change the name of the repository.

  3. Your organizationName is your GitHub username.

    ...
    organizationName: 'YOUR-GITHUB-USER',

Commit your changes

  1. Once you have updated all of the above fields, you are ready to commit these initial changes.
  2. Click the "Commit changes" button to save your changes.

Review the Actions workflow

To observe GitHub Actions building your page, go the "Actions" section of the repo.

workflowrunning

Click on the "Update siteConfig.js" job. GitHub displays the actions it is taking to build & publish your portfolio.

buildrunning

When the "build" job is complete, navigate to your portfolio in another tab of your web browser.

Your URL is "https://YOUR-GITHUB-USERNAME.github.io/tech-portfolio/" and this site displays your live portfolio.

Congratulations! You completed this walkthrough and have a live technical portfolio! Any changes in your forked repo will trigger a new build and will update your site.

Update Your Profile Picture

Follow these instructions to update your profile picture on the home page.

  1. Save the photo you want to use for your profile and name the photo profile.png.

  2. Navigate to the website/static/img folder of your technical portfolio.

  3. Click the Add file drop-down and choose "Upload files". website/static/img

  4. Choose your file called profile.png and commit this as a change to your repository.

  5. Check your live website. The home page should have your photo.

Update Your Social Media Links

  1. Scroll to the bottom of the website/siteConfig.js file in the editor.

  2. Check out the socialMedia section. This section controls the social media icons and links at the bottom of your portfolio!

     socialMedia: {
         linkedin: 'https://www.linkedin.com/in/',
         twitter: 'https://twitter.com/',
         github: 'https://github.com/',
         //facebook: 'https://www.facebook.com/',
         //instagram: 'https://www.instagram.com/',
         //youtube: 'https://www.youtube.com/',
         //twitch: 'https://www.twitch.tv/'
     },

    docs/assets

  3. Navigate to your social media profile page. Copy the URL and paste it into the field.

    1. For example, find your LinkedIn public profile name, login to your LinkedIn account and view your profile.
    2. On your profile page, click "Edit public profile & URL" from the upper right section of the page. profile
    3. Under "Edit your custom URL", copy the entire URL (https://www.linkedin.com/in/yourprofile). This is your LinkedIn profile URL.
    4. Paste it in your linkedin: setting.
      linkedin: 'https://www.linkedin.com/in/yourprofile',
  4. If you want to add social media, check out the commented lines (lines starting with //). You can enable the social media icons by delete the // from the line.

    linkedin: 'https://www.linkedin.com/in/yourprofile', <- delete the // at the beginning of the line to use
  5. If you don't have a social media profile for the specific website, you can add the // to the beginning of the line. These will be ignored.

    // linkedin: 'https://www.linkedin.com/in/yourprofile', <- added the // at the beginning of the line to ignore
  6. The page will update with the social media icons automatically!

If our list doesn't include a social media icon you want, feel free to open a Github issue and tell us which one you're looking for!

Update Your About Page

You can customize the About page of your technical portfolio with some information about you.

  1. In the docs directory of the repo, open the about.md page and edit it.

  2. Update this page with a little bit about yourself!

  3. To see this page, navigate to your site and click the About page. show projects

Update Your Projects Page

You can customize the Projects page of your technical portfolio with a project you want to highlight.

  1. Take a screenshot of a project you recently worked on and save it to your local machine.

  2. Navigate to the docs/assets/ folder of your technical portfolio and click the Add file drop-down and choose "Upload files". docs/assets

  3. Choose your file and commit this as a change to your repository. upload image

  4. In the docs directory of the repo, open the projects.md page and edit it.

  5. Update this page with a short description of the project with a link to see it live if available.

  6. To add the screenshot, you will use the Markdown syntax with alt text in [] and a relative link to the image in (). show edit

  7. Commit your changes and navigate to Actions, where the new build job will run and update your page.

  8. To see this page, navigate to your site and click the Projects page. show projects

Add a Blog

Usually, it is easier to use a blogging platform to write a blog. However, we added this into your tech portfolio if you want to manage your blogs yourself. To add a new post...

  1. In the website directory of the repo, find the blog folder.

  2. Create a new file called <YEAR>-<MM>-<DD>-blog-post.md. Make sure you name it with the year, month, and date. If your month or day is single digits, make sure you add the 0 in front of it (e.g., February is 02). Keep the -blog-post.md.

  3. Copy the contents of 2020-10-03-blog-template.md. Paste into your new blog post.

  4. Change the title to one that you want to name your post.

  5. Update the body of the post with some content.

  6. Commit your changes and navigate to Actions, where the new build job will run and add your new blog post.

  7. To see this page, navigate to your site and click the Blogs page. show blogs

Delete Your Portfolio

  1. Navigate to Settings in your forked repo. Settings

  2. Scroll down to the bottom of the page until you see the Danger Zone. Danger zone

  3. Click "Delete this Repository" and follow the prompts to remove the repository. Delete

Apply Updates from This Template Repository to Your Portfolio

Let's say you want to include the updates we made for the social media links into your portfolio. At the time, we didn't add dynamic creation of social media icons and you want to include your YouTube channel. You can update your portfolio to take advantage of template updates we make.

  1. Go to your forked repository. You'll see at the top a box that says how commits different your repository is from our template repository. Commit difference

  2. Click the "Compare" button. Compare fork with template repository

  3. When you click compare, it might show "no differences" because GitHub compares the fork to the base. You want to compare the base to the fork! Click "switching the base" to reverse the comparison and compare the base to the fork. Switch bases

  4. You should see the base repository as your portfolio and the head repository as the template. Head and base repositories

  5. Click "Create Pull Request". Create Pull Request

  6. In the pull request dialog, name the pull request something descriptive like "updating my repo to match template". Then, click "Create Pull Request". Create the Pull Request

  7. Click "Merge Pull Request" and click "Confirm Merge". Commit difference

  8. Your pull request should merge successfully. If you have conflicts, you will have to resolve them through the GitHub UI. Successful merge

More Repositories

1

tdd-infrastructure

Some examples of Test-Driven Development for Infrastructure
Ruby
194
star
2

manning-book

Code examples for "Infrastructure as Code, Patterns & Practices" by Rosemary Wang
Python
86
star
3

hashicorp-stack-demoapp

HashiCorp Cloud Platform (Vault, Consul, Boundary) with Argo CD and Kubernetes
HCL
80
star
4

infrastructure-pipeline

An example pipeline for executing HashiCorp Terraform with ephemeral cloud provider credentials managed by HashiCorp Vault
HCL
50
star
5

vagrantfiles

Vagrantfiles for various purposes
Shell
32
star
6

terraform-aws-listenerrule-nia

Consul-Terraform-Sync Module for AWS Application Load Balancer Listener Rules
HCL
20
star
7

kubernetes-reference

Shell
19
star
8

backstage-plugin-terraform

Experimental Terraform Cloud Plugin for Backstage
TypeScript
17
star
9

getting-into-vault

HCL
14
star
10

k8s-services-bluegreen

Service Meshes Blue/Green Examples for Kubernetes
12
star
11

hashicorp-aws-zero-trust

Using HashiCorp Boundary, Vault, and Consul with Amazon ECS
HCL
12
star
12

policy-as-code

HCL
12
star
13

hashicorp-vault-flux

Using HashiCorp Vault with Flux to inject secrets
HCL
11
star
14

ovs_exporter

Open vSwitch Exporter for Prometheus. This has been archived.
Go
11
star
15

olt-infrastructure-as-code

O'Reilly Live Training - Infrastructure as Code
HCL
11
star
16

feature-flags-infrastructure

TypeScript
10
star
17

vault-argocd

Example showing how to use Vault with ArgoCD
Makefile
9
star
18

terraform-aws-hcp

Terraform Module for Configuring AWS Components for HashiCorp Cloud Platform
HCL
9
star
19

gitops-hashicups

Demo: GitOps on Kubernetes with Consul, Vault & Terraform
HCL
8
star
20

2019-demo-ato

2019 Demo for All Things Open
HCL
8
star
21

cloud-migration

HCL
8
star
22

serverless-consul

Using Consul with Serverless
Go
7
star
23

vault-agent-ecs

A Docker container to run Vault agent on Amazon ECS. Not officially supported by HashiCorp.
Shell
7
star
24

terraform-aws-boundary

Terraform module for deploying a HashiCorp Boundary cluster on AWS. Testing purposes only.
HCL
7
star
25

terraform-kubernetes

Use Terraform Cloud Run Triggers to create a Kubernetes cluster with HashiCorp Consul & Vault
HCL
6
star
26

hcp-vault

HCL
6
star
27

expense-report

A demo with Spring and .NET applications that use Consul's service mesh. Includes Vault & Kubernetes.
HCL
5
star
28

vault-plugin-secrets-hashicups

Archived. Officially moved to https://github.com/hashicorp/vault-guides/tree/master/plugins/vault-plugin-secrets-hashicups.
Go
5
star
29

consul-k8s-ingress-controllers

Testing for different API gateways with Consul
HCL
5
star
30

spinnaker-consul

Demonstration of HashiCorp Consul service mesh, Prometheus metrics, and Spinnaker canary analysis
HCL
4
star
31

hello-stateful-operator

Go
4
star
32

terraform-provider-translate

Example Terraform Provider for Google Translate API
Go
4
star
33

vault-on-gke

HashiCorp Vault on Google Kubernetes Engine with the official Helm chart
HCL
4
star
34

chrome-remote-desktop-pipeline

Go
4
star
35

2017-demo-ato

All Things Open 2017 Example
Python
4
star
36

chrome-remote-desktop-image

Image pipeline to bake a Chrome Remote Desktop image
Shell
4
star
37

hcp-examples

Examples for HashiCorp Cloud Platform
HCL
4
star
38

hashicorp-azure-zero-trust

HCL
3
star
39

consul-acls-vault-terraform

Managing HashiCorp Consul ACLs with Vault and Terraform
HCL
3
star
40

2019-monitorama

2019 Monitorama Baltimore - What's Fitness Function-Driven Development for Operability?
JavaScript
3
star
41

consul-ecs

This is not an officially supported HashiCorp image. It demonstrates the minimal configuration for running Consul on ECS.
Shell
3
star
42

consul-handler

Sample Handlers for Consul
Makefile
3
star
43

terraform-aws-postgres

HCL
2
star
44

kubernetes-demo

For demo-ing Kubernetes with pod visualizations.
JavaScript
2
star
45

opa-vault-example

HCL
2
star
46

terraform-azurerm-application-gateway-nia

A Consul-Terraform-Sync module for Azure Application Gateway
HCL
2
star
47

ansible-runner

Executes an Ansible Playbook
Python
2
star
48

k8s-b8cs

Shell
2
star
49

vault-plugin-secrets-terraform

[Deprecated] Terraform Cloud Secrets Backend for Vault.
Go
2
star
50

test-in-production-for-infrastructure

Examples for feature toggling, canary, and A/B testing for infrastructure
HCL
2
star
51

dotnet-service-mesh-example

Consolidated with a Java service mesh example.
C#
1
star
52

cdktf-consul-template

consul-template with CDK for Terraform
Dockerfile
1
star
53

joatmon08.github.io

SCSS
1
star
54

circleci-eks-agent

CircleCI agent containing EKS packaging.
Ruby
1
star
55

boundary-plugin-google

WORK IN PROGRESS. Not officially supported by HashiCorp. Dynamic host catalog plugin for Boundary.
Go
1
star
56

hello

Quick hello world application with two ports.
Ruby
1
star
57

hello-stateful

A sample stateful application
Shell
1
star
58

terraform-google-kubernetes

Google Kubernetes cluster with Workload Identity
HCL
1
star
59

eks-kubernetes-services

Kubernetes Services such as ingress, to be deployed on a cluster.
Python
1
star
60

gcp-database-module

Python
1
star
61

kops-terraform

HCL
1
star
62

python-sample-apps

Sample Applications written in Python for various purposes
Python
1
star
63

terraform-aws-mongodb

MongoDB Atlas Database on AWS
HCL
1
star
64

terraform-google-vaulthelm

Shell
1
star
65

terraform-kubernetes-deployment

Examples for Terraform Kubernetes Provider
HCL
1
star