Skip to content

Overview

Introduction

Wedissimo API is a Laravel 12 wedding vendor marketplace built as a modular monolith. The application connects wedding couples with service providers through a comprehensive platform featuring listings, vendor profiles, search functionality, and booking management.

Technology Stack

Backend

  • Laravel 12 - PHP framework (Laravel 10 structure)
  • PHP 8.4 - Programming language
  • PostgreSQL 17 - Primary database
  • MySQL (Legacy) - WordPress migration source
  • Typesense 29.0 - Full-text search engine

Frontend

  • Livewire 3 - Full-stack framework
  • Alpine.js v3 - Lightweight JS framework
  • Tailwind CSS v4 - Utility-first CSS
  • Flux UI - Component library
  • Vite 6.3.5 - Asset bundling

Services

  • Laravel Scout - Search abstraction
  • Laravel Sanctum - API authentication
  • Spatie Permission - Role-based access control
  • Laravel Cashier - Stripe integration
  • Intervention Image v3 - Image processing
  • Corcel - WordPress ORM for migrations

Project Structure

wedissimo-api/
├── app/                    # Core application code
│   ├── Http/
│   │   ├── Controllers/v1/ # API controllers
│   │   ├── Requests/       # Form validation
│   │   └── Resources/      # API resources
│   ├── Models/             # Eloquent models
│   ├── Services/           # Business logic
│   └── Livewire/           # Livewire components
├── modules/                # Feature modules
│   ├── MagicLink/         # Passwordless auth
│   └── [YourModule]/      # Module structure
├── database/
│   ├── migrations/        # Database migrations
│   └── seeders/           # Database seeders
├── docs/                  # Developer documentation
├── tests/
│   ├── Feature/           # Integration tests
│   └── Unit/              # Unit tests
├── openapi/               # API documentation
│   └── openapi.yaml       # OpenAPI 3.0 spec
└── resources/
    └── views/             # Blade templates

Key Features

Authentication

  • Session-based (Livewire/Blade)
  • Sanctum tokens (API)
  • Magic links (passwordless)
  • Multi-role system (super_admin, vendor, couple, user)
  • Typesense integration via Scout
  • Full-text search on listings and vendors
  • Geo-location search with radius filtering
  • Faceted filtering (categories, price, verification)

Marketplace

  • Vendor profiles and management
  • Service listings with media
  • Reviews and ratings
  • Favourites and bookings
  • Category and tag taxonomy

Developer Experience

  • Comprehensive testing with Pest v4
  • Code quality tools (Pint, PHPStan, PHPMD)
  • Pre-commit hooks
  • OpenAPI documentation
  • Docker development environment

Quick Start

Development Setup

bash
# Start services
docker compose up -d

# Install dependencies
docker exec wedissimo-api composer install

# Run migrations
docker exec wedissimo-api php artisan migrate

# Run tests
docker exec wedissimo-api vendor/bin/pest

Available Services

Development Guidelines

Code Standards

  • PSR-12 coding style
  • Explicit return type declarations
  • Service layer for business logic
  • Form Request classes for validation
  • Eloquent API Resources for responses

Module Pattern

All new features should be created as modules in /modules/ following the established structure. See Module System for details.

Testing

Maintain 80% code coverage minimum. Write tests for all new features using Pest v4. See Testing Guide.

Next Steps

Wedissimo API Documentation