Učitavanje...
← 📅 Raspored / ⚙️ Postavke
🎨 Tema:

Postavke aplikacije

Odaberi kategoriju za uređivanje.

🎨 Izgled

Preferencije koje se pamte u pregledniku.

🎨 Odabir teme

Odaberite vizualnu temu sučelja.

🎓 Vodič za nove korisnike

Ponovno pokreni uvodni tour pri sljedećem otvaranju.

🎲 Prikaži Demo blok

Gumb "Učitaj demo i počni" na početnoj. Korisno za prezentaciju ili debug; sakrij u produkciji.

ℹ️ Prikaži iPomoćnike

Prikazuj sitne bedževe s objašnjenjima kroz aplikaciju (pamti se po pregledniku).

📑 Vidljivi tabovi rezultata

Odaberite koji prikazi se generiraju i prikazuju na glavnom ekranu.

🐞 Debug mod

Ispisuje detaljne informacije u konzolu preglednika (F12). Nema utjecaja na brzinu solvera.

📋 Zadane postavke rasporeda

Vrijednosti koje se primjenjuju svaki put kad kreiraš novi raspored. Pamte se u pregledniku.

Broj smjena u danu
Nazivi i vremena smjena
Smjena 1
Od -
Smjena 2
Od -
Smjena 3
Od -

I Pravilo I

K Pravilo K

V Pravilo V

N Pravilo N (0 = isključeno)

Min. trajanje animacije generiranja

Ako solver završi brže, sučelje pričeka da progress bar dovrši animaciju. 0 = bez čekanja.

sekundi (0-30)
Solver - max trajanje pretrage

Maksimalni broj sekundi koliko solver traži optimalno rješenje. Nakon toga vraća best-so-far.

sekundi (5-300)
Ponudi rano zaustavljanje nakon

Ako je rješenje pronađeno, pojavi se gumb za rano zaustavljanje. Ako nema rješenja, prikaže se odbrojavanje.

sekundi (5-120)
⚖️ Zadani modovi pravila

Svako pravilo može biti Hard (obavezno), Soft (preferirano) ili Isključeno. Ove postavke koristi wizard pri pokretanju novog rasporeda.

🔒 Hard = obavezno 🤝 Soft = preferirano 🚫 Isključeno

Težine (kazne) pravila

Kada pravilo radi u Soft modu, solver ga smije prekršiti. Ovdje možeš definirati koliki je penal (kazna) za to pravilo. Što je broj veći, to će ga solver više izbjegavati prekršiti. i

🔍
# ⇅ Pravilo ⇅ Naziv i Opis ⇅ Težina ⇅
Učitavanje...
🏷️ Upravljanje ulogama

Uloge se dodjeljuju radnicima i mogu biti zahtijevane po smjeni. Promjene se odmah primjenjuju na aplikaciju.

🔍
Naziv ⇅ Label ⇅ Boja ⇅ Opis ⇅ Smjene Fond ⇅ Vidljiva ⇅
🗓️ Praznici i neradni dani

Lista praznika koja se automatski nudi pri odabiru perioda. Praznici se spremaju u bazu i primjenjuju na cijelu tvrtku.

Datum Naziv Boja Obavezan

➕ Dodaj praznik

🌍 Jezici

Jezici se dodjeljuju djelatnicima. Sprema se u languages.json.

Šifra Naziv Boja

➕ Dodaj jezik

🚗 Kategorije vozačkih dozvola

Sprema se u licenses.json.

Šifra Label Opis Boja

➕ Dodaj kategoriju

🏖️ Tipovi nedostupnosti

Tipovi se biraju za svaki nedostupni dan djelatnika. Sprema se u absence_types.json.

Šifra Naziv Boja Vidljivo

➕ Dodaj tip

👥 Djelatnici

Upravljaj popisom zaposlenika. Za svakog možeš definirati uloge, preferirane smjene i poslovnice, te nedostupne dane.

Uloge:
Spol:
Djelatnik Uloge Postavke Status

Uredi djelatnika

1. Osnovno ▼
Spol
i
2. Uloge i Kvalifikacije ▼
Uloge (označi i ocijeni 1-10) i
Jezici
Vozačke kategorije
3. Smjene i Kvote ▼
Obavezne smjene
Preferirane smjene
Zabranjene smjene

Prazno = koristi globalni default iz postavki.

Sati koje radnik odradi izvan ovog rasporeda.

Nema

Definirajte iznimke u smjenama za ovog djelatnika.

4. Lokacije i Nedostupnost ▼
Poslovnice (Odnos)

Iznimke po danima (Kalendar) i
PoUtSrČePeSuNe
Označene iznimke:
5. Timski odnosi (Pairing) ▼

Definiraj odnose (preferira li raditi s nekim u smjeni ili to izrazito ne želi). Solver će se truditi poštovati ove odnose. Score ide od -100 do +100. i

Sortiraj:
🏪 Poslovnice

Definiraj poslovnice/lokacije s brojem potrebnog osoblja po smjeni.

Poslovnica Osoblje po smjeni (min-max) Status

Uredi poslovnicu

Radni dani i smjene

Definirajte radne smjene za odabrani dan, od-do sati te minimalan i maksimalan broj potrebnih radnika.

Dozvoljeno osoblje (Default)

Ovo osoblje će se automatski postaviti kao dozvoljeno u Generatoru (Korak 2).

📊 Fond sati po godinama

Zakonski fond sati prema sati.hr i isplate.info. Pritiskom na redak postavljate fond sati u Korak 4 (Pravilo N).

Mjesec Fond sati Radni sati Blagdani Radnih dana
Učitavanje...
📖 Vodič & Vizija

Sve što trebate znati o radu generatora rasporeda, pravilima solvera i planovima za budućnost.

🚀 Kako funkcionira generator rasporeda? ▼

Za razliku od klasičnih tablica (poput Excela) gdje raspored morate slagati ručno i paziti na tisuću stvari, ovaj generator koristi naprednu matematiku - konkretno, Googleov constraint solver (OR-Tools CP-SAT).

To znači da vi definirate pravila (npr. tko smije raditi gdje, tko ima slobodan dan, koliko smjena radnik smije odraditi), a računalo u sekundi analizira tisuće mogućih kombinacija i pronalazi optimalno rješenje koje zadovoljava sva ta pravila.

📋 Čarobnjak (Wizard) - Korak po korak ▼

Proces slaganja rasporeda vodi vas kroz 5 jednostavnih koraka:

  • Korak 1 - Period i Temelji: Odaberite početni i završni datum, broj smjena (1-3) i prilagodite nazive smjena. Preporučuje se slaganje za jedan kalendarski mjesec radi bržeg izračuna.
  • Korak 2 - Poslovnice: Definirajte lokacije, potreban broj radnika po smjeni te povucite radnike u zelenu zonu ("Rade ovdje") ili crvenu zonu ("Ne rade ovdje"). Označite koji su dani i smjene aktivni na tjednoj razini.
  • Korak 3 - Radnici i Ograničenja: Unesite ili uvezite popis zaposlenika s ulogama. Odredite minimalan i maksimalan broj smjena za svakog radnika, označite godišnje odmore ili neradne dane na kalendaru te postavite njihove želje za smjenama.
  • Korak 4 - Pravila: Definirajte maksimalne tjedne i uzastopne radne dane, fond sati, trajanje smjena i fine-tunajte pravila solvera (hard/soft/off).
  • Korak 5 - Pregled i generiranje: Provjerite sažetak svih postavki i pokrenite ⚡ generiranje. Rezultate možete pregledati u raznim prikazima (po danima, radnicima ili poslovnicama) i preuzeti u Excel formatu.
⚖️ Kako funkcioniraju pravila? (Tvrda / Meka / Isključena) ▼

Svako pravilo u sustavu može se podesiti na jedan od tri načina:

🔴 Tvrdo pravilo (Hard)

Sustav ga se mora strogo pridržavati. Ako ga je nemoguće ispuniti, solver uopće neće generirati raspored.

🟡 Meko pravilo (Soft)

Sustav ga se trudi poštovati. Ako baš mora, prekršit će ga uz određenu "kaznu" kako bi pronašao bilo kakvo rješenje.

⚫ Isključeno (Off)

Pravilo se u potpunosti zanemaruje pri generiranju rasporeda.

Neka od najvažnijih ugrađenih pravila:

  • Maksimalno jedna smjena dnevno: Radnik ne smije raditi dvije smjene u istom danu.
  • Zabrana "brzog povratka" (Quick return): Sprječava radnika da radi popodnevnu ili noćnu smjenu, a već sutradan ujutro bude u jutarnjoj smjeni (štiti zdravlje zaposlenika).
  • Ravnomjerna raspodjela vikenda: Solver se brine da vikend smjene budu pošteno raspoređene među radnicima, minimizirajući situacije da netko radi sve vikende, a netko nijedan.
  • Mjesečni fond sati: Kontrolira da radnici ne pređu zakonski fond sati za odabrani kalendarski mjesec prema radnim danima u Hrvatskoj.
⚠️ Rješavanje čestih problema (Što ako javi INFEASIBLE?) ▼

Poruka INFEASIBLE (Nije moguće riješiti) znači da su pravila previše stroga za raspoložive radnike. Na primjer: imate 3 poslovnice koje rade u isto vrijeme, a u bazi imate samo 2 voditelja (a pravilo "Točno 1 voditelj po smjeni" je podešeno kao Tvrdo).

Kako riješiti ovaj problem?

  • Na Intro stranici prebacite neka pravila s "Tvrdo" na "Meko" (npr. Zabrana quick returna), ili fine-tunajte na Koraku 4 (Pravila).
  • U Koraku 3 provjerite da niste radnicima previše smanjili maksimalni broj smjena ili označili previše neradnih dana.
  • Povećajte broj radnika u Koraku 3 ili smanjite potreban broj ljudi po smjeni u Koraku 2 (Poslovnice).
🔒 Offline rad i spremanje podataka ▼

Ova je aplikacija izgrađena kao Offline-first sustav. To znači da:

  • Ne trebate internet: Aplikacija radi potpuno lokalno na vašem računalu. Svi resursi (uključujući Tailwind CSS i Excel export) spremljeni su lokalno.
  • Sigurnost i privatnost: Podaci nikada ne napuštaju vaše računalo i ne šalju se na vanjske servere.
  • Spremanje postavki: U zaglavlju aplikacije koristite gumb 💾 Spremi da preuzmete trenutne postavke kao JSON datoteku. Kada budete radili raspored za sljedeći tjedan/mjesec, jednostavno kliknite 📂 Učitaj, odaberite tu datoteku, promijenite datume i uštedite vrijeme!
💡 Vizija razvoja i buduće nadogradnje ▼

Cilj nam je razviti vrhunski, iznimno robustan interni alat za upravljanje radnim vremenom na razini Hrvatske. Glavne smjernice razvoja uključuju:

  • Rad bez instalacije (PyInstaller): Pakiranje aplikacije u jednu jedinstvenu `.exe` datoteku koju klijent samo pokrene, bez potrebe za instalacijom Pythona ili drugih alata.
  • Sustav kaskadnog premošćivanja (Cascading Overrides): Mogućnost definiranja iznimki na svim razinama - npr. da određena poslovnica na točan datum radi po posebnom rasporedu, ili da specifični radnik ima iznimno dopuštenje za više uzastopnih radnih dana.
  • SQLite integracija: Prelazak s JSON datoteka na lokalnu SQLite bazu podataka u trenutku kada se pojavi potreba za poviješću rasporeda i naprednim verzioniranjem, zadržavajući 100% offline funkcionalnost.
  • Sigurno offline licenciranje: Generiranje licenci vezanih uz hardverski otisak računala (PC ID) čime se osigurava zaštita koda bez potrebe za internetom.