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