Skip to content

Latest commit

Β 

History

2,247 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ΣEM - The ERP/MES Dedicated to Sheet Metal & Industrial Mechanics 🏭

English β€’ FranΓ§ais

Stars Forks Issues License License

image

🎯 Why ΣEM for your workshop?

Designed by sheet metal and mechanical professionals, for professionals, Ξ£EM answers the specific challenges of your trade:

πŸ”§ Your activity

  • Industrial sheet metal: bending, laser/plasma cutting, punching, welding
  • Precision mechanics: turning, milling, grinding
  • Mold manufacturing: design, machining, fitting
  • Industrial subcontracting: multi-customer management, varied series

πŸ’‘ Your day-to-day problems solved

Problem Ξ£EM Solution
πŸ“‹ Complex quotes with many operations Detailed BOMs, machining routings, automatic time/cost calculation
⏱️ Real-time production tracking not possible Live dashboard, shop-floor time tracking, progress by work order
πŸ“¦ Raw material management (sheets, bars, tubes) Stock by dimensions, material traceability, replenishment alerts
πŸ”„ Chaotic shop planning Visual planning per machine, priority management, machine load
πŸ“Š Unclear project profitability Actual vs. forecast cost tracking, margin analysis per order
🚚 Limited customer/supplier traceability Full history, attached documents, technical notes

✨ Specialized business features

🏭 Production Module (MES)

  • Machining routings: define operations (cutting, bending, welding, machining...)
  • Bills of Materials (BOM): raw materials, components, sub-assemblies
  • Shop planning: visualize load per machine/work center
  • Work orders: automatic generation from quotes
  • Production time tracking: real-time tracking by operation
  • Quality control: control sheets, non-conformities

πŸ“‹ Sales Management

  • Detailed quotes: multiple lines, options, variants
  • Cost calculation: material + labor + subcontracting
  • Opportunity tracking: from lead to delivery
  • Multi-currency and multi-language support
  • Customer history: all orders at a glance

πŸ“¦ Inventory & Procurement

  • Dimension-based management: Sheet 2000x1000x3mm, Tube Ø50x3...
  • Material traceability: heat numbers, material certificates
  • Stock movements: receipts, issues, transfers, inventories
  • Alerts: minimum thresholds, automatic replenishment
  • Suppliers: pricing, lead times, evaluation

πŸ’° Accounting & Invoicing

  • Invoicing: deposits, progress billing, credit notes
  • VAT: multi-rate management, declarations
  • Payments: settlement tracking, reminders
  • Analytics: profitability by project, customer, period

πŸ—‚οΈ Document management with built-in CAD viewers

  • Unified attachments: products, quotes, orders, delivery notes, invoices, purchases, non-conformities, stock movements, companies and opportunities share one file store
  • Private storage: files live outside the web root and are served through authenticated routes
  • Viewers loaded on demand (opening a PDF never downloads the 3D engine):
    • 3D meshes: STL, OBJ, PLY, 3MF, glTF (three.js)
    • 3D CAD: STEP, IGES, BREP via OpenCascade compiled to WebAssembly β€” no server-side converter
    • 2D CAD: DXF, plus PDF, images and spreadsheets

πŸ”§ Maintenance (CMMS) & shop floor

  • Maintenance plans and work orders per machine
  • Andon alerts: real-time escalation from the shop floor
  • Shop reports: booked vs. estimated time, scrap, machine load
  • Kanban and GTD boards, Gantt chart, machine load planning
  • Nesting: part layout attached to order lines
  • Attendance and energy consumption tracking

βœ… Quality, EHS & compliance

  • Non-conformities, inspection projects, audit planner, FMEA
  • Control device calibration with automatic alerts
  • EHS: incidents, risks, trainings, regulatory conformities
  • GDPR: soft deletes, activity log, anonymization service, data export and erasure, automatic weekly purge, self-service requests

πŸ”Œ Integrations & automation

  • Electronic invoicing: Factur-X / EN 16931 output, PDP gateway (Qonto driver) and inbound Factur-X reading for supplier invoices
  • FEC export for French accounting
  • Nest2Prod: order push and sheet stock synchronization
  • LDAP / Active Directory user import
  • REST API (Laravel Sanctum) and an integrated AI assistant
  • Automatic backups (spatie/laravel-backup) and Laravel Pulse application monitoring

πŸ’Ό Industry use cases

Example 1: Fine sheet metal workshop

Context: 15 people, bending + laser cutting + welding

Ξ£EM usage:

  • Quotes with detailed routings (laser β†’ deburring β†’ bending β†’ welding)
  • Planning across 3 press brakes and 2 lasers
  • Sheet stock management by format and thickness
  • Real-time tracking of work orders in progress

Result: +30% planning productivity, -20% dormant stock

Example 2: Precision mechanics

Context: Automotive subcontracting, medium series

Ξ£EM usage:

  • BOMs with certified raw materials
  • Machining routings (turning β†’ milling β†’ heat treatment β†’ grinding)
  • Integrated quality control (inspection sheets per work order)
  • Full traceability from material to finished part

Result: ISO 9001 compliance, perfect traceability

Example 3: Mold manufacturer

Context: Plastic injection molds, complex projects

Ξ£EM usage:

  • Multi-phase quotes (study, roughing, finishing, trials)
  • Subcontracting management (heat treatments, polishing)
  • Real-time project profitability tracking
  • Centralized technical documentation

Result: Better cost control, on-time delivery

🎬 See ΣEM in action

πŸ“Ί Online demo

Try the demo

πŸŽ₯ Presentation video

WEM.mp4
image

Installation

πŸš€ Quick installation

Option 1: Docker (Recommended) 🐳

Start in 3 minutes:

git clone https://github.com/SMEWebify/WebErpMesv2.git
cd WebErpMesv2
docker compose up --build

➑️ Access http://localhost:45060

Option 2: Local installation πŸ’»

# Clone and configure
git clone https://github.com/SMEWebify/WebErpMesv2.git
cd WebErpMesv2
cp .env.example .env

# Install dependencies
composer install
npm install

# Configure the application
php artisan key:generate
php artisan migrate --seed

# Run
npm run dev
php artisan serve

➑️ Access http://localhost:8000

πŸ“š Detailed guides:

βš™οΈ Post-Installation Configuration

Important: Before adding lines to a quote, configure:

  1. Default VAT: Go to Accounting β†’ VAT and mark an item as default
  2. Default Unit: Go to Methods β†’ Units and mark an item as default

Without these settings, you cannot add lines to quotes.

image

πŸ—οΈ Technical architecture

Modern technology stack

WebErpMesv2/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ Http/Controllers/    # API and web controllers (quotes, production, CRM)
β”‚   β”œβ”€β”€ Models/              # Business entities (orders, products, stocks)
β”‚   └── Services/            # Business logic (stock, files, integrations, GDPR)
β”œβ”€β”€ database/
β”‚   └── migrations/          # Database schemas (BOMs, routings, stock movements)
β”œβ”€β”€ resources/
β”‚   β”œβ”€β”€ js/                  # React components
β”‚   └── views/               # Blade templates
β”œβ”€β”€ tests/                   # Test suite
└── docker/                  # Docker configuration

Key Technologies:

  • Backend: Laravel 12, PHP 8.2+
  • Frontend: React 19 (rich components), Blade (layout/shell), Alpine.js (micro-interactions)
  • Bundler: Vite
  • CSS: Bootstrap 5 / AdminLTE 4
  • Database: MySQL/PostgreSQL
  • Cache & queues: Redis
  • Real-time: Laravel Echo
  • 2D/3D viewers: three.js, occt-import-js (OpenCascade WASM), dxf-parser
  • DevOps: Docker, Nginx

Livewire and Vue.js have been removed: rich screens are React components mounted from Blade shells.

πŸ§ͺ Tests

Run the complete test suite:

php artisan test

Run specific tests:

php artisan test --filter TestName

πŸ› οΈ Custom Artisan Commands (Specific Artisan Commands)

These commands are defined in this repository and complement the default Laravel tooling.

Command Description Example
php artisan wem:diagnostics Check common local setup requirements (PHP version, extensions, app key, cache/storage permissions, Redis, DB, broadcasting). php artisan wem:diagnostics
php artisan wem:files:import One-shot migration of legacy public/ attachments into the private file store. --dry-run, --skip-move. php artisan wem:files:import --dry-run
php artisan wem:n2p:push-order {orderId} {--sync} Push a specific order to Nest2Prod (sync option bypasses the queue). php artisan wem:n2p:push-order 123 --sync
php artisan wem:n2p:sync-sheet-stock Synchronize sheet stock with Nest2Prod. --days=30, --sync. php artisan wem:n2p:sync-sheet-stock --days=7
php artisan preorders:scan-output Scan the output folder and import CSV files as pre-orders. --path=, --pattern=, --done-path=. php artisan preorders:scan-output
php artisan stock:recalculate-cump Recompute the full weighted-average-cost history for every product location. --dry-run. php artisan stock:recalculate-cump --dry-run
php artisan stock:rebuild-reservations Rebuild stock reservations for purchased components. --product=. php artisan stock:rebuild-reservations
php artisan quality:dispatch-calibration-alerts Notify responsible users when quality control device calibration is due or overdue. php artisan quality:dispatch-calibration-alerts
php artisan emails:send-auto-reports Send scheduled automatic email reports based on user preferences. php artisan emails:send-auto-reports
php artisan ldap:import-users Import LDAP users into the Laravel database. php artisan ldap:import-users
php artisan rgpd:export-contact {id} Export every piece of data held about a contact as JSON (GDPR art. 20). php artisan rgpd:export-contact 42
php artisan rgpd:erase-contact {id} Handle a GDPR erasure request for a B2B contact. php artisan rgpd:erase-contact 42
php artisan rgpd:purge Purge personal data past its retention period (expired tokens, old email logs, soft-deleted records). php artisan rgpd:purge
php artisan wem:nesting:seed-svg Attach demo nesting vectors to order lines. --count=, --force. php artisan wem:nesting:seed-svg
php artisan loadtest:seed Generate a realistic dataset for load testing. --scale=. php artisan loadtest:seed --scale=0.5

⏱️ Scheduled tasks & queue

The scheduler (routes/console.php) drives the daily backups (backup:run, backup:clean, backup:monitor), the weekly GDPR purge (rgpd:purge) and the monthly activity-log cleanup. Register it once on the server:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

A queue worker is required for asynchronous work (emails, integrations, exports):

php artisan queue:work redis --sleep=3 --tries=3

Note: do not run php artisan route:cache β€” it freezes the locale resolved at cache time and breaks the localized routes.

🀝 Contribute to the project

Ξ£EM is open source! Your domain expertise is valuable.

🌟 How to help?

Developers:

Industry professionals:

  • Test and provide feedback
  • Propose domain improvements
  • Share your use cases
  • Translate the interface

Development Workflow

# Fork the repository and clone it
git clone https://github.com/YOUR_USERNAME/WebErpMesv2.git

# Create a feature branch
git checkout -b feature/amazing-feature

# Make your changes and commit
git commit -m "Add amazing feature"

# Push and create a Pull Request
git push origin feature/amazing-feature

πŸ‘₯ Contributors

Thanks to everyone who keeps this project alive!

SMEWebify
SMEWebify

Creator & Lead Maintainer
1,225+ commits
sunxiaoguang
sunxiaoguang

Core Contributor
11 commits
saosangmo
saosangmo

Active Contributor
8 commits
RobertoBochet
RobertoBochet

Contributor
3 commits
globalcitizen
globalcitizen

Contributor
1 commit
nedlir
nedlir

Contributor
More contributors
+1 more

See all β†’

Want to be featured here?

Check our Contributing Guide and make your first contribution!

πŸ“Š Project Stats

  • ⭐ 180+ Stars
  • 🍴 88 Forks
  • πŸ‘₯ 7+ Active Contributors
  • πŸ“ 2,200+ Commits
  • πŸŽ‰ 21 Releases (latest: v1.19)
  • πŸ§ͺ 60+ PHPUnit test files
  • πŸ“¦ Open Source under MIT License

πŸ“š Documentation

πŸ—ΊοΈ Roadmap

Check our roadmap to see what's coming next and how you can help!

Current priorities:

  • πŸ§ͺ Test coverage improvement (backend business rules; no frontend tests yet)
  • πŸ“š Complete API documentation (docs/API.md)
  • πŸ“¦ Stock: projected-stock curve, physical inventory screen, automatic replenishment alerts
  • 🐳 Multi-tenant Docker deployment (one container + one database per customer)

πŸ’¬ Support & Community

πŸ“„ License

Project under the MIT license - See LICENSE

You are free to:

  • βœ… Use commercially
  • βœ… Modify the code
  • βœ… Distribute
  • βœ… Use privately

πŸ™ Acknowledgements

Thanks to:

  • All our contributors
  • The workshops that test and provide feedback
  • The Laravel and React communities
  • Everyone who starred ⭐ the project

🏭 Built for industry, by industry

Ξ£EM was born from hands-on experience in industrial sheet metal. Every feature meets a real workshop need.

Are you a sheet metal worker, mechanic, machinist?
Your feedback is invaluable to improve the tool β†’ Contact us

Are you a developer passionate about industry?
Join us β†’ Contributing Guide


Made with ❀️ for sheet metal and mechanical professionals

⭐ Star the project β€’ 🍴 Fork β€’ 🀝 Contribute β€’ 🎬 Try the demo

About

Ressource Management and Manufacturing execution system Web for industry (sheet metal, machining, mold ...)

Topics

Resources

Contributing

Security policy

Stars

210 stars

Watchers

9 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages