A modern, responsive portfolio website showcasing my professional journey and technical expertise. Built with React and Vite, featuring an elegant dark/light theme, smooth animations, and a user-friendly interface. This portfolio demonstrates my commitment to clean code, modern design principles, and optimal user experience. β¨
View Live Demo β’ Report Bug β’ Request Feature
- β‘οΈ Lightning Fast: Built with React 18 + Vite for optimal performance
- π¨ Modern Design: Clean, professional, and user-friendly interface
- π Theme Toggle: Seamless dark/light mode switching with context persistence
- π± Responsive: Fully responsive design across all devices and screen sizes
- π― Dynamic Projects: Interactive project showcase with live demos
- πͺ Skills Matrix: Comprehensive display of technical expertise
- π¬ Contact Integration: Professional contact form with validation
- π SEO Optimized: Implemented meta tags and semantic HTML
- π Performance: Optimized assets and lazy loading for fast load times
- βοΈ React 18: For building a scalable and modern UI
- π¦ Vite: Next-generation frontend tooling
- π¨ CSS Modules: For scoped and maintainable styling
- πΎ Context API: For efficient state management
- π React Router: For seamless navigation
- π± Media Queries: For responsive design
- π§ ESLint: For code quality and consistency
- π― Prettier: For automated code formatting
- π¦ npm: For package management
- π Git: For version control
- π VSCode: Development environment
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm (v7 or higher)
- Git
-
Clone the repository
git clone https://github.com/GourangaDasSamrat/React-Portfolio.git
-
Navigate to the project directory
cd React-Portfolio
-
Install dependencies
npm install
-
Create a
.env
file in the root directorycp .env.example .env
-
Set up your EmailJS credentials
- Sign up at EmailJS
- Create an Email Service (Gmail, Outlook, etc.)
- Create an Email Template
- Get your credentials and add them to the
.env
file: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
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Lint code with ESLintnpm run format
- Format code with Prettier
React-Portfolio/
βββ index.html # Entry point HTML
βββ package.json # Dependencies and scripts
βββ vite.config.js # Vite configuration
βββ public/ # Static assets
β βββ favicon.ico # Site favicon
βββ src/ # Source code
βββ App.jsx # Root component
βββ main.jsx # Application entry point
βββ App.css # Global styles
βββ index.css # Root styles
βββ assets/ # Media assets
β βββ svg/ # SVG icons and images
β βββ images/ # Project images
β βββ cv.pdf # Resume/CV file
βββ common/ # Shared components
β βββ ProjectCard.jsx # Project card component
β βββ SkillList.jsx # Skills list component
β βββ ThemeContext.jsx # Theme context provider
βββ sections/ # Page sections
βββ Hero/ # Hero section
βββ Projects/ # Projects showcase
βββ Skills/ # Skills display
βββ Contact/ # Contact form
βββ Footer/ # Footer section
-
Install Vercel CLI
npm install -g vercel
-
Login to Vercel
vercel login
-
Configure build settings in
vercel.json
:{ "version": 2, "builds": [ { "src": "package.json", "use": "@vercel/static-build", "config": { "distDir": "dist" } } ] }
-
Deploy your site:
vercel # for development vercel --prod # for production
Current deployment: https://react-portfolio-indol-eight.vercel.app/
- Images are optimized and served in WebP format
- Lazy loading implemented for images and components
- Code splitting for better chunk management
- Asset preloading for critical resources
-
Lighthouse Score:
- Performance: 98/100
- Accessibility: 100/100
- Best Practices: 100/100
- SEO: 100/100
-
Core Web Vitals:
- First Contentful Paint: < 1s
- Largest Contentful Paint: < 2s
- Cumulative Layout Shift: 0
- First Input Delay: < 100ms
Gouranga Das Samrat
Frontend Developer | JavaScript & React Expert | Open Source Enthusiast
Let's connect! I'm always open to collaboration, frontend projects, or just a friendly chat about JavaScript and React.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- React - For the amazing UI library
- Vite - For the blazing fast build tool
- EmailJS - For the contact form functionality
- Vercel - For hosting and continuous deployment
If you find this project helpful or learn something from it, please consider:
- β Starring this repository
- π― Sharing it with others
- π Following me on Medium for more content
- πΌ Connecting with me on LinkedIn
Your support motivates me to create more open source projects! Feel free to reach out for collaborations or questions.