Modele

user - Użytkownik

user: {
    id                  // int                      identyfikator użytkownika (personNumber)
    type                // enum                     Identyfikacja typu konta
    unit                // reference: unit          Przynależność administracyjna (API powinno zwracać informacje o przynależności administracyjnej użytkownika (np. wydział, katedra, jednostka centralna). z jakimi jednostkami administracyjnymi powiązany jest użytkownik (wydział, katedry, jednostki centralnej))
    active              // boolean                  Identyfikacja czy konto użytkownika jest aktywne
}  

person - osoba

person: {
    id                  // int                      identyfikator pracownika
    first_name          // string                   pierwsze imię
    mid_name            // string                   pozostałe imiona
    last_name           // string                   nazwisko
    title               // string                   stopień naukowy
    sex                 // enum                     { 'male', 'female' }
    birth_date          // date                     data urodzenia
    pesel               // string                   numer pesel
    telephone           // string                   prywatny telefon
    email               // string                   prywatny email
    photo               // string                   url do zdjęcia
    url                 // string                   url do innego zasobu (np cv)
         
    publications        // reference: publications  publikacje tego pracownika
    research            // reference: research      badania tego pracownika
    companies           // reference: employer      firmy z którymi powiązana jest dana osoba
     
    employee:
        [
            {
                employee_number     // int                      numer pracownika
                position            // string                   stopień zawodowy
                description         // string                   opis stanowiska
                function            // string                   funkcja
                room                // string                   pokój
                telephone           // string                   telefon pracowniczy
                email               // string                   email pracowniczy
                schedule            // string                   caldav://ekalendarze.pg.gda.pl/?user_id=123
                courses             // reference: courses       lista przedmiotów prowadzonych przez osobę
                 
                affiliation: {      //                          przynależność administracyjna
                    faculty         // reference: unit          wydziały
                    department      // reference: unit          katedry
                    unit            // reference: unit          inne jednostki badawcze zarejestrwaone na PG
                    other_unit      // string                   inne jednostki badawcze (poza terenem PG)
                }
 
                group               // enum                     { 'Nauczyciele akademiccy', 'Pracownicy nie będący pracownikami akademickimi' }
                sub_group           // enum                     { ... }
                {
                    group: 'Nauczyciele akademiccy':
                    {
                        sub_group: 'Dyplomowani bibliotekarze',
                        sub_group: 'Pracownicy dydaktyczni',
                        sub_group: 'Pracownicy naukowi',
                        sub_group: 'Pracownicy naukowo-dydaktyczni'
                    }
                    group: 'Pracownicy nie będący pracownikami akademickimi':
                    {
                        sub_group: 'Administracyjno-ekonomiczni',
                        sub_group: 'Bibliotekarze (36h)',
                        sub_group: 'Bibliotekarze (40h)',
                        sub_group: 'Inż - techniczni',
                        sub_group: 'Naukowo techniczni',
                        sub_group: 'Poligrafik (godzinowo)',
                        sub_group: 'Poligrafik (miesięcznie)',
                        sub_group: 'Pracownik obsługi',
                        sub_group: 'Stanowisko robotnicze'
                    }
                }
            }
        ]
    student:
        [
            {
                index               // int                      numer indeksu
                email               // string                   email studencki
                status              // enum ('active/aktywny', 'inactive/skreślony', 'graduate/absolwent', ...)
                start_date          // date                     data rozpoczęcia studiów
                finish_date         // date                     data ukończenia studiów
                affiliation: {      //                          przynależność administracyjna
                    faculty         // reference: unit          wydziały
                    department      // reference: unit          katedry
                    unit            // reference: unit          inne jednostki badawcze zarejestrwaone na PG
                    other_unit      // string                   inne jednostki badawcze (poza terenem PG)
                }
            }
        ]
     
     
}

publication - Publikacje

publication: { 
    id                  // int                      identyfikator konferencji
    title               // string                   tytuł oryginalny
    short               // string                   streszczenie autorskie (abstrakt)
    keywords            // string                   słowa kluczowe
    url                 // string                   link do wersji pełno tekstowej
    publication_date    // date                     data publikacji
    language            // string                   język publikacji
    ?                   // string                   tytuł czasopisma  (lub wydawnictwa zwartego, tytuł konferencji)
    country             // string                   kraj publikacji
    pages               // int                      liczba stron (nr stron od-do)
    author              // reference: person        autorzy
    other_authors       // string                   autorzy nie zarejestrwoani w PG
    affiliation: {      //                          przynależność administracyjna
        faculty         // reference: unit          wydziały
        department      // reference: unit          katedry
        unit            // reference: unit          inne jednostki badawcze zarejestrwaone na PG
        other_unit      // string                   inne jednostki badawcze (poza terenem PG)
    }
     
}  

research - Badania

research: {
    id                  // int                      identyfikator projektu w bazie danych
    title               // string                   project title
    type                // ?                        rodzaj projektu
    start_date          // date                     data rozpoczęcia projektu
    keywords            // string                   słowa kluczowe
    director            // reference: person        kierownik projektu (id z bazy osobowej)
    affiliation: {      //                          przynależność administracyjna
        faculty         // reference: unit          wydziały
        department      // reference: unit          katedry
        unit            // reference: unit          inne jednostki badawcze zarejestrowane na PG
        other_unit      // string                   inne jednostki badawcze (poza terenem PG)
    }
 
}  

conference - Konferencje

conference: {  
    id                  // int                      identyfikator konferencji
    title               // string                   tytuł konferencji
    start_date          // date                     data rozpoczęcia
    end_date            // date                     data zakończenia
    location            // string                   lokalizacja
    contact             // string                   dane kontaktowe
    url                 // string                   strona konferencji
    coordinator         // string                   koordynator
    affiliation: {      //                          przynależność administracyjna
        faculty         // reference: unit          wydziały
        department      // reference: unit          katedry
        unit            // reference: unit          inne jednostki badawcze zarejestrowane na PG
        other_unit      // string                   inne jednostki badawcze (poza terenem PG)
    }
    university          // reference: university    szkoła
}  

unit - Wydział / katedra / jednostka

unit: {
    id                  // int                      identyfikator kierunku
    name                // string                   nazwa kierunku
    type                // enum                     { 'faculty/wydział', 'administration/jednostka centralna', 'department/katedra' }
    parent              // reference: unit          jednostka nadrzędna
    children            // reference: unit          jednostki podległe
    manager             // reference: person        kierownik jednostki
                 
    // poniższe obiekty wypełnione będą tylko dla jednostki odpowiedniego typu (type)
    faculty: {         
        qualifications  // string                   przyznawane kwalifikacje (tytuły i dyplomy)
        level           // ?                        poziom kwalifikacji
        ?               // string                   szczegółowe kryteria przyjęć
        ?               // string                   szczegółowe procedury dotyczące uznawania wcześniejszego kształcenia (formalnego, nieformalnego i incydentalnego)
        ?               // string                   wymagania i przepisy dotyczące kwalifikacji
        ?               // string                   profil programu studiów
        ?               // string                   podstawowe efekty kształcenia / uczenia się
        ?               // string                   profile zawodowe absolwentów wraz z przykładami
        ?               // string                   dalsze możliwości kształcenia
        ?               // string                   struktura programu wraz z liczbą punktów (tzw. siatka godzin)
        ?               // string                   przepisy dotyczące egzaminów, systemu oceniania i ocen
        ?               // string                   wymogi związane z ukończeniem studiów
        ?               // string                   typ studiów
        ?               // string                   kierownik programu studiów lub inna odpowiedzialna osoba
    }
     
    administration: {
        description     // string                   opis jednostki
        duties          // string                   pełnione obowiązki
    }
     
    division: {
    }
}

course - Przedmiot / karta przedmiotu

course: {
    id                  // int                      identyfikator
    name_pl             // string                   nazwa przedmiotu
    name_en             // string                   nazwa przedmiotu
    code                // string                   kod przedmiotu
    type                // string                   typ przedmiotu
    level               // ?                        poziom przedmiotu
    year                // int                      rok studiów (1-5)
    semester            // int                      semestr studiów (1-10)
    field               // reference: field         kierunek studiów
    degree              // enum                     { I, II, III}
    mode                // enum                     { stacjonarne, niestacjonarne }
    affiliation: {      //                          przynależność administracyjna
        faculty         // reference: unit          wydziały
        department      // reference: unit          katedry
        unit            // reference: unit          inne jednostki badawcze zarejestrowane na PG
        other_unit      // string                   inne jednostki badawcze (poza terenem PG)
    }
    manager             // reference: person        osoba odpowiedzialna za przedmiot
    teachers            // reference: person        osoby prowadzące przedmiot
    language            // string                   język wykładowy
    ects                // int                      liczba punktów ECTS
             
    requirements_pl     // string                   wymagania wstępne i dodatkowe
    requirements_en     // string                   wymagania wstępne i dodatkowe
    contents_pl         // string                   treści przedmiotu
    contents_en         // string                   treści przedmiotu
    effects_pl          // string                   efekty kształcenia/uczenia się przedmiotu
    effects_en          // string                   efekty kształcenia/uczenia się przedmiotu
    realization_pl      // string                   sposób realizacji
    realization_en      // string                   sposób realizacji
    recomendations_pl   // string                   zalecenia wstępne i dodatkowe
    recomendations_en   // string                   zalecenia wstępne i dodatkowe
    addons_pl           // string                   zalecane fakultatywne komponenty przedmiotu
    addons_en           // string                   zalecane fakultatywne komponenty przedmiotu
    books_pl            // string                   zalecana lista lektur
    books_en            // string                   zalecana lista lektur
    methods_pl          // string                   metody nauczania
    methods_en          // string                   metody nauczania
    practics            // string                   praktyki zawodowe
    materials           // reference                materiały dydaktyczne (eNauczanie)
    schedule            // reference                plan zajęć (eLokale, kalendarz)
                 
    grading             // array                   
    {      
        en:             // string                   'written exam',
        pl:             // string                   'egzamin pisemny',
        treshold:       // float                    'próg zaliczenia: 51%',
        partial:        // float                    'procent oceny składowej' }
    }      
             
    count_lectures      // int                      liczba godzin wykładów
    count_excersice     // int                      liczba godzin ćwiczeń
    count_labs          // int                      liczba godzin laboratoriów
    count_projects      // int                      liczba godzin projektu
    count_seminaries    // int                      liczba godzin seminarium
}

course_grid - Siatka przedmiotów

course_grid: {
    id                  // int                      identyfikator
    field               // reference: field         kierunek studiów
    degree              // enum                     { I, II, III}
    mode                // enum                     { stacjonarne, niestacjonarne }
    course              // reference: courses       lista przedmiotów wspólnych dla wszystkich specjalności i profili
    profile             // reference: profile       lista profili zawierająca listę przedmiotów przydzielonych do specjalności
    speciality          // reference: profile       lista specjalności zawierająca listę przedmiotów przydzielonych do specjalności
}

field - Kierunek studiów

Nie wiem czy taki model może istnieć.

field: {
    id                  // int                      identyfikator
    faculty             // reference: unit          wydział
    name_pl             // string                   nazwa kierunku
    name_en             // string                   nazwa kierunku
}      

profile - Specjalność (profil dyplomowania)

profile: {     
    id                  // int                      identyfikator
    field               // reference: field         kierunek studiów (do których należy dany profil)
    type                // enum                     { 'specjality/specjalność', 'profile/profil' }
    name_pl             // string                   nazwa profilu (specjalności)
    name_en             // string                   nazwa profilu (specjalności)
}

employer - Pracodawcy

employer: {
    id                  // int                      identyfikator
    name_pl             // string                   nazwa pracodawcy
    name_en             // string                   nazwa pracodawcy
    type                // enum                     { 'private', 'govement' ... }
    sector              // enum                     { 'IT', 'telecommunication' ... }
    size                // enum                     { 'small', 'medim', 'large' }
    nip                 // string                   numer NIP
    regon               // string                   numer regon
     
    representant        // reference: person        osoby, które reprezentują daną firmę w bazie uczelni
     
    branch              // array                    adresy oddziałów. pierwszy jest automatycznie oddziałem głównym
    {      
        country         // string                   kraj
        province        // string                   województwo / prowincja / stan
        city            // string                   miasto
        street          // string                   ulica
        nubmer          // string                   numer
        flat_number     // string                   numer mieszkania
        postal          // string                   kod pocztowy
        telephone       // string                   telefon
        email           // string                   email
        map             // string                   url dla mapy
        url             // string                   url do innego zasobu
    }
}

job - Oferty pracy

job: {
    id                  // int                      identyfikator oferty pracy
    employer            // reference: employer      identyfikator pracodawcy
    faculty             // reference: unit          wydział
    job_type            // enum                     rodzaj oferty ("praca stała", "dorywcza", "praktyka", "staż", "wolontariat")
    title               // string                   tytuł oferty pracy
    contents            // string                   treść oferty (html)
    date_published      // date                     ważna od
    date_valid          // date                     ważna do
}