Portfolio Page


A "Personal Portfolio" is a web site that showcases your personal work. It can serve as a resume that people can interact with to see examples of the work in question.

We will be building it in React, and hosting it on Heroku!


Your Portfolio should have:

It should also:

Be available for the world to see!!!

The proper scripts for deployment have been provided on the root level of your repo.

"heroku-postbuild": "cd client && npm install --only=dev && npm install && npm run build"

Whenever you push your repository to heroku with git push heroku master, this script will update and compile your code for you. Nice! You will still need to set up your server so your React application will know how to serve your files properly, though.

How, you ask?

Hint 1

When designing a single page application with React Router, issues usually revolve around the conflict in routing approaches between React Router and your server (express). This needs to be addressed!

Solution: Create a "catch-all" route in your express server that always serves your index.html file.

Hint 2 Don't forget to statically serve your `/build` folder in your `express` server as well! [more about it here](https://create-react-app.dev/docs/deployment/)


  • Understand and use the following:
    • Whitespace using margin and padding
    • Typography improvements
    • Text spacing
    • Color and contrast
    • Using images


While the specific style choices and functionality are ultimately up to you, the following stories are required.

Home Page

Should have: * A profile image of you. * A short description of who you are, for example:

A passionate web developer looking to make a difference in Vermont.

  • Links to the following sub-pages, which do not need to exist yet.
    • About Me
    • Projects or Portfolio
    • Hobbies and Interests
    • Work History
    • Contact Me Form

About Me Page

  • Build a page (or component) that includes basic details about your history as a person such as:
    • What interestes you
    • Where you grew up
    • Why you got into programming

Projects Page

  • A list of all the repos on your personal github account
  • Link to the completed or in progress project repositories for this bootcamp.
    • Use links to your github repositories and/or links to your deployed projects, possibly with cover screenshots.
    • Make sure the links are up to date!
  • Add cover screenshots for each project.
    • Optionally add a separate page for each with a description of the objectives, your approach to solving the project, and anything else that you learned.
    • Optionally record a video showing your walkthrough of the project program or application in use.

Hobbies and Interests Page

  • Hobbies
    • Do you play any instruments or play in a band?
    • Are you on an intramural sports team like soccor, ultimate frisbee or softball?
    • Are you passionate about an outdoor sport such as skiing, rock climbing, mountain biking, kayaking or something else?
    • Do you volunteer at a local animal shelter, food shelf, or school board?

Work History

  • Create a web version of your resume with basic formatting, don't stress too much about the layout. Make sure to include the following.

    • Your career goal(s).
    • Prior employers going back ten years.
    • Personal skills and experience.
    • e.g. HTML / CSS / JavaScript / Web Development / Git / Command Line
  • Link to a downloadable version of your resume such as a PDF.

<a href="/assets/myResume.pdf" download>
  <img src="/images/my-resume-cover.jpg" alt="My Personal Resume Screenshot">

Download File Example

Navigation Bar

This should exist, and better yet persist across all other pages of your site.

  • Build a "Nav Bar" using a consistent UI on each page, with links to the various other pages of your portfolio.
  • Style the navbar using Flexbox or another CSS navbar technique so that it can be seen on various screen sizes.

Example Navigation Elements

Page Footer

  • Add a consistent, and better yet persistent, footer to your portfolio page which should include:
    • Contact Info
    • CopyWrite Info
    • Social Media Links
    • Basic links to other pages

Footer Examples


  • make the page fully mobile responsive
  • animate elements of your page
  • create a sitemap for your site
  • host your site live on the internet