Back to Research
THE MODULE MAP
Phase 2 — Every module, every submodule, every connection
February 2026 • Solen Kablo • Living Document
The system has 8 core modules, each with its own frontend pages, backend API routes, and database models. This document maps every module and submodule — what they do, what they contain, and how they depend on each other. Think of it as the table of contents for the entire ERP. The detailed deep-dive into each module comes in the subsequent phases.
1. THE DATA FLOW
Before diving into individual modules, here is how data flows through the system. Every module exists because something upstream produces data that something downstream consumes.
TEKNİK
Define cables & machines
→
SİPARİŞ
Accept orders
→
ÜRETİM
Produce cables
→
STOK
Track inventory
HAMMADDE
Supply materials
→
ÜRETİM
Consume materials
→
LAB
Test quality
→
STOK
Release to stock
Two parallel pipelines that converge at Üretim (Production). The top pipeline defines what to produce and when. The bottom pipeline supplies what to produce with and verifies quality.
2. TEKNİK — ENGINEERING
The Foundation Module
Everything starts here. Teknik defines what cables exist, how they are made, what machines the factory has, what standards they must pass, and what gets printed on them. No order can be placed, no production can start, and no test can be run without data from Teknik.
Cable Playground
Visual drag-and-drop cable design tool. Build a cable step by step — choose machines, configure parameters, define material layers. Outputs a complete production flow with material requirements, half-product codes, and test mappings.
Frontend: react-dnd canvas, undo/redo, autosave • Backend: 20+ design endpoints, session-based
Cable Database
Approved cable designs finalized from the Playground. Each entry stores the full production flow, half-product tree, material formulas, and test requirements as structured JSON. The single source of truth for everything downstream.
Backend: cable_code lookup, production-flow parsing, half-product tree, analytics
Machine Management
CRUD for all 7 machine types (Kabatel Çekme, Kalaylama, İncetel Çekme, Buncher, Extruder, E-beam, Aktarma). Each machine type has its own config schema — speed ranges, diameter limits, input/output constraints.
Backend: 7 machine-specific route groups, ~42 endpoints total
Standards Management
Define test standards (IEC-EN, UL, SLN) with parameters, test types, frequency rules, and pass/fail criteria. Standards are linked to cable designs — each design knows which tests it requires and when.
Backend: standards CRUD, parameter management, test result recording
Cable Marking
Marking templates define what gets printed on the cable itself during extrusion (company name, standard, voltage, cross-section, etc.). Stored as ordered word arrays. Each order-cable references a marking template.
Backend: marking CRUD, toggle active/inactive
Operator Management
Production operator registry. Operators are assigned to production sessions. Separate from system users — an operator doesn’t need a login, they are assigned by the person starting the session.
Backend: simple CRUD, referenced by production sessions
Consumed by: Sipariş (cable selection, marking selection) • Üretim (machine configs, work card generation, test triggers) • Lab (test standards, pass/fail criteria) • Stok (half-product definitions, product codes)
3. HAMMADDE — RAW MATERIALS
The Supply Chain Module
Tracks everything that enters the factory — from the moment a purchase order is placed to the moment the material is consumed in production. Copper, tin, plastic compounds, catalysts, dyes, antirodent additives, reels, and palettes. Every physical item gets a QR code, a photo, and a lot number on entry.
Material Entry
QR-scanned material intake. Lab user photographs each item, assigns it to a pending order, generates a QR code, and prints a label. Two entry modes: individual items (copper/tin baskets) and lot-based (plastic bags, dye barrels — multiple items from one lot).
Backend: /api/materials/entry + /lot-entry + /palette-entry + /reel-entry
Materials List
Full inventory view of all raw materials in the system. Photos, QR codes, lot numbers, supplier, weight, remaining weight, and lifecycle status (Received → Approved → In Use → Consumed / Rejected).
Backend: /api/materials/list with filtering, photo lazy-loading
Material Orders
Purchase order tracking with suppliers. Multi-item orders, expected delivery dates, date change history with reason codes (supplier delay, internal change, other), delivery ratings (1–5 stars), and status lifecycle (Pending → Shipped → Delivered / Cancelled).
Backend: /api/material-orders/* CRUD + date-changes + rating
Supplier Management
Supplier registry with nested material catalogs. Each supplier declares which material types they provide (copper, tin, plastic, catalyst, dye, antirodent, reel, palette) with brand names and specifications. Real-time updates via WebSocket.
Backend: /api/suppliers/* CRUD, WebSocket broadcasts on change
Feeds into: Üretim (materials consumed in production sessions) • Lab (material inspection on entry) • Stok (raw material stock view) • Sipariş (material calculator references available stock)
4. SİPARİŞ — ORDERS
The Demand Module
Turns customer requests into structured production jobs. An order selects cables from the Cable Database, specifies quantities and reel configurations, plans deliveries, and — on approval — triggers the Material Calculator that computes exact raw material needs and generates work cards for the production floor.
Order Creation
Multi-step order form: select customer, select cable(s) from Cable Database, choose marking template, define reel lengths and quantities, plan deliveries on a week calendar, configure shipment (sevkiyat) details with palette arrangements. Material selection per cable (plastic, catalyst, dye, antirodent).
Backend: /api/siparis/orders POST with nested cables, deliveries, sevkiyat, payments
Order List
All orders with expandable rows showing full details. Status management (Taslak → Beklemede → Onaylandı → Üretimde → Tamamlandı / Reddedildi), approve/reject actions, calculation trigger, and search. Each order shows its cables, deliveries, and work card status.
Backend: /api/siparis/orders GET with pagination + validation-status
Material Calculator
The brain of the order pipeline. Walks through the cable design’s production flow, applies twist factors, overfill constants, coating ratios, and plastic density formulas to compute exact kg of copper, tin, and plastic needed. Generates work cards for every production step automatically.
Backend: /api/siparis/calculate-materials + work card generation service
Customer Management
Customer registry with domestic/export classification, contact info, tax numbers, and address. Referenced by every order. Real-time WebSocket updates on changes.
Backend: /api/siparis/customers CRUD, WebSocket broadcasts
Delivery Planning
Delivery schedule per order — when, how much, which cable. Supports partial deliveries. Linked to Sevkiyat (Shipment) for palette configuration and truck loading.
Backend: /api/siparis/deliveries CRUD, per-order filtering
Depends on: Teknik (Cable Database, marking templates) • Hammadde (available material stock for calculator)
Feeds into: Üretim (work cards, production flow) • Stok (demand for projection)
5. ÜRETİM — PRODUCTION
The Largest Module
The heart of the system. 12 submodules, 7 machine-specific operator interfaces, production planning calendar, session management, and output tracking. This is where orders become physical cables. Every basket weighed, every reel measured, every QR code scanned.
Production Planning
Calendar-based scheduling. Drag work cards onto machine time slots (daily/weekly/monthly views). Parallel slot support for machines that process multiple inputs simultaneously. Machine availability tracking and production adjustments (stock allocation, wastage factors).
Backend: work card scheduling/unscheduling, machine status, next-card lookup
Kabatel Çekme Operator
Wire drawing machine. Operator scans input copper basket QR code, starts session, records output baskets with weights. Input: 1 filmaşin basket → Output: 1 basket of çıplak bakır. Allocation mode: ORDER (for a specific order) or STOCK (generic production).
Frontend: QR scanner, session controls, basket output form
Kalaylama Operator
Tin plating machine. Input: 1 basket çıplak bakır → Output: 1 basket kalaylı bakır. Similar session flow as Kabatel — scan input, start, record output, end.
Frontend: QR scanner, session controls
İncetel Çekme Operator
Fine wire drawing machine. Input: 1–16 baskets → Output: 1 reel of multi-strand wire. This is where production becomes design-dependent — the number of inputs, output strand count, and wire diameter all come from the cable design.
Frontend: multi-input QR scanning, strand configuration display
Buncher Operator
Bunching machine. Input: 1–7 reels from İncetel → Output: 1 reel of bükülü bakır (twisted conductor). The last copper processing step before extrusion. Multi-reel input scanning with validation against work card requirements.
Frontend: multi-input scanning, twist factor display
Extruder Operator
Extrusion machine. This is where copper becomes cable — insulation, sheath, or both applied simultaneously. Input: 1 reel of bükülü bakır + plastic compound + catalyst + dye + antirodent (all QR-scanned). Output: 1 reel of finished or semi-finished cable.
Frontend: multi-material scanning, plastic/catalyst/dye input forms
E-beam Operator
Electron beam radiation. Optional step for e-beam cable types. Input: 1 reel from Extruder → Output: 1 reel of irradiated cable. Radiation dosage (5–25 Mrad) determined by cable design’s material and plastic thickness.
Frontend: radiation dosage display, session controls
Aktarma Operator
Transfer/winding machine. Transfers from production reels to customer reels or kangal (loose coils). 100m to 5000m per output. The bridge between production and shipment.
Frontend: length input, reel/kangal mode selector
Production List
Inventory of all half-products currently in the system, organized by production step. Every basket and reel with QR code, weight, allocation status, and bonded test results. The real-time view of what exists on the factory floor.
Backend: /api/stock/half-products with step filtering + summary
Production History
Completed production sessions archive. Full audit trail: which operator, which machine, which work card, start/end times, all outputs with weights, all inputs consumed, and all tests performed during the session.
Backend: /api/production/sessions/history with full-details endpoint
Paletleme
Palette arrangement. After Aktarma, finished reels are arranged onto palettes for shipment. Manual palette configuration matching the sevkiyat plan from the order.
Frontend: palette layout tool
Sevkiyat
Shipment management. Final step — palettes loaded for delivery. Completes the production-to-customer chain.
Frontend: shipment organization, delivery completion
Depends on: Teknik (machine configs, cable designs) • Sipariş (work cards, order allocation) • Hammadde (raw material QR codes)
Feeds into: Stok (half-product creation, stock entries) • Lab (test requests at production intervals)
6. STOK — STOCK & INVENTORY
The Visibility Module
Three views of the same question: “what do we have?” Raw material stock from Hammadde, half-product stock from Üretim, and finished product stock from Aktarma/Sevkiyat. Plus a forward-looking projection that answers “what will we need?”
Projeksiyon (Forecast)
Forward-looking material projection. Calculates what raw materials are needed for all pending orders, compares against current stock, and flags shortages. The decision-support tool for purchasing.
Backend: /api/projeksiyon with summary + per-material breakdown
Ürün Stok (Product Stock)
Finished product inventory. Cables that have completed all production steps, passed all tests, and are ready for shipment or already allocated to orders.
Frontend: product-level stock view with order allocation status
Hammadde Stok (Raw Material Stock)
3-level hierarchy view: material type sections (copper, tin, plastic...) → grouped tables → individual items. Shows quantities, reserved/available amounts, and QR codes. The purchasing team’s primary screen.
Frontend: collapsible 3-tier hierarchy with quantity summaries
Depends on: Üretim (half-product creation) • Hammadde (raw material entries) • Sipariş (demand data for projection) • Teknik (product code definitions)
7. LAB — LABORATORY
The Quality Gate
Quality control woven into production. Tests are not ad-hoc — they are triggered automatically based on cable design requirements at specific production intervals (start of production, end of production, every basket). Lab users see pending tests, record results, and the system blocks production progress if critical tests fail.
Lab Dashboard
Overview panel showing pending alerts, active tests in progress, recently completed tests, and today’s statistics. The lab user’s primary screen — shows what needs attention right now.
Frontend: real-time alerts, test counters, quick-action links
Test Management
Record test results against production outputs. Each test request is bonded to a specific production output (basket/reel) and linked to a test standard from Teknik. Pass/fail determination based on standard parameters. Self-referencing test requests support re-testing failed items.
Backend: /api/test-requests + /api/production/test-requests with bonded output tracking
Depends on: Teknik (test standards, parameters, pass/fail criteria) • Üretim (production test requests triggered at intervals, bonded to outputs)
Feeds into: Stok (test pass required for stock release) • Hammadde (material inspection on entry)
8. ADMIN — SYSTEM ADMINISTRATION
The Control Module
System-wide configuration. Users, permissions, printers, and AI. Only accessible to Super Admin users. The module that keeps everything else running.
User Management
User CRUD with granular button-level permissions. Three user types (Super Admin, Lab User, Operator) with permission templates. Password reset, account suspension, activity logging. Every action in the system is traceable to a user.
Backend: /api/user-management/* with role templates + activity logs
Printer Management
Network printer configuration for the 4 Epson thermal printers on the factory floor. IP/port settings, material type assignments (which printer prints which labels), and connection testing.
Backend: /api/printers/* CRUD with test endpoint
Print Monitor
Real-time print queue across all 4 printers. Job states: Queued → Printing → Completed / Failed. Retry failed jobs, cancel queued jobs. Statistics dashboard showing print volumes and failure rates.
Backend: /api/print-queue/* with stats endpoint
AI Settings
Multi-provider AI configuration. API key management for dozens of providers, model selection, service account settings. Full audit log viewer showing every AI query, tool call, and response with timestamps and user attribution.
Backend: /api/ai/* with config, stats, audit-logs, api-keys management
Cross-cutting: Authentication serves all modules • Print queue serves Hammadde (material labels) and Üretim (output labels) • AI assistant accesses all modules read-only • User permissions control access to every page and button
9. CROSS-CUTTING SERVICES
These are not modules with their own pages — they are services woven into every module.
Authentication
JWT-based. 12h access tokens, 7d refresh tokens. Every API call authenticated. Role-based route guards on frontend.
WebSocket
Real-time updates. Customer changes, supplier changes, production events broadcast to all connected clients instantly.
Notifications
User-to-user notifications. Lab alerts for pending tests, production events for planners, material arrival notices.
Print Queue
Async label printing. Material QR codes, half-product labels — queued and dispatched to 4 network printers.
Global Search
Cross-module search. Find materials, orders, cables, customers, operators by any attribute from one search bar.
AI Assistant
Read-only AI chat. Accesses 92 API tools to search, summarize, and answer questions about any data in the system. Audit-logged.
10. THE DEPENDENCY MAP
Which module depends on which? Rows read as “this module depends on...” The column headers are the providers. Strong means heavy data dependency. Light means occasional reference.
|
Teknik |
Hammadde |
Sipariş |
Üretim |
Stok |
Lab |
Admin |
| Teknik |
— |
— |
— |
— |
— |
— |
users |
| Hammadde |
— |
— |
— |
— |
— |
— |
users |
| Sipariş |
cables, markings |
stock check |
— |
— |
— |
— |
users |
| Üretim |
machines, designs |
materials (QR) |
work cards |
— |
stock lookup |
— |
users, printers |
| Stok |
product codes |
materials |
demand data |
outputs |
— |
test status |
users |
| Lab |
standards |
material tests |
— |
test requests |
— |
— |
users |
| Admin |
— |
— |
— |
— |
— |
— |
— |
Key observation: Teknik has zero dependencies on other business modules — it is the foundation. Admin has zero dependencies — it is the infrastructure. Üretim and Stok have the most dependencies — they sit at the convergence point of the entire system. This is consistent with the modular monolith architecture: highly connected modules that benefit from sharing a single database and single transaction context.
11. NUMBERS
| Module | Frontend Pages | API Endpoints | DB Tables | Key Models |
| Teknik | 7 | ~75 | 10 | CableDesign, CableDatabase, Machine×7, TestStandard, Marking, ProductCode |
| Hammadde | 4 | ~30 | 6 | RawMaterial, MaterialOrder, Supplier, SupplierMaterial, MaterialPhoto |
| Sipariş | 3 | ~25 | 11 | Order, OrderCable, OrderDelivery, OrderSevkiyat, Customer |
| Üretim | 12 | ~35 | 5 | ProductionSession, WorkCard, ProductionOutput, HalfProductSequence |
| Stok | 3 | ~10 | 2 | HalfProductStock, ProductCode |
| Lab | 2 | ~15 | 3 | ProductionTestRequest, TestRequest, TestResult |
| Admin | 4 | ~25 | 6 | User, UserRole, Printer, PrintJob, AIAuditLog, Notification |
| Dashboard | 1 | ~5 | — | Aggregates from all modules |
| TOTAL | 36+ | ~220 | 50+ | — |
What comes next: Each module gets its own deep-dive phase document — database schemas, API contracts, frontend patterns, code walkthroughs, and the decisions made while building it. This map is the index. The details follow.