A modern, responsive portfolio website built with React, Three.js, and Tailwind CSS showcasing the projects, skills, and achievements of Shihara Dewagedara - a Computer Engineering student at the University of Peradeniya.
- Modern Design: Clean, professional interface with stunning animations
- 3D Interactive Elements: Three.js powered 3D models and animations
- Responsive Layout: Optimized for all device sizes (desktop, tablet, mobile)
- Dark Theme: Eye-friendly dark color scheme with purple accents
- Interactive Components:
- Animated hero section with typing effect
- Skills showcase with animated icons
- Project gallery with hover effects
- Contact form with email integration
- Smooth scrolling navigation
- Dynamic Content Sections:
- About Me
- Education & University Courses
- Skills & Technologies
- Projects Portfolio
- Achievements
- Contact Information
- React 18 - Modern JavaScript library for building user interfaces
- Vite - Fast build tool and development server
- React Router DOM - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library for React
- Three.js - 3D graphics library
- @react-three/fiber - React renderer for Three.js
- @react-three/drei - Helper components for react-three-fiber
- React Icons - Popular icon library
- React Tilt - Parallax tilt effect
- React Vertical Timeline - Timeline component
- React Typed - Typing animation effect
- EmailJS - Email service for contact form
- Axios - HTTP client
- SweetAlert2 - Beautiful popup alerts
- Maath - Math utilities for 3D graphics
- ESLint - Code linting
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixes
- gh-pages - GitHub Pages deployment
-
Clone the repository
git clone https://github.com/Shihara1020/Portfolio.git cd Portfolio -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173to view the portfolio
npm run buildnpm run previewnpm run deployβββ public/
β βββ logo.svg
β βββ desktop_pc/ # 3D model assets
β βββ planet/ # 3D model assets
βββ src/
β βββ assets/ # Images, icons, and documents
β βββ components/ # React components
β β βββ About.jsx
β β βββ Achievements.jsx
β β βββ Contact.jsx
β β βββ Education.jsx
β β βββ Hero.jsx
β β βββ Navbar.jsx
β β βββ Skills.jsx
β β βββ UniversityCourses.jsx
β β βββ Works.jsx
β β βββ canvas/ # 3D canvas components
β βββ constants/ # App constants and data
β βββ hoc/ # Higher-order components
β βββ utils/ # Utility functions
β βββ App.jsx # Main app component
β βββ main.jsx # App entry point
β βββ index.css # Global styles
β βββ styles.js # Tailwind style configurations
βββ index.html
βββ package.json
βββ tailwind.config.js
βββ vite.config.js
βββ README.md
The portfolio uses a custom color scheme defined in Tailwind CSS. Main colors include:
- Primary:
#915eff(Purple) - Secondary:
#F7E976(Gold/Yellow) - Background: Dark theme
Update the following files to customize the content:
src/constants/index.js- Personal information, projects, skills, educationsrc/assets/- Replace images with your ownsrc/assets/cv-template.pdf- Replace with your CV
- Modify
tailwind.config.jsfor theme customization - Update
src/styles.jsfor component-specific styles - Edit individual component files for layout changes
The contact form uses EmailJS for sending emails. To set it up:
- Create an account at EmailJS
- Set up your email service
- Update the EmailJS configuration in the Contact component
Visit the live portfolio: https://shihara1020.github.io/Portfolio/
The portfolio is fully responsive and optimized for:
- π± Mobile devices (320px+)
- π Tablets (768px+)
- π» Laptops (1024px+)
- π₯οΈ Desktops (1280px+)
- Fork the repository
- Create a 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 open source and available under the MIT License.
Shihara Dewagedara
- Thanks to the open-source community for the amazing libraries
- Special thanks to Three.js for 3D graphics capabilities
- Inspired by modern portfolio designs and best practices
β Don't forget to give this project a star if you found it helpful!