Skip to content

dropitnl/dropit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DropIt! - Multi-Tenant Dropshipping Integration Hub

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.


The "Smart Pipe" Philosophy

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.

Core Architecture

DropIt!'s architecture is built on clearly defined concepts that enable its unique approach.

Key Components

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

Supported Integrations

  • E-commerce Platforms: Shopify, WooCommerce
  • Fulfillment Providers: AliExpress, CJDropshipping
  • ERP Systems: Salesforce, NetSuite, QuickBooks
  • Shipping Carriers: DHL, FedEx, YunExpress

The Data Flow

  • When everything works: Shopify Order -> DropIt! Smart Pipe -> AliExpress -> YunExpress -> Customer (Silent and invisible)
  • When something breaks: Full visibility and control

Key Features & Technology

Built on a modern, maintainable technology stack designed for enterprise scalability.

Core Features

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

Design Patterns & Architecture

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

Getting Started

This section will walk you through setting up a local development environment using Docker and Sail.

Prerequisites

  • Docker & Docker Compose
  • PHP 8.2+
  • Composer

Installation

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:work

Production Deployment

This 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

Deployment Checklist

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

Running Tests

Run the full test suite

./vendor/bin/sail artisan test

Run specific test groups
./vendor/bin/sail artisan test --group=connectors

Contributing

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages