tams2429 / portfolio_v2_main

This is my portfolio website made after completing the 12 week GA SEI Bootcamp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Portfolio 🍿

Table of Contents πŸ“–

Overview πŸ‘“

To demonstrate and showcase the skills and projects that I have worked on during GA's, 12 week, Software Engineering Immersive Bootcamp, I built a portfolio website using ReactJS, SCSS (with Bulma framework), HTML5 and various other libraries.

My portfolio site has been created and designed to be both desktop and mobile friendly.

Working Gif of Portfolio Site Desktop View

Working Gif of Portfolio Site Mobile View

Technologies πŸ’»

  • General:
    • ReactJS
    • HTML5
    • SCSS (with Bulma framework)
  • Others:
    • GitHub
    • Figma (Wireframe)
  • 3rd party libraries/frameworks:
    • React-tilt
    • AOS (Animate on Scroll)
    • Animate.css
    • React Vertical Timeline
    • React Scroll Background

Process πŸ“

  • I started by drawing up a wireframe of the site on Figma, which made it easier for me during the coding process as I had already a good idea of what the product should look like

Figma Wireframing

  • Next, as part of my research, I looked at some example portfolio sites to see what libraries and frameworks could be implemented on my site
  • I planned and wrote out the main features that I wanted to include on my portfolio (i.e. a typing and erasing effect, a timeline element, a 3D effect, animations with scroll)
  • For productivity, I decided to simultaneously code for both desktop and mobile views, rather than one after the other, so as to keep my mind fresh on the section that I was working on

MVP

  • "About Me" section:
    • Include the story behind how I got to where I am now
    • Include some hobbies/interests
    • Include tech stack
  • "Projects" section:
    • Include the 4 completed projects done during the bootcamp
    • Description of project and include link to GitHub Repository and deployed site
  • Navbar that links to each of the main sections of the site
  • Footer that contains links to my GitHub, LinkedIn and Email for contact purposes

Getting Started πŸƒβ€β™‚οΈπŸƒβ€β™€οΈ

To enjoy the full experience of the portfolio site, it is recommended to use the deployed version at http://www.siukeitam.com/. If you wish to run it locally, you will need to follow the steps below:

Wins πŸ†

One of the major wins in this project was being able to practice and successfully use hooks for React. Especially, for my project thumbnail gallery component, where I was able to to incorporate the use of React hooks to help add a functionality which allowed for the User to see the moving GIF of the selected project in action, only on hover, and then reset to a still image when cursor is not on the image.

function ThumbnailGallery() {
	const [thumbnails, setthumbnails] = React.useState([PokeThumbnail, DirectorDictatorThumbnail, TripSavvyThumbnail, Momen2umThumbnail])
	const [activeIndex, setactiveIndex] = React.useState("0")
	const [projectGifTriggered, setprojectGifTriggered] = React.useState(false)

	const handleMouseEnter = () => {
		return setprojectGifTriggered(!projectGifTriggered)
	}
	const handleMouseLeave = () => {
		return setprojectGifTriggered(!projectGifTriggered)
	}
	const handleClick = (e) => {
		const activeIndex = e.target.getAttribute('data-index')
		setactiveIndex(activeIndex)
	}

	return(
		<div>
			<Tilt className="active-thumbnail Tilt"  options={{ max : 10, scale: 1.05, speed: 2000}}>
				<img src={!projectGifTriggered ? thumbnails[activeIndex] : thumbnailGifs[activeIndex]} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}/>
			</Tilt>
			<img src={thumbnail} data-index={index} onClick={handleClick}/>
		</div>
	)
}

Challenges πŸ‹οΈ

The main challenge for this portfolio was trying to keep it simple with a clear purpose of displaying my work and skills. During the process, I found myself too often distracted by the many libraries and cool features that were open sourced but didn't necessarily fit with my portfolio. As a result, leading to some time wasted and abortive work where I had to remove them.

Future Work β˜•

Planned features/extensions

  • Add entry animation to title
  • Add loading spinner while site first loads up

About

This is my portfolio website made after completing the 12 week GA SEI Bootcamp


Languages

Language:JavaScript 60.9%Language:SCSS 37.0%Language:HTML 2.1%