Skip to content

mdhasanpatwary/portfolio-app

Repository files navigation

πŸ§‘β€πŸ’» MD Hasan Patwary β€” Personal Portfolio

A modern, responsive, and feature-rich personal portfolio website built with Next.js 15, TypeScript, and Tailwind CSS. Features include dark/light mode, and a comprehensive showcase of professional experience, skills, and projects.

πŸ”— Live Website: https://patwary.vercel.app
πŸ“ GitHub Repo: github.com/mdhasanpatwary/portfolio-app


✨ Features

🎨 Core Features

  • βœ… Next.js 15 with App Router and Turbopack
  • βœ… TypeScript for type safety and better development experience
  • βœ… Tailwind CSS v4 for modern, responsive styling
  • πŸŒ— Dark/Light Mode with smooth transitions
  • πŸ“± Fully Responsive design for all devices
  • ⚑ Optimized Performance with Next.js optimizations

🧩 Portfolio Sections

  • 🎯 Banner - Hero section with call-to-action
  • πŸ‘¨β€πŸ’Ό About - Professional background and skills
  • πŸ› οΈ Skills - Technical expertise showcase
  • πŸ“ Projects - Portfolio of work with filtering
  • πŸ’Ό Experience - Work history and achievements
  • πŸŽ“ Education - Academic background
  • πŸ’¬ Testimonials - Client feedback and reviews
  • 🎨 Hobbies - Personal interests and activities
  • πŸ“ž Contact - Contact form with EmailJS integration
  • πŸ“ Blog - Dev.to integration for articles
  • πŸ’‘ CSS Tips - Technical blog section

πŸ”§ Technical Features

  • πŸ“Š SEO Optimized - Meta tags, structured data, sitemap
  • 🎯 Error Boundaries - Graceful error handling
  • πŸ”„ Context API - State management for theme and blog
  • πŸ“ Markdown Support - React Markdown for content
  • 🎨 Swiper.js - Smooth carousel animations
  • πŸ”” Toast Notifications - User feedback system

πŸ› οΈ Tech Stack

Category Technology Version
Framework Next.js 15.3.2
Language TypeScript 5.x
Styling Tailwind CSS 4.x
UI Components React Icons, Headless UI Latest
Animations Swiper.js 11.2.8
Content React Markdown, Marked Latest
Forms EmailJS 4.4.1
State Management React Context API Built-in
Deployment Vercel Platform

πŸ“ Project Structure

portfolio-app/
β”œβ”€β”€ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ about/                    # About page
β”‚   β”œβ”€β”€ blog/                     # Blog pages with dynamic routing
β”‚   β”œβ”€β”€ contact/                  # Contact page
β”‚   β”œβ”€β”€ css-tips/                 # CSS tips page
β”‚   β”œβ”€β”€ projects/                 # Projects page
β”‚   β”œβ”€β”€ globals.css               # Global styles
β”‚   β”œβ”€β”€ layout.tsx                # Root layout with providers
β”‚   └── page.tsx                  # Homepage
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ about/                    # About section components
β”‚   β”œβ”€β”€ banner/                   # Hero section components
β”‚   β”œβ”€β”€ blog/                     # Blog components
β”‚   β”œβ”€β”€ contact/                  # Contact form components
β”‚   β”œβ”€β”€ cssTips/                  # CSS tips components
β”‚   β”œβ”€β”€ education/                # Education section
β”‚   β”œβ”€β”€ experience/               # Experience section
β”‚   β”œβ”€β”€ footer/                   # Footer component
β”‚   β”œβ”€β”€ funfact/                  # Fun facts section
β”‚   β”œβ”€β”€ global/                   # Shared components
β”‚   β”œβ”€β”€ header/                   # Navigation header
β”‚   β”œβ”€β”€ hobby/                    # Hobbies section
β”‚   β”œβ”€β”€ projects/                 # Project showcase
β”‚   β”œβ”€β”€ services/                 # Services section
β”‚   β”œβ”€β”€ skills/                   # Skills showcase
β”‚   └── testimonial/              # Testimonials section
β”œβ”€β”€ context/                      # React Context providers
β”‚   β”œβ”€β”€ BlogContext.tsx           # Blog data management
β”‚   └── ThemeContext.tsx          # Theme state management
β”œβ”€β”€ data/                         # Static JSON data
β”‚   β”œβ”€β”€ about.json                # About section data
β”‚   β”œβ”€β”€ banner.json               # Hero section data
β”‚   β”œβ”€β”€ blog.json                 # Blog posts data
β”‚   β”œβ”€β”€ contact.json              # Contact form data
β”‚   β”œβ”€β”€ css-tips.json             # CSS tips content
β”‚   β”œβ”€β”€ education.json            # Education history
β”‚   β”œβ”€β”€ experiences.json          # Work experience
β”‚   β”œβ”€β”€ footer.json               # Footer data
β”‚   β”œβ”€β”€ funFacts.json             # Fun facts data
β”‚   β”œβ”€β”€ header.json               # Navigation data
β”‚   β”œβ”€β”€ hobbies.json              # Hobbies data
β”‚   β”œβ”€β”€ projects.json             # Projects portfolio
β”‚   β”œβ”€β”€ services.json             # Services offered
β”‚   β”œβ”€β”€ skills.json               # Skills data
β”‚   └── testimonials.json         # Client testimonials
β”œβ”€β”€ hooks/                        # Custom React hooks
β”‚   └── useProjectModal.tsx       # Project modal hook
β”œβ”€β”€ public/                       # Static assets
β”‚   β”œβ”€β”€ favicon/                  # Favicon icons
β”‚   β”œβ”€β”€ testimonials/             # Testimonial images
β”‚   β”œβ”€β”€ profile.webp              # Profile images
β”‚   └── resume.pdf                # Downloadable resume
β”œβ”€β”€ types/                        # TypeScript type definitions
β”‚   └── data.ts                   # Data type interfaces
β”œβ”€β”€ utils/                        # Utility functions
β”‚   β”œβ”€β”€ index.ts                  # Helper functions
β”‚   └── status.tsx                # Status components
└── next.config.ts                # Next.js configuration

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • Yarn or npm

