Skip to content

My personal portfolio website showcasing my web development projects and skills. Built with modern web technologies with React JS. Features a responsive design for optimal viewing across devices and highlights my front-end development capabilities. Explore my work and connect with me!

License

Notifications You must be signed in to change notification settings

dhruvpatel16120/PortFolio-React

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Portfolio Website v1.0

A modern, responsive portfolio website built with React, featuring a comprehensive admin panel for content management. This project showcases full-stack development skills with Firebase backend and Cloudinary media management.

Portfolio Preview

✨ Features

🌐 Public Website

  • Responsive Design: Mobile-first approach with Tailwind CSS
  • Dark/Light Theme: Automatic theme switching with system preference detection
  • Smooth Animations: Framer Motion powered animations and transitions
  • SEO Optimized: Meta tags, structured data, and performance optimization
  • Contact Form: Integrated contact system with email notifications
  • Project Showcase: Dynamic project gallery with filtering and search
  • Resume Download: PDF resume with professional formatting

πŸ”§ Admin Panel

  • Secure Authentication: Firebase Auth with role-based access control
  • Content Management: Dynamic content editing for all website sections
  • Media Management: Cloudinary integration for image/file uploads
  • Contact Management: View and respond to contact form submissions
  • User Management: Admin user creation and permission management

πŸ›‘οΈ Security Features

  • Rate Limiting: Login attempt protection (5 attempts, 15min lockout)
  • Session Management: Secure session handling with timeout
  • Input Validation: Comprehensive form validation and sanitization
  • Error Handling: Graceful error handling with user-friendly messages
  • Firebase Security Rules: Proper Firestore security configuration

πŸ› οΈ Tech Stack

Frontend

  • React 18 - Modern React with hooks and context
  • React Router v6 - Client-side routing
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Animation library
  • React Icons - Icon library
  • React Toastify - Notification system

Backend & Services

  • Firebase Authentication - User authentication and management
  • Firestore - NoSQL database for content and user data
  • Cloudinary - Cloud media management and optimization
  • Firebase Hosting - Static site hosting

Development Tools

  • Create React App - React development environment
  • PostCSS - CSS processing
  • ESLint - Code linting
  • Jest - Testing framework

πŸ“ Project Structure

PortFolio-WebSite/
β”œβ”€β”€ public/                 # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ admin/             # Admin panel components
β”‚   β”‚   β”œβ”€β”€ components/    # Admin UI components
β”‚   β”‚   β”œβ”€β”€ pages/         # Admin page components
β”‚   β”‚   β”œβ”€β”€ services/      # Admin services
β”‚   β”‚   └── utils/         # Admin utilities
β”‚   β”œβ”€β”€ components/        # Shared UI components
β”‚   β”œβ”€β”€ context/           # React context providers
β”‚   β”œβ”€β”€ firebase/          # Firebase configuration
β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”œβ”€β”€ pages/             # Public website pages
β”‚   β”œβ”€β”€ services/          # API and external services
β”‚   └── assets/            # Static assets
β”œβ”€β”€ scripts/               # Setup and utility scripts
└── preview/               # Website preview images

πŸš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Firebase account
  • Cloudinary account (optional)

Installation

  1. Clone the repository

    git clone https://github.com/dhruvpatel16120/PortFolio-WebSite.git
    cd PortFolio-WebSite
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp env-template.txt .env

    Fill in your Firebase and Cloudinary credentials in the .env file.

  4. Set up Firebase

    npm run setup-firebase
  5. Set up Cloudinary (optional)

    npm run setup-cloudinary
  6. Create admin user

    npm run create-admin
  7. Start development server

    npm start

The website will be available at http://localhost:3000 Admin panel will be available at http://localhost:3000/admin

πŸ”§ Configuration

Environment Variables

Create a .env file in the root directory with the following variables:

# Firebase Configuration
REACT_APP_FIREBASE_API_KEY=your_api_key_here
REACT_APP_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id

# Admin Configuration
REACT_APP_ADMIN_EMAIL=admin@yourdomain.com
REACT_APP_ADMIN_PASSWORD=YourSecurePassword123!
REACT_APP_ADMIN_ROLE=super_admin

# Cloudinary Configuration (Optional)
REACT_APP_CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
REACT_APP_CLOUDINARY_UPLOAD_PRESET=portfolio_uploads
REACT_APP_CLOUDINARY_API_KEY=your_cloudinary_api_key
REACT_APP_CLOUDINARY_API_SECRET=your_cloudinary_api_secret

Firebase Setup

  1. Create a new Firebase project
  2. Enable Authentication (Email/Password)
  3. Create a Firestore database
  4. Set up Firebase Hosting
  5. Configure Firestore security rules

Cloudinary Setup

  1. Create a Cloudinary account
  2. Create an upload preset
  3. Configure CORS settings
  4. Set up folder structure

πŸ“± Pages & Features

Public Website

  • Home (/) - Hero section, services, and call-to-action
  • About (/about) - Personal information and skills
  • Projects (/projects) - Portfolio showcase with filtering
  • Contact (/contact) - Contact form with validation
  • Resume (/resume) - Professional resume with download
  • 404 - Custom error page

Admin Panel

  • Dashboard (/admin) - Overview and quick actions
  • Content Management (/admin/content) - Edit website content
  • Contact Management (/admin/contact) - View and respond to submissions
  • Media Management (/admin/media) - Upload and manage media files

🎨 Customization

Styling

The project uses Tailwind CSS for styling. You can customize:

  • Colors in tailwind.config.js
  • Theme variables in src/index.css
  • Component styles in individual component files

Content

All content is managed through the admin panel or can be edited in:

  • src/pages/ - Page content and structure
  • src/components/ - Reusable components
  • public/ - Static assets

Features

  • Add new pages in src/pages/
  • Create new components in src/components/
  • Extend admin functionality in src/admin/

πŸ”’ Security

Authentication

  • Firebase Authentication with email/password
  • Role-based access control
  • Session management with timeout
  • Rate limiting for login attempts

Data Protection

  • Input validation and sanitization
  • Secure API endpoints
  • Environment variable protection
  • Firebase security rules

Best Practices

  • HTTPS enforcement
  • Content Security Policy
  • XSS protection
  • CSRF protection

πŸš€ Deployment

Firebase Hosting

npm run build
firebase deploy

Other Platforms

The project can be deployed to:

  • Vercel
  • Netlify
  • GitHub Pages
  • Any static hosting service

🀝 Contributing

  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

πŸ“ License

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

πŸ™ Acknowledgments

πŸ“ž Support

For support and questions:


Built with ❀️ by Dhruv Patel

Full-Stack Developer & Digital Marketing Expert

About

My personal portfolio website showcasing my web development projects and skills. Built with modern web technologies with React JS. Features a responsive design for optimal viewing across devices and highlights my front-end development capabilities. Explore my work and connect with me!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages