An open API service indexing awesome lists of open source software.

https://github.com/mtalhaofc/portfolio


https://github.com/mtalhaofc/portfolio

css html html-css-javascript htmlcss htmlportfolio javascript open-source portfolio portfolio-site portfolio-template portfolio-website simpleportfolio tailwindcss

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# 🚀 Modern React Portfolio - AWS Cloud Engineer

A stunning, feature-rich React portfolio showcasing professional expertise with dynamic content integration, beautiful animations, and modern UI/UX design.

![Portfolio Preview](./public/images/portfolio-preview.png)
*Add your portfolio screenshot here*

## ✨ Key Features

### 🎨 **Modern Design & Animations**
- **Dark Mode Toggle** - Seamless theme switching with persistent storage
- **Smooth Animations** - Powered by Framer Motion for engaging user experience
- **Glass-morphism UI** - Modern translucent design elements
- **Responsive Design** - Optimized for all devices (mobile, tablet, desktop)

### 🔄 **Dynamic Content Integration**
- **Medium Blog Integration** - Automatically fetches latest articles with thumbnails
- **YouTube Channel Integration** - Displays recent videos with play overlays
- **Real-time Updates** - Content updates automatically when you publish new content

### ⚡ **Performance Optimizations**
- **Global Image Caching** - Lightning-fast image loading across the entire site
- **Lazy Loading** - Images load only when needed
- **Optimized Animations** - Smooth 60fps animations with hardware acceleration

### 📱 **Enhanced Mobile Experience**
- **Beautiful Mobile Sidebar** - Professional navigation with smooth transitions
- **Touch-friendly Interface** - Optimized for mobile interactions
- **Responsive Cards** - Adaptive layouts for different screen sizes

### 🎯 **Interactive Elements**
- **Project Carousel** - Smooth navigation through featured projects
- **Hover Effects** - Engaging micro-interactions throughout
- **Scroll Animations** - Content reveals as you scroll
- **Professional Timeline** - Interactive experience section

## 🛠️ Tech Stack

- **React 18** - Modern React with hooks and Context API
- **Framer Motion** - Advanced animations and transitions
- **FontAwesome** - Professional icon library
- **CSS3** - Custom styling with CSS variables and glass-morphism
- **RSS Integration** - Dynamic content from Medium and YouTube
- **GitHub Pages** - Automated deployment

## 📸 Screenshots

### Desktop View
![Desktop View](./public/images/desktop-view.png)
*Add desktop screenshot here*

### Mobile View
![Mobile View](./public/images/mobile-view.png)
*Add mobile screenshot here*

### Dark Mode
![Dark Mode](./public/images/dark-mode.png)
*Add dark mode screenshot here*

### Blog Integration
![Blog Section](./public/images/blog-section.png)
*Add blog section screenshot here*

## 🚀 Quick Start

