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:
- Your full name
- Your Github username, with a link to your GitHub Repos page e.g. https://github.com/BurlingtonCodeAcademy
- Your public social media accounts, with links, e.g. https://twitter.com/btvcodeacademy
- Your LinkedIn account https://www.linkedin.com/school/burlington-code-academy/
- Your current home city and state. Don't list your street address or zip code.
- How to contact you. e.g. email, phone, Skype id.
- Consider what information you want to be available when anyone Googles your name.
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"
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?
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!
Create a "catch-all" route in your
express server that always serves your
Hint 2Don'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.
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
- A list of all the repos on your personal github account
- You can generate this using the GitHub Rest API
- 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
- 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?
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.
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"> </a>
Download File Example
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
- Navigation https://www.w3schools.com/css/css_navbar.asp
- Drop Downs https://www.w3schools.com/css/css_dropdowns.asp
- Icon Navigation https://www.w3schools.com/howto/howto_css_icon_bar.asp
- Hamburger Menu Icon https://www.w3schools.com/howto/howto_css_menu_icon.asp
- Responsive Top Navigaiton https://www.w3schools.com/howto/howto_js_topnav_responsive.asp
- 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
- Sticky Footer Example https://css-tricks.com/couple-takes-sticky-footer/
- Basic Sticky Example https://www.w3schools.com/howto/howto_css_fixed_footer.asp
- make the page fully mobile responsive
- animate elements of your page
- create a sitemap for your site
- host your site live on the internet