Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

13 Commits

Folders and files

Repository files navigation

LaundryMart ERP System

Laravel PHP MySQL Redis

About LaundryMart ERP

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.

🌟 Core Features

  • πŸ‘₯ 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

🎯 Business Capabilities

  • 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

πŸš€ Technology Stack

Backend

  • Framework: Laravel 10.x
  • PHP: 8.1+
  • Database: MySQL 8.0 / PostgreSQL 13+
  • Cache & Queue: Redis 6.0+
  • Authentication: Laravel Sanctum

Key Packages

  • laravel/sanctum - API authentication
  • laravel/horizon - Queue monitoring
  • barryvdh/laravel-dompdf - PDF generation
  • maatwebsite/excel - Excel export/import
  • spatie/laravel-permission - Role & permission management
  • spatie/laravel-activitylog - Audit logging
  • stripe/stripe-php - Payment processing

External Services

  • Payment: Stripe, PayPal
  • SMS: Twilio
  • Push Notifications: Firebase Cloud Messaging (FCM)
  • Storage: AWS S3 / DigitalOcean Spaces
  • Email: SMTP / SendGrid / Amazon SES

πŸ“‹ Requirements

  • PHP >= 8.1
  • MySQL >= 8.0 or PostgreSQL >= 13
  • Redis >= 6.0
  • Composer
  • Node.js >= 16.x (for asset compilation)
  • SSL Certificate (for production)

πŸ› οΈ Installation

1. Clone the Repository

git clone https://github.com/yourusername/laundrymart-erp.git
cd laundrymart-erp

2. Install Dependencies

composer install
npm install && npm run build

3. Environment Configuration

cp .env.example .env
php artisan key:generate

Edit .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=2525

4. Database Setup

php artisan migrate --seed

5. Create Admin User

php artisan tinker
User::create([
    'name' => 'Admin User',
    'email' => 'admin@laundrymart.com',
    'password' => bcrypt('secure_password'),
    'role' => 'admin',
    'status' => 'active'
]);

6. Start Development Server

# Start Laravel server
php artisan serve

# Start queue worker (in separate terminal)
php artisan queue:work

# Start scheduler (in separate terminal)
php artisan schedule:work

πŸ“š API Documentation

Authentication

POST /api/register
POST /api/login
POST /api/logout
GET  /api/user

Customers

GET    /api/customers
POST   /api/customers
GET    /api/customers/{id}
PUT    /api/customers/{id}
DELETE /api/customers/{id}

Orders

GET    /api/orders
POST   /api/orders
GET    /api/orders/{id}
PUT    /api/orders/{id}
PATCH  /api/orders/{id}/status

Invoices & Payments

GET    /api/invoices
POST   /api/payments
GET    /api/invoices/{id}/pdf
POST   /api/invoices/{id}/send

For complete API documentation, see API Documentation

πŸ—„οΈ Database Schema

The system uses 17 main tables:

  • users - System users (admin, manager, employee, customer)
  • customers - Customer profiles and loyalty data
  • employees - Employee information and schedules
  • orders - Order management with status tracking
  • order_items - Individual items per order
  • invoices - Invoice generation and tracking
  • payments - Payment records and history
  • inventory_supplies - Stock management
  • equipment - Equipment and maintenance tracking
  • expenses - Business expense tracking
  • attendance - Employee attendance records
  • payroll - Payroll processing
  • loyalty_transactions - Loyalty points history
  • campaigns - Marketing campaigns
  • notifications - User notifications
  • settings - System configuration
  • audit_logs - Activity logging

πŸ§ͺ Testing

# Run all tests
php artisan test

# Run specific test suite
php artisan test --testsuite=Feature

# Run tests with coverage
php artisan test --coverage

🚒 Deployment

Production Setup

# 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

Queue Worker (Supervisor)

[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

Cron Job

* * * * * cd /var/www/laundrymart && php artisan schedule:run >> /dev/null 2>&1

πŸ“Š Features Overview

Customer Management

  • 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

Order Processing

  • 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

Financial Management

  • Automated invoice generation
  • Multiple payment methods (cash, card, transfer, digital wallet)
  • Payment tracking and reconciliation
  • Expense categorization and approval workflow
  • Comprehensive financial reports

HR Management

  • Employee profiles and schedules
  • Clock in/out attendance tracking
  • Automated payroll calculations
  • Performance reviews and ratings
  • Department-based organization

Marketing

  • Targeted campaign creation
  • Multi-channel delivery (email, SMS, push)
  • Campaign analytics and tracking
  • Customer segmentation
  • ROI measurement

πŸ” Security Features

  • 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

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure your code follows PSR-12 coding standards and includes tests.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Support

For support and questions:

πŸ™ Acknowledgments

  • Laravel Framework Team
  • All contributors and supporters
  • Open source community

Built with ❀️ using Laravel

Β© 2025 LaundryMart ERP. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages