Igor MazurEN

Wszystkie projekty

Desktopowy pakiet kontroli jakości

Aplikacja desktopowa, która obsługuje proces jakości w zakładzie spożywczym: od przyjęcia dostaw i analiz laboratoryjnych po reklamacje i zapisy środowiskowe.

Rola
Główny opiekun
Stack
Python, PySide6 (Qt 6), Oracle, LDAP, PyInstaller, Inno Setup
Projekt
2 z 17

Problem

Wszystko, co trzeba zarejestrować, udokumentować i zatwierdzić między przyjazdem ciężarówki do bramy a zwolnieniem partii: dostawa, pobrane z niej próbki, wyniki laboratoryjne i decyzja, która z nich wynika; reklamacje do dostawców, reklamacje produktowe od klientów i protokoły zwrotów; raporty niezgodności; rejestry odczynników i aparatury; a także zapisy temperatury i wilgotności z hal magazynowych.

Użytkownicy pracują na stanowiskach na hali produkcyjnej i w laboratorium, w sieci firmowej, część z nich przy podłączonych wagach i drukarkach, a aplikacja musi działać dalej, nawet gdy szersza sieć nie działa.

Co zrobiłem

Przejąłem rolę głównego opiekuna i od tego czasu wydałem każdą wersję, w tym przejście na schemat major.feature.patch przy wersji 2.0. W praktyce oznacza to odpowiedzialność za backlog, wydania i zgłoszenia od użytkowników, a nie tylko za kod. Jestem największym pojedynczym autorem w repozytorium.

Zbudowałem podsystem rejestrów laboratoryjnych (odczynniki, jednostki, aparatura i metody badań, każdy z zamówieniami i historią zmian rekordu, oraz powiązanie kosztowe między ceną odczynnika a zamówieniami, które go zużywają), ekrany monitoringu środowiskowego z oknem wygładzania, dzięki któremu miesiąc odczytów z czujników da się przeczytać, oraz import z arkuszy kalkulacyjnych jako upsert po numerze dokumentu i arkuszu źródłowym, tak by poprawiony plik aktualizował wiersze zamiast je dublować.

Incydent, który wskazałbym jako przykład: po zmianie w katalogu użytkowników część osób mogła się zalogować, ale wszystkie ekrany były puste. Logowanie się udawało, a wyszukiwanie grup nic nie zwracało, co wykluczało problem z danymi logowania. Napisałem osobną sondę, która odtwarzała problem poza aplikacją na jednym z kont. Przyczyny były dwie, nałożone na siebie. Konta z zaufanej domeny występują w lokalnym katalogu jako obiekty zastępcze zapisane pod swoim identyfikatorem zabezpieczeń, więc wyszukiwanie grup trzeba budować na podstawie tego identyfikatora. A przy jednym skonfigurowanym kontrolerze katalogu niedostępny kontroler był zgłaszany jako „brak grup”, a nie jako błąd.

Poprawka próbuje po kolei każdy skonfigurowany kontroler z krótkim limitem czasu, rozróżnia w logu „nic nie znaleziono” od „nie udało się zapytać” i rozpoznaje konta z zaufanej domeny po identyfikatorze. Utrata kontrolera oznacza teraz wolniejsze logowanie, a nie awarię.

Decyzja i jej koszt

To aplikacja desktopowa w Qt łącząca się bezpośrednio z Oracle, a nie aplikacja webowa. Użytkownicy nie są w internecie, stanowiska są zarządzane centralnie, a oprogramowanie komunikuje się ze sprzętem, więc klient desktopowy usuwa całą warstwę. Kosztem jest to, że wdrożenie nie sprowadza się do odświeżenia strony. Ten koszt przyjęliśmy świadomie: aplikacja jest dystrybuowana jako instalator Windows z własnym kanałem samoaktualizacji, więc każde stanowisko ma aktualną wersję bez wizyty działu IT.

  • Platforma desktopowa BasePy

    Jeden wspólny framework (MVC, logowanie przez katalog, samoaktualizacja, pakowanie) pod aplikacjami desktopowymi pięciu działów.

    Główny opiekun jednej aplikacji, autor drugiej, odpowiedzialny za wydania w całej rodzinie

    Python 3.12 · PySide6 · Oracle · SQL Server

  • Kiosk ewidencji obecności

    Kiosk z czytnikiem identyfikatorów, który pokazuje pracownikowi jego własną ewidencję obecności, a potem sam się czyści.

    Autor

    Python · PySide6 · PyInstaller · Inno Setup

Kontakt

Warszawa
W biurze, hybrydowo lub zdalnie
Okres wypowiedzenia: trzy miesiące

[email protected]