A modern, minimalistic personal portfolio website built with React, TypeScript, and Tailwind CSS. Features a clean design with dark mode support, animated components, and an AI-powered assistant.
- Modern Tech Stack: Built with React 18, TypeScript, and Vite for optimal performance
- Responsive Design: Fully responsive layout that works on all devices
- Dark Mode: Smooth theme switching with circular reveal animation
- Type Safety: Full TypeScript implementation for better code quality
- Component-Based Architecture: Well-organized, reusable components
- AI Assistant: Gemini API integration for personalized company fit analysis
- Animated Effects:
- Decrypt text animation for hero section
- Particle background effects
- Smooth scroll-spy navigation
- Intersection observer animations
- Accessibility: ARIA labels, semantic HTML, and keyboard navigation support
kpatell.github.io/
├── src/
│ ├── components/
│ │ ├── ui/ # Reusable UI components
│ │ │ ├── Button.tsx
│ │ │ ├── Input.tsx
│ │ │ ├── Textarea.tsx
│ │ │ └── LoadingSpinner.tsx
│ │ ├── layout/ # Layout components
│ │ │ ├── Navbar.tsx
│ │ │ └── ThemeToggle.tsx
│ │ ├── features/ # Feature components
│ │ │ ├── DecryptText.tsx
│ │ │ ├── ParticlesBackground.tsx
│ │ │ └── TimelineItem.tsx
│ │ └── sections/ # Page sections
│ │ ├── HeroSection.tsx
│ │ ├── AboutSection.tsx
│ │ ├── AiAssistantSection.tsx
│ │ └── ContactSection.tsx
│ ├── hooks/ # Custom React hooks
│ │ └── useTheme.tsx
│ ├── lib/ # Utilities and helpers
│ │ ├── utils.ts
│ │ └── api.ts
│ ├── types/ # TypeScript type definitions
│ │ └── index.ts
│ ├── styles/ # Global styles
│ │ └── index.css
│ ├── App.tsx # Main app component
│ └── main.tsx # Entry point
├── public/ # Static assets
│ └── KrishanPatel-Resume.pdf
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions deployment
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
├── tailwind.config.js
└── README.md
- React 18 - UI library
- TypeScript - Type safety and better developer experience
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixing
- Lucide React - Beautiful icon library
- Custom shadcn-style components - Accessible, customizable UI components
- GitHub Pages - Static site hosting
- GitHub Actions - CI/CD pipeline
- Node.js 18+ and npm
- Clone the repository:
git clone https://github.com/kpatell/kpatell.github.io.git
cd kpatell.github.io- Install dependencies:
npm install- Start the development server:
npm run devThe site will be available at http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Run ESLintnpm run deploy- Build and deploy to GitHub Pages (manual)
The site automatically deploys to GitHub Pages when you push to the main branch using GitHub Actions.
Setup Steps:
- Go to your repository settings on GitHub
- Navigate to Pages under Code and automation
- Under Build and deployment, set:
- Source: GitHub Actions
- Push to the
mainbranch to trigger deployment
npm run deployThis will build the project and push the dist folder to the gh-pages branch.
- Resume: Replace
/public/KrishanPatel-Resume.pdfwith your resume - Resume Text: Update
RESUME_TEXTin/src/lib/utils.ts - Contact Info: Update email and social links in
/src/components/sections/ContactSection.tsx - Timeline: Modify
timelineDatain/src/components/sections/AboutSection.tsx
- Global styles:
/src/styles/index.css - Tailwind config:
tailwind.config.js - Theme colors and fonts can be customized in the Tailwind config
To enable the AI assistant feature:
- Get a Gemini API key from Google AI Studio
- Update the
apiKeyin/src/lib/api.ts(or use environment variables)
Note: For production, use environment variables to keep your API key secure.
Create a .env file in the root directory:
VITE_GEMINI_API_KEY=your_api_key_hereThen update /src/lib/api.ts to use:
const apiKey = import.meta.env.VITE_GEMINI_API_KEY;- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This is a personal portfolio project, but suggestions and feedback are welcome! Feel free to open an issue or submit a pull request.
MIT License - feel free to use this project as a template for your own portfolio!
Krishan Patel
- GitHub: @kpatell
- LinkedIn: krishanpatell
- Email: krishanpatel00@gmail.com
- Design inspired by modern minimalist portfolios
- Icons from Lucide
- UI components inspired by shadcn/ui
- Fonts from Google Fonts
Built with ❤️ by Krishan Patel