Skip to content

Artist Portfolio Website - A multilingual, responsive gallery website for a professional painter with CMS, virtual gallery integration, NFT display, and social media automation.

Notifications You must be signed in to change notification settings

SirAndrewGotham/ArtPortfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 Artist Portfolio Website - Laravel

A sophisticated, multilingual portfolio website for professional artists with gallery management, virtual exhibitions, and social media automation.

Laravel PHP MySQL Tailwind CSS

✨ Features

πŸ–ΌοΈ Gallery Management

  • Multilingual Artwork Database - Support for Russian, English, Chinese
  • Advanced Filtering - Filter by series, year, medium, size, availability
  • Responsive Image Gallery - Masonry layout with lazy loading
  • High-Quality Image Processing - Multiple sizes, WebP optimization
  • Virtual 3D Gallery - Integration with Spatial.io

πŸ“± Modern User Experience

  • Fully Responsive Design - Perfect on desktop, tablet, and mobile
  • Progressive Web App - Installable, works offline
  • Fast Performance - Optimized loading, caching strategies
  • Accessibility - WCAG 2.1 compliant

πŸ› οΈ Artist Admin Panel

  • Intuitive CMS - Easy artwork management without technical knowledge
  • Batch Operations - Bulk upload and editing
  • Content Scheduling - Plan publications in advance
  • Analytics Dashboard - Track views, engagement, sales inquiries

πŸ”— Smart Integrations

  • Telegram Automation - Auto-post new works to Telegram channel
  • Social Media Sync - Cross-publish to multiple platforms
  • NFT Integration - Display blockchain artwork information
  • Email Newsletter - Built-in subscriber management

πŸ“ Content Management

  • Multilingual Blog - Articles, news, exhibition announcements
  • Event Calendar - Exhibition schedules and openings
  • Press Kit - Downloadable media materials
  • Contact System - Spam-protected inquiry forms

πŸ”’ Security & Reliability

  • Advanced Spam Protection - Multi-layer contact form security
  • Regular Backups - Automated database and media backups
  • SSL Encryption - HTTPS everywhere
  • GDPR Compliance - Privacy-focused design

πŸš€ Quick Start

Prerequisites

  • PHP 8.3+
  • Composer 2.5+
  • MySQL 8.0+
  • Node.js 18+
  • Redis (recommended for production)

Installation

  1. Clone the repository
git clone https://github.com/SirAndrewGotham/ArtPortfolio.git
cd ArtPortfolio
  1. Install PHP dependencies
composer install
  1. Install JavaScript dependencies
npm install
  1. Configure environment
cp .env.example .env
php artisan key:generate
  1. Update .env with your database credentials
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=art_portfolio
DB_USERNAME=root
DB_PASSWORD=
  1. Run migrations and seeders
php artisan migrate --seed
  1. Build assets
npm run build
  1. Start development server
php artisan serve

Visit http://localhost:8000 to see your application!

πŸ“ Project Structure

app/
β”œβ”€β”€ Http/           # Controllers, Middleware, Requests
β”œβ”€β”€ Models/         # Eloquent models
β”œβ”€β”€ Services/       # Business logic services
β”œβ”€β”€ Jobs/           # Queueable jobs
β”œβ”€β”€ ViewModels/     # View presentation logic
└── Traits/         # Reusable model traits
resources/
β”œβ”€β”€ views/          # Blade templates
β”œβ”€β”€ css/            # Tailwind CSS
β”œβ”€β”€ js/             # Alpine.js components
└── lang/           # Translation files
database/
β”œβ”€β”€ migrations/     # Database migrations
β”œβ”€β”€ seeders/        # Test data seeders
└── factories/      # Model factories

πŸ§ͺ Testing

# Run all tests
php artisan test

# Run specific test suite
php artisan test --testsuite=Feature
php artisan test --testsuite=Unit

# Run with coverage
php artisan test --coverage --min=80

🚒 Deployment

Production Requirements

  1. Web Server: Nginx or Apache with mod_rewrite
  2. PHP Extensions: BCMath, Ctype, cURL, DOM, Fileinfo, GD, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, ZIP
  3. Database: MySQL 8.0+ or MariaDB 10.3+
  4. Cache: Redis 6.0+
  5. Queue: Supervisor for Laravel queues

Deployment Steps

# 1. Clone repository
git clone https://github.com/SirAndrewGotham/ArtPortfolio.git

# 2. Install dependencies
composer install --optimize-autoloader --no-dev
npm install && npm run production

# 3. Configure environment
cp .env.example .env
# Edit .env with production values

# 4. Generate keys and optimize
php artisan key:generate
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 5. Run migrations
php artisan migrate --force

# 6. Set up queue worker (Supervisor)
# Configure Supervisor to run: php artisan queue:work --tries=3

πŸ”§ Configuration

Multilingual Setup

  1. Configure languages in config/app.php
  2. Add translations in resources/lang/{locale}
  3. Set default language in .env
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_AVAILABLE_LOCALES=en,ru,zh

Image Processing

Configure image optimization in .env:

IMAGE_DRIVER=gd                # or 'imagick' for better quality
IMAGE_QUALITY=85
ENABLE_WEBP=true
MAX_UPLOAD_SIZE=10240          # 10MB max file size

Social Media Integration

TELEGRAM_BOT_TOKEN=your_token
TELEGRAM_CHANNEL_ID=@your_channel
FACEBOOK_PAGE_TOKEN=your_token
INSTAGRAM_ACCESS_TOKEN=your_token

πŸ“Š Performance Optimization

Caching Strategy

// Cache expensive queries
$artworks = Cache::remember('featured_artworks', 3600, function () {
    return Artwork::featured()->with('images')->get();
});

// Use Redis for sessions and cache
SESSION_DRIVER=redis
CACHE_DRIVER=redis

Image Optimization

  • Automatic WebP conversion with JPEG fallback
  • Responsive images with srcset attribute
  • Lazy loading with blur-up placeholders
  • CDN integration (Cloudinary/Cloudflare)

🀝 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.

πŸ‘€ Author

Andrew Gotham

πŸ™ Acknowledgments

  • Laravel - The PHP Framework For Web Artisans
  • Tailwind CSS - A utility-first CSS framework
  • Alpine.js - A rugged, minimal framework for composing JavaScript behavior
  • Spatial.io - Virtual gallery platform

πŸ†˜ Support

For support, email andreogotema@gmail.com or join our Telegram channel.


⭐ If you find this project helpful, please give it a star on GitHub!

Star History Chart

About

Artist Portfolio Website - A multilingual, responsive gallery website for a professional painter with CMS, virtual gallery integration, NFT display, and social media automation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages