Politechnika Częstochowska. Projektowanie systemów użytkowych II



Podobne dokumenty
Archiwum Prac Dyplomowych.

Archiwum Prac Dyplomowych.

ARCHIWUM PRAC DYPLOMOWYCH

Archiwum Prac Dyplomowych

Baza danych do przechowywania użytkowników

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Instrukcja użytkownika OPERATORA Akademickiego Systemu Archiwizacji Prac

Internetowy system administrowania pracami dyplomowymi na Politechnice Opolskiej. Instrukcja dla studenta.

Instrukcja użytkownika OPERATORA Akademickiego Systemu Archiwizacji Prac

Wykład 05 Bazy danych

ADMINISTRATOR SZKOŁY. Instrukcja użytkownika portalu

APD Instrukcja użytkownika

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Język SQL, zajęcia nr 1

Instrukcja dodawania monografii e_monografii

SUPLEMENT DO DYPLOMU

Instrukcja Użytkownika Nauczyciel Akademicki Akademickiego Systemu Archiwizacji Prac w Uniwersytecie Papieskim Jana Pawła II w Krakowie

Internetowy system administrowania pracami dyplomowymi na Politechnice Opolskiej. Instrukcja dla studenta.

Instrukcja obsługi dla Wnioskodawcy

Instrukcja rejestrowania pracy dyplomowej w Archiwum Prac Dyplomowych przez studenta

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

INSTRUKCJA REJESTRACJI ORGANIZACJI W GENERATORZE WNIOSKÓW APLIKACYJNYCH SI NAWIKUS

Instrukcja korzystania z konta

Logowanie do Archiwum Prac Dyplomowych

Instrukcja rejestracji organizacji w podsystemie. Generator Wniosków Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS

Sprawdzenie i ocena pracy z wykorzystaniem Archiwum Prac Dyplomowych

Serwis e-ppp - instrukcja użytkowania

Instrukcja wypełniania wniosku on-line - konkurs grantowy Na dobry początek!

Archiwum Prac Dyplomowych

Bazy danych. Polecenia SQL

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Instrukcja użytkownika STUDENTA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

Instrukcja rejestracji organizacji w podsystemie Generator Wniosko w Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS

Archiwum Prac Dyplomowych

Instrukcja rejestrowania pracy dyplomowej w Archiwum Prac Dyplomowych przez studenta

ARCHIWUM PRAC DYPLOMOWYCH

Biblioteki publiczne

Archiwum Prac Dyplomowych Instrukcja dla studentów

Instrukcja Użytkownika (Nauczyciel Akademicki) Akademickiego Systemu Archiwizacji Prac

Archiwum Prac Dyplomowych

Wykład 5. SQL praca z tabelami 2

Archiwum Prac Dyplomowych.

Instrukcja rejestrowania pracy dyplomowej w Archiwum Prac Dyplomowych przez promotora i recenzenta

KatMPBSoft - 1 -

Styczeń 2017 QVX. System dziekanatowy instrukcja dla. studentów. Just dream IT, we do the rest. Instrukcja do systemu dziekanatowego dla studentów.

Instrukcja obsługi Uczeń. Spis Treści

Instrukcja użytkownika NAUCZYCIELA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

INSTRUKCJA zakładania konta w Społecznoś ci CEO

Procedura krok po kroku umożlwiająca logowanie kontem MCL w POL-on (dla aktualnych użytkowników POL-on) Rejestracja nowego użytkownika w systemie MCL

OBSŁUGA PRACY DYPLOMOWEJ W APD PRZEZ RECENZENTA

INSTRUKCJA zakładania konta w Społeczności CEO

Instrukcja rejestrowania pracy dyplomowej w Archiwum Prac Dyplomowych przez promotora i recenzenta

Instrukcja Użytkownika (Studenta) Akademickiego Systemu Archiwizacji Prac

Instrukcja stosowania platformy internetowej "Szkoła praktycznej ekonomii - młodzieżowe miniprzedsiębiorstwo" - zakładka Nauczyciel

Instrukcja procedowania pracy dyplomowej w systemie APD dla Promotora.

Archiwum Prac Dyplomowych

Archiwum Prac dyplomowych

Analiza antyplagiatowa prac dyplomowych w Uniwersyteciee Zielonogórskim w modułach StudNet, PracNet systemu Dziekanat oraz w systemie OSA.

Ewidencja Opłat za Korzystanie ze Środowiska

KONKURS Ostatnia Imię i nazwisko Zakres wprowadzanych zmian aktualizacja

Archiwum Prac Dyplomowych - Instrukcja rejestracji pracy dyplomowej dla studenta

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instrukcja obsługi pracy dyplomowej w APD - Archiwum Prac Dyplomowych dla promotora i recenzenta

Sprawdzenie i ocena pracy z wykorzystaniem Archiwum Prac Dyplomowych

Serwis jest dostępny w internecie pod adresem Rysunek 1: Strona startowa solidnego serwisu

Biblioteki publiczne

Data wydania: Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

APD. czyli Archiwum Prac Dyplomowych. Instrukcja użytkownika PROMOTOR I RECENZENT

INSTRUKCJA TWORZENIA I PRZESYŁANIA RAPORTU UWAGA! RAPORTY MOGĄ TWORZYĆ TYLKO UCZNIOWIE

Archiwum Prac Dyplomowych

1. Logowanie do systemu

INSTRUKCJA DLA STUDENTÓW. Logowanie do systemu

Dokumentacja użytkownika systemu Dzieciaki Mazowsza

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Dokumentacja użytkownika E-działania - POLCHAR

Sprawdzenie i ocena pracy z wykorzystaniem Archiwum Prac Dyplomowych

MODUŁ PRAKTYK W ISAPS 3.0 INFORMACJA DLA STUDENTA

Instalacja systemu zarządzania treścią (CMS): Joomla

Instrukcja obsługi dziennika elektronicznego dla trenerów uczestniczących. w ogólnopolskim projekcie MultiSport. Luty 2015 r.

Sprawdzenie i ocena pracy z wykorzystaniem Archiwum Prac Dyplomowych

Instrukcja użytkownika STUDENTA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC


1. Doradcy Logowanie i Pulpit Mój profil Moje kwalifikacje Moi klienci Szczegóły klientów...

APLIKACJA KONKURSOWA INSTRUKCJA UŻYTKOWNIKA

INSTRUKCJA UŻYTKOWNIKA

INSTRUKCJA UŻYTKOWNIKA SYSTEMU E-ZGŁOSZENIA

Koniński Dom Kultury (KDK) Instrukcja dla użytkowników IRKA

Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy

Instalacja MySQL.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Instrukcja użytkownika WYKŁADOWCY AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

Platforma e-learningowa

ARCHIWUM PRAC DYPLOMOWYCH

System epon Dokumentacja użytkownika

Instrukcja rejestrowania pracy dyplomowej w Archiwum Prac Dyplomowych przez studenta

FedEx efaktura Instrukcja Użytkownika

Instrukcja. Systemu Obsługi Praktyk -Moduł Student UNIWERSYTET MARII CURIE-SKŁODOWSKIEJ W LUBLINIE

Instrukcja dla Uczelnianego Administratora Systemu Antyplagiatowego Plagiat.pl

Transkrypt:

Politechnika Częstochowska Wydział Inżynierii Mechanicznej i Informatyki Projektowanie systemów użytkowych II Zdalny wybór Prac Dyplomowych Diana Kisiała Tomasz Jewiarz Jacek Kucharzewski Informatyka, gr.i rok V Częstochowa 2006/2007

Założenia systemu Celem projektu jest zbudowanie aplikacji internetowej pozwalającej na zdalny wybór tematów prac dyplomowych oraz zdalną komunikację Student Promotor. System powinien pozwalać: Studentowi na: o Założenie własnego konta o Przeglądanie listy promotorów wraz z propozycją ich tematów o Rezerwowanie wybranego tematu o Komunikację z promotorem z interfejsu serwisu Promotorowi na : o Dodawanie oraz edycje tematów prac dyplomowych o Edycję swoich danych o Komunikację ze studentem z interfejsu serwisu o Dodawanie i edycję terminów prac dyplomowych Dziekanatowi na : o Dodawanie i edycję kont ze szczególnym uwzględnieniem konta promotora o Aktywacja konta studenta 2

