Aplikacja do zarządzania planem sal zajęciowych dla szkół. Przypisuj nauczycieli, klasy i grupy do sal — szybko i przejrzyście.

📱 PWA — działa offline 🏫 Wiele budynków i pięter 👥 Zajęcia międzyoddziałowe ⚠ Wykrywanie kolizji

Co chcesz zrobić?

Utwórz nowy plan
Skonfiguruj szkołę, budynki, sale, nauczycieli i klasy od zera.
Kreator krok po kroku
📋
Nowy rok szkolny
Skopiuj konfigurację szkoły, sale, nauczycieli i klasy z bieżącego roku.
Na podstawie istniejącego
📂
Importuj z pliku
Wczytaj plan z pliku .json — od innej osoby lub z poprzedniej sesji.
Współpraca
🎬
Wersja demo
Zapoznaj się z możliwościami na przykładowych danych fikcyjnej szkoły.
Podgląd bez zapisu

Co możesz robić w SalePlan?

🏫Definiuj dowolną strukturę szkoły — wiele budynków, pięter, segmentów i sal z numerami
👩‍🏫Przypisuj nauczycieli i klasy do sal godzina po godzinie, dla każdego dnia tygodnia
👥Obsługa zajęć międzyoddziałowych — jedna sala, wiele klas jednocześnie
Automatyczne wykrywanie kolizji — ten sam nauczyciel lub klasa w dwóch salach jednocześnie
🏠Gospodarz sali — przypisz klasę i wychowawcę widocznych w nagłówku tabeli
📁Archiwum lat szkolnych — przełączaj się między rokami bez utraty danych
🔄Eksport i import JSON — współpracuj z innymi, twórz kopie zapasowe
📄Eksport do PDF — gotowy plan do wydruku lub wysłania mailem

📂 Jak wczytać ten plan?

📄 plik.json
🔄 Zastąp bieżący plan
Nadpisz wszystkie dane danymi z pliku. Bieżący plan trafi do archiwum.
⊕ Scal z bieżącym planem
Dodaj tylko brakujące wpisy — nie nadpisuje istniejących komórek. Przydatne gdy dwie osoby układają plan dla różnych grup.
✨ Wczytaj jako nowy plan
Załaduj plan z pliku jako punkt startowy — bez scalania z istniejącymi danymi.
↩ Anuluj

📝 Znaleziono niezakończony kreator

Ostatni zapis: —

📖 Instrukcja

Szkoła i budynki

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 i godziny

Rok szkolny w formacie 2025/2026.

Godziny — numery oddzielone przecinkami:
0,1,2,3,4,5,6,7,8

0 = zerówka.

Piętra i sale

Dodaj piętra → segmenty → sale.

Lub wczytaj z pliku .txt:
piętro;segment;sala

Klasy i grupy

Dodaj klasy — nazwa (np. 4A), skrót i opcjonalna grupa dla klas dzielonych.

Przedmioty

Słownik przedmiotów i ich skrótów — ułatwia wpisywanie w planie. Ten krok jest opcjonalny.

Nauczyciele

Imię, nazwisko i skrót (np. KJUR). Ten krok jest opcjonalny.

Przypisania klas do sal

Opcjonalnie przypisz klasy do sal — pojawią się w wierszu Gospod. w tabeli.

✦ Kreator konfiguracji
Nowy rok szkolny
2025/2026
Skonfiguruj szkołę, budynki, nauczycieli i klasy — zajmie to tylko chwilę.
1
Szkoła
2
Rok szkolny
3
Budynek
4
Klasy
5
Przedmioty
6
Nauczyciele
7
Przypisania
🏫 Informacje o szkole
Podaj nazwę szkoły i dane kontaktowe.
🏢 Budynki szkoły
Dodaj jeden lub więcej budynków. Każdy budynek ma własną nazwę i adres.
🗓 Rok szkolny
Podaj rok szkolny dla nowego planu.
⏱ Godziny lekcyjne
Podaj numery godzin lekcyjnych (oddzielone przecinkami).
🕐 Przedziały czasowe lekcji
Podaj godziny rozpoczęcia i zakończenia każdej lekcji — będą wyświetlane w siatce planu i na wydrukach.
Ten krok jest opcjonalny — możesz zostawić pola puste.
LekcjaPoczątekKoniec
🏗 Piętra i sale
Dodaj piętra, segmenty i sale ręcznie lub zaimportuj z pliku .txt.
Format jednej linii: piętro;segment;sala;opis
Przykłady:
Parter;A;1;pracownia komputerowa
Parter;A;2;
I piętro;B;10;sala językowa
I piętro;;15;
Segment i opis są opcjonalne. Przy jednym budynku kolumna budynku jest pomijana, przy wielu dodaj ją jako pierwszą: budynek;piętro;segment;sala;opis
🏗
Przeciągnij plik .txt lub kliknij, aby wybrać
Format: piętro;segment;sala;opis — jeden wpis na linię
🎓 Klasy i grupy
Dodaj klasy i ich grupy ręcznie lub zaimportuj z pliku .txt.
Format: klasa;skrót;nazwa grupy — jeden wpis na linię.
Dla całej klasy: 1A;1A;cała klasa
📋
Przeciągnij plik .txt lub kliknij, aby wybrać
Format: klasa;skrót;grupa • obsługuje ; i , jako separatory
0 wpisów
KlasaSkrótGrupaKlasa bazowa
👨‍🏫 Lista nauczycieli
Wpisz nauczycieli ręcznie lub zaimportuj z pliku .txt (format: Imię Nazwisko, każdy w nowej linii). Skrót generowany automatycznie.
📄
Przeciągnij plik .txt lub kliknij, aby wybrać
Format: Imię Nazwisko • jeden nauczyciel na linię
0 nauczycieli
ImięNazwiskoSkrót
📚 Słownik przedmiotów
Zdefiniuj listę przedmiotów i ich skrótów. Skróty są wyświetlane w siatce planu i na wydrukach. Możesz wczytać gotową listę lub dodać własne pozycje.
Nazwa przedmiotuSkrót (max 8 znaków)
💡 Krok opcjonalny — skróty możesz też dodawać lub edytować później.
📌 Przypisanie klas do sal
Dla każdego dnia tygodnia i każdej sali wybierz domyślnie przypisaną klasę (opcjonalnie).

Pomoc

☰ Menu
📋 Tabela planu
👤 Widok nauczyciela / klasy
🏃 Widok WF (sale sportowe)
↩ Cofnij / Przywróć
📚 Słownik przedmiotów
🖱️ Przeciąganie zajęć
📅 Dni i daty
🏠 Gospodarz sali
⚠️ Kolizje
➕ Klasy i nauczyciele w locie
🔄 JSON & 📄 PDF & 📊 CSV
📁 Archiwum
💾 Pamięć przeglądarki
⌨️ Skróty klawiszowe

ℹ️ SalePlan — O programie

v2.6.0 Aktualizacja: 17 maja 2026

🚀 Strona powitalna

Przy pierwszym uruchomieniu wyświetla się strona powitalna z czterema opcjami:

OpcjaOpis
✨ Utwórz nowy planKreator od zera — 7 kroków
📋 Nowy rok szkolnyKopiuje konfigurację z bieżącego roku
📂 Importuj z plikuWczytaj plan z pliku .json
🎬 Wersja demoPrzykładowa szkoła — dane nie są zapisywane

☰ Menu nawigacyjne

  • Obowiązuje od — data obowiązywania planu (osobna dla każdego dnia)
  • 💾 Zapisz — ręczny zapis do pamięci przeglądarki
  • ↩ Cofnij / ↪ Przywróć — cofaj i przywracaj zmiany (Ctrl+Z / Ctrl+Y)
  • ⬇ Eksportuj PDF — plan gotowy do wydruku (widoki: Sale, Nauczyciel, Klasa)
  • ⬆ Eksportuj JSON — kopia zapasowa planu
  • 📊 Eksportuj CSV — plan dzienny, tygodniowy lub zestawienie wpisów
  • ⬇ Importuj JSON — wczytaj plan z pliku
  • ✏️ Edytuj rok — zmień sale, klasy, nauczycieli, godziny, przedmioty
  • 🗑 Wyczyść dzień — usuwa wszystkie wpisy bieżącego dnia
  • ❓ Pomoc — panel z podpowiedziami
  • 🌙 Zmień motyw — przełącz jasny / ciemny motyw
  • 🏠 Strona główna — wróć do ekranu startowego

⚙️ Panel ustawień szkoły

Przycisk ⚙️ w prawym górnym rogu topbara (lub ☰ → Ustawienia szkoły):

ZakładkaOpis
KlasyDodaj / edytuj / usuń klasy — nazwa, skrót, grupy, klasa bazowa
NauczycieleDodaj / edytuj / usuń nauczycieli — imię, nazwisko, skrót
PrzedmiotyZarządzanie słownikiem przedmiotów i skrótów
GodzinyEdytuj etykiety i przedziały czasowe godzin lekcyjnych

📋 Planowanie sal

  • Kliknij komórkę — wybierz nauczyciela, klasę/grupę, przedmiot
  • Pole przedmiotu podpowiada wartości ze słownika — zacznij pisać lub kliknij pole
  • Kilka klas tego samego poziomu i grupy łączy się automatycznie: 4A MN + 4B MN + 4C MN → 4ABC MN
  • Godziny lekcyjne pokazują numer i przedział czasowy (np. 7:55–8:40)
  • Wypełnioną komórkę możesz przeciągnąć na inną godzinę lub salę
  • Ctrl+Enter — zapisz wpis  ·  Esc — zamknij okno

➕ Szybkie dodawanie

  • Przycisk w prawym górnym rogu topbara — dodaj nauczyciela lub klasę bez otwierania kreatora
  • W oknie edycji komórki: + Dodaj nowego nauczyciela lub + Dodaj nową klasę/grupę
  • Nowe pozycje dostępne natychmiast w całym planie

👤 Widok nauczyciela / klasy

  • Pasek 🏢 Sale / 👤 Nauczyciel / 🏫 Klasa pod zakładkami dni
  • Widok nauczyciela lub klasy pokazuje cały tydzień w jednej tabeli (godziny × dni)
  • Wybierz osobę lub klasę z listy obok przycisków
  • Każda komórka klikalna — otwiera modal edycji we właściwym dniu

⚠️ Wykrywanie kolizji

  • Czerwona ramka + ⚠ gdy ten sam nauczyciel lub klasa w dwóch salach jednocześnie
  • Najedź myszą (lub tapnij) na ⚠ aby zobaczyć szczegóły — np. Nauczyciel MRAZ jednocześnie w: 0B3
  • Licznik kolizji w dolnym pasku — kliknij aby przejść do pierwszej

↩ Cofnij / Przywróć

  • Ctrl+Z — cofnij ostatnią operację (do 30 kroków wstecz)
  • Ctrl+Y / Ctrl+Shift+Z — przywróć cofniętą operację
  • Cofanie obejmuje: zapis komórki, wyczyszczenie komórki, wyczyszczenie dnia, przeciąganie

🏠 Gospodarz sali

  • Kliknij wiersz Gospod. w nagłówku sali
  • Przypisz klasę i wychowawcę (opcjonalnie dwóch dla sal dzielonych)

🖱️ Przeciąganie zajęć

  • Wypełnioną komórkę przeciągnij na inne miejsce — skopiuje wpis
  • Aby przenieść: przeciągnij, a następnie wyczyść oryginał
  • Gdy cel jest zajęty — pojawi się okno potwierdzenia przed nadpisaniem

🔄 Eksport i import JSON

  • ⬆ Eksportuj JSON — plik z pełnym planem i archiwum
  • ⬇ Importuj JSON lub przeciągnij plik .json na okno aplikacji
  • Tryby: Scal (uzupełnij braki) / Zastąp (nadpisz wszystko)

