Praca magisterska na kierunku INFORMATYKAstudents.mimuw.edu.pl/~dd189385/tymek/mgr.pdf ·...

59
Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Dariusz Działak Nr albumu 189385 Archiwum Prac Dyplomowych Praca magisterska na kierunku INFORMATYKA Praca napisana pod kierunkiem dr Janiny Mincer-Daszkiewicz Instytut Informatyki Wrzesień 2006

Transcript of Praca magisterska na kierunku INFORMATYKAstudents.mimuw.edu.pl/~dd189385/tymek/mgr.pdf ·...

Uniwersytet WarszawskiWydział Matematyki, Informatyki i Mechaniki

Dariusz DziałakNr albumu 189385

Archiwum Prac DyplomowychPraca magisterska

na kierunku INFORMATYKA

Praca napisana pod kierunkiemdr Janiny Mincer-DaszkiewiczInstytut Informatyki

Wrzesień 2006

Oświadczenie kierującego pracą

Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiemi kwalifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego.

Data Podpis kierującego pracą

Oświadczenie autora pracy

Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowazostała napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposóbniezgodny z obowiązującymi przepisami.

Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotemprocedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni.

Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersjąelektroniczną.

Data Podpis autora pracy

StreszczenieKażdego roku na Uniwersytecie Warszawskim powstaje blisko 8000 prac dyplomowych.Ręczne wykonywanie operacji związanych z uzupełnianiem danych dotyczących każdejpracy, archiwizacją plików oraz zbieraniem recenzji pochłania czas pracowników uczelni.Cały proces może zostać zautomatyzowany za pomocą systemu APD (Archiwum PracDyplomowych), który jest dostosowany do współpracy z Uniwersyteckim Systemem ObsługiStudiów. Dodatkowo APD udostępnia w Internecie informacje na temat złożonych prac, auprawnionym użytkownikom umożliwia pobieranie plików oraz przeglądanie recenzji.

Słowa kluczoweArchiwum Prac Dyplomowych, APD, USOS, migrator, praca magisterska, praca licencjacka,praca doktorska, dyplom, recenzja, repozytorium

Dziedzina pracy (kody wg programu Sokrates-Erasmus)11.3 Informatyka

Klasyfikacja tematycznaH. Information SystemsH.3. Information Storage and RetrievalH.3.4. Systems and SoftwareH.3.5. Online Information Systems

Tytuł pracy w języku angielskimArchive of Diploma Theses

Spis treści

Wprowadzenie......................................................................................................................... 5

Rozdział 1. Analiza wymagań................................................................................................ 7 1.1 Definicje........................................................................................................................ 7 1.2 Wymagania funkcjonalne.............................................................................................. 8

1.2.1 Wymiana danych z USOS..................................................................................... 8 1.2.2 Logowanie do systemu...........................................................................................8 1.2.3 Edycja informacji o pracy...................................................................................... 9 1.2.4 Wysyłanie oraz pobieranie plików.........................................................................9 1.2.5 Wystawianie recenzji............................................................................................. 9 1.2.6 Generowanie plików zawierających dane o pracy i recenzji................................ 9 1.2.7 Wyszukiwanie i przeglądanie prac........................................................................ 9 1.2.8 Uprawnienia.........................................................................................................10 1.2.9 Administracja systemem......................................................................................11

1.3 Wymagania niefunkcjonalne....................................................................................... 11 1.3.1 Pomocne informacje o stronach portalu ............................................................. 11 1.3.2 Obsługa dwóch języków...................................................................................... 11 1.3.3 Obsługa błędów .................................................................................................. 11 1.3.4 Interfejs użytkownika...........................................................................................11 1.3.5 Dodatkowe wymagania........................................................................................11

Rozdział 2. Projekt systemu................................................................................................. 13 2.1 Moduł USOSweb czy osobna aplikacja?.....................................................................13 2.2 Wybór technologii....................................................................................................... 13 2.3 Źródło danych – system USOS....................................................................................14 2.4 Użytkownicy systemu..................................................................................................14

2.4.1 Administrator.......................................................................................................14 2.4.2 Kierujący pracą.................................................................................................... 14 2.4.3 Recenzent.............................................................................................................15 2.4.4 Autor pracy dyplomowej..................................................................................... 15 2.4.5 Przewodniczący lub członek komisji egzaminacyjnej.........................................15 2.4.6 Gość..................................................................................................................... 15

2.5 Przepływ pracy dyplomowej w systemie.....................................................................15 2.6 Dekompozycja logiczna systemu................................................................................ 16

2.6.1 Warstwa danych...................................................................................................16 3.1.1 Schemat bazy danych...........................................................................................17 2.6.2 Tabele systemu ....................................................................................................18 2.6.3 Struktura systemu................................................................................................ 21 2.6.4 Warstwa prezentacji.............................................................................................22

Rozdział 3. Implementacja................................................................................................... 23 3.1 Elementy systemu........................................................................................................23 3.2 Obsługa żądań WWW................................................................................................. 23 3.3 Moduł Database...........................................................................................................23 3.4 Wykonywanie akcji użytkownika................................................................................24

3

3.4.1 Zmiana ustawienia języka....................................................................................24 3.4.2 Logowanie i wylogowanie użytkownika............................................................. 24 3.4.3 Zarządzanie blokowaniem systemu..................................................................... 24 3.4.4 Generowanie plików PDF....................................................................................24 3.4.5 Wysyłanie plików załączonych do pracy............................................................. 25 3.4.6 Modyfikacje danych dotyczące prac dyplomowych oraz recenzji.......................25 3.4.7 Zarządzanie plikami.............................................................................................25

3.5 Budowanie potrzebnych struktur do wyświetlenia strony........................................... 25 3.6 Prezentacja danych...................................................................................................... 26 3.7 Inne rozwiązania..........................................................................................................27

3.7.1 Buforowanie danych o jednostkach organizacyjnych.......................................... 27 3.7.2 Wyświetlanie liczby bajtów odebranych przez serwer........................................ 27

Rozdział 4. Instalacja i uruchomienie systemu...................................................................29 4.1 Wymagania systemu APD względem środowiska...................................................... 29

4.1.1 Linux....................................................................................................................29 4.1.2 Apache................................................................................................................. 29 4.1.3 PHP ..................................................................................................................... 29 4.1.4 MySQL................................................................................................................ 30 4.1.5 Perl.......................................................................................................................30

4.1 Konfiguracja systemu APD......................................................................................... 30 4.2 Instalacja systemu APD ..............................................................................................31 4.2 Uruchomienie aplikacji............................................................................................... 32

Rozdział 5. Dokumentacja użytkownika.............................................................................33 5.1 Rozpoczęcie pracy z systemem................................................................................... 33 5.2 Wyszukiwanie prac......................................................................................................34 5.3 Przeglądanie prac w jednostkach.................................................................................35 5.4 Logowanie................................................................................................................... 36 5.5 Autor pracy.................................................................................................................. 36

5.5.1 Modyfikacja danych.............................................................................................36 5.5.2 Wysyłanie plików................................................................................................ 37

5.6 Osoba kierująca pracą..................................................................................................38 5.7 Recenzent.................................................................................................................... 39 5.8 Administrator systemu APD........................................................................................40 5.9 Informacje ogólne........................................................................................................41 5.10 Recenzje po stronie USOS........................................................................................ 43

5.10.1 Zakładka Pytania................................................................................................43 5.10.2 Zakładka Zestawy.............................................................................................. 43 5.10.3 Zakładka Zestawy w jednostkach...................................................................... 44

Rozdział 6. Podsumowanie................................................................................................... 45 6.1 Zrealizowane założenia............................................................................................... 45 6.2 Możliwości na przyszłość............................................................................................45 6.3 Podziękowania.............................................................................................................46

Dodatek A. Opis zawartości płyty CD.................................................................................47

Dodatek B. Konfiguracja Migratora................................................................................... 48

Dodatek C. ZARZĄDZENIE NR 8 REKTORA UNIWERSYTETU WARSZAWSKIEGO.....53

Dodatek D. Import danych z istniejącego archiwum.........................................................56

Bibliografia............................................................................................................................ 57

4

Wprowadzenie

Na każdej uczelni co roku powstaje wiele prac dyplomowych. Na samym UniwersytecieWarszawskim w 2005 roku złożono ich blisko 8000. Aktualnie proces składania pracprzebiega między innymi za pośrednictwem ręcznie wypełnianych podań i przezdostarczanie elektronicznej wersji pracy na fizycznym nośniku danych, natomiast pisanierecenzji odbywa się przez wypełnienie papierowego formularza zawierającego pytaniaobowiązujące w danej jednostce dydaktycznej. W praktyce wymaga to od pracownikówuczelni wykonywania takich dodatkowych czynności jak wprowadzanie danych z kartkipapieru do pamięci komputera czy budowanie archiwum prac poprzez kopiowanie plików nazdalny serwer. Opisane rozwiązanie nie jest optymalne, gdyż wszystkie wspomnianeczynności mogą zostać zautomatyzowane.

Naturalnym rozwiązaniem jest stworzenie systemu komputerowego, któryumożliwiłby autorowi i recenzentowi zdalne wykonywanie części standardowych czynności.Wyeliminowanie np. procesu przepisywania takich informacji jak krótkie streszczenie pracyczy słowa kluczowe przez osoby nie związane z pracą nie tylko zmniejszyłobyzapotrzebowanie na czas pracowników uczelni, ale dodatkowo pozwoliłoby zmniejszyćryzyko pojawiania się błędów. Serwis internetowy umożliwiałby wykonanie powyższychoperacji bez konieczności przychodzenia na uczelnię oraz dawałby zdalny dostęp dozłożonych prac. Dodatkowo na wielu uczelniach istnieje system obsługi studentów, więc niema konieczności budowania dodatkowej bazy danych zawierającej takie informacje jak daneo autorach, jednostkach czy wykładanych przedmiotach.

Na Uniwersytecie Warszawskim potrzeba stworzenia archiwum elektronicznychwersji prac dyplomowych wynikła z zarządzenia nr 8 Rektora UW ([ZarzNr8], por.dodatek C) wydanego na podstawie rozporządzenia Ministra Edukacji Narodowej z dnia 20września 2000 r. w sprawie dokumentacji przebiegu studiów [Dz.U.00.81.907]. Zgodniez rozporządzeniem Ministra Edukacji Narodowej i Sportu z dnia 18 lipca 2005 r. (DziennikUstaw z 2005 r. Nr 149 pozycja 1233), stanowiącego poprawkę do wspomnianej ustawy[Dz.U.00.81.907] “Do dokumentacji przebiegu studiów zalicza się pracę dyplomową (...).Egzemplarz pracy dyplomowej w formie elektronicznej oraz teczkę akt osobowych studentaprzechowuje się w archiwum uczelni”.

Obecnie w internecie można znaleźć serwisy, które służą do zarządzania pracamidyplomowymi. Na przykład Internetowe Archiwum Prac Dyplomowych [IAPD], jakimdysponuje Wyższa Szkoła Informatyki i Zarządzania w Bielsko-Białej, umożliwiawyszukiwanie informacji na temat prac dyplomowych, pozwala na załączanie streszczeńoraz prezentacji. Brakuje jednak wsparcia dla wystawiania recenzji oraz możliwości łatwegouzyskania informacji o pracach, osobach czy jednostkach organizacyjnych.

Innym serwisem wspomagającym proces składania prac dyplomowych jest[Dyplomant], który usprawnia komunikację między dyplomantami a promotorami orazumożliwia wystawianie recenzji. System został zaprojektowany do wspierania całegoprocesu składania prac dyplomowych począwszy od możliwości samodzielnej rejestracji

5

przez dyplomanta. Użytkownicy sami zarządzają większością informacji. Aktualnie serwisdostępny jest na serwerze należącym do Katedry Automatyki Akademii Górniczo-Hutniczejw Krakowie, znajduje się w nim blisko 60 tematów prac, które można wyszukać nie mającżadnych uprawnień. Interfejs systemu jest bardzo przyjazny dla użytkowników, ładny wyglądi szybko otwierające się strony to niewątpliwie zaleta aplikacji. Serwis jednak nie jest wolnyod błędów. Operując na samych adresach zalogowana osoba może nieopatrznie wymazaćwszystkie dane o sobie począwszy od imienia i nazwiska, a skończywszy na adresachi numerach telefonów.

W niniejszej pracy jest opisany system Archiwum Prac Dyplomowych, który jestprzeznaczony do zautomatyzowania czynności związanych ze składaniem prac licencjackich,magisterskich oraz doktorskich. Ważnym założeniem systemu APD, które nie jest spełnioneani przez Internetowe Archiwum Prac Dyplomowych, ani przez system Dyplomant jest brakpotrzeby zarządzania dodatkowymi danymi dzięki wykorzystaniu już gotowej bazy danychUSOS. USOS to Uniwersytecki System Obsługi Studiów, wykorzystywany na ok. 20uczelniach w Polsce, w tym na Uniwersytecie Warszawskim, do kompleksowej obsługistudentów i toku kształcenia [USOS].

System APD koncentruje się na archiwizacji plików, zarządzaniu danymi o pracyoraz zbieraniu i drukowaniu recenzji i nie udostępnia dodatkowych funkcji, takich jakwspomaganie komunikacji między autorem pracy a osobą kierującą pracą, czy teżrejestrowanie postępu pisania pracy dyplomowej (wymienione funkcje dostępne sąw systemie Dyplomant).

Praca rozpocznie sie od opisu istotnych zadań systemu będących podstawą pracprojektowych. Następnie zostanie przedstawiony projekt aplikacji wraz z ważnymiustaleniami związanymi ze środowiskiem pracy. Kolejny rozdział zawiera informacjedotyczące etapu implementacji zaprojektowanego systemu. Dalej opisano sposób instalacjisystemu oraz dołączono wskazówki dla administratora systemu, w którym będzie działaćAPD. Zamieszczono także podręcznik dla użytkownika. Ostatni rozdział zawiera wnioskijakie pojawiły się po napisaniu programu.

Ponadto w skład pracy wchodzą materiały dostarczone na płycie CD, na którejznajduje się:– kod źródłowy systemu APD,– skrypty konfiguracyjne migratora,– skrypty do rozbudowy bazy danych USOS o tabele do przechowywania danych

o recenzjach,– skrypt importujący aktualne archiwum do danych APD,– niniejszy dokument w formacie PDF wraz ze źródłami w formacie SXW.

6

Rozdział 1

Analiza wymagań

1.1 Definicje

Administrator – użytkownik systemu APD mający szczególne znaczenie, posiadającyuprawnienia do wykonywania niemal wszystkich operacji. W systemie APD jest tylko jedenadministrator. Jego konto powstaje w trakcie instalacji systemu.

Archiwum Prac Dyplomowych [APD] – powstały w ramach tej pracy systemwspomagający proces składania i archiwizacji prac dyplomowych. Umożliwia zdalnemodyfikowanie informacji o pracy, archiwizację plików, wystawianie recenzji, a takżewyszukiwanie prac i przeglądanie informacji, które są z nimi związane.

Centralne Uwierzytelnianie Studentów [CUS] – system służący do przechowywaniaprofili (nazw usług czy serwisów), identyfikatorów i haseł oraz obsługi uwierzytelniania narzecz zewnętrznych serwisów. Typowy użytkownik ma zdefiniowanych kilka profilidających dostęp do różnych serwisów. Dla systemu APD nie będzie wyszczególnionegoprofilu. Wszyscy użytkownicy mający konto w systemie CUS będą mogli logować siędo systemu APD.

Dyplomant – autor pracy dyplomowej, odpowiedzialny za prawidłowe uzupełnieniedodatkowych informacji o pracy takich jak angielska wersja tytułu, streszczenie oraz słowakluczowe. Zobowiązany jest on również dostarczyć pracę w wersji elektronicznej. Pozasystemem APD dyplomant aby uzyskać dyplom musi złożyć wydrukowaną pracę wsekretariacie, dostarczyć wszystkie wymagane dokumenty oraz zdać egzamin dyplomowy(na kierunkach, na których jest to wymagane).

Jednostka organizacyjna – dla potrzeb APD istotne są tylko takie jednostkidydaktyczne, w obrębie których powstała przynajmniej jedna praca dyplomowa. W systemieAPD jest to uczelnia, wydział lub instytut.

Kierujący pracą – użytkownik systemu APD odpowiedzialny za sprawdzenie danychwprowadzonych przez autora pracy oraz mający również obowiązek wystawienia recenzji.Poza systemem APD jest to nauczyciel akademicki, który nadzoruje proces pisania pracydyplomowej, począwszy od ustalenia tematu aż do zatwierdzenia gotowej pracy.

Migrator [Migrator] – system służący do synchronizacji baz danych systemówUSOS oraz USOSweb. Będzie służył również do przenoszenia danych między aplikacjami

7

USOS i APD. Uzgadniane będą tylko zmiany zapisane w dzienniku zmian migratora.

Praca dyplomowa – praca pokazująca umiejętności osoby w zastosowaniu metodnaukowych i wiedzy teoretycznej w praktyce, której głównym celem jest uzyskanie tytułuzawodowego lub stopnia naukowego. Może to być praca licencjacka, magisterska lubdoktorska.

Przewodniczący lub członek komisji – użytkownik systemu APD, który należydo komisji egzaminacyjnej i w związku z tym posiada uprawnienia dające wgląd do pracy,której dotyczy egzamin. Osoby pełniące wspomniane funkcje mogą również oglądaćrecenzje dotyczące pracy.

Recenzja pracy dyplomowej – forma wypowiedzi na podane pytania zawierającasprawozdawcze omówienie i krytyczną ocenę przedstawionej pracy dyplomowej.Wystawienie recenzji polega na wpisaniu krótkiej wypowiedzi osobno dla każdego autorapracy.

Uniwersytecki System Obsługi Studiów [USOS] – system wspomagający wszelkieczynności związane z tokiem studiów. W bazie danych systemu USOS przechowywane sąinformacje dotyczące wszystkich studentów i pracowników uczelni, a także wszystkichprzedmiotów, zajęć, jednostek organizacyjnych itd.

USOSweb [USOSweb] – aplikacja internetowa, pozwalająca na dostęp do wybranychdanych z systemu USOS ogółowi użytkowników Internetu. Użytkownicy, którzy mająosobiste konta – przede wszystkim studenci i nauczyciele akademiccy – mogą wykonywaćwiele czynności mających wpływ na tok studiów. Pośród wielu modułów systemu istotnąrolę dla APD odgrywa moduł Dyplomy, który udostępnia część wymaganej od APDfunkcjonalności.

Użytkownik – osoba korzystająca z systemu APD. Wszystkie informacjeo użytkownikach (z wyjątkiem administratora) pochodzą z systemu USOS. Więcejszczegółów o użytkownikach systemu APD podano w rozdziale 2.4.

1.2 Wymagania funkcjonalne

1.2.1 Wymiana danych z USOS

Podstawowym źródłem informacji ma być system USOS, zatem do systemu APD należydołączyć niezbędną konfigurację Migratora, za pomocą którego dane będąsynchronizowane. Powinno być możliwe zablokowanie systemu na czas migracji danych.

1.2.2 Logowanie do systemu

Wykonywanie pewnych operacji musi być przypisane do konkretnych ról orazużytkowników. Oczywistą i niezbędną funkcjonalnością systemu jest autoryzacjaużytkowników, która będzie odbywać się dwiema metodami: na podstawie haseł zawartychw bazie lub za pośrednictwem serwisu CUS. W pierwszym przypadku, jeśli do bazy APDwpłynie z systemu USOS konto, w którym typ logowania będzie określony jako BAZA, tologowanie będzie odbywać się jedynie poprzez sprawdzenie zgodności danychwprowadzonych przez użytkownika z danymi przechowywanymi w bazie systemu.

8

W drugim przypadku, gdy typ logowania będzie miał wartość CUS, po wprowadzeniuidentyfikatora oraz hasła przez użytkownika, będzie wysłane zapytanie do systemu CUSo poprawność danych i w zależności od odpowiedzi nastąpi zalogowanie lub wyświetlenieinformacji o niepowodzeniu. Z systemu USOS będą migrowane tylko te konta, dla którychatrybut INST_WWW_KOD jest zgodny z parametrem określonym podczas instalacji systemuAPD. Przykładowo dla haseł trzymanych w bazie CUS może to być CUS_WWW, a dla hasełtrzymanych w bazie APD_WWW.

1.2.3 Edycja informacji o pracy

Po tym, jak do systemu APD wpłyną informacje o pracy wprowadzone przez pracownikadziekanatu, dyplomant będzie mógł napisać takie dane jak tytuł w wersji angielskiej, krótkiestreszczenie pracy oraz słowa kluczowe. Wszystkie wymienione pola będą miałyograniczenie na liczbę znaków, a podczas ich wypełniania będzie wyświetlana liczbamówiąca ile znaków można jeszcze wprowadzić.

1.2.4 Wysyłanie oraz pobieranie plików

Po zapisaniu informacji o pracy (por. p. 1.2.3) autor będzie wysyłał pliki. System APDbędzie akceptował wszystkie formaty plików. Ich wysyłanie będzie odbywać się pojedynczo,a każdy powinien mieć dołączony krótki opis. Wśród wysyłanych danych powinnaznaleźć się także elektroniczna wersja pracy zapisana w formacie PDF. Autor będzie miałmożliwość wysyłania plików do czasu, gdy zasygnalizuje, że już wszystkie zostały wysłane.Osoby związane z pracą będą mogły później pobierać pliki. Osoby nie mające uprawnieńbędą widzieć nazwę pliku, opis jaki został do niego załączony oraz jego rozmiar i datęwysłania pliku, ale nie będą mieć możliwości jego pobrania.

1.2.5 Wystawianie recenzji

Po tym jak kierujący pracą zatwierdzi wszystkie zmiany w pracy wprowadzone przezdyplomanta, będzie możliwość napisania recenzji przez osoby mające taki obowiązek(należą do nich członkowie komisji egzaminacyjnej pełniący funkcję recenzenta oraz osobakierująca pracą). Dane określające, które osoby należą do komisji i jakie pełnią funkcje będąwpływać do systemu APD za pośrednictwem migratora. Każda recenzja powinna dotyczyćkonkretnego autora pracy, zatem każdy recenzent będzie musiał wystawić tyle recenzji, iludyplomantów pisało daną pracę. Dla ułatwienia system powinien umożliwiaćprzekopiowanie recenzji od jednego autora do drugiego uwzględniając możliwośćnaniesienia poprawek. Napisane recenzje podczas najbliższej migracji powinny byćprzesłane do systemu USOS.

1.2.6 Generowanie plików zawierających dane o pracy i recenzji

System powinien generować pliki w formacie PDF. Po tym jak osoba kierująca pracązatwierdzi zmiany wprowadzone przez studenta, powinno być możliwe wygenerowaniekarty pracy dyplomowej, a po wystawieniu (i zatwierdzeniu) recenzji, recenzji pracydyplomowej.

1.2.7 Wyszukiwanie i przeglądanie prac

Stworzenie archiwum ma na celu nie tylko ułatwienie składania prac dyplomowych, aletakże umożliwienie innym osobom przeglądania i wyszukiwania przydatnych dla nichinformacji. Wyszukiwanie prac będzie polegało na znalezieniu tych prac, które w swoimtemacie (również w temacie zapisanym w języku angielskim), streszczeniu lub słowach

9

kluczowych będą zawierać podane wyrażenie. Dodatkowo powinno być możliwewyszukiwanie prac według ich autorów. Jako kryterium wyszukiwania prac będzie równieżmożna podać rok, w którym praca była złożona oraz rok, w którym był zatwierdzony tematpracy.

1.2.8 Uprawnienia

W systemie będą musiały obowiązywać określone uprawnienia, aby chronić niektóre daneoraz pliki przed pobraniem przez niepowołane osoby. Również wgląd do wystawionychrecenzji powinny mieć tylko osoby związane bezpośrednio z daną pracą. Wykonywanieniektórych operacji musi być możliwe tylko dla osób, które mają taki obowiązek (np. wprzypadku akceptacji zmian wprowadzonych przez autora pracy). Szczegółowo uprawnieniadefiniuje tabela 1 opisująca warunki, których spełnienie jest konieczne, aby wykonaćokreśloną czynność.

RolaCzynność

Gość Autor Osoba zkomisji Recenzent

Kierujący pracą

Administrator

Edycja danycho pracy - TAK - - - -

Wysyłanieplików - TAK - - - -

Akceptacjazmian - - - - TAK -

Wystawienierecenzji - - - TAK TAK -

Oglądanierecenzji - TAK* TAK TAK TAK TAK

Wyszukiwanieprac ioglądaniedanych opracy

TAK TAK TAK TAK TAK TAK

Oglądanielisty plików TAK TAK TAK TAK TAK TAK

Pobieranieplików - TAK TAK TAK TAK TAK

Drukowaniekarty pracy TAK TAK TAK TAK TAK TAK

Drukowanierecenzji (PDF) - TAK* TAK TAK TAK TAK

Blokowaniesystemu - - - - - TAK

Usuwanierecenzji - - - - - TAK

Tabela 1. Uprawnienia do wykonywania określonych czynności

10

Objaśnienie wpisów w tabeli:– Gość – osoba niezalogowana do systemu (podobnie jest traktowana osoba, której funkcja

jest nie związana z daną pracą),– TAK – użytkownik posiada uprawnienie,– TAK* – dotyczy dyplomanta, który ma wgląd tylko do recenzji wystawionych jego

osobie, – myślnik oznacza brak możliwości wykonania danej czynności.

1.2.9 Administracja systemem

System musi umożliwiać blokowanie dostępnych funkcji na czas migracji danych (patrzrozdział 2.4.1). Administrator dodatkowo powinien mieć możliwość przełączenia się w trybpracy wybranego użytkownika. Recenzent nie może ani zmienić zaakceptowanej recenzji,ani zastąpić jej nową recenzją, dlatego administrator powinien mieć możliwość awaryjnegousunięcia recenzji na wypadek przypadkowej akceptacji wypowiedzi niepełnej lubzawierającej błędy.

1.3 Wymagania niefunkcjonalne

1.3.1 Pomocne informacje o stronach portalu

APD powinien udostępniać wskazówki dotyczące obsługi systemu. Pomoc powinna byćdostępna z większości stron i opisywać ich przeznaczenie oraz przypadki użycia.

1.3.2 Obsługa dwóch języków

Ze względu na znaczną liczbę osób z zagranicy studiujących na polskich uczelniach, którymjest wygodniej posługiwać się językiem angielskim niż polskim, system APD powinien byćdostępny w obydwu wymienionych wersjach językowych.

1.3.3 Obsługa błędów

Do wymagań bezpieczeństwa należy również obsługa błędów i nieprawidłowych sytuacji.W razie niepowołanych zdarzeń system powinien informować użytkownika o wystąpieniuproblemu, a w przypadku pojawienia się sytuacji nieoczekiwanej, powinien rejestrowaćinformacje zawierające krótki opis i pozwalające łatwo zlokalizować pojawienie sięwspomnianej sytuacji. Dane będą zapisywane w ustalonym przez administratora pliku.

1.3.4 Interfejs użytkownika

Obsługa systemu powinna być intuicyjna oraz na tyle łatwa, aby system pomocy serwisu byłwykorzystywany stosunkowo rzadko. Wygląd stron ma być wzorowany na modułachpochodzących z systemu USOSweb.

1.3.5 Dodatkowe wymagania

System musi wykorzystywać darmowe i sprawdzone technologie. Koszty bieżącegoutrzymania powinny być niskie. Musi mieć niskie wymagania sprzętowe i być przy tymstosunkowo wydajny. Szacunkowo aplikacja powinna być w stanie obsłużyć złożenieminimum 200 prac w czasie jednego dnia.

11

12

Rozdział 2

Projekt systemu

System APD został zaprojektowany jako aplikacja internetowa. Wybór ten wydaje się byćjedynym słusznym ze względu na liczbę potencjalnych użytkowników oraz powszechnośćtakiego rozwiązania. Daje to możliwość korzystania z gotowych rozwiązań jakimisą istniejące protokoły przesyłania danych oraz technologie WWW. Dzięki takiemurozwiązaniu nie ma potrzeby instalowania dodatkowego oprogramowania po stronieużytkownika.

2.1 Moduł USOSweb czy osobna aplikacja?

Na uczelniach wykorzystujących system USOS jest działająca aplikacja USOSweb, którazawiera moduł Dyplomy realizujący część zadań systemu APD. Dosyć istotną decyzją byłorozstrzygnięcie, czy praca będzie rozbudowaniem już istniejącego modułu, czy nowąaplikacją, działającą niezależnie. Do argumentów za rozbudowaniem już istniejącegomodułu należy zaliczyć: ● brak potrzeby nowej konfiguracji migratora, niemal gotowa baza danych,● gotowe środowisko i struktura aplikacji,● część zadań jest już zaimplementowanych (logowanie, wyszukiwanie prac, edycja części

informacji),● spójny interfejs użytkownika.Stworzenie nowej aplikacji jest związane z większym nadkładem pracy, jednakże umożliwiaudostępnienie serwisu wydziałom, które nie mają własnego portalu USOSweb. Osobnyserwis pozwala na umieszczenie centralnego repozytorium prac na jednym serwerze bezkonieczności przesyłania plików od lokalnych aplikacji do centralnego repozytorium.Dodatkowo nowa funkcjonalność nie będzie obciążać istniejącego już serwisu. Powstanienowego systemu nie wyklucza możliwości przenoszenia kodu, zatem najważniejsze zaletyrozbudowania modułu są także osiągalne w przypadku pisania osobnej aplikacji.

2.2 Wybór technologii

Wobec wymagania, że system powinien być tani w utrzymaniu, zastosowanie rozwiązań jużznanych, sprawdzonych i wykorzystywanych na wielu uczelniach wydaje się być jedynymsłusznym wyborem. Zastosowanie nowych technologii mogłoby ułatwić sam proces pisaniaprogramu, jednakże zwiększyłoby koszty utrzymania aplikacji APD. Dodatkowo mogłybypojawić się problemy podczas instalacji ze względu na wymagania nowego oprogramowania,na przykład brakujące w środowisku produkcyjnym biblioteki. Wybór mniej znanychtechnologii może sprawiać kłopoty także z powodu braku właściwych podręczników idokumentacji, braku wsparcia dostawcy, a nawet błędnej implementacji. Dlatego do budowysystemu APD wykorzystano jedynie sprawdzone i powszechnie stosowane technologie inarzędzia:

13

– język skryptowy PHP,– bazę danych MySQL,– bibliotekę szablonów Smarty.

2.3 Źródło danych – system USOS

Pierwszym krokiem do zbudowania bazy danych APD jest stworzenie wymaganych tabel.Jest to wykonywane podczas instalacji systemu. Uruchomienie migratora powodujeuzupełnienie bazy APD o wszystkie potrzebne dane pochodzące z systemu USOS, takie jakinformacje o osobach, pracach, jednostkach dydaktycznych czy komisjach egzaminacyjnych.Każda następna migracja będzie przesyłać tylko te dane, które uległy zmianie. Większośćinformacji np. wszystkie opisy przedmiotów, jednostek organizacyjnych, użytkowników czytreści zestawów zawierających punkty do recenzji, będą mogły być modyfikowane tylkopo stronie USOS.

2.4 Użytkownicy systemu

2.4.1 Administrator

To jedyny użytkownik systemu, który będzie miał niemal wszystkie uprawnienia. Jegoidentyfikator oraz hasło ustala osoba instalująca system APD. Administrator może korzystaćz następujących funkcjonalności systemu:● Blokowanie systemu.

Jest to operacja dwuetapowa. W pierwszym etapie użytkownicy nie będą mogli sięlogować, ale osoby zalogowane będą mogły dokończyć wykonywane operacje. Systemw tym czasie informuje o planowanym zamknięciu serwisu. Osoby zalogowane powinnyczym prędzej zakończyć swoje zadania i wylogować się. Administrator decyduje o czasietrwania zarówno pierwszego, jak i drugiego etapu. W przypadku uaktywnienia blokady(drugi etap), użytkownicy nie będą mogli już nic zrobić, aż do zakończenia planowanegoczasu lub zdjęcia blokady przez administratora.● Przełączenie się w tryb wybranego użytkownika

Administrator powinien móc przełączyć się w tryb użytkownika. Przełączenie sprawi,że administrator będzie mógł korzystać z systemu tak jakby był wybranym użytkownikiem.Na stronach będzie dostępny odsyłacz umożliwiający powrót do trybu administratora.● Usunięcie recenzji

Wystawiona i zatwierdzona recenzja nie może być w żaden sposób zmieniona przezrecenzenta. Na wypadek zatwierdzenia nieprawidłowej recenzji, której recenzent nie mamożliwości poprawić, administrator będzie miał możliwość wykasowania recenzji. Operacjataka będzie logowana do tabel migratora, czyli najbliższa synchronizacja danych spowodujerównież usunięcie recenzji z bazy USOS.

2.4.2 Kierujący pracą

To osoba odpowiedzialna za weryfikację informacji wprowadzonych przez autora pracy.Do jej zadań będzie należało zatwierdzanie wszystkich zmian w pracy wprowadzonych przezautora, tj. sprawdzenie streszczenia, słów kluczowych, angielskiej wersji tytułu oraz tego,czy wszystkie pliki zostały wysłane i czy zawierają właściwe treści. Wynikiem takiejoperacji będzie zmiana statusu pracy. Jeżeli kierujący pracą stwierdzi, że autor pracywprowadził niepoprawnie jeden z opisów pracy lub zostały wysłane niewłaściwe pliki, topowinien odrzucić pracę, co będzie równoznaczne z umożliwieniem autorowi wprowadzenia

14

poprawek. W przeciwnym wypadku powinien zatwierdzić zmiany (co zostanie zalogowanedo tabel migratora) i przystąpić do pisania recenzji.

2.4.3 Recenzent

To osoba mająca obowiązek napisania recenzji do pracy, poprzez udzielenie odpowiedzi doposzczególnych punktów. Po wypełnieniu formularza i wysłaniu swoich wypowiedzirecenzent będzie mógł ponownie obejrzeć recenzję, która jeszcze nie będzie widoczna dlanikogo innego oraz nie będzie przesłana do systemu USOS. Następnie recenzent możewprowadzić poprawki lub dokonać ostatecznego zatwierdzenia, po którym już nie będziemiał możliwości edycji odpowiedzi, które zostaną zalogowane w tabelach migratorai w związku z tym najbliższa migracja spowoduje przesłanie recenzji do systemu USOS.

2.4.4 Autor pracy dyplomowej

Osoba ubiegająca się o stopień zawodowy (licencjat, magisterium) lub stopień naukowy(doktorat). Po pojawieniu się pracy w systemie APD, będzie zobowiązana do wprowadzeniakrótkiego streszczenia pracy, słów kluczowych oraz tytułu pracy w wersji angielskiej.Zapisanie zmian zostanie zalogowane w tabelach migratora i spowoduje automatyczneprzejście do etapu wysyłania plików. Jeśli wprowadzone dane i wysłane pliki będą właściwe,to operacja przekazania pracy do sprawdzenia (przez zasygnalizowanie, że wszystkie plikizostały wysłane) jest ostatnią czynnością, którą musi wykonać autor.

2.4.5 Przewodniczący lub członek komisji egzaminacyjnej

To osoby, które ze względu na uczestnictwo w komisji egzaminacyjnej będą miały dostęp doinformacji o pracy, której dotyczyć będzie egzamin, zgodnie z opisem zawartym w tabeli 1.

2.4.6 Gość

To osoba niezalogowana, o której system nie posiada żadnych informacji. Jeżeli system niebędzie zablokowany, to będzie umożliwiał gościowi:● wyszukiwanie prac,● przeglądanie ogólnodostępnych informacji o pracach,● logowanie.

2.5 Przepływ pracy dyplomowej w systemie

Jedynym sposobem dostarczenia opisu pracy dyplomowej do systemu APD jest migracjadanych. Od początku znany jest temat pracy, wiadomo także kto jest autorem pracy, w jakiejjednostce i w ramach jakiego przedmiotu praca została napisana. Do pracy załączone sądodatkowe informacje, takie jak:– etap składania pracy (status zmian, określający czy dane o pracy są zatwierdzone),– czy praca powinna być archiwizowana,– czy praca ma charakter poufny,– data zatwierdzenia tematu.O tym, jakie operacje można wykonywać z pracą, decyduje ustawienie flagi opisującej etapskładania pracy. Jeżeli status zmian wskazuje, że praca nie ma uzupełnionych takich danychjak streszczenie, słowa kluczowe lub temat w wersji angielskiej, to system APD pozwoliautorowi pracy na ich uzupełnienie. Następnie, bez względu na status archiwizacji, będziemożliwe wysyłanie plików do archiwum. Po zakończeniu wysyłania plików, wszystkie

15

zmiany jakie wprowadził autor powinny zostać sprawdzone przez osobę kierującą pracą.Jeżeli dane są niepoprawne, to praca zostanie odesłana do dyplomanta, w przeciwnymprzypadku zostanie przekazana do recenzji. Warunkiem do wystawiania recenzji jestwpłynięcie danych dotyczących komisji egzaminacyjnej (tylko wtedy będzie wiadomo, ktojest recenzentem). Ograniczenia takiego nie ma w przypadku osoby kierującej pracą.Poszczególne etapy zbierania informacji o pracy dyplomowej zostały przedstawione narysunku 1.

2.6 Dekompozycja logiczna systemu

2.6.1 Warstwa danych

Wszystkie dane systemu APD można podzielić na dwie kategorie:– przechowywane w bazie danych, czyli informacje o użytkownikach, jednostkach

przedmiotach, uczelniach, pracach i recenzjach,– zapisywane na dysku, czyli pliki przesłane przez autorów prac.

16

Rysunek 1. Stany pracy dyplomowej w systemie APD

3.1.1 Schemat bazy danych

Schemat bazy danych przedstawiono na rysunku 2.

17

Rysunek 2. Schemat bazy danych

2.6.2 Tabele systemu

W tym punkcie zostaną omówione wszystkie tabele systemu APD przedstawione na rysunku2. Tabele, których nazwy są pisane małymi literami powstały na wyłączne potrzeby systemuAPD. Tabele nie mające swoich odpowiedników po stronie USOS są opisane jako ostatnie.

● Tabela PRACE_CERTOpisuje prace dyplomowe, zawiera takie dane jak:• kod przedmiotu związanego z pracą,• jednostka organizacyjną (w której powstała praca),• temat pracy (w wersji polskiej oraz angielskiej),• data złożenia pracy,• data zatwierdzenia tematu,• słowa kluczowe,• streszczenie,• flagi mówiące o statusie zmian w bazie USOS, status archiwizacji oraz informacja

o tym, czy praca ma charakter poufny. Na potrzeby APD został dodany status zmian,który nie jest migrowany do systemu USOS.

● Tabela pytaniaZawiera treści punktów (mających często formę pytań), które będą wypełniać recenzencipodczas pisania recenzji. Każdy punkt posiada atrybut MAX_DLUGOSC_ODPOWIEDZI,będący wartością liczbową, informującą ile maksymalnie znaków może wprowadzićrecenzent w tym punkcie.

● Tabela zestawyWszystkie recenzje będą składać się z wypowiedzi dotyczących pewnego zestawu punktów.W tabeli zestawy zapisane są ich nazwy.

● Tabela pytania_zestawyZawiera informacje o przynależności konkretnego punktu (pytania) do ustalonego zestawuna ustalonej pozycji. Atrybut NUMER_PYTANIA pozwala na określenie kolejnościwyświetlania punktów w ramach recenzji.

● Tabela zestawy_jednostekPrzechowuje informacje o tym, który zestaw pytań recenzji jest przypisany do określonejjednostki organizacyjnej.

● Tabela CZLONKOWIE_KOMISJIZawiera informacje o tym, kto uczestniczył w komisji egzaminacyjnej oraz jaką pełniłfunkcję.

● Tabela OSOBYPrzechowuje wszystkie informacje dotyczące użytkowników. Każda osoba manastępujące atrybuty:• PESEL,• imiona oraz nazwisko,

18

• email,• adres strony WWW.

● Tabela TYTULYZawiera nazwy tytułów, jakie mogą wystąpić przed lub za imieniem i nazwiskiem. Dane tesą potrzebne do wypisania pełnych danych osoby wraz z jej tytułami na karcie pracydyplomowej w sekcji Skład komisji, gdzie dla przykładu, może pojawić się wpis:Przewodniczący: dr hab. Jerzy Nowak, prof. UW

● Tabela STUDENCITabela zawiera numery indeksów studentów oraz określa jednostkę organizacyjną, która gowydała (zwykle jest to cała uczelnia).

● Tabela KONTAKażda osoba, aby mogła się zalogować, musi posiadać konto. Z kontem jest związane hasło,identyfikator użytkownika podawany podczas autoryzacji oraz informacje dotyczące blokadykonta. W przypadku, gdy użytkownik posiada konto w systemie CUS, hasło z bazy niebędzie brane pod uwagę. Jeżeli konto jest akurat zablokowane, to użytkownik nie będziemiał możliwości zalogowania się.

● Tabela KIERUNKI_STUDIOWOpisuje kierunków studiów w języku polskim oraz angielskim.

● Tabela KODY_SOKRATESOpisuje nazwy kodów SOKRATES w języku polskim oraz angielskim.

● Tabela JEDNOSTKI_ORGANIZACYJNEZawiera informacje o strukturze oraz atrybutach jednostek organizacyjnych. Każda jednostkamoże mieć opis w języku polskim oraz angielskim, skróconą nazwę oraz adres stronyWWW.

● Tabela PRZEDMIOTYKażdy wpis w tabeli opisuje konkretny przedmiot, jego przynależność do jednostkiorganizacyjnej. W wersji polskiej i angielskiej zawiera nazwę, opis przedmiotuoraz skróconą wersję opisu.

● Tabela TYPY_CERTYFIKATOWZawiera kody i opisy typów certyfikatów, jakie uzyskuje się po zdanym egzaminie.Dla przykładu, mogą tu być wpisane dane:– 1000-MGR-INF => Magisterium z informatyki– 1000-MGR-INF-MSMP => Magisterium na kierunku informatyka w trybie MISMaP

● Tabela EGZAMINY_CERT Określa typ certyfikatu jaki jest związany z określonym egzaminem.

● Tabela OPIEKUNOWIE_PRACOkreśla osoby kierujące pracami.

19

● Tabela CERT_OSOBZawiera informacje o tym, kto jest autorem konkretnej pracy, kiedy odbywa się egzamini jaki jest typ uzyskiwanego certyfikatu.

● Tabela recenzjeKażdy wpis do tabeli odzwierciedla zatwierdzoną recenzję. Z każdą recenzją jest związanainformacja o tym, kto ją napisał, do której pracy i którego autora dotyczy.

● Tabela odpowiedziZawiera wypowiedzi recenzentów. Treść każdego pojedynczego wpisu recenzenta jestzapisana wraz z informacjami o punkcie oraz recenzji, której dotyczy wypowiedź.

● Tabela certyfikaty_jednostekPrzechowuje dane, potrzebne do zbudowania struktury jednostek organizacyjnych wrazz podpiętymi typami certyfikatów. Zapisana jest także liczba prac. Tabela jestwykorzystywana jako bufor dla danych. W przypadku, gdy konfiguracja nie jest ustawionana buforowanie jednostek w bazie danych, tabela nie będzie wykorzystywana. Więcejszczegółów podano w punkcie 3.7.1.

Pozostałe tabele zawierają informacje, które występują tylko po stronie APD i nie sąprzesyłane do systemu USOS.

● Tabela odpowiedzi_apd, recenzje_apdTabele służące do tymczasowego przechowywania recenzji. Do czasu, gdy wypowiedzinie są zatwierdzone, są przechowywane właśnie w tych tabelach. Zatwierdzenie powodujeprzeniesienie recenzji do tabel odpowiedzi i recenzje (wraz z dodaniem odpowiednichinformacji do tabel migratora, aby przy najbliższej migracji nastąpiło przeniesienie ichdo systemu USOS). Przeniesione recenzje są usuwane z tabel odpowiedzi_apd irecenzje_apd.

● Tabela zaplanowana_migracjaZapisana jest data początku i końca migracji. Dane w tabeli decydują o początku i końcublokady systemu.

● Tabela plikiPrzechowuje informacje o plikach załączonych do prac. Z każdym plikiem będą związanenastępujące informacje– identyfikator pracy, do której jest przypięty plik,– opis (tekst nie dłuższy niż 1000 znaków),– miejsce położenia pliku (ścieżka w strukturze katalogów),– rozmiar pliku na dysku,– czas przysłania pliku (czas utworzenia).Tabela występuje tylko po stronie APD, zatem w systemie USOS nie będzie informacjio dostarczonych plikach, ale będzie informacja o tym, że praca została zarchiwizowana.

● Tabela M_CHANGE_LOG Zawiera opis wszystkich zmian, jakie będą (lub były) synchronizowane z bazą USOS.

20

Określa typ wykonanej operacji (insert, delete, update), nazwę tabeli oraz dane pomocneprzy rozstrzyganiu, czy zmiana ma być migrowana.

● Tabela M_CHANGE_LOG_VALUESDla określonych operacji w poprzedniej tabeli precyzuje, które pole w tabeli uległo zmianieoraz wartość końcową.

2.6.3 Struktura systemu

Realizację każdego żądania przez system ilustruje schemat na rysunku 3. Strzałki określająprzepływ informacji. Linia ciągła oznacza, że komunikacja między obiektami występujepodczas każdego żądania.

Opis obiektów przedstawionych na rysunku:

• Request – żądanie użytkownika.

• Action – moduł wykonujący operacje zlecone przez użytkownika. Wykonuje takie operacje jak np. autoryzacja użytkownika, modyfikacja danych o pracy,dodanie recenzji. Wykonanie zleconej czynności może zatem polegać na modyfikacji danychw bazie lub sesji. Na przykład, w chwili zmiany języka, zmienia się tylko parametr zapisanyw sesji. Podczas logowania użytkownika, moduł Action pobiera dane z bazy i w przypadkupodania prawidłowego hasła dla podanego identyfikatora, zapisuje w sesji informacje oużytkowniku. Natomiast wystawienie recenzji lub jej zatwierdzenie odbywa się przezzapisanie informacji do bazy danych, czyli jest wykonywane przez opisywany moduł(oczywiście przed zapisaniem danych następuje sprawdzenie uprawnień użytkownika). Przywiększości standardowych żądań moduł Action nie jest wykorzystywany.

• Database – moduł obsługujący komunikację z bazą danych. Pobieranie danych polega na wczytaniu żądanych informacji do ustalonej struktury (obiektulub tablicy) znajdującej się w pamięci. Podczas zapisywania danych do bazy moduł

21

Rysunek 3. Realizacja żądań w systemie APD

Database uzupełnia także zawartości tabel, wykorzystywanych do migracji danych.

• Page – moduł odpowiedzialny za stworzenie strony. W procesie przygotowania strony mogą być wykonywane takie operacje jak sprawdzanieuprawnień, wczytywanie danych (za pośrednictwem modułu Database) oraz formowaniedanych do takiej postaci, aby ich prezentacja była jak najprostsza.

• Smarty – moduł prezentujący dane. Jego zadaniem jest wygenerowanie opisu strony w formacie HTML. Jest to możliwe dziękiplikom TPL zawierającym wzorce dokumentów, które przy pomocy Smarty są uzupełnianeo dane, jakie zostały zebrane i przekazane z modułu Page.

• Config – moduł odpowiedzialny za konfigurację systemu. Przy każdym żądaniu jest wczytywany plik konfiguracyjny. Wszystkie ustawienia sązapisane w odpowiednich klasach, zmiennych globalnych lub w samym module. W zakresiekonfiguracji mogą być przechowywane dane różnych warstw systemu, np. konfiguracjapołączenia z bazą danych albo maksymalna długość streszczenia pracy.

2.6.4 Warstwa prezentacji

Dla ujednolicenia interfejsu APD, wykorzystano szablon zaczerpnięty z systemu USOSweb,za pomocą którego będzie budowana każda strona serwisu. Dodatkowo napisano szablony,zawierające:– stronę początkową (powitanie),– formularz logowania,– formularz wyszukiwania dokumentów,– tabelę zawierającą spis jednostek organizacyjnych z podpiętymi typami certyfikatów,– listę dokumentów,– szczegóły dokumentu (z możliwością wyświetlenia formularza),– szczegóły recenzji (z możliwością wyświetlenia formularza),– informacje o wybranej osobie,– pomocne informacje o stronie,– stronę administratora.Każdy użytkownik korzysta z tego samego interfejsu. W przypadku próby wyświetleniastrony, do której nie ma wystarczających uprawnień, zostanie wyświetlony stosownykomunikat. W menu jest dostępna opcja do wyświetlenia listy prac, które będą bezpośredniopołączone z funkcją zalogowanej osoby. Na przykład recenzent będzie miał możliwośćwyświetlenia tabeli zawierającej listę tych dokumentów, do których napisał (lub powiniennapisać) recenzję. Podobnie jest z użytkownikami systemu, którzy są autorami, osobamikierującymi pracami lub należą do komisji egzaminacyjnej. Dla ułatwienia wyszukaniadokumentów, do których użytkownik jeszcze nie napisał recenzji albo powinienzaakceptować wprowadzone przez autora zmiany, w menu pojawi się dodatkowa opcja.

22

Rozdział 3

Implementacja

W niniejszym rozdziale został przedstawiony sposób realizacji projektu. Zawarte opisydotyczą przede wszystkim skryptów PHP, w których została zaszyta cała logika systemu.

3.1 Elementy systemu

W skład systemu APD wchodzą:• skrypty PHP (logika systemu),• biblioteka Smarty wraz z szablonami i plikami konfiguracyjnymi (prezentacja danych),• pliki zawierające arkusze stylów definiujące wygląd stron WWW,• skrypty do zakładania tabel zarówno po stronie APD, jak i USOS,• aplikacja Migrator wraz z plikiem konfiguracyjnym.

3.2 Obsługa żądań WWW

Działanie aplikacji polega na realizowaniu żądań użytkownika przekazywanych głównieza pomocą zwykłych dowiązań, zawierających w sobie nazwę docelowego skryptu orazwartości niektórych parametrów. W przypadku APD wszystkie odsyłacze zawsze odnoszą siędo tego samego skryptu PHP (plik index.php). Takie rozwiązanie wymaga własnejmetody do rozdzielania zadań na konkretne funkcje, ale dzięki temu ułatwia zachowaniespójności operacji, jakie powinny być wykonane przed zrealizowaniem każdego żądania(np. sprawdzenie czy system nie jest zablokowany). Wszystkie odsyłacze powinny byćwygenerowane za pomocą klasy zarządzającej parametrami strony (klasa Page),bez względu czy jest to formularz przesyłany metodą POST, czy zwykłe dowiązanie.Wszystkie nazwy parametrów są uporządkowane i tak dobrane, aby strony interpretowałyi propagowały tylko znane sobie wartości. Wśród wszystkich atrybutów, jakie mogąbyć zdefiniowane w odsyłaczu są dwa, które należy wyróżnić. Pierwszy z nich określaczynność, jaka powinna być wykonana przed zbudowaniem strony, a wartość drugiego jestprzekazywana bezpośrednio do modułu Page i decyduje o strukturze wyświetlanej strony.

3.3 Moduł Database

Moduły Action oraz Page (opisane w następnych punktach) nie odwołują się bezpośredniodo serwera bazy danych. Budowaniem zapytań SQL oraz zapamiętywaniem wynikóww pamięci komputera zajmuje się moduł Database, który udostępnia funkcje do dwustronnejwymiany informacji. Do modyfikacji danych, które będą przesłane do systemu USOSwykorzystywana jest klasa DBWithDiary (zaczerpnięta z USOSweb), która wszystkie zmianyrejestruje przez wpisanie odpowiednich wartości do tabel dziennika migratora.

Szczególnym i najbardziej rozbudowanym zadaniem modułu Database jestwyszukiwanie dokumentów spełniających określone kryteria, do których zaliczyć można:

23

– identyfikator autora pracy,– identyfikator osoby kierującej pracą,– identyfikator jednostki organizacyjnej,– typ uzyskanego certyfikatu po zdanym egzaminie,– aktualny status zmian pracy,– identyfikator osoby pełniącej określoną funkcję w komisji,– rok złożenia pracy,– rok zatwierdzenia tematu,– wyrażenie, które powinno znaleźć się w tytule pracy, streszczeniu, słowach kluczowych

lub nazwiskach autorów (należy podać prefiks słowa).Ponieważ praca może być pisana przez wiele osób, pojawia się problem

z sortowaniem według dowolnego atrybutu związanego z autorem pracy. Tak było wprzypadku wyświetlania listy dokumentów dla recenzenta, które są sortowane po dacieegzaminu jednego z autorów. Problem został rozwiązany poprzez wielokrotne wyświetlanietakich prac. Na każdej pozycji jest wypisana tylko jedna osoba pisząca pracę. Dodatkowopojawiła się konieczność narzucenia nowego kryterium, gdyż czasem trzeba wyszukiwaćpracę, która nie ma napisanej recenzji lub nie została jeszcze zatwierdzona.

Pozostałe funkcje modułu Database są dosyć standardowe, zaimplementowanena konkretne potrzeby pobrania danych, takich jak np. lista plików dołączonych do pracyalbo wypowiedzi wchodzące w skład wybranej recenzji.

3.4 Wykonywanie akcji użytkownika

Moduł Action zajmuje się wszystkimi zleconymi czynnościami jakie powinny być wykonaneprzed stworzeniem strony. W kolejnych punktach przedstawię ich działanie.

3.4.1 Zmiana ustawienia języka

Polega na modyfikacji parametru, odpowiedzialnego za wyświetlany język.

3.4.2 Logowanie i wylogowanie użytkownika

Użytkownik wywołuje akcję logowania poprzez wprowadzenie identyfikatora oraz hasła doformularza, a następnie wybranie opcji loguj. System dalsze czynności wykonuje tak, jakzostało to opisane w punkcie 1.2.2.

3.4.3 Zarządzanie blokowaniem systemu

Jeżeli zalogowany jest administrator i zmienia parametry blokady systemu, to do bazydanych jest wpisywana informacja o zakresie czasu, w którym system będzie niedostępny.Podczas wyświetlania każdej strony następuje sprawdzenie, czy system nie jestzablokowany.

3.4.4 Generowanie plików PDF

Jeżeli użytkownik posiada wystarczające uprawnienia, to zostaje wygenerowany za pomocąbiblioteki FPDF ([FPDF]) dokument w formacie PDF, a następnie wysłany do użytkownika.Jeśli czynność zakończy się sukcesem, to nie ma potrzeby konstruowania strony, więcdziałanie systemu w zakresie danego żądania zostanie zakończone, a sterowanie nie jestprzekazywane do modułu Page.

24

3.4.5 Wysyłanie plików załączonych do pracy

Jeżeli użytkownik jest uprawniony do pobierania plików dołączonych do danej pracydyplomowej, to zgodnie ze standardem RFC 1806 ([RFC 1806]) ustawiany jest nagłówekapplication/octet-stream, w wyniku czego plik nie powinien być otwierany przezprzeglądarkę, tylko zapisywany na dysku. Następnie zostaje wysłany plik i podobnie jakw przypadku wysyłania pliku PDF działanie systemu zostanie zakończone.

3.4.6 Modyfikacje danych dotyczące prac dyplomowych oraz recenzji

Polega na wprowadzeniu informacji wysłanych przez użytkownika do bazy danych. Jeżelidane będą niepoprawne lub użytkownik nie będzie posiadał uprawnień do wykonaniaoperacji, to do modułu Page jest przekazywany komunikat o błędzie. Komunikacja z baządanych odbywa się pośrednio przez moduł Database.

3.4.7 Zarządzanie plikami

Po sprawdzeniu uprawnień przysyłane pliki zapisywane są w katalogu określonym przezwartość parametru REP_ROOT (katalog zakładany podczas instalacji) oraz REP_PATH.Jeżeli REP_ROOT jest ścieżką względną, to odniesieniem będzie katalog APD_ROOT.Parametr REP_PATH jest dalszą częścią ścieżki i może zawierać fragmenty, które będądynamicznie podmieniane przez informacje pobrane z pracy związanej z przysyłanymplikiem:

– $id$ – unikatowy identyfikator jednoznacznie określający dokument w bazie danych,– $rok$ – rok zatwierdzenia tematu (lub aktualny, jeśli nie jest uzupełniony),– $kod_jedn$ – kod jednostki organizacyjnej,– $typ_cert$ – kody typu certyfikatu, uzyskanego po zaliczonym egzaminie.

Dla przykładu, jeżeli REP_ROOT ma wartość /usr/repository/, a REP_PATH mawartość $rok$/$kod_typu$/$id$/, to plik praca.pdf dołączony do pracyo identyfikatorze 77, której temat został zatwierdzony w 2006 roku, której autor ubiega sięo tytuł licencjata na matematyce, będzie zapisany jako: /usr/repository/2006/1000-LIC-MAT/77/praca.pdfTaka ścieżka jest także wyświetlana administratorowi systemu tuż pod opisem pliku.W przypadku podania ścieżki względnej, odniesieniem będzie katalog APD_ROOT, tzn. jeślidla podanego przykładu REP_ROOT będzie miało wartość ./../rep/ oraz APD_ROOTbędzie miało wartość /usr/www/apd, to plik będzie zapisany jako: /usr/www/rep/2006/1000-LIC-MAT/77/praca.pdf Istotne jest, aby serwer Apache miał prawa zapisu w docelowym katalogu.

3.5 Budowanie potrzebnych struktur do wyświetlenia strony

Moduł Page gromadzi potrzebne informacje na podstawie wartości parametrów zawartychw żądaniu użytkownika oraz komunikatów jakie mogły być wygenerowane w wynikuwykonywania zleconej czynności. Następnie przetwarza zebrane dane do formy ułatwiającejwyświetlenie strony. Przed zakończeniem działania przekazuje zbudowane strukturydo modułu zajmującego się prezentacją danych.

25

3.6 Prezentacja danych

Do stworzenia modułu zajmującego się prezentacją danych została wykorzystana bibliotekaSmarty (wersja 2.6.9).Każda strona serwisu jest budowana przy wykorzystaniu tego samego szablonu(layout.tpl) pobranego z systemu USOSweb, zatem składa się z:– górnego paska, na którym są umieszczone zawsze dostępne ikonki,– lewej kolumny, zawierającej menu aplikacji,– środkowej, największej części przeznaczonej na wypisywanie właściwych informacji,– stopki.Wszystkie strony są opisane przy użyciu dwóch plików. Pierwszy z nich (z rozszerzeniemtpl) zawiera ogólną strukturę wyświetlanych danych, a drugi (z rozszerzeniem conf)zawiera przede wszystkim wersje językowe dla napisów nie pochodzących z bazy danych.Na przykład, do wyświetlania informacji o użytkownikach systemu wykorzystywany jest plikperson.tpl, który między innymi zawiera:

<span class="h1">{#HEADER#}</span><p><table class='ptable' cellpadding="0" cellspacing="1px"> <tr class="odd" > <td class='tdName1'>{#FULLNAME#}:</td> <td class='tdValue1'>{$fullname}</td> </tr>

W załączonym kodzie HTML wykorzystywane są trzy wartości (zawarte w nawiasachklamrowych), które będą podmieniane dynamicznie. Wartość {$fullname} będzieprzekazana z modułu Page, natomiast pozostałe dwie z nich są zdefiniowane w plikuperson.conf, którego istotny fragment jest przedstawiony poniżej.

local_css=person.css

[pl]subtitle = dane o użytkowniku systemuHEADER = Informacje o osobieFULLNAME = Imię i nazwisko

[en]subtitle = user dataHEADER = Informations about userFULLNAME = Name

Oprócz wersji językowych, pliki konfiguracyjne mogą zawierać definicje parametrów:● local_css – nazwa pliku zawierającego zdefiniowane style dla danej strony,● js – jak wyżej, ale dotyczy kodu Javascript,● subtitle – fragment tytułu strony,● onload – nazwa funkcji Javascript, która będzie wykonana po załadowaniu strony,● onbeforeunload – nazwa funkcji Javascript, która będzie wykonana przed

opuszczeniem strony. Jeśli wyrażenie będzie przekazywało wartość false, to (o ile jestto obsługiwane przez przeglądarkę) użytkownik będzie proszony o potwierdzenieopuszczenia strony (opcja wykorzystywana podczas wypełniania formularzy).

Ze względu na dużą ilość statycznych informacji przekazywanych w plikach pomocy(w takich wypadkach umieszczanie każdego komunikatu w definicjach konfiguracyjnychtylko utrudniałoby pisanie szablonów), dwujęzyczność jest rozwiązana inaczej. Pliki pomocysą tworzone osobno dla języka polskiego oraz angielskiego. Wszystkie takie pliki są zapisanew osobnym katalogu.

26

3.7 Inne rozwiązania

3.7.1 Buforowanie danych o jednostkach organizacyjnych

Wyświetlanie tabeli zawierającej spis jednostek organizacyjnych z podpiętymi typamicertyfikatów jest dość czasochłonne, gdyż wymaga zebrania informacji znajdujących sięw kilku tabelach, zbudowania zależności między nimi, a następnie posortowaniai odrzucenia tych danych, które nie są powiązane z żadnymi pracami dyplomowymi. W celuprzyśpieszenia procesu budowania drzewa zależności została zaimplementowanadwupoziomowa metoda buforowania danych. Pierwsza metoda polega na zapisaniuzebranych informacji do jednej tabeli i wymaga odświeżania danych po każdej migracji.Uproszczony zostaje proces uzyskiwania informacji, jednak nadal trzeba odwoływać siędo bazy danych, a następnie budować potrzebną strukturę. Drugi sposób polega naprzechowywaniu gotowych danych w sesji. Konfiguracja APD za pomocą parametruCACHE_DEPARTS umożliwia ustalenie jednej z czterech metod buforowania danych:– database (lub db) – tylko w bazie danych,– session (lub ses) – tylko w sesji,– dbses – wykorzystanie obu metod,– dowolna inna wartość – brak buforowania.

3.7.2 Wyświetlanie liczby bajtów odebranych przez serwer

Większość powszechnie znanych przeglądarek podczas wysyłania danych nie pokazuje nabieżąco stanu transmisji. Jeżeli użytkownik nie ma szybkiego połączenia z Internetem, tomoże się zdarzyć, że wysyłanie pliku potrwa kilkanaście, a nawet kilkadziesiąt minut. W tymczasie zniecierpliwiony użytkownik, który nie widzi żadnego postępu przesyłania, możełatwo popełnić błąd przerywając transmisję (w większości przeglądarek odbywa się topoprzez naciśniecie klawisza Esc) lub przejście na inną stronę. Dlatego też pojawiła siępotrzeba wyświetlania informacji o ilości danych odebranych przez serwer. Niestety nie jestto możliwe do zrealizowania za pomocą czystego PHP, gdyż skrypt taki zostaje wykonanydopiero wtedy, gdy cały plik zostanie załadowany na serwer.

Rozwiązanie zostało zaimplementowane za pomocą skryptu przeznaczonegodo odbierania przysyłanych danych. W języku programowania Perl powstał skrypt CGI(upload.cgi), który do katalogu tymczasowego zapisuje żądanie POST oraz wpisujedo bazy danych informacje o lokalizacji pliku i jego całkowitym rozmiarze. Dzięki temuinny skrypt PHP (plik stat.php) może sprawdzić ile danych zostało zapisanychi wyświetlić odpowiednie informacje użytkownikowi. Tuż przed rozpoczęciem wysyłaniapliku za pomocą funkcji Javascript zostaje otworzone okienko, które wygląda tak, jak narysunku 4.

Po zakończeniu transmisji skrypt CGI zapisuje do bazy danych fizyczną lokalizacjązaładowanego pliku oraz wysyła przekierowanie żądania do aplikacji lub przekazuje

27

Rysunek 4. Okienko ze statusem wysyłania pliku

informacje o błędzie (np. z powodu przekroczenia rozmiaru danych). Maksymalny rozmiarprzesyłanego pliku jest zapisany w konfiguracji systemu APD. Podczas instalacji jestrównież możliwość wyłączenia informowania o statusie wysyłania pliku (przydatne, gdyserwer nie obsługuje CGI albo język Perl nie jest zainstalowany).

28

Rozdział 4

Instalacja i uruchomienie systemu

Ten rozdział zawiera szczegóły techniczne pomocne przy uruchomieniu aplikacji, a takżeopis ogólnych właściwości wykorzystanych narzędzi.

4.1 Wymagania systemu APD względem środowiska

W tym punkcie przedstawiam rozwiązania informatyczne wykorzystane do realizacjiprojektu. Postaram się także uzasadnić ich wybór.

4.1.1 Linux

Podczas tworzenia aplikacji wykorzystywany był system operacyjny Linux. Jest on szerokodostępny, sprawdzony i polecany przez administratorów Wydziału MIMUW, daje szerokiemożliwości administracyjne oraz zapewnia bezpieczeństwo. Dodatkowe zalety to brak opłatlicencyjnych i dostępność wielu darmowych narzędzi, pomocnych w tworzeniu aplikacji.

4.1.2 Apache

Apache [Apache] to najbardziej rozpowszechniony serwer WWW, dzięki temu dobrzeprzetestowany i sprawdzony. Pozwala na obsługę HTTP oraz wykonywanie skryptów CGI.

4.1.3 PHP

PHP [PHP] to bardzo zaawansowany język programowania, służący do dynamicznegogenerowania stron HTML. Jest wspierany przez serwer Apache. Było wiele powodów,dla których został wybrany ten właśnie język. Przede wszystkim jest rozpowszechnionyi ogólnie znany w środowisku akademickim. Większość serwisów internetowychwykorzystywanych na uczelniach wyższych zostało napisanych właśnie w tym języku.Dodatkowo jest dostępnych wiele darmowych bibliotek ułatwiających i przyśpieszającychprogramowanie. Do systemu APD zostały włączone następujące projekty:

– Smarty – biblioteka szablonów; pozwala na oddzielenie warstwy prezentacji od logikisystemu ułatwiając stosowanie się do zalecanych wzorców programowania.

– Log – zbiór klas i funkcji ułatwiający prowadzenie dziennika zdarzeń. Przy niewielkiejznajomości kodu i programowania PHP można łatwo zarządzać gromadzenieminformacji o funkcjonowaniu systemu. Umożliwia zapisywanie informacji do pliku,bazy danych, dziennika systemowego dostępnego w systemie Linux itp.

Język PHP jest ciągle rozwijany i wspierany, dzięki czemu daje duże możliwości współpracyz innymi technologiami. Dodatkowo APD wymaga PHP w wersji 5.01 lub nowszej,skompilowanej z rozszerzeniami MySQL (do połączenie z bazą danych) oraz XMLRPC(wymagane do korzystania z serwisu CUS).

29

4.1.4 MySQL

Jako serwer bazodanowy został wybrany projekt MySQL [MySQL], który również jestdarmowy i sprawdzony w wielu aplikacjach, w tym także na Wydziale MIMUW. Jest bardzowydajnym i szybkim systemem, dającym duże możliwości. W systemie APD większośćdanych jest tylko odczytywana, dlatego też wykorzystywany jest głównie silnik MyISAM,który nie obsługuje transakcji, ale jest bardzo szybki. Dla bezpieczeństwa wstawianiai przenoszenia recenzji dostęp do niektórych tabel jest realizowany przez silnik obsługującytransakcję, czyli InnoDB. Zalecaną wersją MySQL jest wersja 4.1 lub wyższa.

4.1.5 Perl

Perl [Perl] to język programowania wysokiego poziomu, posiadający wiele pomocnychbibliotek. Został wykorzystany, gdyż jest rozpowszechniony i może być uruchamiany jakoskrypt CGI przez serwer Apache.

4.1 Konfiguracja systemu APD

Podczas instalacji system poprosi o weryfikację wartości wymienionych w podanej tabeli:Nazwa parametru Wartość

domyślnaOpis

APD_ROOT /usr/apd/ Katalog serwera WWW, w którym będzieumieszczona aplikacja APD

MIGR_ROOT /usr/migrator Katalog, w którym będzie umieszczona aplikacjaMigrator

MIGR_USER apd Użytkownik systemu Linux, który będzie zajmowałsię migracją danych

APACHE_USER wwwrunUżytkownik systemu Linux, z prawami któregodziała serwer (aplikacja Apache)

DB_HOST localhost Nazwa serwera, na którym umieszczono serwerbazy danych

DB_NAME apd Nazwa bazy danychDB_USER apd Nazwa użytkownika bazy danychDB_PASS *** Hasło do bazy danych

DB_CURSORSIZE 1 Rozmiar kursora w migratorze po stronie MySQLORACLE_NAME usos Nazwa bazy danych OracleORACLE_USER apd Nazwa użytkownika bazy danych OracleORACLE_PASS *** Hasło do Oracle

ORACLE_CURSORSIZE 1 Rozmiar kursora w migratorze po stronie Oracle

CUS_HOST cus.uw.edu.pl Serwer systemu Centralne UwierzytelnianieStudentów (CUS)

CUS_URI / Ścieżka do serwisu CUSCUS_ENCODING utf-8 Kodowanie przy połączeniu z serwisem CUS

ADMIN_LOGIN admin Identyfikator wykorzystywany przez administratoraAPD

30

Nazwa parametru Wartośćdomyślna

Opis

ADMIN_PASS admin Hasło administratora APD

ADMIN_MAIL [email protected] Adres mailowy administratora APD.

INST_WWW_KOD CUS_WWW Instalacja WWW, z której będą pobierane kontaużytkowników

CACHE_DEPARTS databaseUstawienie buforowania informacji o jednostkach(opisane na stronie 29). Obsługiwane wartości to:'session', 'database', 'dbses', 'none'.

PROGRESS_BAR trueCzy podczas wysyłania plików pokazywać okienkoinformujące o liczbie załadowanych bajtów naserwer. Możliwe wartości to: 'true' lub 'false'

UPLOAD_DIR ../cgi-bin Katalog (absolutny lub względny do APD_ROOT),w którym będzie umieszczony skrypt upload.cgi

UPLOAD_SCRIPT /cgi-bin/upload.cgi Internetowy adres skryptu upload.cgi

PERL_PATH /usr/bin/perl Ścieżka do programu Perl (potrzebna tylko wtedy,gdy parametr PROGRESS_BAR ma wartość true)

REP_ROOT /repository/ Katalog, w którym będzie znajdować sięrepozytorium.

REP_PATH $rok$/$typ_cert$/$id$

Opis ścieżki do katalogu, w którym będązapisywane pliki przysyłane przez autora pracy.Niektóre fragmenty będą podmienianedynamicznie. Więcej szczegółów na stronie 27.

APD_LOG apd.log Ścieżka do pliku, w którym będą zapisywane logiaplikacji APD

CITY Warszawa Miasto, w którym znajduje się uczelniaMAX_DESC_LEN 8000 Maksymalna liczba znaków w opisie pracy

MAX_KEYWORDS_LEN 1000 Maksymalna liczba znaków w polu słowa kluczoweMAX_TITLE_LEN 250 Maksymalna liczba znaków w tytule pracyMAX_FILE_SIZE 25*1024*1024 Maksymalny rozmiar odbieranego pliku

REVIEWERSrecenzent,kierujący

pracą,opiekun,promotor

Lista nazw ról z komisji zapisanych w tabeliDZ_FUNKCJE_W_KOMISJI (po stronie USOS),które będą użytkownikom dawać uprawnienia dopisania recenzji w systemie APD

DEBUG_MODE falseCzy aplikacja ma działać w trybie DEBUG (jeśli"true", to będą wyświetlane informacjeo wewnętrznych strukturach)

4.2 Instalacja systemu APD

Przed przystąpieniem do instalacji systemu, należy upewnić się, że:– Użytkownik instalujący skrypt posiada prawa zapisu do katalogu APD_ROOT;

31

– APD_ROOT należy do katalogu obsługiwanego przez Apache – jeżeli chcemy, aby podczas wysyłania plików pokazywało się okienko z odebraną przez

serwer liczbą bajtów, to UPLOAD_DIR musi być obsługiwany z opcją ExecCGI);– jeśli PROGRESS_BAR jest wyłączone, to wartości domyślne serwera, zapisane w pliku

PHP.INI pozwalają na wysyłanie plików o rozmiarze MAX_FILE_SIZE (są to parametrypost_max_size, upload_max_filesize oraz memory_limit);

– użytkownik serwera MySQL podany jako DB_USER ma uprawnienia do założenia bazydanych DB_NAME na serwerze DB_HOST lub posiadamy identyfikator i hasłoużytkownika, który będzie mógł nadać takie uprawnienia (wówczas osoba instalującasystem APD podczas instalacji zostanie poproszona o wpisanie danych);

– serwer Apache obsługuje standardowo nazwane pliki kontroli do zasobów (.htaccess).Po przygotowaniu środowiska, instalacja aplikacji internetowej jest bardzo prosta.

Wystarczy uruchomić interaktywny skrypt (plik o nazwie instaluj), który przeprowadziinstalację systemu. Wówczas zostaną wykonane następujące czynności:

– rozpakowanie aplikacji do katalogu tymczasowego,– uruchomienie programu configure (który pozwoli skonfigurować system),– uruchomienie instalacji zapisanej w pliku Makefile, która:

– umieści pliki źródłowe APD w katalogu serwera,– umieści Migrator w katalogu podanym podczas konfiguracji systemu,– założy bazę danych systemu APD (wykasuje ewentualne dane),– uruchomi Migrator (na życzenie osoby instalującej system).

4.2 Uruchomienie aplikacji

Aby sprawdzić działanie systemu, należy otworzyć przeglądarkę internetową i wpisać adresserwisu. Jeżeli instalacja została wykonana poprawnie, to na ekranie powinna pojawić sięstrona powitalna. Dodatkowo, w przypadku instalowania aplikacji z opcją PROGRESS_BARustawioną na true bardzo ważne jest sprawdzenie, czy skrypt upload.cgi zostałpoprawnie zainstalowany. W tym celu możemy wprowadzić w przeglądarce adres skryptu.Na ekranie powinien pojawić się komunikat o zgubionej sesji. Poważnym błędem jestumieszczenie skryptu w katalogu, który nie obsługuje CGI, gdyż w takim wypadku naekranie zostanie wyświetlona zawartość pliku (kod źródłowy), z którego można odczytaćnazwę użytkownika oraz hasło do bazy danych.

W czasie działania aplikacji możliwe są zmiany większości parametrów,wprowadzonych podczas instalacji, bez konieczności ponownego instalowania systemu.Wystarczy uruchomić skrypt configure.

32

Rozdział 5

Dokumentacja użytkownika

Rozdział zawiera opis interfejsu programu i jego działania. Większość zawartych informacjiznajduje się w plikach pomocy aplikacji, które są dostępne w dwóch językach. Ponieważwersja angielska oraz polska z dokładnością do tłumaczenia napisów są takie same,dokumentacja będzie koncentrowała się głównie na tłumaczeniu polskim, bez przytaczaniaangielskich odpowiedników.

5.1 Rozpoczęcie pracy z systemem

Aby rozpocząć pracę, należy otworzyć przeglądarkę internetową i wpisać adres serwisu.Wówczas powinna wyświetlić się pierwsza strona, wyglądająca tak jak na rysunku 5.Widoczne po lewej stronie menu pozwala na wybór oczekiwanych stron.

33

Rysunek 5. Strona powitalna systemu APD

5.2 Wyszukiwanie prac

Aby wyświetlić formularz taki jak na rysunku 6, należy wybrać opcję WYSZUKIWARKA.Metoda wyszukiwania została opisana na przykładach, zawartych w tabeli 2. Wpisane wyrażenie Zostaną wyszukane wyrażenia, które zawierająpenguin student przynajmniej jeden z wyrazów penguin lub student+penguin +fish obydwa wyrazy+penguin -macintosh słowo penguin, ale nie zawierają słowa macintosh+penguin +(masterchampion)

słowo penguin oraz przynajmniej jedno ze słów master,champion (w dowolnym porządku)

lin* słowo zaczynające się od wyrażenia lin czyli np. linux,linka.

"jakieś słowa"dokładnie taki ciąg słów, czyli wyszukane będziewyrażenie jakieś słowa, ale jakieś dziwne słowa nie zostanąodnalezione.

Tabela 2. Przykłady wyszukiwania prac dyplomowych

Następnie wybieramy, które informacje o pracy będą uwzględniane podczas szukania

wyrażenia przez wybór jednego elementu z listy (widocznej na rys 7) znajdującej się oboknapisu “Szukaj wśród:”. Jeśli chcemy określić rok lub zakres lat, w których praca byłazłożona albo został zatwierdzony temat należy skorzystać z dwóch następnych pól.Rozpoczęcie wyszukiwania odbywa się po naciśnięciu przycisku “wyszukaj”. Zostaniewówczas wyświetlona strona z nagłówkiem “Wynik szukania prac” poprzedzonym

34

Rysunek 6. Formularz wyszukiwania

Rysunek 7. Menu wyszukiwanie

ikoną , której wskazanie spowoduje wyświetlenie technicznych informacji dotyczącychopcji wyszukiwania. Jeżeli zostaną odnalezione prace spełniające zadane kryteria, to będziewyświetlona lista dokumentów, w przeciwnym razie zostanie wypisany stosowny komunikat.W lewym menu zostanie dodana opcja “ostatni wynik”, której wybranie będziepowodowało ponawianie szukania. Wybranie elementu z wyświetlonej listy dokumentówsprawi, że lewe menu będzie wyglądało tak, jak przedstawia to rysunek 7. Napis“szczegóły dyplomu” jest dowiązaniem do strony zawierającej szczegółoweinformacje o wybranej pracy.

5.3 Przeglądanie prac w jednostkach

Aby wyświetlić listę prac pochodzących z jednej jednostki, należy najpierw wybrać z lewegomenu opcję KATALOG PRAC. Wówczas na ekranie pojawi się tabela, której fragmentprzedstawiono na rys. 8.

Przedstawiona lista zawiera spis jednostek organizacyjnych wraz z następującymibezpośrednio po nich typami certyfikatów. W kolejnych kolumnach znajdują się: – kod jednostki (wyświetlany tylko przy jednostkach),– nazwa jednostki lub typu certyfikatów,– liczba prac bezpośrednio powiązanych z jednostką.

Tabela zawiera tylko takie jednostki, w obrębie których powstały jakieś prace. Jeśliliczba bezpośrednio powiązanych prac jest niezerowa, to jest ona widoczna w trzeciejkolumnie, a nazwa jednostki jest dowiązaniem do strony zawierającej listę tych prac. Można również określić typ certyfikatu, jaki uzyska autor pracy po zdanym egzaminiedyplomowym wybierając go z dostępnej listy pod nazwą jednostki. Ostatni wybór jest

pamiętany w sesji i będzie wykorzystany do wyświetlenia w lewym menu pod opcjąKATALOG PRAC, tak jak jest to widoczne na rysunku 11. Wyświetlony kod jednostki lubtypu certyfikatu służy do powrotu na stronę zawierającą listę prac.

35

Rysunek 8. Spis jednostek wraz z podpiętymi typami certyfikatów

Rysunek 9. Menu KATALOG PRAC

5.4 Logowanie

Aby zalogować się do systemu, należy wybrać opcję ZALOGUJ z lewego menu, następniewprowadzić swój identyfikator oraz hasło i nacisnąć Enter lub przycisk . Wówczaswyświetli się domyślna strona użytkownika lub informacja o błędnych danych. Jeżeliużytkownik wprowadzi 5 razy niewłaściwe hasło, to jego konto zostanie zablokowane nanajbliższe 20 minut.

5.5 Autor pracy

Jeśli zalogujemy się jako autor pracy, to w lewym menu będzie dostępna opcjaTWOJE PRACE, której wybór spowoduje wyświetlenie tabeli zawierającej wszystkie pracezalogowanej osoby. Jednocześnie w lewym menu będzie możliwość wyboru roku złożeniapracy. Domyślnie będą wybrane prace, które nie zostały złożone, a jeśli takich nie ma, tobędą wybrane prace złożone najpóźniej. Aby obejrzeć szczegóły dyplomu lub wyświetlićodpowiedni formularz do modyfikacji danych czy wysyłania plików, należy wybrać tytułpracy z listy dyplomów. W zależności od aktualnego stanu pracy, autor pracy będzie mógł:– modyfikować dane o pracy (patrz punkt 5.5.1), – wysyłać lub kasować pliki (patrz punkt 5.5.2),

– generować plik PDF (jeśli zostały zaakceptowane zmiany, to będą dostępne ikony dogenerowania karty pracy dyplomowej dla każdego autora)

– przeglądać recenzje (jeśli recenzja została zatwierdzona, to przy nazwisku recenzentabędzie dostępna ikona )

5.5.1 Modyfikacja danych

Jeżeli w procesie przetwarzania pracy dyplomowej oczekiwanym zdarzeniem (informacjaznajduje się na stronie “Szczegóły dokumentu”) jest wprowadzenie danych o pracy, to autorbędzie miał dostępny formularz, dzięki któremu będzie mógł zapisać tytuł pracy w językuangielskim, streszczenie oraz słowa kluczowe. Przy każdym z pól wyświetlana jest liczbaokreślająca ile znaków można jeszcze wprowadzić. Dla przykładu na rysunku 10przedstawiono formularz, na którym można wprowadzić jeszcze 155 znaków. Powprowadzeniu oczekiwanych wartości do wszystkich trzech pól należy wybrać opcję“zapisz” a następnie potwierdzić wykonanie operacji zapisania danych, która spowodujeprzejście do etapu wysyłania plików. Jeżeli w trakcie edycji któregoś z pól użytkownikspróbuje opuścić stronę bez zapisania zmian, to zostanie poproszony o potwierdzeniewyjścia z aktualnej strony bez zapisu (pozytywna odpowiedź spowoduje utratęwprowadzonych zmian).

36

5.5.2 Wysyłanie plików

Aby wysłać plik do archiwum, należy podać nazwę pliku (można wpisać ręcznie jegolokalizację lub skorzystać z przycisku, który pozwoli na wygodne wybranie pliku za pomocągraficznego interfejsu), napisać krótki opis pliku. W skład nazwy pliku mogą wchodzić tylkoduże i małe litery alfabetu angielskiego, cyfry, myślnik, spacja, znak podkreślenia, kropkaoraz przecinek, każdy inny symbol będzie uniemożliwiał zapis powodując wyświetlenie siękomunikatu o niepoprawnym znaku. Maksymalny rozmiar pliku jest ustalany przezadministratora systemu i jest wyświetlany pod polem przeznaczonym na wprowadzenienazwy pliku.

Zapisany plik będzie pojawiał się na liście wszystkich plików dołączonych do pracydyplomowej. Do czasu zakończenia etapu wysyłania, autor pracy obok każdej nazwy plikuzobaczy dostępną ikonę służącą do usunięcia go z repozytorium. Jeśli do pracy będą jużzałączone wszystkie potrzebne pliki, to dyplomant powinien wybrać opcję “Wysłanowszystkie pliki”. Spowoduje to przekazanie pracy do osoby kierującej w celuakceptacji zmian wprowadzonych przez dyplomanta.

37

Rysunek 10. Edycja angielskiej wersji tematu pracy

5.6 Osoba kierująca pracą

Do zadań osoby kierującej pracą należy zatwierdzanie zmian wprowadzonych przez autorapracy oraz napisanie recenzji. Po zalogowaniu się do systemu dostępna jest opcjaMOJE ZADANIA, która ułatwi odnalezienie prac, które oczekują na akceptację zmian. Jeżelitakie prace zostaną odnalezione w systemie, to w lewym menu będzie dostępna pozycjaPrace do sprawdzenia (tak jak to przedstawia rysunek 11), a jej wybór spowoduje

wyświetlenie listy prac oczekujących na weryfikację danych, posortowanych po czasieegzaminu dyplomanta. Każda praca pojawi się tyle razy na liście, ilu jest autorów.W środkowej kolumnie Autor będzie zawsze wypisana tylko ta osoba, której dotyczy datai czas egzaminu. Wybór odpowiedniego tematu spowoduje wyświetlenie standardowejstrony zawierającej szczegóły pracy, której przykład przedstawia rysunek 12. Wyjątkowo w

38

Rysunek 11. Menu MOJE ZADANIA

Rysunek 12. Szczegóły dyplomu - zatwierdzanie opisów pracy dyplomowej

polu temat będą widoczne jednocześnie obie wersje językowe (poprzedzone odpowiedniąflagą), a zamiast informacji o oczekiwanym zdarzeniu będą dostępne dwie opcje:do poprawki, która spowoduje przekazanie pracy do autora, oraz poprawne danektóra zatwierdzi zmiany wprowadzone przez dyplomanta i umożliwi recenzentom napisanierecenzji. Przed przekazaniem pracy do recenzji, osoba kierująca pracą powinna pobrać plikizałączone do pracy (wybierając kolejno ich nazwy) i sprawdzić czy załączono wszystkiepotrzebne dane wraz z ich poprawnym opisem.

Dodatkowo w celu wyświetlenia listy zawierającej niezłożone lub złożone wokreślonym roku dokumenty, w których użytkownik pełnił lub pełni funkcję osoby kierującejpracą dostępna jest opcja KIERUJĄCY PRACĄ.

5.7 Recenzent

Jeżeli do systemu zaloguje się recenzent, to w lewym menu będzie dostępna opcjaMOJE ZADANIA. W zależności od zadań jakie powinien wykonać użytkownik, będądostępne pozycje (tak jak na rysunku 13), opisane jako PRACE DO:– recenzji – wyświetla listę prac, do których należy napisać recenzję,– zatwierdzenia – pozwala szybko odnaleźć nie zatwierdzone recenzje,– recenzji lub zatwierdzenia – pokazuje prace, w których brakuje jeszcze ostatecznej

recenzji zalogowanego użytkownika (jest to suma dwóch poprzednich opcji).

Poszczególne listy zawierają tyle razy każdą pracę ilu brakuje recenzji. Ponieważkażda recenzja dotyczy tylko jednego autora, poszczególne prace dyplomowe pojawiają siętyle razy, ilu autorów nie zostało jeszcze ocenionych. Dzięki temu, że każda pozycja dotyczytylko jednego dyplomanta, umożliwiło to posortowanie prac po dacie egzaminu dyplomantaoraz umieszczeniu obok tematu ikony pozwalającej przejść do strony zawierającejszczegóły konkretnej recenzji. W przypadku braku tymczasowej recenzji wyświetlany jestformularz, który pozwoli na wpisanie wypowiedzi do podanych punktów. Istnienieniezatwierdzonych wypowiedzi, spowoduje ich wyświetlenie wraz z opcją Zatwierdź, którejfunkcja jest dosyć oczywista oraz Popraw odpowiedzi, która spowoduje wyświetlenieformularza z wpisanymi odpowiedziami.

Dla ułatwienia wystawiania recenzji kilku autorom jest możliwe przekopiowaniezatwierdzonych odpowiedzi napisanych dla jednego autora do formularza z odpowiedziamidla drugiego autora danej pracy. W takich przypadkach na liście osób zaznaczonych jakoPozostali autorzy przy nazwiskach osób, którym recenzje zostały już napisane będą

widoczne ikony , których wybór spowoduje wpisanie do formularza recenzji od wybranej

39

Rysunek 13. Prace do recenzji

osoby. Od momentu wysłania wersji roboczej recenzji dostępna jest ikona , pozwalającana wygenerowanie dokumentu PDF. Zaleca się, aby recenzent przed ostatecznymzaakceptowaniem recenzji uważnie przeczytał zawartość wygenerowanego dokumentu.

5.8 Administrator systemu APD

Domyślna strona administratora (przedstawiona na rysunku 14) pozwala na ustalenie ramczasowych blokady przez ustalenie czasu początku (domyślną wartością jest czas jaki będzieza 10 minut) oraz wartość określająca jak długo będzie trwała blokada (domyślnie 90 minut).Jeżeli jest zaznaczona flaga Względny, to będą dostępne opcje “odblokuj”,“natychmiast”, “za 10 minut”, “za 30 minut”, “za 60 minut” oraz “za 3godziny”. W przypadku gdy flaga Względny nie jest zaznaczona będzie można podaćdowolny czas początku, zapisany w formacie akceptowalnym przez funkcję PHP, (naprzykład “2006-09-10 15:16”). Jeżeli czas do zablokowania systemu będzie mniejszyniż 24 godziny, to użytkownicy nie będą mogli logować się do systemu (nie dotyczyadministratora), a na ekranie będzie widoczny licznik odmierzający czas do rozpoczęciablokady systemu. Aby skrócić lub wydłużyć czas blokady, należy nadpisać poprzedniewartości.

W katalogu podanym podczas instalacji (parametr systemowy MIGR_ROOT)umieszczone zostały następujące elementy:– migrator – katalog zawierający aplikację Migrator,– dbbackup – katalog, do którego zapisywana jest zawartość bazy danych przed

rozpoczęciem migracji,– log – katalog, w którym zapisywane są logi migratora,– update – katalog, w którym zapisywane są pliki z zapytaniami SQL uzgadniającymi bazy

danych,– migrator.sh – skrypt, który uruchamia migrację,

40

Rysunek 14. Strona administratora

– migrator-mapping.xml – konfiguracja migratora, będąca odwzorowaniem strukturuzgadnianych baz danych,

– migrator.xml – konfiguracja ustawień głównych migratora,– .htaccess – plik pozwalający kontrolować dostęp do zasobów przez serwer HTTP (w tym

wypadku blokujący dostęp do danych na wypadek umieszczenia migratora w kataloguobsługiwanym przez serwer Apache).

Drugą dostępną funkcjonalnością administratora jest przełączanie się w trybwybranego użytkownika. Jeżeli system nie jest zablokowany, to jest dostępny formularzpozwalający wprowadzić identyfikator osoby, w której tryb pracy chcemy się przełączyć.Jeśli zostanie odnalezione konto dla wprowadzonej wartości, to administrator będzietraktowany dokładnie tak, jak wybrany użytkownik, ale na górze strony będzie widocznaramka z opcją Powrót do trybu administratora, tak jak ilustruje to rysunek 15.

5.9 Informacje ogólne

Na każdej stronie serwisu są dostępne następujące elementy:● Górny niebieski pasek, zawierający następujące ikony:

Ikona dlajęzyka

polskiego

Ikona dlajęzyka

angielskiego

Warunek widoczności Zdarzenie

Wyświetlenie stronypoczątkowej

Wyświetlenie pomocnychinformacji do strony

Użytkownik nie jestzalogowany

Wyświetlenie formularzalogowania

Użytkownik jestzalogowany

Wylogowanieużytkownika

Ustawiony jest innyjęzyk niż wskazuje

flaga

Zmiana języka naadekwatny do flagi

Tabela 3. Ikony w górnym menu

● Lewe menu, zawierające odwołania do stron, zależne od zalogowanego użytkownika.Podstawowe menu, dostępne dla każdej osoby (o ile system nie jest zablokowany), zawieranastępujące elementy:

W wersji polskiej W wersjiangielskiej

Warunekwyświetlenia

opcjiOpis

KATALOG PRAC DIPLOMATHESES

Pokazuje jednostki organizacyjnez podpiętymi typami certyfikatów

41

Rysunek 15. Ramka administratora w trybie użytkownika.

W wersji polskiej W wersjiangielskiej

Warunekwyświetlenia

opcjiOpis

WYSZUKIWARKA SEARCH Wyświetla formularz dowyszukiwania prac dyplomowych

ZALOGUJ LOGIN Użytkownik niejest zalogowany

Wyświetla formularz logowania.

WYLOGUJ LOGOUT Użytkownik jestzalogowany

Powoduje wylogowanieużytkownika z systemu

Tabela 4. Podstawowe menu

Pozostałe opcje zostały opisane w rozdziałach przeznaczonych dla odpowiednichużytkowników. Jeżeli system jest zablokowany, to menu nie jest widoczne lub jestwyświetlona jedynie opcja ZALOGUJ, przeznaczona dla administratora systemu.● Stopka, która zawiera odsyłacze do:

– strony początkowej, – strony pomocy,– adresu pocztowego administratora systemu APD.

Dodatkowo na stronach mogą pojawić się ikony, które będą miały funkcje opisane w tab. 5.Ikona Występowanie Funkcja

Strony zawierające listęprac

Naprowadzenie kursora myszy na ikonęspowoduje wyświetlenie dodatkowychinformacji o selekcji prac.

Strony zawierająceszczegóły o pracydyplomowej lub orecenzji

Kliknięcie na ikonę spowoduje wygenerowaniepliku w formacie PDF zawierającegoodpowiednio kartę pracy dyplomowej lubrecenzję pracy.

Lista prac dyplomowychlub szczegóły odokumencie

Umożliwia przejście do strony z recenzją lubrozpoczęcie pisania recenzji. W przypadku gdyużytkownik nie ma dostępu do recenzji służytylko jako informacja o gotowej recenzji.

Strona zawierającejformularz do pisaniarecenzji

Jeśli recenzent napisał i zatwierdził recenzjędanej pracy, to przy nazwisku dyplomanta,którego dotyczyła poprzednia recenzja będziewidoczna ikona umożliwiająca wpisanierecenzji do wyświetlonego formularza.

Lista plików załączonychdo pracy dyplomowej lubstrona zawierającarecenzję

Służy do usuwania pliku z repozytorium(dostępne tylko dla autora pracy) lub kasowaniazatwierdzonej recenzji (wykonujeadministrator)

Tabela 5. Ikony w systemie APD

42

5.10 Recenzje po stronie USOS

Dane o zestawach recenzji dodawane są po stronie USOS. Do tego celu powstały trzyzakładki.

5.10.1 Zakładka Pytania

W zakładce Pytania (którą przedstawia rysunek 16) wprowadzamy treści pytań, jakie będąmogły występować w zestawach jednostek oraz maksymalną długość odpowiedzi, którabędzie ograniczała recenzenta przed wpisywaniem zbyt długiej odpowiedzi tam, gdzie jestnp. oczekiwane słowo “tak” lub “nie”. Wprowadzone treści zapisujemy.

5.10.2 Zakładka Zestawy

W zakładce Zestawy widoczne są dwie tabele (patrz rysunek 17) umożliwiające dodanienowego zestawu pytań. Można tego dokonać poprzez wprowadzenie kodu zestawu oraz jegonazwy, a następnie wybraniu punktów, które będą obowiązywać w zestawie spośród tych,które zostały zapisane w zakładce Pytania.

43

Rysunek 17. Zakładka Zestawy

Rysunek 16. Zakładka Pytania

5.10.3 Zakładka Zestawy w jednostkach

Ostatnim etapem przygotowania zestawu recenzji jest wybór jednostek, w których będzieobowiązywał dany zestaw pytań. Dokonujemy tego poprzez wybór stworzonego wcześniejzestawu pytań oraz przypisaniu do niego jednostek. Jeśli wybrany zestaw zostanieprzypisany do jednostki, to automatycznie zaczyna obowiązywać we wszystkich jednostkachpodrzędnych, które nie mają ustalonego dla siebie innego zestawu.

44

Rysunek 18. Zakładka Zestawy w jednostkach

Rozdział 6

Podsumowanie

System APD został napisany z myślą o praktycznym zastosowaniu podczas składania pracna uczelni wyższej. Jest w pełni zależny od bazy danych systemu USOS, który jestpowszechnie wykorzystywany i rozwijany przez studentów i pracowników uczelniwchodzących w skład konsorcjum MUCI. Mam nadzieję, że projekt nie tylko ułatwiskładanie oraz archiwizację prac dyplomowych, ale także przyniesie korzyści osobomposzukującym informacji w Internecie, a zrealizowana implementacja osobnego serwisuwykorzystującego jedynie darmowe narzędzia pozwoli na stosowanie aplikacji na wieluuczelniach, które dysponują systemem USOS.

Niestety założenia, że mimo iż system będzie osobną aplikacją, to nadal będziemożna łatwo przenosić wspólny kod źródłowy, okazały się zbyt optymistyczne. Różnicew realizacji i projektowaniu aplikacji sprawiły, że uspójnianie interfejsu odbywało sięgłównie na poziomie prezentacji, podczas gdy logika opiera się na osobnych klasach.Rozwijający się system USOSweb, zmienił swoje interfejsy, natomiast APD początkowobyło dopasowane do poprzedniej wersji, zatem interfejsy obu systemów różnią się.Ostateczna realizacja APD, która byłaby całkowicie podporządkowana zachowaniem iwyglądem do już istniejącego modułu Dyplomy wymaga jeszcze dużo pracy.

6.1 Zrealizowane założenia

Aktualnie system APD umożliwia uzupełnienie danych o pracy, zarządzanie plikamii wystawianie recenzji. Jest to funkcjonalność niezbędna do przeprowadzenia procesuzłożenia elektronicznej wersji pracy dyplomowej. Istotną rolę w ułatwieniu procesuskładania prac pełni także możliwość wygenerowania dokumentów opisujących pracei zawierających recenzje. Zgodnie z opisanymi wymaganiami jest też możliwośćwyszukiwania dyplomów.

Ważnym założeniem, które zostało spełnione jest wykorzystanie gotowej bazydanych USOS (za pośrednictwem Migratora), dzięki czemu nie ma potrzeby dodawaniafunkcjonalności związanych z zarządzaniem danych ani nie wymaga się od użytkowników,aby uzupełniali i uaktualniali dane dotyczące toku studiów.

6.2 Możliwości na przyszłość

Rozbudowanie systemu APD nie tylko ułatwiłoby korzystanie z repozytorium prac, ale takżepozwoliłoby na zwiększenie zakresu wykorzystania aplikacji. Przydatne funkcjonalności tonp.– logowanie za pomocą LDAP i NIS (dla uczelni, które nie posiadają systemu CUS),– zapisywanie konfiguracji w bazie danych (dynamiczna konfiguracja systemu),– rozszerzenie kryteriów wyszukiwania (np. po nazwie załączonych plików),– bardziej szczegółowe uprawnienia do przeglądania prac (np. dynamicznie określane

45

uprawnienia do plików pozwoliłyby dołączać do prac dyplomowych prezentacje dostępnedla wszystkich użytkowników systemu),

– wsparcie dla komunikacji między dyplomantem a osobą kierującą pracą (np. podczasodrzucania zmian danych o pracy przydatną funkcjonalnością mogłoby być dodawanienotatki zawierającej przyczynę odesłania pracy do poprawki),

– zgłaszanie tematu pracy przez osoby prowadzące zajęcia,– wyszukiwanie podobieństw w załączonych pracach – wykrywanie plagiatów.

6.3 Podziękowania

W bardzo szczególny sposób chciałbym podziękować Pani Doktor Janinie Mincer-Daszkiewicz za opiekę nad pracą, cały poświęcony czas, dużo dobrych wskazówek orazudostępnienie wszelkich niezbędnych informacji do powstania i realizacji projektu.

Pragnę również podziękować Panu Doktorowi Krzysztofowi Stencel za pomocw stworzeniu zgodnego ze standardami USOS skryptu SQL do zakładania tabelprzechowujących recenzje.

Swoje podziękowania kieruje również do wszystkich osób, które poświęcały swójczas udzielając pomocnych informacji.

46

Dodatek A

Opis zawartości płyty CD

– Niniejsza praca magisterska w formacie PDF oraz SXW,– System APD, wraz ze skryptami do instalacji,– Skonfigurowana aplikacja Migrator,– Skrypt do automatycznego podpięcia plików z aktualnego archiwum do APD,– Skrypty do zakładania potrzebnych tabel i widoków na bazie ORACLE.

47

Dodatek B

Konfiguracja Migratora

Załączony plik konfiguracyjny (migrator-mapping.xml.in) zawiera parametr@INST_WWW_KOD@, który podczas instalacji zostanie zamieniony na wartość podaną przezużytkownika (np. MIMUW_WWW).

<?xml version="1.0"?><mapping> <tables>

<table from-name="MV_REC_PYTANIA" to-name="pytania"> <field from-name="ID" to-name="ID" /> <field from-name="TRESC" to-name="TRESC" /> <field from-name="MAX_DLUG_ODP" to-name="MAX_DLUGOSC_ODPOWIEDZI" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> </dependencies> </table>

<table from-name="MV_REC_ZESTAWY" to-name="zestawy"> <field from-name="KOD" to-name="KOD" /> <field from-name="NAZWA" to-name="NAZWA" /> <primary-key> <field name="KOD" /> </primary-key> <dependencies> </dependencies> </table>

<table from-name="MV_REC_ELEM_ZESTAWOW" to-name="pytania_zestawy"> <field from-name="ID" to-name="ID" /> <field from-name="REC_ZEST_KOD" to-name="ZESTAW_KOD" /> <field from-name="NUMER_PYTANIA" to-name="NUMER_PYTANIA" /> <field from-name="REC_PYT_ID" to-name="PYTANIE_ID" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> <table name="MV_REC_PYTANIA" /> <table name="MV_REC_ZESTAWY" /> </dependencies> </table>

<table from-name="MV_RECENZJE" to-name="recenzje"> <field from-name="ID" to-name="ID" /> <field from-name="CERT_ID" to-name="CERT_ID" /> <field from-name="REC_OS_ID" to-name="RECENZENT" /> <field from-name="CERT_OS_ID" to-name="AUTOR" /> <field from-name="DATA_RECENZJI" to-name="DATA_RECENZJI" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> <table name="MV_PRACE_CERT" /> <table name="MV_OSOBY" /> </dependencies>

48

</table>

<table from-name="MV_REC_ODPOWIEDZI" to-name="odpowiedzi"> <field from-name="REC_ID" to-name="REC_ID" /> <field from-name="REC_ELEM_ID" to-name="PYT_ZES_ID" /> <field from-name="TRESC" to-name="TRESC" /> <primary-key> <field name="REC_ID" /> <field name="REC_ELEM_ID" /> </primary-key> <dependencies> <table name="MV_PRACE_CERT" /> <table name="MV_OSOBY" /> </dependencies> </table>

<table from-name="MV_REC_ZESTAWY_JEDNOSTEK" to-name="zestawy_jednostek"> <field from-name="JED_ORG_KOD" to-name="JED_ORG_KOD" /> <field from-name="REC_ZEST_KOD" to-name="ZESTAW" /> <primary-key> <field name="JED_ORG_KOD" /> </primary-key> <dependencies> <table name="MV_JEDNOSTKI_ORGANIZACYJNE" /> <table name="MV_REC_ZESTAWY" /> </dependencies> </table>

<table from-name="MV_CZLONEK_KOMISJI" to-name="CZLONEK_KOMISJI"> <field from-name="OS_ID" to-name="OS_ID" /> <field from-name="KOMI_ID" to-name="KOMI_ID" /> <field from-name="FUNKK_ID" to-name="FUNKK_ID" />

<primary-key> <field name="OS_ID" /> <field name="KOMI_ID" /> </primary-key> <dependencies> <table name="MV_OSOBY" /> <table name="MV_FUNKCJE_W_KOMISJI" /> </dependencies> </table>

<table from-name="MV_FUNKCJE_W_KOMISJI" to-name="FUNKCJE_W_KOMISJI"> <field from-name="ID" to-name="ID" /> <field from-name="NAZWA" to-name="NAZWA" />

<primary-key> <field name="ID" /> </primary-key> <dependencies> <table name="MV_JEDNOSTKI_ORGANIZACYJNE" /> </dependencies> </table>

<table from-name="MV_OSOBY" to-name="OSOBY"> <field from-name="ID" to-name="ID" /> <field from-name="PESEL" to-name="PESEL" /> <field from-name="IMIE" to-name="IMIE" /> <field from-name="IMIE2" to-name="IMIE2" /> <field from-name="NAZWISKO" to-name="NAZWISKO" /> <field from-name="EMAIL" to-name="EMAIL" /> <field from-name="WWW" to-name="WWW" /> <field from-name="TYTUL_PRZED" to-name="TYTUL_PRZED" /> <field from-name="TYTUL_PO" to-name="TYTUL_PO" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> </dependencies> </table>

49

<table from-name="MV_TYTULY" to-name="TYTULY"> <field from-name="ID" to-name="ID" /> <field from-name="NAZWA" to-name="NAZWA" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> </dependencies> </table> <table from-name="MV_STUDENCI" to-name="STUDENCI"> <field from-name="ID" to-name="ID" /> <field from-name="OS_ID" to-name="OS_ID" /> <field from-name="JED_ORG_KOD" to-name="JED_ORG_KOD" /> <field from-name="INDEKS" to-name="INDEKS" /> <field from-name="INDEKS_GLOWNY" to-name="INDEKS_GLOWNY" />

<primary-key> <field name="ID" /> </primary-key> <dependencies> <table name="MV_OSOBY" />

<table name="MV_JEDNOSTKI_ORGANIZACYJNE" /> </dependencies> </table> <table from-name="MV_KONTA" to-name="KONTA"> <field from-name="OS_ID" to-name="OS_ID" /> <field from-name="HASLO" to-name="HASLO" /> <field from-name="CZY_AKTUALNE" to-name="CZY_AKTUALNE" /> <field from-name="LOGOWANIE_TYP" to-name="LOGOWANIE_TYP" /> <field from-name="LOGIN" to-name="LOGIN" /> <cond field-name="INST_WWW_KOD">

<value>@INST_WWW_KOD@</value></cond>

<primary-key> <field name="OS_ID" /> </primary-key> <dependencies> <table name="MV_OSOBY" /> </dependencies> </table>

<table from-name="MV_KIERUNKI_STUDIOW" to-name="KIERUNKI_STUDIOW"> <field from-name="KOD" to-name="KOD" /> <field from-name="OPIS" to-name="OPIS_PL" /> <field from-name="DESCRIPTION" to-name="OPIS_EN" /> <primary-key> <field name="KOD" /> </primary-key> <dependencies> </dependencies> </table>

<table from-name="MV_KODY_SOKRATES" to-name="KODY_SOKRATES"> <field from-name="KOD" to-name="KOD" /> <field from-name="OPIS" to-name="OPIS_PL" /> <field from-name="DESCRIPTION" to-name="OPIS_EN" /> <primary-key> <field name="KOD" /> </primary-key> <dependencies> </dependencies> </table> <table from-name="MV_JEDNOSTKI_ORGANIZACYJNE" to-name="JEDNOSTKI_ORGANIZACYJNE"> <field from-name="KOD" to-name="KOD" /> <field from-name="JED_ORG_KOD" to-name="JED_ORG_KOD" /> <field from-name="OPIS" to-name="OPIS_PL" /> <field from-name="OPIS_ANG" to-name="OPIS_EN" /> <field from-name="SKROT_NAZWY" to-name="SKROT_NAZWY" /> <cond field-name="CZY_DYDAKTYCZNA">

<value>T</value></cond>

50

<primary-key> <field name="KOD" /> </primary-key> <dependencies> </dependencies> </table>

<table from-name="MV_PRZEDMIOTY" to-name="PRZEDMIOTY"> <field from-name="KOD" to-name="KOD" />

<field from-name="JED_ORG_KOD" to-name="JED_ORG_KOD" /> <field from-name="NAZWA" to-name="NAZWA_PL" /> <field from-name="NAME" to-name="NAZWA_EN" /> <primary-key> <field name="KOD" /> </primary-key> <dependencies> <table name="MV_JEDNOSTKI_ORGANIZACYJNE" /> </dependencies> </table>

<table from-name="MV_TYPY_CERTYFIKATOW" to-name="TYPY_CERTYFIKATOW"> <field from-name="KOD" to-name="KOD" /> <field from-name="OPIS" to-name="OPIS_PL" /> <primary-key> <field name="KOD" /> </primary-key> <dependencies> </dependencies> </table>

<table from-name="MV_EGZAMINY_CERT" to-name="EGZAMINY_CERT"> <field from-name="ID" to-name="ID" /> <field from-name="TYP_CERT_KOD" to-name="TYP_CERT_KOD" /> <field from-name="PRG_KOD" to-name="PRG_KOD" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> <table name="MV_TYPY_CERTYFIKATOW" /> </dependencies> </table>

<table from-name="MV_PRACE_CERT" to-name="PRACE_CERT"> <field from-name="ID" to-name="ID" /> <field from-name="PRZ_KOD" to-name="PRZ_KOD" /> <field from-name="KOD_SOK" to-name="KOD_SOK" /> <field from-name="JED_ORG_KOD" to-name="JED_ORG_KOD" /> <field from-name="TYTUL" to-name="TYTUL" /> <field from-name="TYTUL_ANG" to-name="TYTUL_EN" /> <field from-name="DATA_ZLOZENIA" to-name="DATA_ZLOZENIA" /> <field from-name="DATA_ZATW_TEMATU" to-name="DATA_ZATW_TEMATU" /> <field from-name="SLOWA_KLUCZOWE" to-name="SLOWA_KLUCZOWE" /> <field from-name="STRESZCZENIE" to-name="STRESZCZENIE" /> <field from-name="STATUS_ARCH" to-name="STATUS_ARCH" /> <field from-name="STATUS_ZMIAN" to-name="STATUS_ZMIAN" /> <primary-key> <field name="ID" /> </primary-key> <dependencies> <table name="MV_JEDNOSTKI_ORGANIZACYJNE" /> <table name="MV_PRZEDMIOTY" /> </dependencies> </table> <table from-name="MV_OPIEKUNOWIE_PRAC" to-name="OPIEKUNOWIE_PRAC"> <field from-name="CERT_ID" to-name="CERT_ID" /> <field from-name="OS_ID" to-name="OS_ID" /> <primary-key> <field name="OS_ID" /> <field name="CERT_ID" /> </primary-key> <dependencies> <table name="MV_OSOBY" />

51

<table name="MV_PRACE_CERT" /> </dependencies> </table> <table from-name="MV_CERT_OSOB" to-name="CERT_OSOB"> <field from-name="OS_ID" to-name="OS_ID" /> <field from-name="PRC_CERT_ID" to-name="PRC_CERT_ID" /> <field from-name="EGZ_CERT_ID" to-name="EGZ_CERT_ID" /> <field from-name="KOMI_ID" to-name="KOMI_ID" /> <field from-name="DATA_EGZ" to-name="DATA_EGZ" /> <field from-name="KOMI2_ID" to-name="KOMI2_ID" /> <field from-name="DATA_EGZ2" to-name="DATA_EGZ2" /> <primary-key> <field name="OS_ID" /> <field name="PRC_CERT_ID" /> </primary-key> <dependencies> <table name="MV_KIERUNKI_STUDIOW" /> <table name="MV_OSOBY" /> </dependencies> </table>

<table from-name="MV_PROGRAMY" to-name="PROGRAMY"> <field from-name="KOD" to-name="KOD" /> <field from-name="TRYB_STUDIOW" to-name="TRYB_STUDIOW" /> <field from-name="RODZAJ_STUDIOW" to-name="RODZAJ_STUDIOW" /> <primary-key> <field name="KOD" /> </primary-key> <dependencies> </dependencies> </table>

</tables></mapping>

52

Dodatek C

ZARZĄDZENIE NR 8REKTORA UNIWERSYTETU WARSZAWSKIEGO

z dnia 31 sierpnia 2004 r. w sprawie prowadzenia Księgi Dyplomów i archiwizacji prac dyplomowych

(z uwzględnieniem zmian w zarządzeniu nr 16 Rektora Uniwersytetu Warszawskiegoz dnia 18 maja 2006 r.)

Na podstawie rozporządzenia Ministra Edukacji Narodowej z dnia 20 września 2000 r. wsprawie dokumentacji przebiegu studiów (Dz. U. z 2000 r. Nr 81 poz. 907 z późn. zm.)zarządza się, co następuje:

§ 1

Księga Dyplomów

1. Biuro Spraw Studenckich UW prowadzi Księgę Dyplomów, będącą spisemwszystkich dyplomów magistra i licencjata wydanych w jednostkach organizacyjnychUW, w których powstają prace dyplomowe (zwanych dalej jednostkamidydaktycznymi).

2. Księga Dyplomów zawiera następujące dane:- dane osobowe studenta (w tym numer PESEL),- numer albumu studenta,- datę rozpoczęcia studiów na kierunku (programie) prowadzącym do uzyskanegodyplomu,- dane jednostki dydaktycznej wydającej dyplom,- kierunek studiów i specjalność,- datę złożenia egzaminu dyplomowego,- datę wygaśnięcia praw studenckich (data zakończenia studiów),- numer dyplomu,- uzyskany tytuł zawodowy,- datę wydania dyplomu i ewentualnie jego duplikatu lub sprostowania,- datę wydania suplementu do dyplomu.

3. Księga Dyplomów jest drukowana na podstawie Elektronicznej Księgi Dyplomów, októrej mowa w § 2.

§ 2

Elektroniczna Księga Dyplomów

1. Jednostki dydaktyczne wprowadzają dane do Elektronicznej Księgi Dyplomów,wchodzącej w skład Uniwersyteckiego Systemu Obsługi Studiów (USOS).

2. Elektroniczna Księga Dyplomów zawiera dane wymienione w § 1 ust. 2 orazponadto:- tytuł pracy,

53

- kod dziedziny pracy w standardzie Socrates-Erasmus,- datę zatwierdzenia tematu pracy,- imię, nazwisko i nazwę jednostki zatrudniającej kierującego pracą,- rodzaj dyplomu (licencjacki lub magisterski), o który ubiega się student,- datę złożenia pracy, jej krótkie streszczenie i słowa kluczowe,- skład komisji egzaminu dyplomowego,- oceny uzyskane na egzaminie dyplomowym.

3. Dane, o których mowa w ust. 2, powinny być wprowadzane na bieżąco doElektronicznej Księgi Dyplomów.

§ 3

Składanie prac dyplomowych

1. Student jest zobowiązany do złożenia we właściwej jednostce dydaktycznej trzechjednakowych egzemplarzy pracy dyplomowej, podpisanych własnoręcznie przezstudenta i kierującego pracą, oraz elektronicznej wersji pracy z plikiem, z któregodokonano wydruku.

2. Strona tytułowa pracy, strona z oświadczeniami studenta i kierującego pracą orazstrona zawierająca: streszczenie, określenie dziedziny pracy, klasyfikację tematycznąoraz tytuł pracy w języku angielskim są wykonywane wg wzoru stanowiącegozałącznik nr 1 do niniejszego zarządzenia.

§ 4

Archiwum elektronicznych wersji prac dyplomowych

1. Archiwizację elektronicznych wersji prac dyplomowych prowadzi Dział SieciKomputerowych (DSK) zgodnie z procedurą opisaną w załączniku nr 3 doniniejszego zarządzenia.

2. Jednostka dydaktyczna przekazuje elektroniczną wersję pracy, o której mowa w § 3ust. 1 niniejszego zarządzenia, do DSK, bezzwłocznie po złożeniu przez studentapracy dyplomowej.

3. DSK odnotowuje w USOS fakt zarchiwizowania elektronicznej wersji pracy. 4. Jednostka dydaktyczna potwierdza w Karcie Pracy Dyplomowej (pieczęcią i

podpisem) dokonaną archiwizację pracy. 5. Karta Pracy Dyplomowej stanowi załącznik do protokołu egzaminu dyplomowego.

Jej wzór zawiera załącznik nr 2 do niniejszego zarządzenia.

§ 5

Wystawienie dyplomu

1. Dyplom wystawia jednostka dydaktyczna na podstawie danych zawartych wElektronicznej Księdze Dyplomów.

2. Podstawą do podpisania dyplomu przez Rektora są następujące dokumenty:a) Protokół z egzaminu dyplomowego,b) Karta Pracy Dyplomowej z potwierdzeniem faktu zarchiwizowania elektronicznej

54

wersji pracy.

§ 6

Szczegółowy opis zasad prowadzenia Księgi Dyplomów i Elektronicznej Księgi Dyplomówzawiera załącznik nr 4 do niniejszego zarządzenia.

§ 7

Księgi dyplomów prowadzone w jednostkach dydaktycznych zostają zamknięte z dniem 30września 2004 r.

§ 8

Zarządzenie wchodzi w życie z dniem 1 października 2004 r.Rektor

Uniwersytetu Warszawskiego

prof. dr hab. Piotr Węgleński

55

Dodatek D

Import danych z istniejącego archiwum

Aktualnie istnieje archiwum na Uniwersytecie Warszawskim, które zawiera ponad 13000prac dyplomowych. Dlatego też powstał skrypt napisany w języku Perl, który importuje dobazy danych MySQL informacje o już zarchiwizowanych plikach. Aktualnie dane te sązapisane w jednej tabeli metryczka. Jest ona pewnego rodzaju spłaszczeniem struktury bazydanych APD, w której między innymi zamiast tabeli pliki zapisany jest katalog, w którymumieszczono pliki dołączone do pracy.

Procedura importu danych o plikach wygląda następująco:– dodanie tabeli metryczka do bazy APD (wraz zawartością),– zbudowanie tabeli metryczka_apd, z danych APD (na wzór tabeli metryczka),– jednoczesne przejście po obu tabelach, z próbą dopasowywania prac,– dla dopasowanych prac, odczytujemy wszystkie pliki z danego katalogu, kopiujemy do

nowego katalogu i wpisujemy informacje do tabeli pliki (dzięki temu mając odpowiednieuprawnienia będzie można pobrać zarchiwizowane pliki ze strony zawierającejinformacje o pracy).

Najbardziej istotnym etapem jest samo dopasowywanie prac, które polega najednoczesnym przejściu po rekordach dwóch tabel, posortowanych po wartościach PESEL,a w zakresie tych samych wartości PESEL (bo dyplomant może mieć więcej niż jedną pracę)po roku złożenia pracy. Z archiwizowane pliki będą podpinane automatycznie do prac, jeślizgadzają się wartości PESEL oraz z określoną wartością PESEL:– w jednej i drugiej bazie jest połączona tylko jedna praca,– istnieje praca w drugiej bazie, która ma identyczny temat,– istnieje praca w drugiej bazie, która była złożona w tym samym roku i wiązała się

z uzyskaniem tego samego typu certyfikatu.Po takim dopasowaniu każda praca dyplomowa zostanie powielona do jednej z trzech tabel,odpowiednio:– dopasowane – prace, którym udało się znaleźć odpowiednika w drugiej bazie (dla takich

prac będzie zapisana informacja o zarchiwizowanych plikach),– nieznane_apd – prace występujące w APD, którym nie znaleziono odpowiednika

w aktualnym systemie archiwizacji,– nieznane_ciuw – prace występujące w aktualnym archiwum, których nie udało się

dopasować do danych pochodzących z systemu USOS.Po obejrzeniu wyników i sprawdzeniu poprawności importu należy usunąć tabeletymczasowe, powstałe na potrzeby wykonania skryptu oraz usunąć stare archiwum plików.

56

Bibliografia

[Apache] – Serwer HTTP, http://www.apache.org/ [CGI] – (Dynamic Content with CGI) dokumentacja pisania skryptów wykonywanych

przez serwer Apache http://httpd.apache.org/docs/2.0/howto/cgi.html[DBDesigner] – (Visual database designer for MySQL) Program wykorzystany

do stworzenia rysunku zawierającego schemat bazy oraz wygenerowania skryptudo zakładania tabel w bazie danych MySQL, http://www.fabforce.net/dbdesigner4/

[Dz.U.00.81.907] – Rozporządzenie Ministra Edukacji Narodowej z dnia 20 września2000 r. w sprawie dokumentacji przebiegu studiów.

[Dyplomant] – System wspomagający proces składania prac dyplomowych i ułatwiającykomunikację pomiędzy poszczególnymi osobami, http://dyplomant.ia.agh.edu.pl/

[FPDF] – Darmowa biblioteka PHP do generowania plików w formacie PDF,http://www.fpdf.org

[IAPD] – Internetowe Archiwum Prac Dyplomowowych złożonych na Wyższej SzkoleInformatyki i Zarządzania w Bielsko-Białej http://prace.wsi.edu.pl/

[Migrator] – R. Cieplak, Uniwersytecki System Obsługi Studiów Migracja danych, Pracamagisterska, Instytut Informatyki Uniwersytetu Warszawskiego, 2004

[MySQL] – Serwer bazy danych, http://www.mysql.com/[Open Office] – Pakiet narzędzi biurowych, (Word Processor) edytor dokumentów

tekstowych typu WYSWYG, http://openoffice.pl/[Perl] – Język skryptowy, wykorzystany do napisania skryptu CGI, niezbędnego do

wyświetlaniu statusu transmisji pliku na serwer, http://www.perl.com/[PHP] – (Personal Home Page) Język programowania, http://www.php.net/[Poseidon] – Narzędzie do modelowania diagramów UML, posłużył do wygenerowania

rysunków w niniejszej pracy http://gentleware.com/[Quanta Plus] – (Web development environment) Edytor tekstu, wykorzystany do pisania

kodu źródłowego, http://quanta.kdewebdev.org/[RFC 1806]- The Content-Disposition Header, opis nagłówków HTTP, jakie powinny

być ustawione przed wysłaniem pliku, http://rfc.sunsite.dk/rfc/rfc1806.html[Smarty] – (Template engine) biblioteka PHP do obsługi szablonów, wykorzystana do

tworzenia wszystkich stron serwowanych przez APD, http://smarty.php.net/[USOS]– Uniwersytecki System Obsługi Studiów, http://usos.mimuw.edu.pl/[USOSweb] – Internetowy moduł USOS, np. http://usosweb.mimuw.edu.pl[ZarzNr8] – Zarządzenie nr 8 Rektora Uniwersytetu Warszawskiego z dnia 31 sierpnia

2004 r. w sprawie prowadzenia Księgi Dyplomów i archiwizacji prac dyplomowych(patrz dodatek B).

57