Plastim Ltd —
Production Management
Plastim Ltd produkuje uszczelnienia przemysłowe w Anglii. Zarządzanie produkcją odbywało się w Excelu i papierze. Zbudowałem system, który dał managerom wgląd w produkcję w czasie rzeczywistym — z telefonu, bez VPN.
Excel i papier na hali produkcyjnej. Zero widoczności w czasie rzeczywistym.
Plastim Ltd to UK producent uszczelnień przemysłowych. Kilkudziesięciu pracowników, kilka linii produkcyjnych, setki zamówień miesięcznie. Manager mógł sprawdzić status zamówienia tylko podchodząc do hali i pytając operatora. Albo czekając na koniec dnia na raport Excelowy.
Problemy, które zgłosił klient: zbyt długi czas odpowiedzi na pytania klientów o status zamówienia (klient pyta, manager musi fizycznie iść na halę), duplikowanie zamówień przy ręcznym wpisywaniu, brak historii zmian (kto i kiedy zmienił status), trudność w planowaniu capacity na kolejne tygodnie.
Oczekiwania: dashboard z widokiem na wszystkie zlecenia produkcyjne, przypisanie do maszyn i operatorów, eksport do PDF dla klientów, integracja z istniejącym systemem FK (MS Dynamics nav).
Discovery na hali, nie w sali konferencyjnej.
Tydzień 1: przeprowadziłem 4 rozmowy z różnymi rolami — manager produkcji, operator CNC, handlowiec, dyrektor. Każda rola miała inne potrzeby i inaczej rozumiała "status zamówienia". To typowy błąd przy budowie systemów wewnętrznych: dostarcza się narzędzie do jednej persony i dziwi się, że reszta go nie używa.
Tydzień 2–3: wireframe w Figmie, demo dla managera i dyrektora, zatwierdzenie zakresu. Zdefiniowałem MVP: zlecenia produkcyjne + status + PDF export + podstawowe autoryzacje (operator widzi swoje, manager widzi wszystko).
Tydzień 4–8: build. React + Node.js API + MS SQL Server (klient miał licencję SQL Server, więc bez sensu migrować na PostgreSQL). Testy na kopii bazy produkcyjnej. Szkolenie dla 3 administratorów.
Tydzień 9–10: rollout. Równolegle stary system (Excel) i nowy przez 2 tygodnie. Potem wyłączenie Excela.
React na froncie, Node na API, MS SQL Server gdzie był. Zero migracji bazy.
React + Vite
SPA dla dashboardu. Szybkie aktualizacje bez przeładowania strony. Tabele z react-table dla 1000+ rekordów z sortowaniem i filtrowaniem po stronie klienta.
Node.js + mssql
API layer między frontendem a MS SQL Server. Klient miał licencję SQL Server 2019 — nie zmieniałem silnika bazy, napisałem adapter. Mniej migracji = mniej ryzyka.
Role-based access
4 role: operator (własne zlecenia), supervisor (linia), manager (cała hala), admin (pełen dostęp + zarządzanie użytkownikami). JWT + refresh tokens.
PDF export server-side
Puppeteer do generowania PDF raportów dla klientów. Template HTML + CSS, Puppeteer renderuje i zwraca PDF. Bez bibliotek pdf-lib / jsPDF — zbyt ograniczone na skomplikowane tabele.
Real-time statusy
WebSocket (socket.io) do push aktualizacji statusu zleceń. Operator zmienia status na tablecie na hali, manager widzi zmianę na dashboardzie w 1–2 sekundy.
Mobile-first dla hal
Operatorzy korzystają z tabletów na halach. UI zaprojektowany mobile-first z dużymi przyciskami (tap target min 48px), czytelny w warunkach słabego oświetlenia i rękawicach.
Sprawdzony stack bez egzotyki. Klient ma to utrzymać po moim zejściu.
Cała aplikacja działa w Docker Compose. Node API + React build servowany przez nginx. MS SQL Server poza containerem (na serwerze klienta, istniejąca instancja). Backup konfiguracji przez GitHub Actions do prywatnego repo klienta. Dokumentacja techniczna 40 stron w Notion.
Real-time wgląd. Manager może odpowiedzieć klientowi w 30 sekund zamiast pójść na halę.
Kluczowy wynik: manager może odpowiedzieć na pytanie klienta o status zamówienia w 30 sekund, zaglądając do dashboardu z telefonu, zamiast fizycznie iść na halę. Przy kilkudziesięciu takich pytaniach tygodniowo to realna oszczędność czasu.
System działa w produkcji od ponad roku. Zero kontaktów serwisowych z poważnych bugów. Klient rozszerza system o moduł planowania capacity — odrębne zlecenie.