📄 Eksport do PDF

  • Menu ☰ → ⬇ Eksportuj PDF — orientacja pozioma, gotowy do wydruku
  • Obsługuje wszystkie trzy widoki: Sale, Nauczyciel, Klasa
  • Nagłówek zawiera szkołę, rok, dzień i datę obowiązywania
  • Godziny lekcyjne zawierają przedziały czasowe jeśli są zdefiniowane

📊 Eksport do CSV

  • Menu ☰ → 📊 Eksportuj CSV — wybierz jeden z trzech formatów
  • Plan dzienny — aktywny dzień, kolumny: sale, wiersze: godziny
  • Plan tygodniowy — wszystkie sale × wszystkie dni tygodnia
  • Zestawienie wpisów — każdy wpis jako osobny wiersz, do analizy w Excelu
  • Kodowanie UTF-8 z BOM — Excel otwiera bez konieczności konwersji

📁 Archiwum

  • Kliknij rok w topbarze (np. 2025/2026 ▼) aby otworzyć archiwum
  • Można przywrócić lub trwale usunąć stary rok

🧙 Kreator — 7 kroków

KrokOpis
1 — SzkołaNazwa, skrót, telefon, strona www + lista budynków
2 — Rok szkolnyRok, numery godzin i przedziały czasowe lekcji
3 — Piętra i salePiętra, segmenty, numery sal
4 — Klasy i grupyLista klas z podziałem na grupy
5 — PrzedmiotySłownik przedmiotów i skrótów do autouzupełniania
6 — NauczycieleLista nauczycieli ze skrótami
7 — PrzypisaniaDomyślne przypisania klas do sal

🔒 Prywatność i dane

Wszystkie dane przechowywane są wyłącznie lokalnie w przeglądarce (localStorage). Żadne dane nie są wysyłane na serwery.

KluczZawartość
sp_activeKonfiguracja aktywnego roku (klasy, nauczyciele, przedmioty, timesloty)
sp_schedWpisy planu zajęć
sp_archiveZarchiwizowane lata
sp_vfdatesDaty „obowiązuje od"
sp_themeMotyw (ciemny/jasny)
sp_pwa_dismissedBaner instalacji PWA
sp_wiz_draftAutosave kreatora
sp_cookies_acceptedPotwierdzenie informacji o danych
sp_terms_acceptedPotwierdzenie akceptacji regulaminu

⚖️ Licencja i prawa autorskie

© 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.

Krzysztof Jureczek Autor i twórca aplikacji SalePlan
v2.7.0 19 maja 2026
  • Refaktoryzacja architektury — wzorzec DI — wyeliminowano 17 wywołań window.* w storage.js i import-export.js; zastąpiono jawnym Dependency Injection (initStorageCallbacks, initImportCallbacks); zależności są teraz weryfikowalne w czasie ładowania
  • Undo/redo dla operacji całorocznych — nowa funkcja undoPushYear() zapisuje migawkę całego roku przed importem planu (confirmImport) i przywracaniem z archiwum (restoreYear); cofnięcie tych operacji jest teraz możliwe przez Ctrl+Z
  • Walidacja timeslotów — format HH:MM, kolejność start < end i brak nakładania się sąsiednich godzin sprawdzane przy wpisywaniu i przed zapisem; błędy sygnalizowane przez notify()
  • Wydajność — event delegation dla touch — zamiast 1 650 nowych handlerów przy każdym renderSchedule() jeden delegat rejestrowany raz na kontenerze scheduleWrap
  • Wydajność — RAF throttle renderSchedule — wielokrotne wywołania w jednym tick scalane do jednego faktycznego renderu przez requestAnimationFrame; nowa renderScheduleSync() dla miejsc wymagających natychmiastowego renderu
  • Bezpieczeństwo — XSS w confirmModal — dodano pole messageText w showConfirm() korzystające z textContent zamiast innerHTML; dane użytkownika (nazwy klas, nauczycieli, przedmiotów) nie są już parsowane jako HTML
  • Dostępność (a11y) — powrót fokusa po zamknięciu modali — fokus wraca do elementu który otworzył modal we wszystkich 5 miejscach: editModal, homeroomModal, settingsPanel, importModal, confirmModal
  • Powiadomienia — kolejkowanie toastównotify() układa toasty pionowo zamiast nakładać je na siebie; limit 4 jednoczesnych powiadomień; płynne przesuwanie przez CSS transition: bottom
  • Naprawiono sbSet — wyścig timerów — szybkie kolejne wywołania kasują poprzedni timer; tekst resetuje się zawsze 2,5 s od ostatniego komunikatu
  • Naprawiono duplikację _roomLabel — cztery niezależne kopie zastąpione jedną funkcją roomLabelShort w helpers.js
  • Czytelne etykiety undo — zamiast kluczy wewnętrznych (f0_s0_101) przyciski Cofnij pokazują nazwę sali (np. sala 0A101), godzinę i dzień
  • vConsole — lazy-load — biblioteka debugowania ładowana z CDN tylko przy pierwszym otwarciu panelu; wersja przypięta (@3.15.1) zamiast @latest
  • Manifest PWA — ścieżki relatywnestart_url, scope i id zmienione z /Plan-sal/ na ./; aplikacja działa poprawnie pod dowolną ścieżką deploymentu
  • Testy jednostkowe — 87 testów w 4 plikach (helpers, collisions, utils, import-export) korzystających z wbudowanego node:test; zero zależności zewnętrznych; uruchamiane przez npm test
  • JSDoc — 74 nowe bloki dokumentacji dla wszystkich eksportowanych funkcji w schedule.js i ui.js
  • package.json — dodano skrypty npm run check (walidacja składni) i npm test
v2.6.0 17 maja 2026
  • Widok WF — niezależne sloty — każda klasa w sali sportowej ma własną kolumnę; model danych v3 (tablica slotów per sala multi); automatyczna migracja starych danych
  • Edycja w widoku Nauczyciela i Klasy — pełna edycja, DnD i kolizje; modal otwiera się bez przeładowania widoku; wybór sali z poprawną etykietą (pełna nazwa dla sal sportowych)
  • Nauczyciel wspomagający — nowe pole w modalu; widoczny w widoku tygodniowym; naprawiono fałszywe kolizje (ta sama sala = brak kolizji)
  • Wybór przedmiotu — naprawiono brak wstawiania z listy (błąd cudzysłowów w onclick)
  • Naprawiono błąd startu — brakujące importy updateStatusBar i sbSet w app.js
v2.5.8 30 kwietnia 2026
  • Naprawiono brak wykrywania kolizjicollisions.js nie importował colKey z helpers.js; w ES module globalny colKey nie istnieje, więc żadna kolizja nigdy nie była wykrywana
  • Skróty sal w tooltipach kolizji — komunikat ⚠ pokazuje teraz pełny skrót sali (np. 0B4) zamiast samego numeru; roomLabelShort przeniesiona do helpers.js
  • Tooltip kolizji na ekranach dotykowych — pierwsze tapnięcie pokazuje opis kolizji, drugie otwiera modal edycji (wcześniej wymagało :hover)
v2.5.7 25 kwietnia 2026
  • Drukowanie widoku Nauczyciela i Klasy — funkcja „Eksportuj PDF" obsługuje teraz wszystkie trzy widoki: Sale, Nauczyciel, Klasa
  • Nagłówek wydruku zawiera imię i nazwisko nauczyciela (ze skrótem) lub nazwę klasy z liczbą podgrup zamiast dnia tygodnia
  • Nazwa pliku PDF: nauczyciel_KJUR_25-26 lub klasa_1A_25-26
  • Nowe style druku (@media print) dla tabeli widoku tygodniowego
v2.5.6 25 kwietnia 2026
  • Widok Nauczyciela i Klasy: skrót sali zamiast „Sala N" — pełny skrót sali (np. 0A2) zamiast samego numeru
  • Tooltopy kolizji: skrót sali zamiast samego numeru
v2.5.5 25 kwietnia 2026
  • Naprawiono uszkodzenie archiwum przy przywracaniu roku — referencja zamiast głębokiej kopii niszczyła właśnie zarchiwizowane dane
  • Naprawiono licznik wpisów w statusbarze — wpisy z classes[] bez className nie były wliczane
v2.5.4 25 kwietnia 2026
  • Naprawiono brak listy nauczycieli przy wejściu na krok 5 kreatora
  • Naprawiono sortowanie godzin lekcyjnych — godziny wpisane w dowolnej kolejności były zapisywane dosłownie
  • Naprawiono unhandled rejection w instalacji PWA

📄 Regulamin aplikacji SalePlan

Wersja 1.0 · obowiązuje od 1 stycznia 2025 r.

§1. Postanowienia ogólne

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.

§2. Przeznaczenie Aplikacji

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.

§3. Warunki korzystania

  • Aplikacja jest bezpłatna i dostępna dla każdego użytkownika posiadającego dostęp do przeglądarki internetowej.
  • Użytkownik zobowiązuje się korzystać z Aplikacji zgodnie z jej przeznaczeniem oraz obowiązującym prawem.
  • Zabronione jest używanie Aplikacji w celach komercyjnych bez pisemnej zgody Autora.
  • Zabronione jest podejmowanie działań mogących zakłócić działanie Aplikacji lub narazić innych użytkowników na szkodę.

§4. Prawa autorskie i licencja

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.

  • Zabronione jest kopiowanie, modyfikowanie, dekompilowanie, rozpowszechnianie lub sprzedaż Aplikacji bądź jej części bez pisemnej zgody Autora.
  • Dozwolone jest korzystanie z Aplikacji zgodnie z jej przeznaczeniem oraz udostępnianie linku do Aplikacji innym osobom.

W sprawach licencjonowania komercyjnego prosimy o kontakt z Autorem.

§5. Dane i prywatność

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.

  • Dane nie opuszczają urządzenia użytkownika.
  • Aplikacja nie używa plików cookie, narzędzi analitycznych ani reklam.
  • Użytkownik może w każdej chwili usunąć swoje dane, czyszcząc dane przeglądarki lub korzystając z funkcji eksportu/importu JSON.

§6. Odpowiedzialność

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 nie ponosi odpowiedzialności za utratę danych wynikającą z wyczyszczenia danych przeglądarki, awarii urządzenia lub innych przyczyn niezależnych od Autora.
  • Autor nie ponosi odpowiedzialności za szkody wynikające z nieprawidłowego korzystania z Aplikacji.
  • Zaleca się regularne tworzenie kopii zapasowych danych za pomocą funkcji Eksportuj JSON.

§7. Zmiany Regulaminu

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ę.

§8. Postanowienia końcowe

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

📄 Regulamin SalePlan

Przed rozpoczęciem korzystania z aplikacji zapoznaj się z regulaminem i potwierdź jego akceptację.

Korzystając z aplikacji SalePlan, akceptujesz poniższe warunki:

  • Aplikacja przeznaczona jest wyłącznie do niekomercyjnego użytku w placówkach oświatowych.
  • Wszystkie dane przechowywane są lokalnie w Twojej przeglądarce — żadne dane nie są wysyłane na serwery.
  • Kopiowanie, modyfikowanie i dystrybucja kodu bez zgody Autora jest zabroniona.
  • Autor nie ponosi odpowiedzialności za utratę danych — zaleca się regularne kopie zapasowe JSON.

📦 Archiwum planów

📂
Upuść plik .json tutaj
📱
Zainstaluj SalePlan
Dostępne również offline
🔄
Dostępna nowa wersja SalePlan
Kliknij "Odśwież", aby załadować aktualizację.