WFShift – Kezelési útmutató

Beosztáskezelő és munkaidő-nyilvántartó rendszer (Web + Mobil PWA)

Áttekintés

A WFShift egy webes beosztáskezelő és munkaidő-nyilvántartó rendszer, amelyben az adminisztrátor(ok) elkészítik és publikálják a beosztásokat, a munkavállalók pedig weben vagy mobilon megtekintik azokat, illetve mobilról rögzíthetik a munkaidőt.

Fő modulok (admin)
  • Irányítópult (munkaerő monitor, státuszok)
  • Cégadatok: telephelyek, pozíciók, juttatások, céges dokumentumok
  • Alkalmazottak: dolgozók kezelése, új dolgozó regisztrációja
  • Beosztás-jelölések (műszak-/eseménytípusok)
  • Beosztás: napi/heti/havi nézet, automatikus generálás
  • Szabadságok: kérelmek jóváhagyása, keretek nyilvántartása
Fő modulok (dolgozó)
  • Beosztás megtekintése
  • Profiladatok karbantartása (személyes adatok, dokumentumok)
  • Értesítési beállítások (Push/E-mail)
  • Mobil eszköz párosítása (QR token)
  • Mobilon: munkaidő rögzítés (kezdés/befejezés), OTP kód lekérése

A képernyőképek a WEB UI és mobil (PWA) screenshotokból készültek, ezért a színek és elrendezés az aktuális verziót tükrözik.

Szerepkörök és bejelentkezés

Admin és dolgozói belépés

A belépő oldalon két belépési mód érhető el: Admin Belépés és Dolgozói belépés.

Admin / dolgozói belépő oldal
Belépő oldal (Admin / Dolgozói belépés).

MFA / OTP (többlépcsős azonosítás)

Minden esetekben belépés után a rendszer OTP kódot kér (MFA). A kód érkezhet push értesítésben (mobilra) és / vagy e-mailben – ezt a felhasználó a beállításaiban tudja szabályozni. Belépéskor biztonsági okokból az IP címet is tárolja a rendszer.

MFA OTP képernyő
MFA: OTP kód megadása a belépéshez.

Admin felület

Az admin felület a cég teljes beosztás- és keretkezelését biztosítja (dolgozók, műszaktípusok, beosztás, szabadság).

Irányítópult (Dashboard)

Az Irányítópult gyors képet ad az aktuális állapotról: dolgozói létszám / licenc slotok, pozíciónkénti feltöltöttség, aktív dolgozók ma, távollévők, pihenőnaposok, illetve iroda vs home office megoszlás.

Admin dashboard
Irányítópult – munkaerő monitor és összesítők.

Cégadatok kezelése

A Cégadatok menüpontban több, egymással összefüggő törzsadat kezelhető:

  • Telephelyek (név, cím, létszám)
  • Pozíciók & Alapbérek (bruttó bér, típus, állomány: akt./terv)
  • Juttatások (csoport, bruttó/nettó érték)
  • Cégdokumentumok (sablonok és szabályzatok feltöltése)
  • Cég alapadatok és Banki információk
  • Licenc & Előfizetés státusz
Cégadatok kezelése
Cégadatok kezelése – telephelyek, pozíciók, juttatások, dokumentumok, licenc.

Szabályzat és Dokumentumok kezelése generálása

Alkalmazottak kezelése

Az Alkalmazottak menüpontban a dolgozók listája, pozíciója, felettese (manager) és státusza látszik. A szerkesztés ikonnal módosítható, a törlés ikonnal archiválható/eltávolítható.

Itt érhető el az Új munkavállaló regisztrációja szekció is (meghívás / regisztráció indítása).

Alkalmazottak kezelése
Alkalmazottak kezelése – lista, szerkesztés, törlés, új regisztráció, archivált dolgozók.

Beosztás-jelölések (típusok)

A beosztás cellákban / sávokban megjelenő típusokat (pl. Iroda, Home Office, Onsite, Ügyelet) a Beosztás jelölések menüpont alatt lehet kezelni.

  • Kód – rövid azonosító
  • Szín – megjelenés a naptárban
  • Aktív – használható-e a típus
  • Fizetett és Szorzó – bér-/munkaidő számítások alapja (ha használjátok)
Beosztás típusok
Beosztás típusok – kód, szín, aktív/fizetett, szorzó.

Beosztás

A Beosztás menüpontban több nézet közül választhatsz: Napi, Heti, Havi, Táblázat. A felső nyilakkal a dátum/tartomány léptethető.

Heti beosztás nézet
Beosztás – heti nézet (felhasználók sorokban, napok oszlopokban).

A napi nézet időskálán (timeline) jeleníti meg az aznapi műszakokat.

Napi beosztás nézet
Beosztás – napi nézet (idősávos megjelenítés).

Automatikus heti beosztás generálása

A ⚡ Auto Generate funkció a kiválasztott hétre automatikusan elkészíti a beosztást az előre megadott szabályok szerint. A működés két lépésből áll:

  1. Beosztás beállítások: a generálási paraméterek megadása
  2. Előnézet: a generált hét megtekintése, majd Mentés

1) Beosztás beállítások

A Beosztás beállítások ablakban állítható többek között:

  • HO napok száma – egy héten hány nap legyen Home Office (ahol engedélyezett)
  • Műszakok száma – napi beosztásban hány időablak/shift legyen
  • Munkanap kezdete / vége – aktív munkaidő sáv alapértelmezése
  • Munkanapok – mely napok számítanak munkanapnak
  • Office napok – mely napok legyenek irodai napok
  • Fix HO nap – fixen home office napként kijelölt napok
  • Áthelyezett munkanap HO nap – ha pipálva van, az áthelyezett munkanapokat is HO-ként kezeli
Beosztás beállítások
Beosztás beállítások – generálási paraméterek.

2) Előnézet és mentés

A generálás után egy előnézeti ablak nyílik meg. Itt még ellenőrizhető a hét teljes beosztása. A Mentés rögzíti a generált beosztást.

Automatikus beosztás előnézet
Heti automatikus beosztás – előnézet (Generálás / Mentés).
Fontos megjegyzés
Az automatikus generálás a meglévő, már rögzített beosztás-elemeket jellemzően nem írja felül (a manuális bejegyzések „szentek”), ezért ha egy napot előre kézzel rögzítesz, az a generálás során megmarad.

Szabadságok

A Szabadságok modulban kezelhetők a szabadságkérelmek és a szabadságkeretek:

  • Jóváhagyásra váró kérelmek – elfogadás vagy elutasítás
  • Szabadság összesítő – éves keret, felhasznált és elérhető napok
  • Negyedéves kihasználtság – Q1–Q4 bontás
  • Havi jóváhagyott szabadságok – havi összesítés
Szabadságok
Szabadságok – kérelmek, keretek és összesítők.

Org-Chart

A Org-Chart modulban a szervezet felépítést érhetjük el a következő funkciókkal:

  • Aktuális beosztás – Szinekkel is jelölt beosztás kategória szerint
  • Poziciók – szervezeten belüli elhelyezkedés és munkakör jelölések jelölése
  • Csoport hierarchia Senior - Medior - Juniór jelölések azonos munkakörben
  • Munkakör leírás – a dolgozói kártya hátoldalán részletesebb leírás elérhető
  • Export – Lehetőség van Exportálásra Kép, PDF formátumban vagy közvetlenül nyomtatni,
Org-Chart
Szervezeti hierarchia - fa ábrázolás
Org-Chart
Szervezeti hierarchia - fa ábrázolás

Céges eszközök kezelése

Integrációk

A Integrációk modulban kezelhető integrációk. A Play ikonnal tesztelhetjuk amenyiben Webhook url-t állítottunk be.

A típusai:

  • API – A RESTAPI leírásról lejebb részletezve.
  • Slack – Slack integráció akár csatornára akár egy felhasználó felé.
  • Teams – Csoport jelzések integrációja megadott csatornára, site ra.
  • CRM – CRM integrációk
  • Egyébb – egyébb integrációk / egyedi integrációk

URL:

  • Az integráció URL címe

Key:

  • Kulcs string

Authentikációk:

  • none – kulcsnélkül
  • API KEY – A RESTAPI hoz kulcsok létrehozása
  • Baerer – BAERER kulcs tipus
  • HMAC – HMAC (Hash-based Message Authentication Code) titkosítási mód
  • Basic – Basic uthentikáció
Integrációk
Integrációk – Külső elérés és Webhook

Meghívás

A Meghívás modulban lehetőség van a dolgozót meghívni és így ő neki kell ki tölteni az adatait.

Meghívás
Meghívás

Dolgozói web felület

A dolgozó a weben a saját adatait és beosztását látja, valamint itt tudja a mobil eszközét párosítani és az értesítési csatornákat beállítani.

Profilom

A Profilom oldalon a személyes adatok, vészhelyzeti kontakt, szabadságkeret összesítő, illetve a profilkép kezelhető. Több fül (pl. Család, Lakcím, Beosztás adatok, Profil & Belépés, Személyes Dok.) segíti a rendezést.

Profilom oldal
Profilom – személyes adatok, szabadságkeret, profilkép, dokumentumfülek.

Értesítési beállítások

A Beállítások menüpontban kapcsolhatók a push és e-mail értesítések: Push OTP, Push New Shift, Push Shift Start, illetve ezek e-mail megfelelői.

Értesítési beállítások
Beállítások – értesítési csatornák kapcsolói.

Mobil párosítás (token / QR)

A Mobil menüpontban a rendszer mobil tokent generál, amit a mobil PWA-ban be lehet olvasni. Párosítás után a mobilon elérhető funkciók listája is megjelenik.

Mobil token QR
Mobil token – QR kód beolvasása a mobil PWA-val.
Párosított mobil
Párosított eszköz – elérhető mobil funkciók és push teszt.

Mobil PWA (webapp)

A mobil felület egy böngészőből használható PWA (webapp), amely a dolgozók napi munkáját segíti: beosztás megtekintés, munkaidő rögzítés, OTP kód, értesítések.

Párosítás és push

Első használatkor a webes felületen generált QR kódot olvasd be a mobil appal. Ha a push értesítések nem érkeznek meg, használd az Értesítések újraregisztrálása funkciót.

Mobil menü
Mobil menü – elérhető funkciók.
Értesítések újraregisztrálása
Rendszerértesítések – újraregisztrálás.

Beosztás megtekintése

A mobil Beosztás nézetben havi naptárban láthatod a napokat, és egy napra koppintva a részleteket. A Vissza a mai naphoz gomb gyors visszaugrást ad a mai dátumra.

Havi beosztás naptár
Havi naptár – hónapváltás nyilakkal.
Napi beosztás részlet
Napi beosztás részlet – a kiválasztott nap műszaka.

Munkaidő rögzítése (kezdés / befejezés)

A Munkaidő képernyőn a tervezett beosztásod alapján tudod elindítani és leállítani a munkaidő rögzítést. A rögzítés során a rendszer GPS adatokat is használhat (telepítési beállítástól függően), ezért a helymeghatározás engedélyezése javasolt.

Munkaidő megkezdése
Munkaidő rögzítése – kezdés.
Munkaidő befejezése
Munkaidő rögzítése – befejezés.
Kezdőlap – mai beosztás és eltelt munkaidő
Kezdőlap – mai beosztás + eltelt munkaidő (ha már elindult a rögzítés).

OTP azonosító

Az OTP képernyőn megjelenő kódot a külső hitelesítés (MFA) során kell megadni. Ha „Nincs kód” látszik, akkor az OTP még nem aktív vagy nincs aktuális kérés.

OTP azonosító
OTP azonosító – a mobilon megjelenő kód.

Értesítések és beállítások

A mobil Beállítások menüpontban ugyanazok az értesítési csatornák kapcsolhatók, mint a weben: push és e-mail OTP / új műszak / műszakkezdés.

Mobil értesítési beállítások
Mobil – értesítési beállítások.

GYIK / hibaelhárítás

Nem érkeznek push értesítések a mobilra

  • Ellenőrizd, hogy a mobil menüben az Értesítések kezelése / Beállítások alatt engedélyezve vannak-e a push kapcsolók.
  • Használd az Értesítések újraregisztrálása gombot.
  • Böngésző/PWA értesítés engedélyek: Androidon a böngésző/alkalmazás értesítései legyenek engedélyezve.

