Skip to content

hamdibenjarrar/Portfolio

Repository files navigation

πŸš€ Hamdi Ben Jarrar's Portfolio

Typing SVG

Website LinkedIn GitHub Email

✨ About This Project

A modern, high-performance portfolio website built with cutting-edge technologies to showcase my journey as a Full-Stack Developer and Digital Innovation Leader. This portfolio represents not just my work, but my commitment to excellence, performance, and creating meaningful digital experiences.

🎯 Performance Scores

Metric Desktop Mobile
πŸš€ Performance 100 100
β™Ώ Accessibility 100 100
🎯 Best Practices 100 100
πŸ” SEO 100 100

Powered by Google Lighthouse

πŸ› οΈ Built With

Frontend

Next.js React TypeScript Styled Components

Animation & Interactions

Framer Motion GSAP

Backend & APIs

Node.js Nodemailer

Analytics & Performance

Vercel Analytics Speed Insights

🌟 Key Features

🎨 Design Excellence

  • Modern UI/UX with bold classic aesthetics
  • Smooth Animations using Framer Motion & GSAP
  • Custom Cursor for enhanced interactivity
  • Page Transitions for seamless navigation
  • Responsive Design optimized for all devices

⚑ Performance Optimized

  • 100% Lighthouse Scores across all metrics
  • Next.js Image Optimization with priority loading
  • Optimized Font Loading using next/font
  • Code Splitting for faster page loads
  • SEO Optimized with structured data

πŸ”’ Security First

  • Content Security Policy (CSP)
  • HSTS with preload & includeSubDomains
  • Cross-Origin Policies (COOP, CORP)
  • X-Frame-Options & XSS Protection
  • Secure Headers on all routes

πŸ“Š Analytics & Insights

  • Real User Monitoring with Vercel Analytics
  • Performance Tracking with Speed Insights
  • Core Web Vitals monitoring
  • User Behavior insights
  • Conversion Tracking

πŸš€ Quick Start

Prerequisites

  • Node.js 18.x or higher
  • npm or yarn package manager

Installation

# Clone the repository
git clone https://github.com/hamdibenjarrar/Portfolio.git

# Navigate to project directory
cd Portfolio

# Install dependencies
npm install

# Create environment file
cp .env.example .env.local

# Start development server
npm run dev

Visit http://localhost:3000 to see the portfolio in action! πŸŽ‰

Build for Production

# Create optimized production build
npm run build

# Start production server
npm start

πŸ“§ Contact Form Setup

To enable the contact form functionality:

  1. Create a .env.local file in the root directory
  2. Add your Gmail credentials:
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-gmail-app-password
EMAIL_TO=recipient@email.com

Getting a Gmail App Password:

  1. Go to Google Account Security
  2. Enable 2-Step Verification
  3. Generate an App Password
  4. Use the 16-character password in EMAIL_PASS

πŸ“ Project Structure

Portfolio/
β”œβ”€β”€ πŸ“‚ components/       # Reusable React components
β”‚   β”œβ”€β”€ Hero.tsx        # Landing hero section
β”‚   β”œβ”€β”€ Skills.tsx      # Skills showcase
β”‚   β”œβ”€β”€ Navbar.tsx      # Navigation component
β”‚   β”œβ”€β”€ Footer.tsx      # Footer component
β”‚   └── ui/             # shadcn/ui components
β”œβ”€β”€ πŸ“‚ pages/           # Next.js pages
β”‚   β”œβ”€β”€ index.tsx       # Home page
β”‚   β”œβ”€β”€ about.tsx       # About page
β”‚   β”œβ”€β”€ projects.tsx    # Projects showcase
β”‚   β”œβ”€β”€ contact.tsx     # Contact page
β”‚   └── api/            # API routes
β”œβ”€β”€ πŸ“‚ styles/          # Global styles
β”œβ”€β”€ πŸ“‚ public/          # Static assets
└── πŸ“„ next.config.js   # Next.js configuration

🎯 Pages Overview

Page Description Key Features
🏠 Home Landing page with hero & skills Animated intro, skills grid, CTA buttons
πŸ‘€ About Professional journey & experience Timeline, language proficiency, expertise
πŸ’Ό Projects Portfolio of work Interactive cards, live demos, case studies
πŸ“¬ Contact Get in touch Contact form, social links, location info

🌐 Deployment

Deploy to Vercel (Recommended)

Deploy with Vercel

Or manually:

# Install Vercel CLI
npm i -g vercel

# Deploy to production
vercel --prod

Custom Domain Setup

  1. Add your domain in Vercel Dashboard β†’ Settings β†’ Domains
  2. Update DNS records at your registrar:
    • A Record: 76.76.21.21
    • CNAME: cname.vercel-dns.com

πŸ“ˆ Performance Optimizations

  • βœ… Image optimization with Next.js Image component
  • βœ… Priority loading for LCP images
  • βœ… Font optimization with next/font
  • βœ… Code splitting and lazy loading
  • βœ… Minification and compression
  • βœ… Security headers for enhanced protection
  • βœ… Reduced unused CSS with Tailwind purge
  • βœ… Efficient caching strategies

🀝 Connect With Me

Portfolio LinkedIn GitHub WhatsApp Email

πŸ“„ License

This project is open source and available under the MIT License.


πŸ’‘ Building Something Legendary

Made with ❀️ by Hamdi Ben Jarrar

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors