Aplikacja do zarządzania planem sal zajęciowych dla szkół. Przypisuj nauczycieli, klasy i grupy do sal — szybko i przejrzyście.
Co chcesz zrobić?
Co możesz robić w SalePlan?
Wpisz pełną nazwę szkoły i skrót — pojawi się w topbarze.
Dodaj co najmniej jeden budynek. Kilka budynków — każdy osobno z adresem.
Rok szkolny w formacie 2025/2026.
Godziny — numery oddzielone przecinkami:0,1,2,3,4,5,6,7,8
0 = zerówka.
Dodaj piętra → segmenty → sale.
Lub wczytaj z pliku .txt:piętro;segment;sala
Dodaj klasy — nazwa (np. 4A), skrót i opcjonalna grupa dla klas dzielonych.
Słownik przedmiotów i ich skrótów — ułatwia wpisywanie w planie. Ten krok jest opcjonalny.
Imię, nazwisko i skrót (np. KJUR). Ten krok jest opcjonalny.
Opcjonalnie przypisz klasy do sal — pojawią się w wierszu Gospod. w tabeli.
Przy pierwszym uruchomieniu wyświetla się strona powitalna z czterema opcjami:
| Opcja | Opis |
|---|---|
| ✨ Utwórz nowy plan | Kreator od zera — 7 kroków |
| 📋 Nowy rok szkolny | Kopiuje konfigurację z bieżącego roku |
| 📂 Importuj z pliku | Wczytaj plan z pliku .json |
| 🎬 Wersja demo | Przykładowa szkoła — dane nie są zapisywane |
Przycisk ⚙️ w prawym górnym rogu topbara (lub ☰ → Ustawienia szkoły):
| Zakładka | Opis |
|---|---|
| Klasy | Dodaj / edytuj / usuń klasy — nazwa, skrót, grupy, klasa bazowa |
| Nauczyciele | Dodaj / edytuj / usuń nauczycieli — imię, nazwisko, skrót |
| Przedmioty | Zarządzanie słownikiem przedmiotów i skrótów |
| Godziny | Edytuj etykiety i przedziały czasowe godzin lekcyjnych |
| Krok | Opis |
|---|---|
| 1 — Szkoła | Nazwa, skrót, telefon, strona www + lista budynków |
| 2 — Rok szkolny | Rok, numery godzin i przedziały czasowe lekcji |
| 3 — Piętra i sale | Piętra, segmenty, numery sal |
| 4 — Klasy i grupy | Lista klas z podziałem na grupy |
| 5 — Przedmioty | Słownik przedmiotów i skrótów do autouzupełniania |
| 6 — Nauczyciele | Lista nauczycieli ze skrótami |
| 7 — Przypisania | Domyślne przypisania klas do sal |
Wszystkie dane przechowywane są wyłącznie lokalnie w przeglądarce (localStorage). Żadne dane nie są wysyłane na serwery.
| Klucz | Zawartość |
|---|---|
sp_active | Konfiguracja aktywnego roku (klasy, nauczyciele, przedmioty, timesloty) |
sp_sched | Wpisy planu zajęć |
sp_archive | Zarchiwizowane lata |
sp_vfdates | Daty „obowiązuje od" |
sp_theme | Motyw (ciemny/jasny) |
sp_pwa_dismissed | Baner instalacji PWA |
sp_wiz_draft | Autosave kreatora |
sp_cookies_accepted | Potwierdzenie informacji o danych |
sp_terms_accepted | Potwierdzenie akceptacji regulaminu |
© 2025 Krzysztof Jureczek. Wszelkie prawa zastrzeżone.
Oprogramowanie SalePlan jest własnością autora i przeznaczone wyłącznie do niekomercyjnego użytku w placówkach oświatowych. Kopiowanie, modyfikowanie i dystrybucja kodu bez pisemnej zgody autora jest zabroniona.
window.* w storage.js i import-export.js; zastąpiono jawnym Dependency Injection (initStorageCallbacks, initImportCallbacks); zależności są teraz weryfikowalne w czasie ładowaniaundoPushYear() zapisuje migawkę całego roku przed importem planu (confirmImport) i przywracaniem z archiwum (restoreYear); cofnięcie tych operacji jest teraz możliwe przez Ctrl+ZHH:MM, kolejność start < end i brak nakładania się sąsiednich godzin sprawdzane przy wpisywaniu i przed zapisem; błędy sygnalizowane przez notify()renderSchedule() jeden delegat rejestrowany raz na kontenerze scheduleWraprequestAnimationFrame; nowa renderScheduleSync() dla miejsc wymagających natychmiastowego renderumessageText w showConfirm() korzystające z textContent zamiast innerHTML; dane użytkownika (nazwy klas, nauczycieli, przedmiotów) nie są już parsowane jako HTMLeditModal, homeroomModal, settingsPanel, importModal, confirmModalnotify() układa toasty pionowo zamiast nakładać je na siebie; limit 4 jednoczesnych powiadomień; płynne przesuwanie przez CSS transition: bottomsbSet — wyścig timerów — szybkie kolejne wywołania kasują poprzedni timer; tekst resetuje się zawsze 2,5 s od ostatniego komunikatu_roomLabel — cztery niezależne kopie zastąpione jedną funkcją roomLabelShort w helpers.jsf0_s0_101) przyciski Cofnij pokazują nazwę sali (np. sala 0A101), godzinę i dzień@3.15.1) zamiast @lateststart_url, scope i id zmienione z /Plan-sal/ na ./; aplikacja działa poprawnie pod dowolną ścieżką deploymentuhelpers, collisions, utils, import-export) korzystających z wbudowanego node:test; zero zależności zewnętrznych; uruchamiane przez npm testschedule.js i ui.jspackage.json — dodano skrypty npm run check (walidacja składni) i npm testupdateStatusBar i sbSet w app.jscollisions.js nie importował colKey z helpers.js; w ES module globalny colKey nie istnieje, więc żadna kolizja nigdy nie była wykrywana0B4) zamiast samego numeru; roomLabelShort przeniesiona do helpers.js:hover)nauczyciel_KJUR_25-26 lub klasa_1A_25-26@media print) dla tabeli widoku tygodniowego0A2) zamiast samego numeruclasses[] bez className nie były wliczaneWersja 1.0 · obowiązuje od 1 stycznia 2025 r.
Niniejszy Regulamin określa zasady korzystania z aplikacji internetowej SalePlan — Plan Sal Zajęciowych (dalej: „Aplikacja"), udostępnianej pod adresem https://krzjur-oss.github.io/Plan-sal/.
Właścicielem i twórcą Aplikacji jest Krzysztof Jureczek (dalej: „Autor"). Korzystanie z Aplikacji jest równoznaczne z akceptacją niniejszego Regulaminu.
Aplikacja przeznaczona jest wyłącznie do niekomercyjnego użytku w placówkach oświatowych (szkoły, przedszkola, placówki kształcenia). Umożliwia planowanie i zarządzanie przydziałem sal lekcyjnych dla nauczycieli i klas.
Wszelkie prawa do Aplikacji — w tym kod źródłowy, interfejs graficzny, projekt wizualny oraz dokumentacja — należą wyłącznie do Autora i są chronione przepisami prawa autorskiego.
W sprawach licencjonowania komercyjnego prosimy o kontakt z Autorem.
Aplikacja nie zbiera, nie przesyła ani nie przechowuje żadnych danych użytkownika na zewnętrznych serwerach. Wszelkie dane (plan zajęć, lista klas, nauczyciele) przechowywane są wyłącznie lokalnie w pamięci przeglądarki użytkownika (localStorage) na jego urządzeniu.
Aplikacja udostępniana jest w stanie „takim, jakim jest" (as is), bez jakichkolwiek gwarancji — w szczególności gwarancji przydatności do określonego celu czy nieprzerwanego działania.
Autor zastrzega sobie prawo do zmiany Regulaminu. O istotnych zmianach użytkownicy będą informowani poprzez komunikat wyświetlany w Aplikacji. Dalsze korzystanie z Aplikacji po opublikowaniu zmian oznacza ich akceptację.
W sprawach nieuregulowanych niniejszym Regulaminem zastosowanie mają przepisy prawa polskiego, w szczególności Kodeksu cywilnego oraz ustawy o prawie autorskim i prawach pokrewnych.
Wszelkie pytania dotyczące Aplikacji lub niniejszego Regulaminu można kierować do Autora za pośrednictwem repozytorium GitHub projektu.
Krzysztof Jureczek · Autor i twórca aplikacji SalePlan · © 2025