A comprehensive warehouse management system built with Rails 8 for complete inventory and fulfillment operations
This is a complete Warehouse Management System (WMS) designed to help you manage inventory, fulfillment, and warehouse operations efficiently. It includes all essential features for professional warehouse management, from multi-location inventory tracking to pick list optimization.
- π 5-minute setup - Uses Docker and devcontainers for development without complex configurations
- π¦ Multi-warehouse - Support for multiple warehouses, zones, and locations
- π Real-time tracking - Complete inventory transaction audit trail
- π― Pick optimization - Intelligent pick list generation and route optimization
- π± Responsive - Modern design with Tailwind CSS for mobile warehouse operations
- π Secure - Complete admin panel with role-based access
- π Analytics - Comprehensive WMS dashboard with KPIs and alerts
- β Tested - Complete test suite with RSpec and security scanning
- π’ Multi-warehouse support with hierarchical organization
- ποΈ Zone management (receiving, storage, picking, packing, shipping)
- π Location tracking with coordinate system and capacity management
- π Utilization monitoring with real-time capacity alerts
- π― Location optimization for efficient space usage
- π¦ Multi-location inventory with real-time tracking
- π·οΈ Batch/lot tracking with expiry date management
- π Stock reservations and allocation management
- βοΈ FIFO/LIFO/FEFO inventory allocation methods
- π Inventory transactions with complete audit trail
- π Cycle counting for inventory accuracy
β οΈ Low stock alerts and automatic replenishment
- π Pick list generation with route optimization
- π― Task management (putaway, picking, replenishment, cycle count)
- π¦ Order processing with warehouse assignment
- π Shipment tracking and fulfillment status
- β±οΈ Performance metrics and completion time tracking
- π Real-time dashboard with WMS KPIs
- π Inventory valuation and movement reports
- π― Task performance and productivity metrics
- π¦ Pick list efficiency and route optimization
β οΈ Alert system for exceptions and low stock
- π Rails 8.0.2 with latest improvements and performance optimizations
- π PostgreSQL with comprehensive indexing for WMS operations
- β‘ Stimulus + Turbo for real-time warehouse operations
- π¨ Tailwind CSS with responsive design for mobile warehouse operations
- π Background jobs (Sidekiq) for inventory synchronization and optimization
- ποΈ Service objects for complex WMS business logic
- π³ Docker with devcontainers for consistent development
- π§ͺ RSpec comprehensive test suite with 289 examples
- π Brakeman security scanning (0 vulnerabilities)
- π Performance monitoring with 35+ database indexes
# Install Docker
https://www.docker.com/
# Install Devcontainers CLI
npm install -g @devcontainers/cli
# or with npx
npx install -g @devcontainers/cli
# Clone the repository
git clone https://github.com/AlanAlvarez21/ruby-wms-boilerplate.git
cd ruby-wms-boilerplate
# Build the container (includes DB setup)
bin/build_container
# Seed the database with sample data
bin/rails db:seed
# Start the application
bin/dev
- WMS Dashboard: http://localhost:3000/admin
- System Users:
- Admin:
admin@wmsapp.com
/password123
(Full system access) - Operador:
operador@wmsapp.com
/password123
(Production Orders + Products + Manual Printing) - Supervisor:
supervisor@wmsapp.com
/password123
(Warehouse management) - Picker:
picker@wmsapp.com
/password123
(Task execution)
- Admin:
- Sample Data Includes:
- 2 Warehouses with 10 zones and 90 locations
- 15 Products with WMS fields (SKU, dimensions, reorder points)
- 4 System users with different roles and permissions
- 10 Sample tasks (picking, putaway, replenishment, cycle count)
- Inventory transactions and movement history
βββ app/
β βββ controllers/
β β βββ admin/
β β β βββ warehouses_controller.rb # Warehouse management
β β β βββ zones_controller.rb # Zone management
β β β βββ locations_controller.rb # Location management
β β β βββ tasks_controller.rb # Task assignment & tracking
β β β βββ pick_lists_controller.rb # Pick list management
β β β βββ inventory_transactions_controller.rb
β β β βββ ...
β β βββ admin_controller.rb # WMS Dashboard
β βββ models/
β β βββ warehouse.rb # Multi-warehouse support
β β βββ zone.rb # Zone management (receiving, storage, etc.)
β β βββ location.rb # Location tracking with coordinates
β β βββ task.rb # Task management system
β β βββ pick_list.rb # Pick list optimization
β β βββ pick_list_item.rb # Individual pick items
β β βββ inventory_transaction.rb # Inventory audit trail
β β βββ product.rb # Enhanced with WMS fields
β β βββ stock.rb # Multi-location inventory
β β βββ order.rb # Warehouse fulfillment
β β βββ ...
β βββ services/
β β βββ inventory_service.rb # Stock allocation & movement
β β βββ pick_list_service.rb # Route optimization
β βββ jobs/
β β βββ inventory_sync_job.rb # Background inventory sync
β β βββ pick_list_optimization_job.rb
β βββ helpers/
β β βββ wms_helper.rb # WMS-specific view helpers
β βββ views/
β βββ admin/ # WMS admin interface
βββ db/
β βββ migrate/ # 15 WMS-specific migrations
β βββ seeds.rb # Complete WMS sample data
βββ spec/ # Comprehensive test suite
# Database configuration
export DATABASE_URL="postgresql://user:password@localhost:5432/wms_development"
# Rails configuration
export RAILS_ENV="development"
# Background job processing
export REDIS_URL="redis://localhost:6379"
The system comes with sample warehouses, but you can customize:
# In db/seeds.rb or through admin interface
warehouse = Warehouse.create!(
name: "Main Distribution Center",
code: "MDC",
address: "123 Warehouse St, City, State"
)
# Add zones
receiving_zone = warehouse.zones.create!(
name: "Receiving",
code: "RCV",
zone_type: "receiving"
)
# Add locations
receiving_zone.locations.create!(
aisle: "A",
bay: "01",
level: "01",
capacity: 1000
)
# Development
bin/dev # Server + Tailwind watcher
bin/rails server # Rails server only
bin/rails tailwindcss:watch # Tailwind watcher only
# Database
bin/rails db:create # Create database
bin/rails db:migrate # Run migrations
bin/rails db:seed # Seed with sample data
bin/rails db:reset # Reset and seed
# Testing
bundle exec rspec # Run tests (289 examples)
bin/brakeman # Security analysis (0 vulnerabilities)
bin/rubocop # Code linting
# WMS Operations
# (Sidekiq jobs removed - using ActiveJob inline adapter)
# Assets
bin/rails assets:precompile # Compile assets for production
bin/rails tailwindcss:build # Build Tailwind CSS
# Configure zone types for your operation
Zone::ZONE_TYPES = %w[receiving storage picking packing shipping returns]
# Customize location coordinate system
Location.create!(
zone: zone,
aisle: "A", # Aisle identifier
bay: "01", # Bay number within aisle
level: "01", # Level/shelf within bay
capacity: 1000 # Weight or volume capacity
)
# In app/services/inventory_service.rb
# Customize allocation strategy
ALLOCATION_METHODS = {
fifo: -> { order(:created_at) }, # First In, First Out
lifo: -> { order(created_at: :desc) }, # Last In, First Out
fefo: -> { order(:expiry_date) } # First Expired, First Out
}
# Customize task types for your warehouse operations
Task::TASK_TYPES = %w[putaway picking replenishment cycle_count receiving shipping]
Task::PRIORITIES = %w[low medium high urgent]
# In config/locales/es.yml (Spanish included)
es:
wms:
warehouse: "AlmacΓ©n"
pick_list: "Lista de Picking"
task: "Tarea"
inventory: "Inventario"
The comprehensive WMS admin panel includes:
- π WMS Dashboard: Real-time KPIs, warehouse utilization, alerts
- π Inventory Analytics: Stock levels, movement reports, valuation
- π― Task Metrics: Performance tracking, completion rates, overdue alerts
- π Pick List Analytics: Route efficiency, completion times
- π’ Warehouse Management: Multi-warehouse CRUD with utilization metrics
- ποΈ Zone Management: Receiving, storage, picking, packing, shipping zones
- π Location Management: Coordinate tracking, capacity management
- π¦ Stock Management: Multi-location inventory with batch/lot tracking
- π― Task Assignment: Putaway, picking, replenishment, cycle count tasks
- π Pick List Management: Route optimization, progress tracking
- π¦ Order Processing: Warehouse assignment, fulfillment status
- π Shipment Tracking: Outbound logistics management
- π Transaction History: Complete audit trail with filtering
- π Movement Reports: Inventory flow analysis with CSV export
β οΈ Alert System: Low stock, expired products, overstock warnings- π·οΈ Batch Tracking: Lot management with expiry date monitoring
- URL:
/admin
- Authentication: Devise with role-based user management
- User Roles:
- Admin: Complete system access
- Operador: Production orders, products, manual printing
- Supervisor: Warehouse operations management
- Picker: Task execution and inventory updates
- Security: Role-based permissions, Brakeman scanned (0 vulnerabilities)
- Responsive: Mobile-optimized for warehouse floor operations
Complete test suite:
# Unit tests
bundle exec rspec spec/models/
# Controller tests
bundle exec rspec spec/controllers/
# Request tests
bundle exec rspec spec/requests/
# System tests (E2E)
bundle exec rspec spec/system/
# Coverage report
open coverage/index.html
# Create application
heroku create your-store
# Configure variables
heroku config:set RAILS_MASTER_KEY=your_master_key
heroku config:set MERCADOPAGO_ACCESS_TOKEN=your_token
# Deploy
git push heroku main
# Initial setup
heroku run rails db:migrate
heroku run rails db:seed
π― WMS Seeds summary: π’ Warehouses: 2 ποΈ Zones: 10 π Locations: 90 π¦ Products: 15 (with WMS fields) π Stock entries: 15 (multi-location) π― Tasks: 10 (various types) π Pick lists: Sample data π Inventory transactions: Movement history π€ Admin users: 1
π System credentials: Admin: admin@wmsapp.com / password123 Operador: operador@wmsapp.com / password123 (Orders + Products + Manual Printing) Supervisor: supervisor@wmsapp.com / password123 (Warehouse Management) Picker: picker@wmsapp.com / password123 (Task Execution)
# Build image
docker build -t your-store .
# Run
docker run -p 3000:3000 \
-e RAILS_ENV=production \
-e DATABASE_URL=postgres://... \
your-store
- 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
) - Create a Pull Request
This WMS is perfect for:
- π Manufacturing facilities with complex inventory tracking needs
- π¦ Distribution centers requiring multi-location inventory management
- π 3PL providers managing inventory for multiple clients
- πͺ Retail operations with multiple warehouses and stores
- π Pharmaceutical companies requiring batch/lot tracking and expiry management
- π Food & beverage operations with FEFO inventory rotation
- π§ Spare parts management with precise location tracking
- π± E-commerce fulfillment requiring pick optimization
- ποΈ Construction supply with bulk inventory and location management
- π¨βπ» Developers needing a professional WMS foundation
- π’ Multi-warehouse management with zones and locations
- π Complete inventory transaction audit trail
- π― Task management system with assignment and tracking
- π Pick list generation with route optimization
- π·οΈ Batch/lot tracking with expiry date management
- π Comprehensive WMS dashboard with real-time metrics
- βοΈ FIFO/LIFO/FEFO inventory allocation methods
- π Background jobs for inventory sync and optimization
- π± Mobile-responsive design for warehouse operations
- π Advanced search and filtering system
- π Notification system for alerts and updates
- π± API endpoints for mobile warehouse applications
- π Advanced analytics and machine learning insights
- π€ AI-powered demand forecasting
- π± Native mobile app for warehouse operations
- π·οΈ RFID and barcode scanning integration
- π Advanced shipping carrier integrations
- π¦ Automated replenishment recommendations
- π Multi-language interface expansion
- π Integration with ERP systems (SAP, Oracle, etc.)
This project is under the MIT license. See LICENSE
for more details.
- π Documentation: Project Wiki
- π Issues: Report problems
- π¬ Discussions: GitHub Discussions
π Deploy your WMS today! This comprehensive system saves you months of warehouse management development.