DAGMA
CODE

DAGMA

Inteligentny system układania harmonogramów pracy — lokalnie, bez serwera i bez chmury.

PROJECT
CODE-038
STOS
PYTHON · PYINSTALLER
BAZA
SQLITE (LOKALNIE)
DYSTRYBUCJA
JEDEN PLIK EXE
DOKUMENTACJA
README 34 kB
STATUS
UKOŃCZONY
DATA
25 sierpnia 2026

Aplikacja desktopowa dla Windows, która automatycznie tworzy optymalne grafiki pracy z jednoczesnym uwzględnieniem prawa pracy, wymaganej obsady, dostępności pracowników, nieobecności, kompetencji, życzeń, sprawiedliwości obciążenia i decyzji operatora. Wszystkie dane zostają w pliku SQLite obok programu.

DAGMA / SOLVER PRZY PRACYOGRANICZENIA TWARDE + FUNKCJA CELU
UKŁADANIE

Komórki zapalają się w kolejności, w jakiej solver je przydziela — to nie jest ozdoba, tylko obraz przeszukiwania przestrzeni rozwiązań. Najpierw wchodzą przydziały wymuszone (jedyna osoba z uprawnieniami, zgłoszony urlop), potem reszta obsady, a na końcu wyrównanie obciążenia. Litery: R ranna, P popołudniowa, N nocna, U urlop.

123456789101112KOWALSKIRRPNNRRPPNOWAKPPRRNNRWIŚNIEWSKANNPPRRPPNLEWANDOWSKINRNNPPPRRRZIELIŃSKARRUUUUPNNSPRAWDZANE PRZY KAŻDYM PRZYDZIALEODPOCZYNEK 11 hODPOCZYNEK TYG. 35 hLIMIT GODZINPRZEŁOM MIESIĄCA
GRAFIK NIEZGODNY Z PRAWEM PRACY NIE JEST GORSZYM ROZWIĄZANIEM — JEST ROZWIĄZANIEM ODRZUCONYM
DAGMA.SOLVERHARMONOGRAMY PRACY · SILNIK OPTYMALIZACJI
CYKL MIESIĘCZNY
WEJŚCIEPRZETWARZANIENARZĘDZIEKONTROLADECYZJAWYJŚCIEGRAFIK10 KROKÓW01OBSADAile osób na zmianie02DOSTĘPNOŚĆ03NIEOBECNOŚCI04KOMPETENCJE05ŻYCZENIA06SOLVER07PRAWO PRACYodpoczynki, limity08SPRAWIEDLIWOŚĆ09DECYZJAOPERATORA10GRAFIK
TRZY WARSTWY DANYCH, KTÓRE SIĘ NIE NADPISUJĄ · PRAWO PRACY JAKO TWARDE OGRANICZENIE, NIE PODPOWIEDŹ
DAGMA / GRAFIKR RANNA · P POPOŁUDNIOWA · N NOCNA · U URLOP
ROZWIĄZANIE
1234567891011121314KOWALSKIRRPNNRRPPNOWAKPPRRNNRPPWIŚNIEWSKANNPPRRPPNNLEWANDOWSKINRNNPPPRRRNZIELIŃSKARRUUUUPNNRROGRANICZENIA TWARDE (PRAWO PRACY)ODPOCZYNEK DOBOWY ≥ 11 hODPOCZYNEK TYGODNIOWY ≥ 35 hLIMIT GODZIN W OKRESIECIĄGŁOŚĆ NA PRZEŁOMIE MIESIĄCAFUNKCJA CELUSPRAWIEDLIWOŚĆ OBCIĄŻENIA88%SPEŁNIONE ŻYCZENIA72%MINIMUM ZMIAN NOCNYCH64%CIĄGŁOŚĆ ZESPOŁÓW91%
KAŻDA KOMÓRKA MA UZASADNIENIE: KTÓRE OGRANICZENIE JĄ WYMUSIŁO · PRZEPISY SĄ TWARDE, RESZTA TO FUNKCJA CELU
01

