This project is a modern and responsive portfolio website built with React and Vite. It showcases my skills, education, projects, and certifications, providing a professional online presence. The site includes a contact form, smooth animations, and a clean, user-friendly design. It's designed to be easily customizable and deployable.
- Responsive Design: Adapts seamlessly to different screen sizes (desktop, tablet, mobile).
- Interactive UI: Engaging user experience with animations and transitions using
framer-motion. - Modular Components: Well-structured components for easy maintenance and customization.
- Skills Showcase: Clearly displays your technical skills with icons and categories.
- Project Portfolio: Highlights your projects with descriptions, technologies, and links to live demos and GitHub repositories.
- Education Timeline: Presents your education history in a visually appealing timeline format.
- Contact Form: Allows visitors to send you messages directly from the website.
- Vercel Analytics: Tracks website usage and provides insights into visitor behavior.
- Particle Background: Adds a visually appealing particle effect to the hero section.
- Scroll-to-Top Functionality: Provides a convenient way to navigate back to the top of the page.
| Category | Technology | Description |
|---|---|---|
| Frontend | React | Core library for building the user interface |
| TypeScript | Adds static typing to JavaScript for improved code quality | |
| Tailwind CSS | CSS framework for styling the application | |
| Framer Motion | Animation library for creating smooth transitions and effects | |
| Lucide React | Icon library for consistent and visually appealing icons | |
| React Icons | Icon library for various technologies | |
| React Intersection Observer | Detects when an element is visible in the viewport | |
| React Tsparticles | React wrapper for the tsparticles library |
|
| Tsparticles | Library for creating particle effects | |
| Backend | EmailJS | Service for sending emails from the browser |
| Build Tool | Vite | Fast and lightweight build tool |
| Analytics | Vercel Analytics | Tracks website usage and provides insights into visitor behavior |
| Other | ESLint | JavaScript linter for code quality |
| Prettier | Code formatter for consistent code style | |
| PostCSS | Tool for transforming CSS with JavaScript |
Follow these steps to set up the project locally:
- Node.js (>=18)
- npm or yarn
-
Clone the repository:
git clone <repository-url>
-
Navigate to the project directory:
cd modern-portfolio-site -
Install dependencies:
npm install # or yarn install -
Configure EmailJS (optional, for the contact form):
-
Create an account on EmailJS.
-
Create a new service and template.
-
Set the following environment variables in a
.envfile:VITE_EMAILJS_SERVICE_ID=<your_service_id> VITE_EMAILJS_TEMPLATE_ID=<your_template_id> VITE_EMAILJS_PUBLIC_KEY=<your_public_key>
-
-
Start the development server:
npm run dev # or yarn dev -
Open your browser and navigate to
http://localhost:5173(or the port specified in the console).
modern-portfolio-site/
├── src/
│ ├── _components/
│ │ ├── About.tsx
│ │ ├── AnimatedText.tsx
│ │ ├── Certifications.tsx
│ │ ├── Contact.tsx
│ │ ├── Education.tsx
│ │ ├── FadeInView.tsx
│ │ ├── Footer.tsx
│ │ ├── Hero.tsx
│ │ ├── Navbar.tsx
│ │ ├── ParticleBackground.tsx
│ │ ├── Projects.tsx
│ │ ├── ScrollToTop.tsx
│ │ ├── Skills.tsx
│ │ └── Toast.tsx
│ ├── App.tsx
│ ├── index.css
│ ├── main.tsx
│ └── vite-env.d.ts
├── .eslintrc.cjs
├── .gitignore
├── index.html
├── package.json
├── postcss.config.js
├── tailwind.config.js
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Push your changes to your fork.
- Submit a pull request to the main repository.
This project is licensed under the MIT License.
If you have any questions or suggestions, feel free to contact me at garvg2005@gmail.com.
Thank you for checking out this project! I hope it helps you create a stunning online portfolio.