Experience the synergy of cutting-edge web technologies with my portfolio website built using ReactJS, ThreeJS, and TypeScript. Immerse yourself in a visually stunning and interactive showcase that seamlessly combines the power of React for dynamic content, ThreeJS for 3D graphics, and TypeScript for enhanced code quality and reliability.
- Clone the repository:
git clone https://github.com/ikramdeveloper/threejs-portfolio.git - Navigate to the project directory:
cd threejs-portfolio.git - Install dependencies:
npm install - Set up the required environment variables. Create a .env file in the root directory and add the necessary variables. You can use the .env.example file as a template.
- Run the project:
npm run dev
src/assets: Contains the icons & images files.src/components: Shared and page based files for different components.src/config: Constants and configuration variables to use in this project.src/data: Static content to serve your website.src/hooks: Custom hooks containing business logic for your pages.src/models: 3d models with all logic to represent them in required manner.src/pages: Files to serve all your app's routes.src/services: Contains the logic for api's calls.src/utils: Contains all utility functions.src/index.css: Custom classes created with tailwind css.
This project makes use of the following technologies:
- ReactJS: A JavaScript library for building web applications.
- React ThreeJS: ThreeJS react package to create 3d models.
- TypeScript: Superset of JavaScript to enhance readability.
- Tailwind CSS: Utility-first CSS framework.
- React Toastify: A package to show toasts.
- EmailJS: A JavaScript package for sending emails from web.
- Free 3D models: sketchfab.com
- Load GLB file in three.js model - gltf.pmnd.rs
Built with the help of this youtube tutorial: JS Mastery
Contributions are welcome! Feel free to open issues or submit pull requests to improve the project.
This project is licensed under the MIT License.
π Hello, I'm Ikram Ul Haq - Web Developer & Programmer
β Buy Me A Coffee
π Follow Me: