Welcome to the GitHub repository for my personal portfolio website! This project serves as a dynamic and interactive showcase of my skills, experience, education, certifications, and projects as a Software Engineer and problem solver. It's meticulously crafted to provide a clean, modern, and engaging user experience, ensuring visitors can easily navigate and learn about my professional journey.
Built with a contemporary stack of React, Vite, and Tailwind CSS, this portfolio is not only visually appealing but also optimized for performance and responsiveness across all devices. Whether you're a recruiter, a potential collaborator, or a fellow developer, I hope this repository and the live site provide valuable insight into my capabilities and passion for building impactful software solutions.
Experience the portfolio live right here:
β¨ https://www.venkatasaicharan.com β¨
Feel free to explore, interact with the sections, and get in touch!
Here's a glimpse of what the portfolio looks like:
(Note: This is a representative screenshot. Visit the live site for the full interactive experience!)
- Deployment & Build Fixes:
- Fixed Vite
basepath and removed problematic custom asset headers fromvercel.jsonto ensure correct static asset serving on Vercel. - Resolved issues where the blog page was blank after deployment due to MIME type errors and Vercel routing.
- Fixed Vite
- Blog Page Professionalization:
- Added a sticky, left-aligned Table of Contents (TOC) sidebar for the blog, improving navigation and professionalism.
- Each major blog section now has anchor links, making them directly accessible from the TOC.
- Improved TOC/sidebar appearance, alignment, and responsiveness for all devices.
- Styling & UX:
- Fixed global CSS that was overriding heading colors on the blog.
- General improvements to the look and feel of the blog page.
- Structure Clarification:
- The blog is a single-page app with 7 major sections, each styled as a "Page" and accessible via the TOC.
- Troubleshooting & Debugging:
- Documented steps for debugging blank pages, MIME type errors, and Vercel static asset/routing issues.
This portfolio website is packed with features designed to present information clearly and engagingly:
- Modern, Responsive UI/UX: A clean, intuitive, and fully responsive design built with Tailwind CSS, ensuring a seamless experience on desktops, tablets, and mobile phones.
- Dynamic Sections: Clearly defined sections for different aspects of my profile, including:
- π€ About Me: A detailed introduction to my background, skills, and professional philosophy.
- π‘ Skills: A comprehensive showcase of my technical proficiencies, presented using interactive and visually appealing tags.
- π Education: A clear overview of my academic background and achievements, presented in a clean card format.
- π Certifications Showcase: Highlighted professional certifications with verification links, also presented in a card format.
- πΌ Experience: Detailed information about my professional roles, responsibilities, and key accomplishments, presented in an easy-to-read card format.
- π Projects: Interactive project cards showcasing various personal and professional projects, complete with descriptions, tech stacks used, and relevant links.
- π Blog: A single-page blog with a professional, sticky Table of Contents (TOC) sidebar, anchor links for each section, and improved navigation and styling.
- Interactive Contact Form: A functional contact form powered by EmailJS, allowing visitors to send messages directly. Includes a fun confetti animation on successful submission!
- Integrated Social Links: Easy access to my professional social media profiles (LinkedIn, Email) for networking and contact.
- Animations & Transitions: Smooth and modern animations implemented using AOS (Animate On Scroll) and Framer Motion to enhance the user experience and visual appeal.
- Optimized for Performance: Leveraging Vite for a fast development and build process, and deployed on Vercel for reliable, high-performance global content delivery.
This project leverages a robust and modern technology stack to deliver a fast, scalable, and maintainable application:
- Frontend Development:
- βοΈ React: A popular JavaScript library for building user interfaces. Provides a component-based architecture for building reusable UI elements.
- β‘ Vite: A next-generation frontend tooling that provides a fast development experience with features like Hot Module Replacement (HMR) and optimized builds.
- Styling:
- π¨ Tailwind CSS: A utility-first CSS framework that enables rapid styling with pre-defined classes, allowing for highly customizable designs directly in the markup.
- π¦ Boxicons: A free collection of carefully crafted open source icons, used for various UI elements like navigation items and social links.
- π§© React Icons: A library that provides popular icon packs as React components, simplifying the process of adding scalable vector icons to the project.
- Animations:
- β¨ AOS (Animate On Scroll): A library to easily add reveal animations to elements as they scroll into view.
- πΌοΈ Framer Motion: A production-ready motion library for React, used here for creating smooth and performant animations and gestures.
- Email Integration:
- βοΈ EmailJS: Allows sending emails directly from client-side JavaScript, without needing a backend server. Securely handles sending form data.
- Performance Monitoring:
- π Vercel Speed Insights: (Added during development) A tool integrated to collect performance metrics and provide insights into the website's speed when deployed on Vercel, aiding in identifying and resolving performance bottlenecks.
- Deployment:
- π Vercel: A cloud platform for frontend frameworks and static sites, providing automatic deployments, performance optimizations, and serverless functions.
To get a local copy of the project up and running for development or contribution, follow these steps:
Make sure you have Node.js and npm (or yarn/pnpm/bun) installed on your machine.
- Node.js: Download & Install Node.js
-
Clone the repository:
Open your terminal or command prompt and run the following command:
git clone https://github.com/KVSC1511/My-Personal-Portfolio.git
-
Navigate to the project directory:
cd My-Personal-Portfolio -
Install dependencies:
Use your preferred package manager:
npm install # or # yarn install # or # pnpm install # or # bun install
Once the dependencies are installed, you can start the local development server:
npm run dev
# or
# yarn dev
# or
# pnpm dev
# or
# bun devOpen your web browser and visit the address displayed in the terminal (usually http://localhost:5173). Vite provides Hot Module Replacement (HMR), so changes you make to the code will update in the browser instantly without a full page reload.
To create an optimized production build of the application:
npm run build
# or
# yarn build
# or
# pnpm build
# or
# bun buildThis command compiles and minifies the code into the dist folder, ready for deployment.
You can locally preview the production build to ensure everything works as expected before deploying:
npm run preview
# or
# yarn preview
# or
# pnpm preview
# or
# bun previewThis will start a local server serving the files from the dist folder.
Personalizing this portfolio template is straightforward. Here's how you can make it your own:
- Replace Profile Images:
- Locate your profile images in
public/images/profile.JPGand potentiallyassets/images/Thumbnail.jpg. - Replace these files with your own images, keeping the same file names or updating the paths in
src/App.jsxandREADME.mdaccordingly.
- Locate your profile images in
- Update Social Media URLs:
- Open
src/App.jsx. - Find the
social-iconssection and update thehrefattributes of the<a>tags with your own LinkedIn and email links.
- Open
- Edit Content Sections (About, Skills, Education, Experience, Projects):
- The content for these sections is primarily managed within the
src/App.jsxfile. - Edit the text, dates, descriptions, and tech stacks within the respective sections to reflect your own information and achievements. The structure uses React components and standard JSX, making it easy to update.
- The content for these sections is primarily managed within the
- Configure EmailJS:
- Open
src/components/Contact.jsx. - You will need to sign up for a free account on EmailJS.
- Replace the placeholder public key (
hkNKS0EUbuFnA2a5jin theemailjs.init()call) with your actual EmailJS public key. - Configure your EmailJS service, template, and account to receive emails.
- Open
- Customize Tailwind Styles:
- Tailwind CSS is used for all styling. You can customize the theme (colors, fonts, spacing, etc.) by editing
tailwind.config.js. - Modify existing utility classes in your JSX files (
.text-xl,.mb-4, etc.) or add new custom CSS insrc/index.cssusing Tailwind's@applydirective if needed.
- Tailwind CSS is used for all styling. You can customize the theme (colors, fonts, spacing, etc.) by editing
- Edit Blog Sections & TOC:
- To add or update blog sections, edit the relevant components in
src/and update the TOC/sidebar for new anchor links.
- To add or update blog sections, edit the relevant components in
The project follows a standard structure for a Vite-based React application:
.
βββ public/ # Static assets (images, certifications, favicon)
β βββ images/
β β βββ Navlogo.png
β β βββ python.png
β β βββ aws.png
β β βββ Thumbnail.jpg
β β βββ about.jpg
β β βββ profile.JPG
β β βββ vsc-logo.png
β βββ certifications/
β βββ edureka-python.pdf
βββ assets/ # Additional assets (e.g., images, icons)
β βββ images/
β β βββ Thumbnail.jpg
β β βββ ProCodrr.webp
β β βββ Srihari.webp
β β βββ coder.svg
β β βββ contact-me.svg
β β βββ eazygrad.webp
β β βββ expense-tracker.webp
β β βββ harigurus.webp
β β βββ kira.webp
β β βββ money-arjan.webp
β β βββ name-logo-black.svg
β β βββ name-logo-favicon.svg
β β βββ name-logo-white.svg
β β βββ name-logo.svg
β β βββ pioneer-digital.webp
β β βββ profile.JPG
β β βββ saatvik.webp
β β βββ web-dev-english.webp
β βββ icons/
β βββ at-symbol.svg
β βββ chat.svg
β βββ email.svg
β βββ express.svg
β βββ external-link.svg
β βββ github.svg
β βββ instagram.svg
β βββ linkedin.svg
β βββ mongodb.svg
β βββ moon.svg
β βββ name-logo.svg
β βββ node.svg
β βββ phone.svg
β βββ react.svg
β βββ sun.svg
β βββ telegram.svg
β βββ twitter-x.svg
β βββ twitter.svg
β βββ user.svg
β βββ whatsapp.svg
β βββ x.svg
βββ src/ # Source code
β βββ components/ # Reusable React components
β β βββ BackgroundLogo.jsx
β β βββ Blog.jsx
β β βββ BlogCard.jsx
β β βββ BlogNavbar.jsx
β β βββ Contact.jsx
β β βββ HamburgerMenu.jsx
β β βββ ParallaxBackground.jsx
β β βββ VscLogo.jsx
β βββ data/ # Data files
β β βββ blogData.js
β βββ pages/ # Page-level components
β β βββ BlogLanding.jsx
β β βββ BlogPost.jsx
β βββ App.jsx # Main application component
β βββ index.css # Global styles and Tailwind directives
β βββ main.jsx # Entry point for the React application
β βββ output.css # Generated CSS (if any)
βββ tailwind.config.js # Tailwind CSS configuration
βββ vite.config.js # Vite build configuration
βββ package.json # Project dependencies and scripts
βββ package-lock.json # Locked dependency versions
βββ README.md # This file
βββ LICENSE # Project license information
βββ input.css # Additional CSS input file
βββ font.css # Font CSS
βββ style.css # Additional styles
βββ matter.js # Additional JS utility
βββ postcss.config.js # PostCSS configuration
βββ .gitignore # Git ignore file
βββ .DS_Store # macOS system file
βββ vercel.json # Vercel deployment configuration
This project utilizes several key libraries to enhance functionality and development experience:
react-icons- Purpose: Provides a vast collection of popular icon sets as React components, making it easy to integrate high-quality vector icons without manual SVG handling.
boxicons- Purpose: A free collection of open-source vector icons. Used in this project for specific icons within the navigation and social links.
aos- Purpose: A lightweight JavaScript library to add "Animate On Scroll" effects. Elements fade in or slide when they come into the viewport, adding dynamic flair.
framer-motion- Purpose: A powerful and production-ready motion library for React. Used here for creating more complex animations and interactive effects beyond simple scroll reveals.
react-scroll- Purpose: Enables smooth scrolling functionality when clicking navigation links that point to different sections of the single-page application, improving user navigation.
emailjs- Purpose: Facilitates sending emails directly from the client-side. It securely relays form data to your email service without requiring a custom backend endpoint, simplifying contact form implementation.
@vercel/speed-insights- Purpose: (Added during development) A library to collect performance metrics and provide insights into your website's speed when deployed on Vercel. Helps identify and fix performance bottlenecks.
This project is open-source and available under the terms of the MIT License.
You can find the full license text in the LICENSE file.
This means you are free to use, copy, modify, and distribute the code, provided you include the original copyright and license notice.
I welcome contributions to improve this portfolio! If you have suggestions for new features, find a bug, or want to improve the documentation, please feel free to:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Make your changes and commit them with clear, concise messages.
- Push your branch to your fork.
- Open a Pull Request to the
mainbranch of this repository, describing your changes.
I'll review your contribution and work with you to get it merged.
Let's connect! You can find me on:
- LinkedIn: https://www.linkedin.com/in/sai-charan-k-v/
- Email: saicharankarasala@gmail.com
Feel free to reach out for collaborations, questions, or just to say hello!
- Inspired by various modern portfolio designs.
- Thanks to the creators of the libraries and frameworks used in this project.
This portfolio was designed and developed by:
Venkata Sai Charan