Festa Design Studio is a professionally architected Laravel 12 web application for a purpose-driven design agency. This full-featured platform showcases services, portfolio work, team members, and resources while maintaining a consistent brand identity through a custom design system. Built with modern web technologies and best practices, it features a powerful content management system with a comprehensive admin panel.
- Laravel 12 - Modern PHP framework
- PHP 8.2+ - Latest PHP version with improved performance
- SQLite (default) / MySQL / PostgreSQL - Flexible database support
- Livewire 3.6 - Full-stack framework for dynamic interfaces
- Blade - Laravel's powerful templating engine
- Tailwind CSS 3.1 - Utility-first CSS framework
- Alpine.js 3.4 - Lightweight JavaScript framework
- Vite 6.2 - Next-generation frontend tooling
- Pest PHP 3.8 - Elegant testing framework
- Laravel Pint - Opinionated PHP code style fixer
- Laravel Pail - Real-time application log viewer
- Concurrently - Run multiple commands concurrently
- Mailchimp API - Newsletter subscription management
- Spatie Cookie Consent - GDPR compliance
- Laravel Breeze - Authentication scaffolding
- Google Analytics 4 - Advanced analytics and event tracking
- Intervention/Image - Image optimization and responsive sizing
- Component-Based Architecture - Organized Blade components by domain
- Custom Festa Design System - Unique color palette and consistent UI
- Responsive Design - Mobile-first approach with Tailwind CSS
- Atomic Design Principles - Reusable UI components
- Comprehensive Admin Panel - Full CRUD operations for all content types
- Dynamic Content Management - JSON fields for flexible content storage
- Custom Rich Text Editor - Festa-branded editor with image upload and video embedding
- Advanced SEO System - HasSeoFields trait with Open Graph, Twitter Cards, and Schema.org
- Image Optimization Service - Automatic resizing and responsive image generation
- Large File Support - Custom middleware allowing 100MB uploads for content
-
Services Management
- Project Design, Communication Design, Campaign Design
- Sector specializations (Nonprofits, Startups)
- Dynamic deliverables and expertise management
-
Portfolio/Work Showcase
- Project case studies with client associations
- Sector, industry, and SDG alignment tracking
- Advanced filtering and categorization
-
Blog Platform
- Article management with categories
- Featured article selection
- IP-based article rating system with admin dashboard
- Author management
- Category color configuration system
- SEO optimization per article
-
Team Management
- Team member profiles with roles
- Social media links
- Profile images
-
Resources & Toolkit
- Filterable design resources
- Category and tool-based filtering
- Real-time search with debouncing
- Load more pagination
-
About Section Management
- SDG (Sustainable Development Goals) alignment tracking
- Partners management system
- Design for Good content management
- Our Process section with metrics
- Mission, values, and impact framework
-
Additional Features
- Advanced newsletter system with Mailchimp integration
- Client testimonials with ratings
- Contact forms with validation
- Cookie consent (GDPR compliance)
- Work metrics with animated counters
- XML sitemap generation for SEO
- PageSeo model for centralized SEO management
- Google Analytics 4 with event tracking
- PHP 8.2 or higher
- Composer
- Node.js 16+ and npm
- SQLite (included) or MySQL/PostgreSQL
-
Clone the repository
git clone <repository-url> cd fds
-
Install dependencies
composer install npm install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Database setup
# SQLite is configured by default php artisan migrate --seed
-
Create storage link
php artisan storage:link
-
Start development server
# Start all services with one command (recommended) composer dev # This runs: # - Laravel development server # - Vite development server # - Queue worker # - Real-time log viewer (Pail)
-
Access the application
- Application: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
fds/
βββ app/
β βββ Http/
β β βββ Controllers/ # Request handlers
β β β βββ Admin/ # Admin controllers
β β β βββ ... # Public controllers
β β βββ Middleware/ # Custom middleware
β β βββ Requests/ # Form validation
β βββ Livewire/ # Livewire components
β βββ Models/ # Eloquent models
β βββ Services/ # Business logic
βββ database/
β βββ migrations/ # Database schema
β βββ seeders/ # Test data
β βββ database.sqlite # Default database
βββ resources/
β βββ css/ # Stylesheets
β βββ js/ # JavaScript files
β βββ views/ # Blade templates
β βββ admin/ # Admin interface
β βββ components/ # Reusable components
β β βββ core/ # UI elements
β β βββ blog/ # Blog components
β β βββ work/ # Portfolio components
β β βββ services/ # Service components
β β βββ about/ # About components
β β βββ toolkit/ # Resource components
β βββ layouts/ # Layout templates
βββ routes/
β βββ web.php # Application routes
βββ public/ # Public assets
βββ tests/ # Test files
The application uses a comprehensive Blade component system organized by domain:
- Core Components - Buttons, forms, inputs, layouts
- Domain Components - Blog, work, services, about, toolkit
- Layout Components - Headers, footers, navigation
- Admin Components - Dashboard widgets, forms, tables
- Service β ServiceDeliverable (one-to-many)
- ServiceSector - JSON fields for dynamic content
- Project β Client, Sector, Industry, SDG (many-to-many)
- Article β Category, User (belongs-to)
- ArticleRating β Article (belongs-to) - IP-based ratings
- TeamMember - Standalone profiles with social links
- ToolkitResource β ToolkitCategory (many-to-many)
- WorkMetric - Display metrics with animations
- Testimonial - Client testimonials with ratings
- AboutSdg - SDG content management
- AboutPartner - Partner organizations
- DesignForGoodContent - Social impact content
- OurProcess - Process methodology with metrics
- PageSeo - Centralized SEO management
- Public Routes - Home, services, work, about, resources, contact
- Admin Routes -
/admin/*
with authentication middleware - API Routes - Minimal endpoints for specific features
- Utility Routes - Privacy, terms, sitemaps
# Development (runs all services concurrently)
composer dev
# Build assets for production
npm run build
# Run tests
composer test
# Fix code style
./vendor/bin/pint
# Database commands
php artisan migrate:fresh --seed
php artisan db:seed
# Cache warmup for performance
php artisan cache:warmup
# Create admin user
php artisan app:create-admin-user
# Laravel server only
php artisan serve
# Vite dev server only
npm run dev
# Queue worker
php artisan queue:listen
# Real-time logs
php artisan pail
# Install production dependencies
composer install --optimize-autoloader --no-dev
npm ci --production
# Build frontend assets
npm run build
# Cache optimization
php artisan config:cache
php artisan route:cache
php artisan view:cache
# Run migrations
php artisan migrate --force
- Update
.env
file with production values - Set
APP_ENV=production
andAPP_DEBUG=false
- Configure database credentials
- Set up mail configuration
- Configure storage permissions
- Set up Mailchimp API credentials:
MAILCHIMP_API_KEY=your-mailchimp-api-key MAILCHIMP_LIST_ID=your-mailchimp-list-id
- Configure Google Analytics (optional):
- Add GA4 tracking code to layout files
- Measurement ID: G-VVPR0KH690
# SQLite (default for development)
DB_CONNECTION=sqlite
# MySQL/MariaDB
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
# PostgreSQL
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
# Run all tests
composer test
# Run specific test file
./vendor/bin/pest tests/Feature/ExampleTest.php
# Run with coverage
./vendor/bin/pest --coverage
# Run tests in parallel
./vendor/bin/pest --parallel
# Check code style
./vendor/bin/pint --test
# Fix code style automatically
./vendor/bin/pint
# Analyze code
php artisan code:analyse
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Run tests and ensure they pass
- Fix code style (
./vendor/bin/pint
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Cache Warmup Command - Pre-loads frequently used data for better performance
- Image Optimization - Automatic compression and responsive image generation
- Database Query Caching - Strategic caching of expensive queries
- Advanced SEO Management - HasSeoFields trait for comprehensive SEO control
- XML Sitemap Generation - Dynamic sitemaps for search engines
- Google Analytics 4 - Full implementation with event tracking
- Structured Data - Schema.org implementation for rich snippets
- Components Showcase -
/components-showcase
route for UI component preview - Test Routes - Debug routes for testing specific features
- Concurrent Dev Server - Run all services with color-coded output
- Custom Middleware - ValidatePostSize for large file uploads (100MB)
- Article Rating Dashboard - Analytics for blog post engagement
- Newsletter Management - Full Mailchimp integration with admin controls
- SDG Alignment - Track Sustainable Development Goals alignment
- Partner Management - Manage organizational partnerships
- Laravel Documentation
- Tailwind CSS Documentation
- Alpine.js Documentation
- Livewire Documentation
- Pest PHP Documentation
- Newsletter System - See
docs/NEWSLETTER_SUBSCRIPTION_SYSTEM.md
- Google Analytics Setup - See
GOOGLE_ANALYTICS_SETUP_UPDATED.md
- Server Configuration - See
SERVER_CONFIG.md
for upload limits and optimization
If you discover a security vulnerability, please send an email to security@festastudio.com. All security vulnerabilities will be promptly addressed.
The Laravel framework is open-sourced software licensed under the MIT license.