W ramach przedmiotu Zawansowane architektury baz danych stworzony został system bazodanowy do obsługi szkoły (dziennik elektoryniczny) w realcyjnej bazie danych MySQL. Do celów prezentacyjnych zaimplementowany została również aplikacji webowa w języku TypeScript z wykorzystaniem frameworka React.
Struktura bazy danych przedstawiona została za pomocą diagramu ERD w pliku newSchema.png.
W celu uruchomienia systemu bazodanowego należy wykonać komendę docker-compose up
w katalogu z plikiem docker-compose.yml.
W celu uruchomienia aplikacji webowej nalezy wykonac kmende npm run dev
w katalogu school-frontend.
- Wykorzystana w trigerze nr 1, 4 - sprawdza czy dana klasa zakonczyla juz swoja edukacje
- Wykorzystana w trigerze nr 2 - sprawdza czy dla danej klasy mozna dodac lekcje w danym czasie
- Wyliczenie średniej ocen klasy
- Wyznaczenie planu lekcji dla klasy
- Wyliczenie średniej ocen ucznia
- Wyliczenie sredniej ocen ucznia dla poszczegolnych przedmiotow
- Procedura wykorzystująca transkację - wstawienie zastępstwa dla danych zajec z danym nauczycielem
- Wykorzystana w trigerze nr 6, 7, 8, 9 - sprawdza czy uzytkownik jest studentem
- Wykorzystana w trigerze nr 12, 13 - sprawdza czy uzytkownik jest nauczycielem i czy nie ma juz wychowastwa
- Wykorzystana w trigerze nr 14, 15 - wyznacza liczbe uczniow w klasie
- Przed dodaniem ucznia do klasy sprawdzane jest to czy klasa zakoncyzla juz swoja edukacje - jesli tak to rzucamy blad - procedura nr 1
- Przed dodaniem nowej lekcji do planu zajęć sprawdzamy czy nowy wpis nie nachodzi czasowo na inne zajęcia
- Po dodaniu nowej klasy automatycznie wyznaczany jest rok ukonczenia szkoly
- W przypadku modyfikacji klasy studenta sprawdzane jest to czy napewno ta klasa nie zakonczyla juz edukacji.
- W przypadku modyfikacji klasy automatycznie wyznaczany jest rok ukonczenia klasy
- Przed dodaniem oceny sprawdzamy czy user dodajcy ocene na pewno nie jest uczniem.
- Przed modyfikacja oceny sprawdzamy czy user dodajcy ocene na pewno nie jest uczniem.
- Przed dodaniem oceny sprawdzamy czy user otrzymujacy ocene na pewno jest uczniem.
- Przed aktualizacją oceny sprawdzamy czy user otrzymujacy ocene na pewno jest uczniem.
- Przed aktualizacją oceny sprawdzamy, czy nauczyciel wystawiający ocenę na pewno naucza ucznia otrzymującego ocenę przedmiotu z którego ocena jest wystawiana.
- Przed aktualizacją oceny sprawdzamy, czy nauczyciel wystawiający ocenę na pewno naucza ucznia otrzymującego ocenę przedmiotu z którego ocena jest wystawiana.
- Przed dodaniem klasy sprawdzany jest wychowawca - czy na pewno jest nauczycielem i czy nie jest juz wychowawca
- Przed updatem klasy - zmiana wychowawcy - sprawdzany jest czy na pewno jest nauczycielem i czy nie jest juz wychowawca
- Przed dodaniem ucznia do klasy sprawdzane jest czy limit liczby uczniow w klasie nie zostal przekroczony.
- Przed updatem ucznia - zmiany klasy sprawdzane jest czy limit liczby uczniow w klasie nie zostal przekroczony.
- Lista wszystkich ocen ucznia
- Lista ocen klasy z danego przedmiotu (dziennik)
- Plan lekcji dla danego użytkownika
- Top 10 uczniów z najlepszą w szkole średnią łączną ze swoich przedmiotów
- TOP 10 klas z najlepszą łączną średnią ocen w szkole
- Lista uczniów klasy, którym wychodzą zagrożenia, z listą przedmiotów zagrożonych
- Lista uczniów kwalifikujących sie do stypendium/świadectwa z paskiem za średnią ocen
- Lista klas które uczy dany nauczyciel, z przedmiotami których tam uczy
- Lista klas z wychowawcami i wyliczonym rokiem (1,2,3 itp. klasa)
- Lista wszystkich ocen z wartosciami i nauczyicelem wystawiajacym
- Transkacja w procedurze nr 7 - wykorzystanie transkacji przy dodaniu zastępstwa dla danych zajęć