Skip to content

Latest commit

 

History

History
106 lines (84 loc) · 2.38 KB

README.md

File metadata and controls

106 lines (84 loc) · 2.38 KB

TimetablePlanner


Proces generowania planu

  1. Iteracja po wszystkich klasach
  2. Iteracja po każdej godzinie lekcyjnej
  3. Dobór przedmiotu i nauczyciela
  4. Sprawdzenie czy przydzielony nauczyciel jest wolny
  5. Wpisanie przedmiotu do planu
  6. Powrót do punktu 2

Schemat generowania planu lekcji


Wymagania

  • Python 3.10+
Pakiety
about-time==3.1.1
alive-progress==2.4.1
grapheme==0.6.0
mysql-connector-python==8.0.31
protobuf==3.20.1
tabulate==0.9.0

To-Do

Wersja 1.0

1. Baza danych

  • Tabele:
    • Nauczyciele
    • Przedmioty
    • Klasy
    • Sale
    • Plan lekcji
  • Wprowadzenie zabezpieczeń przed idiotyczną zmianą danych / Walidacja danych
  • MS Access -> SQL -> phpMyAdmin
  • Dostęp z serwera
  • Wprowadzenie samych danych

2. Generator

  • Generowanie planu na gotowych danych
  • Przydzielanie sali do klasy na bazie:
    • wolnych sal
    • liczby osób
    • sali "klasowej" aka sala przydzielona do danej klasy
  • Przydzielenie nauczyciela do klasy na bazie etatu
  • Przedmioty wychowawcy
    • 0 = Dowolny nauczyciel przedmiotu
    • 1 = Wychowawca
  • Połączenie z bazą danych
  • Zapis danych tymczasowo jako XML/JSON
  • Komunikacja przez PyScript

3. Strona

  • Prototyp wyglądu strony na bazie placeholderowych tabelek
  • Panel wprowadzania danych do bazy (?)
  • Umożliwienie przeglądu danych z bazy
  • Połączenie z bazą danych
  • Wyświetlenie danych na czysto lub odczytanie z XML/JSON (?)
  • Wyświetlenie danych w tabeli
  • Panel wyboru
    • Klasy
    • Nauczyciela
    • Sali
Wersje 1.1 - 1.9
  • Nauczyciele z więcej niż jednym przedmiotem
  • Automatyczne przydzielenie wychowawcy (opcjonalna funkcja)
  • Lekcje grupowe
  • Walidacja danych w sposób bardzo rozległy
Wersja 2.0
  • Rework wszystkiego bo dlaczego nie
  • Wsparcie roczników IV - VIII
  • Wsparcie klas ukierunkowanych
  • Etaty
Wersja 3.0
  • Wsparcie dla szkół średnich
  • Wersja w bardziej zoptymalizowanym języku (JS?)
  • Generator zastępstw