### Prerequisites
- Node.js (v14 or higher)
- npm or yarn
- Git

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/MTalhaofc/Portfolio.git
cd Portfolio
```

2. **Install dependencies**
```bash
npm install
```

3. **Start development server**
```bash
npm start
```

4. **Build for production**
```bash
npm run build
```

5. **Deploy to GitHub Pages**
```bash
npm run deploy
```

## 🎨 Customization Guide

### 1. Personal Information
Update your details in the respective component files:

**Header Section** (`src/components/Header.js`)
```javascript
// Update your name, title, and introduction
const name = "Your Name";
const title = "Your Professional Title";
const introduction = "Your introduction text";
```

**About Section** (`src/components/About.js`)
```javascript
// Update your background and summary
const aboutText = "Your professional background...";
```

**Contact Section** (`src/components/Contact.js`)
```javascript
// Update your social links
const socialLinks = {
linkedin: "https://linkedin.com/in/yourprofile",
github: "https://github.com/yourusername",
// ... other links
};
```

### 2. Projects & Experience

**Projects** (`src/components/Projects.js`)
```javascript
const projects = [
{
title: "Your Project Title",
description: "Project description...",
tags: ["React", "Node.js", "AWS"],
image: `${process.env.PUBLIC_URL}/images/your-project.png`,
githubUrl: "https://github.com/yourusername/project",
liveUrl: "https://your-project-demo.com" // optional
},
// Add more projects...
];
```

**Experience** (`src/components/Experience.js`)
```javascript
const experiences = [
{
title: "Your Job Title",
company: "Company Name",
duration: "Start Date - End Date",
description: "Job description and achievements...",
technologies: ["Tech1", "Tech2", "Tech3"]
},
// Add more experiences...
];
```

### 3. Skills Configuration

**Skills** (`src/components/Skills.js`)
```javascript
const skillCategories = {
"Cloud Platforms": ["AWS", "Azure", "GCP"],
"Programming": ["JavaScript", "Python", "Java"],
"Frameworks": ["React", "Node.js", "Express"],
// Add your skill categories...
};
```

### 4. Blog Integration Setup

**Medium Integration** (Automatic)
- Replace `@mtalhaofc` with your Medium username in `src/components/Blog.js`
```javascript
const response = await fetch('https://api.rss2json.com/v1/api.json?rss_url=https://medium.com/feed/@yourusername');
```

**YouTube Integration**
- Get your YouTube Channel ID from your channel URL
- Replace the channel ID in `src/components/Blog.js`
```javascript
const response = await fetch('https://api.rss2json.com/v1/api.json?rss_url=https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID');
```

### 5. Images & Assets

**Project Images**
- Add project screenshots to `/public/images/`
- Use high-quality images (recommended: 800x400px)
- Supported formats: PNG, JPG, WebP

**Profile Images**
- Add your profile photo to `/public/images/profile.jpg`
- Recommended size: 400x400px

## 📁 Project Structure

```
Portfolio/
├── public/
│ ├── images/ # Project screenshots and assets
│ │ ├── project1.png
│ │ ├── project2.png
│ │ └── profile.jpg
│ └── index.html
├── src/
│ ├── components/ # React components
│ │ ├── Header.js # Hero section
│ │ ├── About.js # About section
│ │ ├── Skills.js # Technical skills
│ │ ├── Projects.js # Project showcase
│ │ ├── Experience.js # Professional timeline
│ │ ├── Blog.js # Medium & YouTube integration
│ │ ├── Contact.js # Contact information
│ │ ├── Navigation.js # Navigation menu
│ │ ├── DarkModeToggle.js # Theme switcher
│ │ └── CachedImage.js # Optimized image component
│ ├── contexts/ # React contexts
│ │ ├── ThemeContext.js # Theme management
│ │ └── ImageCacheContext.js # Image caching
│ ├── assets/ # Static assets
│ ├── App.js # Main application
│ └── index.js # Entry point
├── package.json # Dependencies and scripts
└── README.md # This file
```

## 🎯 Key Components Explained

### **Header Component**
- Animated hero section with call-to-action
- Typewriter effect for dynamic text
- Smooth scroll navigation

### **Projects Component**
- Interactive carousel with navigation
- Image caching for fast loading
- Responsive grid layout
- Technology icons with hover effects

### **Blog Component**
- Automatic Medium article fetching
- YouTube video integration
- Thumbnail extraction and caching
- Responsive card layouts

### **Navigation Component**
- Sticky navigation with smooth scrolling
- Mobile-friendly sidebar
- Professional branding
- Scroll-to-top functionality

## 🌐 Deployment

### GitHub Pages (Recommended)
```bash
npm run deploy
```

### Netlify
1. Connect your GitHub repository
2. Set build command: `npm run build`
3. Set publish directory: `build`

### Vercel
1. Import your GitHub repository
2. Vercel will auto-detect React settings
3. Deploy with one click

## 🔧 Advanced Configuration

### Environment Variables
Create a `.env` file for sensitive data:
```env
REACT_APP_YOUTUBE_API_KEY=your_api_key_here
REACT_APP_ANALYTICS_ID=your_analytics_id
```

### Custom Styling
- Modify CSS variables in component files
- Update color schemes in `:root` selectors
- Customize animations in Framer Motion configs

### Performance Optimization
- Images are automatically cached globally
- Lazy loading implemented for all images
- Animations optimized for 60fps performance

## 📱 Responsive Breakpoints

- **Mobile**: 320px - 768px
- **Tablet**: 768px - 1024px
- **Desktop**: 1024px - 1440px
- **Large Desktop**: 1440px+

## 🤝 Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## 📄 License

This project is open source and available under the [MIT License](LICENSE).

## 🆘 Support & Issues

If you encounter any issues or need help customizing the portfolio:

1. Check the [Issues](https://github.com/MTalhaofc/Portfolio/issues) page
2. Create a new issue with detailed description
3. Include screenshots if applicable

## 🌟 Features Showcase

- ✅ **Dynamic Content Integration** - Medium & YouTube
- ✅ **Global Image Caching** - Lightning fast loading
- ✅ **Mobile-First Design** - Beautiful on all devices
- ✅ **Dark Mode Support** - Professional theme switching
- ✅ **SEO Optimized** - Meta tags and structured data
- ✅ **Performance Optimized** - 90+ Lighthouse scores
- ✅ **Accessibility Compliant** - WCAG 2.1 standards
- ✅ **Modern Animations** - Smooth Framer Motion effects

## 📞 Contact

**Muhammad Talha**
- GitHub: [@MTalhaofc](https://github.com/MTalhaofc)
- LinkedIn: [Muhammad Talha](https://linkedin.com/in/mtalhaofc)
- Portfolio: [https://MTalhaofc.github.io/Portfolio](https://MTalhaofc.github.io/Portfolio)

---

⭐ **Star this repository if you found it helpful!**

*Built with ❤️ using React and modern web technologies*