Skip to content

Festa-Design-Studio/fds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

96 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Festa Design Studio

🎯 Project Overview

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.

πŸ›  Tech Stack

Backend

  • 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

Frontend

  • 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

Development & Testing

  • 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

Integrations

  • 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

✨ Key Features

🎨 Design & Architecture

  • 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

πŸ”§ Content Management

  • 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

πŸ“‹ Main Features

  • 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

πŸš€ Quick Start

Prerequisites

  • PHP 8.2 or higher
  • Composer
  • Node.js 16+ and npm
  • SQLite (included) or MySQL/PostgreSQL

Installation

  1. Clone the repository

    git clone <repository-url>
    cd fds
  2. Install dependencies

    composer install
    npm install
  3. Environment setup

    cp .env.example .env
    php artisan key:generate
  4. Database setup

    # SQLite is configured by default
    php artisan migrate --seed
  5. Create storage link

    php artisan storage:link
  6. 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)
  7. Access the application

πŸ“ Project Structure

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

πŸ— Architecture Overview

Component System

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

Data Models & Relationships

  • 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

Routing Structure

  • 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

Essential Commands

# 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

Individual Services

# 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

🚒 Production Deployment

Build for Production

# 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

Environment Configuration

  1. Update .env file with production values
  2. Set APP_ENV=production and APP_DEBUG=false
  3. Configure database credentials
  4. Set up mail configuration
  5. Configure storage permissions
  6. Set up Mailchimp API credentials:
    MAILCHIMP_API_KEY=your-mailchimp-api-key
    MAILCHIMP_LIST_ID=your-mailchimp-list-id
  7. Configure Google Analytics (optional):
    • Add GA4 tracking code to layout files
    • Measurement ID: G-VVPR0KH690

Database Configuration

# 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

πŸ§ͺ Testing

# 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

πŸ“ Code Quality

# Check code style
./vendor/bin/pint --test

# Fix code style automatically
./vendor/bin/pint

# Analyze code
php artisan code:analyse

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Run tests and ensure they pass
  5. Fix code style (./vendor/bin/pint)
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

πŸ› οΈ Advanced Features

Performance Optimization

  • 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

SEO & Analytics

  • 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

Developer Tools

  • 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)

Content Features

  • 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

πŸ“š Documentation

External Documentation

Internal 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

πŸ”’ Security

If you discover a security vulnerability, please send an email to security@festastudio.com. All security vulnerabilities will be promptly addressed.

πŸ“„ License

The Laravel framework is open-sourced software licensed under the MIT license.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •