Skip to content

mohamed8eo/Personal_Portfolio

Repository files navigation

πŸš€ Mohamed El-morsey - Full Stack Developer Portfolio

A modern, responsive portfolio website showcasing my skills, projects, and experience as a Full Stack Developer. Built with Next.js, TypeScript, and Tailwind CSS.

Portfolio Preview TypeScript Tailwind CSS React

✨ Features

🎨 Modern Design

  • Responsive Design: Mobile-first approach with seamless desktop experience
  • Dark/Light Theme: Automatic theme switching with system preference detection
  • Smooth Animations: GSAP-powered scroll-triggered animations and micro-interactions
  • Professional UI: Clean, modern interface using shadcn/ui components

πŸ€– AI-Powered Chatbot

  • OpenRouter Integration: Intelligent AI assistant using Claude 3.5 Sonnet
  • Context-Aware Responses: Personalized answers about skills, experience, and availability
  • Real-time Chat: Interactive chat interface with typing indicators
  • Fallback System: Graceful error handling when AI service is unavailable

πŸ“± Interactive Components

  • Dynamic Hero Section: Animated typing effect and floating profile image
  • Skills Visualization: Interactive progress bars and technology icons
  • Project Showcase: GitHub integration with live project data
  • Contact Form: EmailJS integration with real-time validation

πŸ”§ Technical Excellence

  • Performance Optimized: Fast loading with Next.js optimizations
  • SEO Ready: Meta tags, structured data, and semantic HTML
  • Accessibility: WCAG compliant with keyboard navigation
  • Cross-browser: Compatible with all modern browsers

πŸ› οΈ Tech Stack

Frontend

  • Next.js 15.2.4 - React framework with App Router
  • TypeScript 5.0 - Type-safe development
  • Tailwind CSS 3.4.17 - Utility-first CSS framework
  • React 19 - Latest React with concurrent features
  • GSAP - Professional animations and scroll triggers

UI Components

  • shadcn/ui - Modern, accessible component library
  • Radix UI - Headless UI primitives
  • Lucide React - Beautiful, customizable icons
  • React Icons - Comprehensive icon library

Backend & APIs

  • OpenRouter API - AI chatbot powered by Claude 3.5 Sonnet
  • GitHub API - Dynamic project data integration
  • EmailJS - Contact form email delivery
  • Next.js API Routes - Serverless backend functions

Development Tools

  • ESLint - Code linting and formatting
  • PostCSS - CSS processing and optimization
  • Autoprefixer - CSS vendor prefixing
  • TypeScript - Static type checking

πŸ“ Project Structure

developer-portfolio/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”‚   β”œβ”€β”€ chat/          # AI chatbot endpoint
β”‚   β”‚   └── github/        # GitHub API proxy
β”‚   β”œβ”€β”€ globals.css        # Global styles
β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   └── page.tsx           # Home page
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ ui/               # shadcn/ui components
β”‚   β”œβ”€β”€ about.tsx         # About section
β”‚   β”œβ”€β”€ chatbot.tsx       # AI chatbot
β”‚   β”œβ”€β”€ contact.tsx       # Contact form
β”‚   β”œβ”€β”€ footer.tsx        # Footer
β”‚   β”œβ”€β”€ header.tsx        # Navigation
β”‚   β”œβ”€β”€ hero.tsx          # Hero section
β”‚   β”œβ”€β”€ projects.tsx      # Projects showcase
β”‚   └── skills.tsx        # Skills section
β”œβ”€β”€ lib/                  # Utility functions
β”œβ”€β”€ public/               # Static assets
└── tailwind.config.ts    # Tailwind configuration

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm, yarn, or pnpm
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/mohamed8eo/developer-portfolio.git
    cd developer-portfolio
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Set up environment variables

    cp .env.example .env.local

    Add your API keys:

    # OpenRouter API (for AI chatbot)
    OPENROUTER_API_KEY=sk-or-your-api-key-here
    
    # GitHub API (optional, for enhanced project data)
    GITHUB_TOKEN=your-github-token
    
    # EmailJS (for contact form)
    NEXT_PUBLIC_EMAILJS_SERVICE_ID=your-service-id
    NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your-template-id
    NEXT_PUBLIC_EMAILJS_USER_ID=your-user-id
  4. Run the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  5. Open your browser Navigate to http://localhost:3000

🎯 Key Features Explained

AI Chatbot Integration

The portfolio includes an intelligent AI assistant powered by OpenRouter's Claude 3.5 Sonnet model. The chatbot can answer questions about:

  • Technical skills and experience
  • Project details and GitHub profile
  • Contact information and availability
  • Location and background information

Dynamic Project Showcase

Projects are automatically fetched from GitHub and displayed with:

  • Real-time repository data
  • Language statistics and GitHub metrics
  • Project screenshots and descriptions
  • Live demo and source code links

Responsive Design System

Built with a mobile-first approach using:

  • Tailwind CSS for utility-first styling
  • shadcn/ui for consistent component design
  • GSAP for smooth animations and interactions
  • CSS Grid and Flexbox for responsive layouts

Performance Optimizations

  • Next.js Image optimization
  • Code splitting and lazy loading
  • Optimized bundle size
  • Efficient API caching
  • SEO-friendly meta tags

🎨 Customization

Personal Information

Update your information in the following files:

  • components/hero.tsx - Name, title, and social links
  • components/about.tsx - Bio and timeline
  • components/contact.tsx - Contact details
  • app/api/chat/route.ts - AI chatbot personality

Styling

  • tailwind.config.ts - Color scheme and theme
  • app/globals.css - Global styles and animations
  • components/ui/ - Component styling

Content

  • public/ - Images and static assets
  • components/ - Section content and layout
  • app/page.tsx - Page structure and sections

πŸ“± Responsive Design

The portfolio is fully responsive across all devices:

  • Mobile: Optimized touch interactions and compact layouts
  • Tablet: Balanced spacing and navigation
  • Desktop: Full-featured experience with hover effects
  • Large Screens: Enhanced layouts and animations

πŸ”§ API Integrations

OpenRouter AI Chatbot

  • Real-time AI responses
  • Context-aware conversations
  • Fallback error handling
  • Rate limiting protection

GitHub API

  • Dynamic project data
  • Repository statistics
  • Image fetching from repos
  • Caching for performance

EmailJS

  • Contact form functionality
  • Email delivery
  • Form validation
  • Success/error handling

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Add environment variables in Vercel dashboard
  3. Deploy automatically on push to main branch

Netlify

  1. Build command: npm run build
  2. Publish directory: out
  3. Add environment variables in Netlify dashboard

Other Platforms

  • Railway: Supports Next.js out of the box
  • Render: Free tier available for personal projects
  • DigitalOcean App Platform: Scalable deployment

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Guidelines

  • Follow TypeScript best practices
  • Use conventional commit messages
  • Test on multiple devices and browsers
  • Ensure accessibility compliance

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • shadcn/ui - Beautiful component library
  • GSAP - Professional animation library
  • OpenRouter - AI API service
  • Tailwind CSS - Utility-first CSS framework
  • Next.js Team - Amazing React framework

πŸ“ž Contact


⭐ Star this repository if you found it helpful!

Made with ❀️ by Mohamed El-morsey

Releases

No releases published

Packages

No packages published

Languages