This is a portfolio website created using Gatsby.js, showcasing projects, skills, and contact information. The site is designed to be responsive and visually appealing, with smooth navigation and interactive elements.
- Hero Section: Introduction with a background image and navigation links.
- About Me Section: A brief description of the developer with an image.
- Portfolio Section: Displays projects with descriptions, links to live demos, and GitHub repositories.
- Contact Section: A form to send messages with validation.
- Footer: Includes a custom message and the current year.
- Interactive Elements: Smooth scrolling, modals, and hover effects.
- Gatsby.js: Static site generator for React.
- React: Front-end library for building user interfaces.
- Styled Components: For styling components with CSS-in-JS.
- TypeScript: For type safety and better development experience.
- FontAwesome: For icons.
- Gatsby Plugins:
gatsby-plugin-imagefor optimized images.gatsby-plugin-sharpandgatsby-transformer-sharpfor image processing.gatsby-plugin-styled-componentsfor styling.gatsby-plugin-smoothscrollfor smooth scrolling.gatsby-source-filesystemfor managing file sources.
-
Set the required Node.js version:
Note: This project requires Node.js version
22.14.0. Ensure you have it installed or use the.nvmrcfile to set it up.nvm use
-
Clone the repository:
git clone https://github.com/KamilPartyka/Portfolio.git cd Portfolio -
Install dependencies:
npm install
-
Start the development server:
npm run develop
-
Open the site in your browser:
http://localhost:8000 -
To build the site for production:
npm run build
-
To serve the production build locally:
npm run serve
The site can be deployed using GitHub Pages. Run the following command:
npm run deploy└── src
...
└── components
...
└── Button
├── Button.tsx
├── styles.ts
└── index.ts
- src: Contains all source code.
- components: Reusable UI components.
- sections: Page sections like Hero, AboutMe, Portfolio, etc.
- theme: Theme and global styles.
- pages: Gatsby pages.
- data: JSON data for portfolio items.
Kamil Partyka