PROBLEM

Układanie grafiku w arkuszu kalkulacyjnym kończy się zawsze tak samo: obsada się zgadza, ale ktoś ma jedenaście godzin przerwy zamiast jedenastu i pół, ktoś inny trzeci weekend z rzędu, a osoba z jedynymi uprawnieniami do konkretnego stanowiska akurat ma urlop.

Te warunki są ze sobą sprzeczne i nie da się ich sprawdzić wzrokiem. Człowiek układający grafik ręcznie nie łamie prawa pracy ze złej woli — łamie je, bo przy dwudziestu osobach i trzydziestu dniach liczba kombinacji przekracza możliwości sprawdzenia.

02

POMYSŁ

Solver, który traktuje przepisy jako twarde ograniczenia, a nie podpowiedzi. Grafik niezgodny z prawem pracy nie jest gorszym rozwiązaniem — jest rozwiązaniem odrzuconym.

Reszta warunków (życzenia, sprawiedliwość obciążenia, ciągłość między miesiącami) to funkcja celu: system szuka najlepszego układu w przestrzeni rozwiązań już dopuszczalnych.

03

PROJEKT

Fundamentem jest rozdzielenie trzech niezależnych warstw danych, które nigdy się nie nadpisują — dzięki temu zmiana obsady nie kasuje zgłoszonych nieobecności, a import nowego miesiąca nie niszczy historii.

Moduł prawa pracy obsługuje odpoczynki dobowe i tygodniowe, limity godzin, zmiany nachodzące na siebie oraz ciągłość na przełomie miesięcy — ostatnia zmiana grudnia wpływa na pierwszą zmianę stycznia i system musi o tym wiedzieć.

Osobno liczone są nadgodziny, osobno uprawnienia dostępu do danych osobowych. Kopie zapasowe robią się automatycznie przy zamknięciu programu — w katalogu backups leżą migawki opisane godziną i powodem.

Interfejs pokazuje nie tylko wynik, ale i powód: przy każdej zmianie widać, które ograniczenie ją wymusiło. To ta informacja zamienia narzędzie z czarnej skrzynki w argument w rozmowie — „nie mogę cię wpisać na tę zmianę, bo miałbyś dziewięć godzin odpoczynku” jest sprawdzalne, a „system tak ułożył” nie.

04

REALIZACJA

Aplikacja jest w pełni lokalna: nie wymaga internetu ani serwera, buduje się do jednego pliku EXE. Interfejs prowadzi operatora przez kolejne kroki, ale zostawia mu ostatnie słowo — solver proponuje, człowiek zatwierdza albo poprawia ręcznie, a system pilnuje, żeby ręczna poprawka nie złamała ograniczenia.

Dokumentacja liczy 34 kB i opisuje osiemnaście zagadnień, od struktury bazy po skróty klawiszowe. To nie jest przypadek: program, który układa grafik dla zespołu, musi dać się przekazać innej osobie bez rozmowy z autorem.

Osobnym zagadnieniem są zmiany nachodzące na siebie — nocka kończąca się o szóstej rano należy częściowo do dwóch dób i musi być rozliczona w obu. To jeden z tych fragmentów, w których naiwna implementacja działa przez jedenaście miesięcy w roku i wykłada się na przełomie roku kalendarzowego.

05

EFEKT

Grafik na miesiąc powstaje w kilka minut zamiast w kilka godzin, a co ważniejsze — jest sprawdzalny. Każde ograniczenie da się pokazać jako spełnione lub naruszone, więc dyskusja z pracownikiem przestaje być sporem o pamięć.

07

WNIOSKI

Najtrudniejsza nie była optymalizacja, tylko modelowanie przepisów. Zdanie z kodeksu pracy zamienia się w kilka warunków brzegowych, a te warunki bywają ze sobą sprzeczne w sytuacjach, o których przepis milczy. Tam, gdzie interpretacja jest niejednoznaczna, system pyta operatora zamiast decydować sam.