Belépéskor OTP kódot kér, de nincs kódom

  • Nézd meg a mobilon az OTP menüpontot.
  • Ha e-mail OTP is engedélyezve van, ellenőrizd a postaládát (és a SPAM mappát).
  • Ha továbbra sincs kód, kérj segítséget az adminisztrátortól (értesítési csatornák beállítása).

Auto Generate után furcsa / hiányos a beosztás

  • Ellenőrizd a Beosztás beállítások paramétereket (munkanapok, office napok, fix HO napok, HO napok száma).
  • Ne feledd: a már meglévő manuális bejegyzések megmaradhatnak, így az „átfedések” inkább a korábbi rögzítésekből adódnak.
  • Ünnepnapok és áthelyezett munkanapok befolyásolhatják, hogy mi számít munkanapnak.

Céges dokumentumok hiányoznak

Az admin dashboard figyelmeztetést ad, ha kötelező céges dokumentumok nincsenek feltöltve. Menj a Cégadatok menüpontra, és töltsd fel a sablonokat/szabályzatokat a listában.

Általános Információk

Minden kéréshez kötelező az alábbi HTTP fejléc használata az azonosításhoz:

Header: X-Token: 6f9a2b8c4d1e7*****************0b3c
Content-Type: application/json

1. Adatbeküldés (Arduino / Hardver)

Az eszköz minden kártyaolvasáskor az alábbi struktúrával küldi el az adatokat:

POST /CardReader.php

Mit vár az Api és mit vár az Adatbázis

reader_id      => string  => varchar(50)
reader_address => string  => varchar(50)
timestamp      => string  => datetime
card_number    => string  => varchar(50)
			
Ezt a JSON-t küldi az Arduino MCU -ja:
{
	"reader_id": "READER_01",
	"reader_address": "Főbejárat",
	"timestamp": "2025-05-20 08:15:00",
	"card_number": "47290695"
}
			

Válasz: {"status": "success", "db_id": 123}

Ha az Arduino MCU bármi más választ kap mint ami tartalmazza a status : success értéket, vagy nem kap választ addig nem tekinti feldolgozottnak és marad a QUEUE ban, és újra küldi.

2. Lekérdezési Paraméterek

Paraméter Típus Leírás
action String Kötelező riport lekéréshez: "get_report"
from_date Date Kezdő dátum (ÉÉÉÉ-HH-NN). Alapértelmezett: ma.
to_date Date Záró dátum (ÉÉÉÉ-HH-NN). Alapértelmezett: from_date.
card_number String Opcionális szűrés egy konkrét kártyára.
reader_address String Opcionális szűrés egy konkrét helyszínre.

Példa Lekérdezések

POST

1. Mai napi összesített riport

Visszaadja a mai nap összes mozgását kártyánként csoportosítva.

{
    "action": "get_report"
}

2. Konkrét kártya keresése egy időszakban

Egy adott kártya összes adata két dátum között.

{
    "action": "get_report",
    "from_date": "2024-12-01",
    "to_date": "2024-12-31",
    "card_number": "47290695"
}

3. Adott helyszín forgalma egy adott napon

{
    "action": "get_report",
    "from_date": "2024-12-20",
    "reader_address": "Főbejárat"
}

Válasz Formátum (Response)

A sikeres válasz tartalmazza a kártyánkénti és naponkénti összesítést, alatta a részletes bejegyzésekkel (sub-logs).

{
    "status": "success",
    "report": [
        {
            "nap": "2024-12-20",
            "card": "47290695",
            "location": "Főbejárat",
            "osszesito": {
                "elso_leolvasas": "2024-12-20 08:05:12",
                "utolso_leolvasas": "2024-12-20 16:45:30",
                "leolvasasok_szama": 4,
                "eltelt_ido": "8:40"
            },
            "bejegyzesek": [
                { "DateTime": "2024-12-20 08:05:12", "ReaderID": "R01" },
                { "DateTime": "2024-12-20 16:45:30", "ReaderID": "R01" }
            ]
        }
    ]
}