Przypadki użycia 3

Opis przypadków użycia: 1. Przypadek użycia: Logowanie 1.1. Opis Logowanie umożliwia użytkownikowi wejście do zaawansowanych funkcji systemu w zależności od praw jakie otrzyma może wykonywać różnego rodzaju operacje na swoim koncie. Z logowania korzystają wszyscy aktorzy w systemie : Dziekanat, Student i Promotor. 1.2. Przepływ zdarzeń Przypadek użycia rozpoczyna się w momencie gdy użytkownik otworzy stronę główną serwisu 1.2.1.1.System wyświetla pusty formularz z 2 polami do wypełnienia : login i hasło 1.2.1.2.Użytkownik uzupełnia login i hasło, a następnie wciska przycisk Zaloguj 1.2.1.3.System weryfikuje dane użytkownika i otwiera stronę z opcjami, z których może korzystać. 1.3. Specjalne wymagania Nie ma specjalnych wymagań 1.4. Warunki początkowe: Przed rozpoczęciem tego przypadku użycia użytkownik zarejestrował się w systemie. 1.5. Warunki końcowe Nie ma żadnych warunków końcowych 1.6. Rozszerzenia Nie ma żadnych rozszerzeń 2. Przypadek użycia : Przeglądanie tematów i promotorów 2.1. Opis: Ten przypadek użycia pozwala studentowi przeglądać propozycje tematów prac dyplomowych oferowanych przez promotorów. Z tego przypadku użycia korzysta aktor : Student 2.2. Przepływ zdarzeń Przypadek użycia rozpoczyna się w momencie gdy Student wybierze z menu opcję Promotorzy i Tematy prac dyplomowych 2.2.1. Tematy prac dyplomowych 2.2.1.1.Student wybiera opcję Promotorzy i Tematy prac dyplomowych 2.2.1.2.System odczytuje dostępną listę promotorów 2.2.1.3.Student wybiera z listy promotora 2.2.1.4.System odczytuje dostępną listę wolnych tematów dla wybranego promotora wraz z informacją o promotorze 2.2.1.5.System wyświetla informacje o wybranym temacie oraz opcję Zarezerwuj temat 2.2.1.6.Student wybiera Zarezerwuj temat 2.2.1.7.System zmienia status tematu z Wolny na Zajęty oraz wysyła wypełniony formularz do promotora z kopią do studenta. 2.3. Specjalne wymagania Nie ma żadnych wymagań. 2.4. Warunki początkowe: Przed rozpoczęciem tego przypadku użycia użytkownik zalogował się w systemie. 4

2.5. Warunki końcowe Nie ma żadnych warunków końcowych 2.6. Rozszerzenia Nie ma żadnych rozszerzeń 3. Przypadek użycia : Dodaj / edytuj temat 3.1. Opis: Ten przypadek użycia pozwala Promotorowi dodać lub edytować istniejący już temat prac dyplomowych. Z tego przypadku użyci korzysta Aktor: Promotor 3.2. Przepływ zdarzeń Przypadek użycia rozpoczyna się w momencie gdy Promotor wybierze z menu opcję Tematy prac dyplomowych 3.2.1. Tematy prac dyplomowych 3.2.1.1.Promotor wybiera opcję Tematy prac dyplomowych 3.2.1.2.System odczytuje dostępną listę tematów z możliwością ich edycji oraz opcją Dodaj nowy temat 3.2.1.3.Promotor wybiera opcję Dodaj nowy temat 3.2.1.4.System wyświetla formularz z następującymi polami do wypełniana : temat pracy, opis tematu. 3.2.1.5.Promotor wypełnia pola, a następnie wciska przycisk Zapisz 3.3. Przepływy alternatywne 3.3.1. Edytuj temat 3.3.1.1.Promotor wybiera opcję Tematy prac dyplomowych 3.3.1.2.System odczytuje dostępną listę tematów z możliwością ich edycji oraz opcją Dodaj nowy temat 3.3.1.3.Promotor wybiera opcję Edytuj temat 3.3.1.4.System wyświetla formularz z następującymi polami do edycji : temat pracy, opis tematu, dla ilu osób temat, specjalne wymagania. 3.3.1.5.Promotor edytuje pola, a następnie wciska przycisk Zapisz 3.4. Specjalne wymagania Promotor może edytować tylko temat, który nie ma statusu Zajęty 3.5. Warunki początkowe: Przed rozpoczęciem tego przypadku użycia użytkownik zalogował się w systemie. 3.6. Warunki końcowe Nie ma żadnych warunków końcowych 3.7. Rozszerzenia Nie ma żadnych rozszerzeń 5

6 Diagram Encji : STUDENT PK studentid Rok Index FK1 SpecjalnoscId Typ FK3 UzytkownicyId FK4 TematId SPECJALNOSC PK specjalnoscid Nazwa FK1 KierunekId TEMATY_PRAC PK tematid Temat Opis Status FK1 PromotorId Zaproponowany WYDZIAL PK wydzialid Nazwa INSTYTUT PK instytutid Nazwa FK1 WydzialId UZYTKOWNICY PK uzytkownikid FK1 RolaId Status Imie Nazwisko Email Login HAslo ROLE PK roleid Nazwa Promotor PK promotorid FK1 UzytkownikId FK2 InstytutId Tytul text OBRONA PK obronaid FK1 TematId Data WIADOMOSC PK wiadomosciid FK1 studentid FK2 PromotorId Tytul Tresc Data kierunek KIERUNEK PK kieerunekid Nazwa FK1 WydzialId

Opis tabel : ROLE Tabela przechowująca informację o rolach jakie użytkownicy mogą spełniać w systemie, na podstawie, których użytkownik dostaje odpowiednie prawa. Np. Dziekanat, Promotor czy Student Struktura tabeli: CREATE TABLE `role` ( `rolaid` int(11) unsigned NOT NULL auto_increment, `nazwa` char(20) default NULL, PRIMARY KEY (`rolaid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; UZYTKOWNICY Tabela zawiera informację o wszystkich użytkownikach systemie. Przechowuje takie dane jak : Imię, Nazwisko, Email, Login, Hasło, informację o tym czy użytkownik jest aktywny w systemie oraz jaką spełnia w nim rolę. Struktura tabeli: CREATE TABLE `uzytkownicy` ( `uzytkownikid` char(32) NOT NULL default '', `rolaid` int(4) default NULL, `imie` char(100) default NULL, `nazwisko` char(100) default NULL, `mail` char(100) default NULL, `login` char(100) default NULL, `haslo` char(100) default NULL, `status` char(1) default NULL, PRIMARY KEY (`uzytkownikid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; STUDENT Tabel ta przechowuje wszystkie informacje odnośnie studentów: Nr indexu, specjalność, typ studiów ( dzienne, zaoczne itp. ) Struktura tabeli: CREATE TABLE `student` ( `studentid` char(32) NOT NULL default '', `uzytkownikid` char(32) default NULL, `indeks` char(10) default NULL, `rok` int(4) default NULL, `wydzial` int(6) default NULL, `kierunek` int(6) default NULL, 7

`specjalnosc` int(6) default NULL, `typ` int(1) default NULL, `promotorid` char(32) default NULL, `tematid` char(32) default NULL, PRIMARY KEY (`studentid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; SPECJALNOSC Tabela przechowująca wszystkie specjalności na uczelni Struktura tabeli: CREATE TABLE `specjalnosc` ( `specjalnoscid` int(6) unsigned NOT NULL auto_increment, `kierunekid` int(6) default NULL, `nazwa` char(150) default NULL, PRIMARY KEY (`specjalnoscid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; KIERUNEK Tabela przechowująca wszystkie kierunki studiów Struktura tabeli: CREATE TABLE `kierunek` ( `kierunekid` int(6) unsigned NOT NULL auto_increment, `wydzialid` int(6) default NULL, `nazwa` char(150) default NULL, PRIMARY KEY (`kierunekid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; WYDZIAL Tabela przechowująca listę wydziałów na uczelni Struktura tabeli: CREATE TABLE `wydzial` ( `wydzialid` int(6) unsigned NOT NULL auto_increment, `nazwa` char(150) default NULL, PRIMARY KEY (`wydzialid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; INSTYTUT Tabela przechowująca wszystkie instytuty na uczelni Struktura tabeli: 8

CREATE TABLE `instytut` ( `instytutid` int(6) unsigned NOT NULL auto_increment, `wydzialid` int(6) default NULL, `nazwa` char(150) default NULL, PRIMARY KEY (`instytutid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ; PROMOTOR Tabela zawierająca informację o promotorze tytuł naukowy, krótką informację oraz instytut, w którym pracuje Struktura tabeli: CREATE TABLE `promotor` ( `promotorid` varchar(32) NOT NULL default '', `uzytkownikid` varchar(32) default NULL, `wydzial` int(6) default NULL, `instytut` int(6) default NULL, `tytul` varchar(25) default NULL, `info` text, PRIMARY KEY (`promotorid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; WIADOMOSC Tabela przechowująca wszystkie wiadomości jakie zostały przesłane między użytkownikami. Struktura tabeli: CREATE TABLE `wiadomosc` ( `wiadomoscid` int(11) unsigned NOT NULL auto_increment, `studentid` varchar(32) default NULL, `promotorid` varchar(32) default NULL, `tytul` varchar(150) default NULL, `tresc` text, `kierunek` tinyint(1) default NULL COMMENT '0 - student 1- promotor', `data` varchar(11) default NULL, PRIMARY KEY (`wiadomoscid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; TEMAT_PRAC Tabela przechowująca informację o tematach prac dyplomowych. Zawiera : temat pracy, krótki opis, promotora tematu oraz czy temat jest jeszcze wolny. 9

Struktura tabeli: CREATE TABLE `temat` ( `tematid` int(11) unsigned NOT NULL auto_increment, `temat` varchar(255) default NULL, `opis` text, `status` char(1) default NULL, `promotorid` varchar(32) default NULL, `zaproponowany` varchar(32) default NULL, PRIMARY KEY (`tematid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; OBRONA Tabela zawierająca informację o terminach obrony prac dyplomowych. Struktura tabeli: CREATE TABLE `obrona` ( `obronaid` int(11) unsigned NOT NULL auto_increment, `tematid` int(11) default NULL, `data` date default NULL, PRIMARY KEY (`obronaid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; 10

Diagramy czynności: Logowanie: Rys. 1. Diagram czynności - Logowanie 11

Rejestracja studenta : Rys. 2. Diagram czynności Rejestracja Studenta 12

Aktywacja konta Studenta przez administratora: Rys. 3. Diagram czynności Aktywacja konta Studenta 13

Wybór tematu pracy: Rys. 4. Diagram czynności wybór tematu pracy dyplomowej 14

Diagramy komunikacji Zarządzanie wiadomościami: Rys. 6. Diagram komunikacji wybór tematu pracy dyplomowej Proponowanie tematu przez Studenta: Rys. 7. Diagram komunikacji propozycja tematu 15

Realizacja Serwisu: Strona główna: Po wejściu na stronę główną serwisu pojawia się panel logowania, pozwalający na wejście w zaawansowane funkcje serwisu. Rys.8. Panel główny serwisu Dodatkowo, każdy użytkownik niezarejestrowany może dokonać rejestracji wybierając opcję Rejestracja Po wybraniu tej opcji wyświetla się formularz rejestracyjny, który należy wypełnić pola, a następnie wybrać Zarejestruj. Aby można było się zalogować na swoje konto, należy udać się do Dziekanatu w celu weryfikacji danych oraz aktywacji konta. Rejestracja : Rys.9. Formularz rejestracyjny dla Studenta 16

Panel dziekanatu: Panel ten pozwala na zarządzanie Studentami oraz Promotorami. Zarządzanie Studentami : Rys.10. Panel główny Dziekanatu Po wybraniu z menu opcji Studenci wyświetla się lista wszystkich zarejestrowanych studentów. Użytkownik Dziekanat może aktywować nowo powstałe konto oraz usunąć konto nieaktywne z różnych przyczyn : np. dane studenta są niezgodne z prawdą, student nie zgłosił się w przeciągu 7 dni z prośbą o aktywację konta itp. Lista Studentów : Rys.11. Lista studentów 17

Jedną z głównych funkcji Dziekanatu jest rejestracja nowych Promotorów oraz zarządzanie już istniejącymi. Zarządzanie Promotorami : Rys. 12. Zarządzanie promotorami W celu rejestracji nowego promotora należy wybrać opcję Promotorzy, a następnie Dodaj promotora. Następnie wypełnić formularz i wybrać opcję Zarejestruj Dodawanie nowego Promotora : Rys. 13. Formularz do rejestracji nowego Promotora 18

Po rejestracji nowy Promotor pojawi się na Liście Promotorów : Lista Promotorów : Rys. 14. Lista promotorów 19

Konto Promotora : Każdy Promotor po zalogowaniu się na swoje konto może : Przejrzeć listę Studentów piszących u niego pracę Zmienić swoje dane Wysłać wiadomość do swoich Studentów Dodać nowy temat Pracy Dyplomowej Przyjąć oraz zatwierdzić temat przysłany przez Studenta Rys.15. Panel główny Promotora Zarządzanie tematami : Każdy Promotor może edytować swoje tematy prac dyplomowych. W tym celu należy wybrać opcję Prace dyplomowe, a następnie pojawi się Panel, w którym można dodać nową propozycję tematu, wyświetlić tematy tuż istniejące oraz zedytować je. Tematy posortowane są według następujących kategorii : Aktualne czyli wszystkie te, które są w trakcie pisania przez Studentów Moje propozycje czyli propozycje tematów Promotora Propozycje studentów czyli wszystkie propozycje tematów przyslane przez Studentów, które może zatwierdzić bądź odrzucić Archiwum czyli wszystkie tematy po obronie. 20

Rys.16. dodawanie nowego tematu. Dodawanie daty obrony : W momencie zatwierdzenia daty obrony pracy dyplomowej Promotor może wprowadzić termin w panelu. Rys.17. Dodawanie terminu obrony pracy 21

Panel wiadomości : Jedną z ważniejszych opcji panelu jest możliwość komunikacji pomiędzy Studentem a Promotorem. Panel Wiadomości pozwala na wysłanie wiadomości do pojedynczego Studenta z listy Studentów, którzy są zapisani do danego Promotora. Aby przejrzeć listę wiadomości należy wybrać opcję Wiadomości. Następnie z wybieralnych list można wybrać następujące opcje : Wiadomości odebrane Wiadomości wysłane Wiadomości od konkretnego Studenta lub wszystkich Studentów Rys.18. Obsługa wiadomości 22

Panel Studenta : Student po rejestracji i aktywacji swojego konta, może się zalogować do swojego panelu, w którym jako pierwszą z opcji, która może wybrać, pojawi się możliwość wybrania promotora oraz tematu pracy. Rys. 19. Panel główny Studenta Wybór tematu: Aby wybrać temat należy wybrać opcję Wybierz promotora oraz temat pracy dyplomowej. Następnie pojawi się panel,w którym można przejrzeć wszystkie wolne tematy wybranych promotorów. Każdy temat zawiera krótki opis czego dotyczy oraz opcję Zarezerwuj. Jeżeli Student posiada swój własny temat, który chce zaproponować wybranemu Promotorowi może wybrać opcję Zaproponuje własny temat, a następnie wprowadzić wszystkie potrzebne informacje: temat, opis oraz wysłać do Promotora. 23

Rys. 20. Lista tematów Panel Studenta po wyborze tematu : Po wybraniu tematu w panelu Studenta pojawiają się nowa opcja: możliwość wysyłania i odbierania wiadomości do swojego Promotora. Rys. 21. Wiadomości 24

Przykład rozwiązania Klasa do obsługi Tematów: <?PHP /**yo4cms Zdalny system wyboru pracy dyplomowej * @author Tomasz Jewiarz Diana Kisiała Jacek Kucharzewski * @version 1.0 */ /**Temat klasa sluzaca do zarzadzania tematem pracy * */ class Temat { var $DB; var $temat; /**Page(&$DB) * Konstruktor * @param &$DB - wskaznik na obiekt polaczenia z baza danych */ function Temat(&$DB) { $this->db = &$DB; $this->temat=array(); /**listatematow($idpromotor) * Tworzy tablice z informacjami o tematach proponowanych przez promotora * @param $idpromotor */ function listatematow($idpromotor){ $i=0; $sql="select * FROM ".TABDB_TEMAT." WHERE promotorid like '".$idpromotor."' AND status like 'p' AND zaproponowany is null ORDER BY temat ASC"; $l=0; $wynik = $this->db->query($sql); while($wiersz = $wynik- >fetchrow(db_fetchmode_assoc)){ $this->temat[$l]['tematid']=$wiersz['tematid']; $this->temat[$l]['temat']=$wiersz['temat']; $this->temat[$l]['opis']=$wiersz['opis']; $this->temat[$l]['promotorid']=$idpromotor; $l++; 25

/**listatematow2($idpromotor,$status) * Tworzy tablice z informacjami o tematach przypisanych do promotora * z wyroznieniem na status tematu * @param $idpromotor * @param $status 0 - temat realizowany * 1 - temat proponowany przez promotora * 2 - temat proponowany przez studenta * 3 - tamat archiwalny */ function listatematow2($idpromotor,$status){ $i=0; switch($status){ case '0':$status='z';break; case '1':$status='p';break; case '2':$status='s';break; case '3':$status='a';break; if($status=='z' or $status=='s'){ $q=""; else{ $q=" AND zaproponowany is null "; $sql="select * FROM ".TABDB_TEMAT." WHERE promotorid like '".$idpromotor."' AND status like '".$status."' ".$q." ORDER BY temat ASC"; $l=0; $wynik = $this->db->query($sql); while($wiersz = $wynik- >fetchrow(db_fetchmode_assoc)){ $this->temat[$l]['tematid']=$wiersz['tematid']; $this->temat[$l]['temat']=$wiersz['temat']; $this->temat[$l]['opis']=$wiersz['opis']; $this->temat[$l]['promotorid']=$idpromotor; if($status=='z' or $status=='a' or $status=='s'){ $sql2="select * FROM ".TABDB_STUDENT." a, ".TABDB_UZYTKOWNICY." b WHERE tematid like '".$wiersz['tematid']."' AND a.uzytkownikid like b.uzytkownikid";//echo $sql; $wynik2 = $this->db->query($sql2); $wiersz2 = $wynik2- >fetchrow(db_fetchmode_assoc); 26

$this- >temat[$l]['studentid']=$wiersz2['studentid']; $this->temat[$l]['imie']=$wiersz2['imie']; $this- >temat[$l]['nazwisko']=$wiersz2['nazwisko']; $this->temat[$l]['rok']=$wiersz2['rok']; $data=$this->db->getone("select data FROM ".TABDB_OBRONA." WHERE tematid=".$wiersz['tematid'].""); if($data){ $this->temat[$l]['data']=$data; else{ $this->temat[$l]['data']='0000-00-00'; $l++; /**listamoichpropozycji($idstudent) * Tworzy liste propozycji tematow studenta * @param $idstudent * @return $l - ilosc propozycji studenta */ function listamoichpropozycji($idstudent){ $i=0; $sql="select * FROM ".TABDB_TEMAT." a, ".TABDB_PROMOTOR." b, ".TABDB_UZYTKOWNICY." c WHERE a.promotorid like b.promotorid AND b.uzytkownikid like c.uzytkownikid AND a.status like 'p' AND a.zaproponowany like '".$idstudent."' ORDER BY a.temat ASC"; //echo $sql; $l=0; $wynik = $this->db->query($sql); while($wiersz = $wynik- >fetchrow(db_fetchmode_assoc)){ $this->temat[$l]['tematid']=$wiersz['tematid']; $this->temat[$l]['temat']=$wiersz['temat']; $this->temat[$l]['opis']=$wiersz['opis']; $this- >temat[$l]['promotorid']=$wiersz['promotorid']; $this->temat[$l]['promotor']=$wiersz['tytul'].' '.$wiersz['nazwisko'].' '.$wiersz['imie']; $this->temat[$l]['studentid']=$idstudent; $l++; return $l; 27

/**rezerwuj($idtemat,$idstudent,$idpromotor) * Rezerwuje temat pracy * @param $idtemat * @param $idstudent * @param $idpromotor * @return 1 - zarezerwowano 0 - nie zarezerwowano */ function rezerwuj($idtemat,$idstudent,$idpromotor){ $sql="select status FROM ".TABDB_TEMAT." WHERE tematid=".$idtemat.""; if('p'==$this->db->getone($sql)){ $this->db->query("update ".TABDB_TEMAT." SET status='z' WHERE tematid=".$idtemat.""); $this->db->query("update ".TABDB_STUDENT." SET promotorid =".$idpromotor.", tematid =".$idtemat." WHERE studentid like '".$idstudent."'"); return 1; else{ return 0; /**zglospropozycje($idstudent,$idpromotor,$tytul,$opis) * student zglasza propozycje tematu * @param $idstudent * @param $idpromotor * @param $tytul * @param $opis * @return 1 */ function zglospropozycje($idstudent,$idpromotor,$tytul,$opis){ $fields_values = array( 'temat' => securitytxt($tytul), 'opis' => securitytxt($opis), 'status' => 's', 'promotorid' => $idpromotor, 'zaproponowany' => $idstudent ); $this->db->autoexecute(tabdb_temat, $fields_values, DB_AUTOQUERY_INSERT); $sql="select tematid FROM ".TABDB_TEMAT." WHERE status like 's' AND zaproponowany like '".$idstudent."'"; $tematid=$this->db->getone($sql); $this->db->query("update ".TABDB_STUDENT." SET tematid =".$tematid." WHERE studentid like '".$idstudent."'"); return 1; 28

/**saveedit($idtemat,$tytul,$opis) * zapisuje zmiany tematu po edycji * @param $idtemat * @param $tytul * @param $opis * @return 1 */ function saveedit($idtemat,$tytul,$opis){ $fields_values = array( 'temat' => securitytxt($tytul), 'opis' => securitytxt($opis) ); $this->db->autoexecute(tabdb_temat, $fields_values, DB_AUTOQUERY_UPDATE,"tematId=".$idtemat); return 1; /**savenew($idpromotor,$tytul,$opis) * Dodanie nowego tematu przez promotora * @param $idpromotor * @param $tytul * @param $opis * @return 1 */ function savenew($idpromotor,$tytul,$opis){ $fields_values = array( 'temat' => securitytxt($tytul), 'opis' => securitytxt($opis), 'status' => 'p', 'promotorid' => $idpromotor ); $this->db->autoexecute(tabdb_temat, $fields_values, DB_AUTOQUERY_INSERT); return 1; /**delete($tematid) * Usuwa temat * @param $tematid * @return 1 */ function delete($tematid){ $this->db->query("delete FROM ".TABDB_TEMAT." WHERE tematid =".$tematid); return 1; /**savedata($tematid,$data) * zapisuje date obrony pracy 29

* @param $tematid * @param $data * @return 1 */ function savedata($tematid,$data){ $ile=$this->db->getone("select count(obronaid) FROM ".TABDB_OBRONA." WHERE tematid=".$tematid.""); if($ile==1){ $fields_values = array( 'data' => $data ); $this->db->autoexecute(tabdb_obrona, $fields_values, DB_AUTOQUERY_UPDATE,"tematId=".$tematId); elseif($ile==0){ $fields_values = array( 'tematid' => $tematid, 'data' => $data ); $this->db->autoexecute(tabdb_obrona, $fields_values, DB_AUTOQUERY_INSERT);?> 30