LaundryMart ERP is a comprehensive Enterprise Resource Planning system designed specifically for laundry and dry-cleaning businesses. Built with Laravel 10.x, it provides a complete solution for managing all aspects of laundry operations.
- π₯ Customer Management - Complete customer profiles with loyalty program (Bronze/Silver/Gold/Platinum tiers)
- π¦ Order Processing - Multi-stage workflow (received β washing β drying β ironing β ready β delivered)
- π° Financial Management - Invoices, payments, expenses, and comprehensive reporting
- π HR Management - Employee attendance, payroll, and performance tracking
- π Inventory Control - Supplies and equipment tracking with automated alerts
- π± Multi-Channel Marketing - Email, SMS, and push notification campaigns
- π Real-time Notifications - Email, SMS, push, and in-app notifications
- π Analytics & Reporting - Dashboard with detailed business insights
- Loyalty Program: Tiered rewards system with automatic point tracking and redemption
- Smart Pricing: Tier-based discounts and dynamic pricing
- Order Tracking: Complete order lifecycle management with status history
- Payment Processing: Multiple payment methods with Stripe/PayPal integration
- Inventory Alerts: Automated low-stock notifications and reorder reminders
- Equipment Maintenance: Scheduled maintenance tracking and alerts
- Campaign Management: Targeted marketing campaigns with analytics
- Comprehensive Reports: Revenue, expenses, profit/loss, and customer analytics
- Framework: Laravel 10.x
- PHP: 8.1+
- Database: MySQL 8.0 / PostgreSQL 13+
- Cache & Queue: Redis 6.0+
- Authentication: Laravel Sanctum
laravel/sanctum- API authenticationlaravel/horizon- Queue monitoringbarryvdh/laravel-dompdf- PDF generationmaatwebsite/excel- Excel export/importspatie/laravel-permission- Role & permission managementspatie/laravel-activitylog- Audit loggingstripe/stripe-php- Payment processing
- Payment: Stripe, PayPal
- SMS: Twilio
- Push Notifications: Firebase Cloud Messaging (FCM)
- Storage: AWS S3 / DigitalOcean Spaces
- Email: SMTP / SendGrid / Amazon SES
- PHP >= 8.1
- MySQL >= 8.0 or PostgreSQL >= 13
- Redis >= 6.0
- Composer
- Node.js >= 16.x (for asset compilation)
- SSL Certificate (for production)
git clone https://github.com/yourusername/laundrymart-erp.git
cd laundrymart-erpcomposer install
npm install && npm run buildcp .env.example .env
php artisan key:generateEdit .env file with your configuration:
APP_NAME="LaundryMart ERP"
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laundrymart
DB_USERNAME=root
DB_PASSWORD=
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525php artisan migrate --seedphp artisan tinkerUser::create([
'name' => 'Admin User',
'email' => 'admin@laundrymart.com',
'password' => bcrypt('secure_password'),
'role' => 'admin',
'status' => 'active'
]);# Start Laravel server
php artisan serve
# Start queue worker (in separate terminal)
php artisan queue:work
# Start scheduler (in separate terminal)
php artisan schedule:workPOST /api/register
POST /api/login
POST /api/logout
GET /api/userGET /api/customers
POST /api/customers
GET /api/customers/{id}
PUT /api/customers/{id}
DELETE /api/customers/{id}GET /api/orders
POST /api/orders
GET /api/orders/{id}
PUT /api/orders/{id}
PATCH /api/orders/{id}/statusGET /api/invoices
POST /api/payments
GET /api/invoices/{id}/pdf
POST /api/invoices/{id}/sendFor complete API documentation, see API Documentation
The system uses 17 main tables:
users- System users (admin, manager, employee, customer)customers- Customer profiles and loyalty dataemployees- Employee information and schedulesorders- Order management with status trackingorder_items- Individual items per orderinvoices- Invoice generation and trackingpayments- Payment records and historyinventory_supplies- Stock managementequipment- Equipment and maintenance trackingexpenses- Business expense trackingattendance- Employee attendance recordspayroll- Payroll processingloyalty_transactions- Loyalty points historycampaigns- Marketing campaignsnotifications- User notificationssettings- System configurationaudit_logs- Activity logging
# Run all tests
php artisan test
# Run specific test suite
php artisan test --testsuite=Feature
# Run tests with coverage
php artisan test --coverage# Optimize application
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
# Run migrations
php artisan migrate --force
# Seed default settings
php artisan db:seed --class=SettingsSeeder[program:laundrymart-worker]
command=php /var/www/laundrymart/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=4* * * * * cd /var/www/laundrymart && php artisan schedule:run >> /dev/null 2>&1- Complete customer profiles with contact information
- Loyalty program with 4 tiers (Bronze, Silver, Gold, Platinum)
- Automatic tier upgrades based on points
- Customer order history and analytics
- Personalized preferences storage
- Multi-stage order workflow
- Real-time status tracking with history
- Automatic calculations (subtotal, tax, discounts)
- Priority levels (low, medium, high, urgent)
- Special instructions and notes
- Item-level tracking with metadata
- Automated invoice generation
- Multiple payment methods (cash, card, transfer, digital wallet)
- Payment tracking and reconciliation
- Expense categorization and approval workflow
- Comprehensive financial reports
- Employee profiles and schedules
- Clock in/out attendance tracking
- Automated payroll calculations
- Performance reviews and ratings
- Department-based organization
- Targeted campaign creation
- Multi-channel delivery (email, SMS, push)
- Campaign analytics and tracking
- Customer segmentation
- ROI measurement
- Laravel Sanctum API authentication
- Role-based access control (RBAC)
- Password hashing with bcrypt
- CSRF protection
- SQL injection prevention
- XSS protection
- Rate limiting
- Audit logging
- Secure session management
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please ensure your code follows PSR-12 coding standards and includes tests.
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- π§ Email: support@laundrymart.com
- π Documentation: docs.laundrymart.com
- π Issues: GitHub Issues
- Laravel Framework Team
- All contributors and supporters
- Open source community
Built with β€οΈ using Laravel
Β© 2025 LaundryMart ERP. All rights reserved.