Installation

# Clone the repository
git clone https://github.com/mdhasanpatwary/portfolio-app.git
cd portfolio-app

# Install dependencies
yarn install
# or
npm install

# Start development server
yarn dev
# or
npm run dev

Open http://localhost:3000 to view it in the browser.

Build for Production

# Build the application
yarn build
# or
npm run build

# Start production server
yarn start
# or
npm start


🎨 Customization

Content Management

All content is stored in JSON files in the data/ directory. Update these files to customize:

  • data/about.json - Personal information and skills
  • data/projects.json - Portfolio projects
  • data/experiences.json - Work experience
  • data/skills.json - Technical skills
  • data/testimonials.json - Client feedback

Styling

  • Uses Tailwind CSS v4 for styling
  • Custom CSS in app/globals.css
  • Theme colors defined in Tailwind config
  • Responsive design with mobile-first approach

πŸ”§ Configuration

Environment Variables

Create a .env.local file for local development:

# Optional: EmailJS configuration for contact form
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id

Deployment

The project is optimized for Vercel deployment:

  1. Connect your GitHub repository to Vercel
  2. Vercel will automatically detect Next.js
  3. Build and deploy automatically on push

πŸ“Š Performance

Optimizations

  • βœ… Next.js 15 with Turbopack for faster builds

  • βœ… Image optimization with Next.js Image component

  • βœ… Code splitting and lazy loading

  • βœ… SEO optimization with meta tags and structured data

Lighthouse Scores

  • 🟒 Performance: 95+
  • 🟒 Accessibility: 95+
  • 🟒 Best Practices: 95+
  • 🟒 SEO: 95+

🀝 Contributing

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

πŸ“– For detailed contribution guidelines, please read our CONTRIBUTING.md file.

Quick Start

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

Development Guidelines

  • βœ… Follow consistent code structure and naming conventions
  • βœ… Test your changes before pushing
  • 🚫 Do not change author info or license details
  • 🚫 Avoid adding unnecessary libraries or dependencies

πŸ“ License

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


πŸ™‹β€β™‚οΈ Author

MD Hasan Patwary
Frontend Developer | HTML, CSS, JavaScript, jQuery, React, Vue, Next.js, Docker, AWS

πŸ“§ patwary.dev@gmail.com
🌐 Portfolio β€’ LinkedIn β€’ GitHub


🎯 Project Status

  • βœ… Core Features - Complete

  • βœ… Responsive Design - Complete

  • βœ… Performance Optimization - Complete

  • βœ… SEO Optimization - Complete

  • βœ… Deployment - Live on Vercel

Last Updated: August 2025
Version: 1.0.0

About

Personal portfolio website built with Next.js 14 (App Router), TypeScript, and Tailwind CSS. It showcases my professional experience, skills, and frontend projects in a clean and responsive layout.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors