DropIt! is a robust Laravel 11 application that serves as a "smart pipe" for e-commerce. It seamlessly connects your storefront with suppliers and fulfillment providers, empowering each customer to automate their entire dropshipping workflow with unparalleled reliability and control.
At its core, DropIt! embodies the "Smart Pipe" mantra: it processes data without storing it, only capturing crucial information when a flow fails.
- Silent on Success: Healthy orders flow through the system invisibly, saving on storage and improving performance.
- Visible on Failure: When a blockage occurs, the system captures the full context of the failure, providing the exact data needed for rapid debugging and resolution.
- Zero Storage by Design: Only failed flows generate logs, dramatically reducing your database footprint.
DropIt!'s architecture is built on clearly defined concepts that enable its unique approach.
- Tenants → Your SaaS customers.
- Drops → A complete, configurable workspace per tenant (a full integration setup).
- Flows → Individual data movements within a drop (e.g., Shopify Order -> YunExpress).
- Connectors → External service connections (Shopify, AliExpress, Salesforce, etc.).
- Entities → Data objects that flow through the system (Orders, Products, Customers, Inventory).
- E-commerce Platforms: Shopify, WooCommerce
- Fulfillment Providers: AliExpress, CJDropshipping
- ERP Systems: Salesforce, NetSuite, QuickBooks
- Shipping Carriers: DHL, FedEx, YunExpress
- When everything works:
Shopify Order->DropIt! Smart Pipe->AliExpress->YunExpress->Customer(Silent and invisible) - When something breaks:
Full visibility and control
Built on a modern, maintainable technology stack designed for enterprise scalability.
- Zero-Storage Architecture: Only failed flows generate logs.
- Idempotent Processing: Prevents duplicate orders from repeated webhooks.
- Per-Tenant Isolation: Securely manages each tenant's data and credentials.
- Automated Retries: Exponential backoff for transient API failures.
- Real-time Monitoring: A Filament admin panel for configuration and oversight.
- Factory Pattern: Dynamic API client creation based on tenant credentials.
- Decorator Pattern: Stackable behaviors (logging, rate limiting, retries).
- Strategy Pattern: Conditional logic and complex business rules.
- Laravel Queues: Asynchronous processing for system resilience.
- Repository Pattern: Clean data access abstraction.
- Transformer Pattern: Seamless data format conversion between platforms.
This section will walk you through setting up a local development environment using Docker and Sail.
- Docker & Docker Compose
- PHP 8.2+
- Composer
Follow these simple steps to get the application running locally.
# Clone the repository
git clone [https://github.com/your-org/dropit.git](https://github.com/your-org/dropit.git)
cd dropit
# Set up the environment file
cp .env.example .env
# Install dependencies and start services with Sail
composer install
./vendor/bin/sail up -d
# Initialize the application
./vendor/bin/sail artisan key:generate
./vendor/bin/sail artisan migrate --seed
./vendor/bin/sail artisan storage:link
Access the Application
* Main App: http://localhost
* Admin Panel: http://localhost/admin
Development Commands
# Run tests
./vendor/bin/sail artisan test
# Apply code style fixes
./vendor/bin/sail composer pint
# Run static analysis
./vendor/bin/sail composer phpstan
# Start the queue worker (for background processing)
./vendor/bin/sail artisan queue:workThis checklist provides a high-level overview of the steps required to deploy DropIt! to a production environment. Environment Configuration
# Core Application
APP_ENV=production
APP_DEBUG=false
APP_URL=[https://your-domain.com](https://your-domain.com)
# Database
DB_CONNECTION=mysql
DB_HOST=your-db-host
DB_DATABASE=dropit_production
# Queue Configuration
QUEUE_CONNECTION=redis
REDIS_HOST=your-redis-host
# Multi-tenancy
TENANT_CENTRAL_DOMAIN=admin.your-domain.com
- Configure environment variables.
- Set up SSL certificates.
- Configure queue workers with Supervisor.
- Set up monitoring (e.g., Laravel Horizon for Redis queues).
- Configure a backup strategy.
- Set up error tracking (e.g., Sentry/Bugsnag). Testing DropIt! comes with a comprehensive test suite to ensure reliability and maintainability. Test Suite Coverage
- Unit Tests: Core business logic and transformers.
- Feature Tests: API integrations and flow execution.
- Integration Tests: Multi-tenant scenarios.
./vendor/bin/sail artisan test
./vendor/bin/sail artisan test --group=connectors
We welcome contributions that align with our architectural principles and code quality standards. Development Workflow
- Fork the repository.
- Create a feature branch: git checkout -b feature/amazing-feature.
- Write tests for new functionality.
- Ensure all tests pass: ./vendor/bin/sail artisan test.
- Apply code formatting: ./vendor/bin/sail composer pint.
- Run static analysis: ./vendor/bin/sail composer phpstan.
- Commit changes: git commit -m 'Add amazing feature'.
- Push to your branch: git push origin feature/amazing-feature.
- Open a Pull Request. Code Standards
- PSR-12 coding standards (enforced by Pint).
- PHPStan level 5 static analysis.
- 100% test coverage for critical paths.
- Comprehensive PHPDoc blocks.