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 templatesKey Features
Authentication
- Session-based (Livewire/Blade)
- Sanctum tokens (API)
- Magic links (passwordless)
- Multi-role system (super_admin, vendor, couple, user)
Search
- 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/pestAvailable Services
- API: http://22.22.1.1 or http://localhost:2222
- Documentation: http://localhost:2222/docs
- API Docs: http://localhost:2222/api/documentation
- PostgreSQL: localhost:2232
- Typesense: localhost:1026
- Mailpit: http://localhost:2225
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.