- Description
- Deployment Link
- Installation
- Technologies Used
- Deliverables
- Planning/Build Process
- Challenges
- Wins
- Key Learnings & Takeaways
- Future Improvements
I started the development of this portfolio project after completion of the General Assemlby Software Engineering Immersive Course in order to showcase the projects I had built and the skills I had gained during the course.
- Ensure Git is installed on your machine.
- Clone the repository by running this command in your terminal:
git clone https://github.com/katieloesch/portfolio.git
- Navigate to the project directory to install dependencies:
cd portfolio
1. Install Dependencies
- Run the following command in the project’s root directory to install all necessary dependencies:
npm install
2. Start the Development Server
- After installing the dependencies, start the development server with:
npm start
3. Access the Application
- The development server will start at
http://localhost:3000
. - By default, your web browser should automatically open and navigate to this address.
- If it doesn’t, you can manually access the application by entering
http://localhost:3000
in any web browser.
-
ReactJS (v18.2.0)
- primary framework used to build the application
- created using the create-react-app tool
- React documentation
- Create React App documentation
npx create-react-app .
- SCSS
- CSS preprocessor used for styling the application
- SCSS documentation
- react-router (v6.12.1)
- a library that provides the foundational routing components and logic for React applications
- npm page
- GitHub repository
- website
- react-router-dom (v6.12.1)
- an implementation of react-router that includes additional components for browser-based routing
- npm page
- GitHub repository
- website
- @emailjs/browser (v3.11.0)
- package for sending emails directly from the browser using the EmailJS service
- npm page
- GitHub repository
- website
- intersection-observer (v0.12.2)
- a polyfill for the Intersection Observer API allowing you to observe when elements enter or exit the viewport or a parent container
- npm page
- GitHub repository
- framer-motion (v3.11.0)
- an open source animation library for React
- npm page
- GitHub repository
- website
- react-transition-group (v4.4.5)
- a library for handling animations and transitions in React applications
- npm page
- GitHub repository
- website
- Sass (v1.77.8)
- CSS preprocessor used for styling the application
- npm page
- GitHub repository
- react-icons (v4.9.0)
- a free and open-source project providing icons for use in React projects
- npm page
- GitHub repository
- website
- react-tsparticles (v2.10.1)
- a React component library that provides a way to integrate customizable particle animations into React applications
- npm page
- GitHub repository
- website
- react-vertical-timeline-component (v3.6.0)
- a React component library that provides a pre-built, customizable vertical timeline component/sub>
- npm page
- GitHub repository
- website
- Fonts
- main: 'Nulshock', designed by Typodermic Fonts
- header: 'VT323', designed by Peter Hull
- Icons
- Iconify
- A free and open-source framework providing access to a vast number of icons, designed for use across various platforms and environments, including React.
- website
- GitHub repository
- license
- Font Awesome
- A popular icon library offering a large set of scalable and customizable icons, with a free version that is open source.
- website
- GitHub repository
- license
- React Icons
- A free and open-source project providing icons for use in React projects.
- website
- GitHub repository
- license
- Iconify
- Timeline (Experience Section): react-vertical-timeline-component (v3.6.0)
- a React component library that provides a pre-built, customizable vertical timeline component/sub>
- created by Stéphane Monnot
- npm page
- GitHub repository
- website
- Git / GitHub
- used for version control and collaboration
- Git website
- GitHub website
- Visual Studio Code (VSCode)
- code editor used for development
- website
- GitHub repository
- Google Chrome & Chrome DevTools
- used for testing, debugging, and developing in the browser
- Google Chrome website
- Chrome DevTools documentation
- Excalidraw
- tool used to create wireframes for the application
- website
- GitHub repository
- ChatGPT4o:
- generative AI tool used for debugging, development support and generating artwork for the README file
- website
- GitHub repository
- Hostinger:
- web hosting provider used to deploy the application
- UK website
- initial portfolio structure & navigation dots:
- responsive navigation menu:
- timeline (experience section):
- card hover effect (work section):
- image carousel (work section):
- button fill effect:
- make a website that showcases
- easy-to-find contact information - email, GitHub, Linkedin and other relevant links
- include a contact form
- about you section
- brand statement + background
- info about industry interests (Meetups, online resources, podcasts, coding online courses etc)
- What do you do outside of work? What are your interests?
- Blogs
- experience + education
- skills & methodologies
- transferrable previous experience
- projects including:
- project name
- description
- timeframe
- Solo vs Group
- Links to GitHub ReadMe & deployed project
- A visual
- easy-to-find contact information - email, GitHub, Linkedin and other relevant links
- make the website mobile responsive
- deploy portfolio website online
- animations
- effects
- As a user I should be able to easily find contact information including email, linkedIn and GitHub accounts.
- As a user I should be able to send a message via contact form.
- As a user I should be able to easily find relevant experience, education and skills.
- As a user I should be able to easily find information on previous projects.
- As a user I should be able to navigate the website from any device.
I started the building process for this project on 13/06/2023. Initial deployment on gh-pages: 26/06/2023. Deployment to custom domain obtained from Hostinger on 29/06/2023.
- depending on how much text is provided to the modal showing details on each project, the container overflows but by default you can't scroll down on a modal
- In order to scroll on overlay text the scroll on the body needs to be disabled first which took me a while to figure out.
- fully responsive design
- implementation of animations + effects
- I'm glad I decided to use React.js for my portfolio as I definitely learned a lot doing this project and feel more confident using this framework.
- include information about my industry interests
- include blogs + podcasts I'm interested in