You are on page 1of 69

AKADEMIA GRNICZO-HUTNICZA

Wydzia Elektrotechniki, Automatyki, Informatyki i Elektroniki

KATEDRA INFORMATYKI

System rezerwacji miejsc w domu studenckim


Dokumentacja projektowa

Wersja 3.2 z dnia 12.01.2009


Kierunek, rok studiw: Przedmiot: Grupa (projekt):

Informatyka, rok 4 Inynieria Oprogramowania

Z06
Rok akad:

Prowadzcy zajcia:

2008/2009

dr in. Magorzata abiska

Zesp autorski:
Tomasz Grabiec Jan Hudzik Wojciech Kapuciski Filip Korski tgrabiec@student.agh.edu.pl hudzik@student.agh.edu.pl kapuscin@student.agh.edu.pl korski@student.agh.edu.pl

System rezerwacji miejsc w domu studenckim

Niniejsze opracowanie powstao w trakcie i jako rezultat zaj dy daktycznych z przedmiotu wymienionego na stronie tytuowej, pro wadzonych w Akademii Grniczo-Hutniczej w Krakowie (AGH) przez osob (osoby) wymienion (wymienione) po sowach "Prowa dzcy zajcia" i nie moe by wykorzystywane w jakikolwiek sposb i do jakichkolwiek celw, w caoci lub czci, w szczeglnoci pub likowane w jakikolwiek sposb i w jakiejkolwiek formie, bez uzyska nia uprzedniej, pisemnej zgody tej osoby (tych osb) lub odpowiednich wadz AGH. Copyright Akademia Grniczo-Hutnicza (AGH) w Krakowie

Spis treci
1. Wstp............................................................................................................................................................................... 3 2. Opis problemu.................................................................................................................................................................4 3. Koncepcja systemu......................................................................................................................................................... 5 3.1.Opis obszarw aktywnoci i procedur biznesowych.......................................................................... 5 3.2.Opis funkcji............................................................................................................................................7 3.3.Wymagania niefunkcjonalne................................................................................................................8 4. Techniczna dokumentacja projektowa.......................................................................................................................10 4.1.Opis obiektw i powiza midzy nimi............................................................................................. 10 4.2.Analiza dynamiki systemu..................................................................................................................16 4.3.Opis obiektw i powiza midzy nimi............................................................................................. 17 4.4.Analiza kwerend..................................................................................................................................22 4.5.Analiza zoonoci............................................................................................................................... 28 5. Dokumentacja deweloperska.......................................................................................................................................29 5.1.Wstp 29 5.2.Struktura katalogw........................................................................................................................... 29 5.3.Architektura systemu z punktu widzenia programisty................................................................... 30 5.4.Konwencje nazw..................................................................................................................................31 5.5.Kontroler a obszary aktywnoci........................................................................................................ 31 6. Testy...............................................................................................................................................................................37 6.1.Plan testowania....................................................................................................................................37 6.2.Opis testw........................................................................................................................................... 37 6.3.Testy obcieniowe..............................................................................................................................43 6.4.Wnioski dotyczce testw................................................................................................................... 43 7. Podrczniki systemu..................................................................................................................................................... 44 7.1.Podrcznik instalacji, konfiguracji i eksploatacji systemu..............................................................44 7.2.Podrcznik funkcji systemu................................................................................................................46 7.3.Przewodnik uytkownika .................................................................................................................. 47 8. Sprawozdanie z przebiegu prac...................................................................................................................................52

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

1. Wstp
Administracja oraz zarzdzanie domem studenckim obejmuj liczne obszary. Do najwaniejszych z nich nale: ewidencja oraz zarzdzanie zasobami, obsuga strony finansowej, obieg dokumentw, obsuga spraw zwizanych z yciem codziennym oraz procedury zwizane z zakwaterowaniem studentw

W wyniku prac na przedmiocie Projektowanie Systemw Informatycznych, w semestrze jesiennym roku akademickiego 2007/2008 opracowalimy projekt systemu informatyzujcego ostatni z wymienionych wyej aspektw rezerwacje miejsca w domu akademickim na nastpny rok, poniej oznaczony jako [GHKK08]. W toku prac wyodrbnilimy obszary aktywnoci i procedury biznesowe, opisalimy wymagania uytkownikw, przeanalizowalimy przepyw danych w systemie, magazyny danych i zwizki midzy nimi oraz zmiany stanu systemu w czasie, wreszcie zaprojektowalimy interfejs uytkownika i opisalimy zaoenia implementacyjne. Naturaln konsekwencj tamtego przedsiwzicia jest implementacja projektu. Dokonaa si ona w dwch fazach. Pierwsza wersja systemu powstaa w ramach zaj z przedmiotu Bazy Danych II w semestrze letnim 2007/2008 i obja podstawow funkcjonalno systemu zarzdzanie danymi (uytkownikw, pokoi, rezerwacji) oraz moliwo skadania rezerwacji przez studentw. Prace kontynuowane byy w semestrze jesiennym 2008/2009 na przedmiocie Inynieria Oprogramowania. Na tym etapie pooylimy nacisk na dostosowanie systemu do dziaania w warunkach rzeczywistych, a wic podjlimy kwestie bezpieczestwa, stabilnoci oraz integracji ze standardami przyjtymi przez Administracj Miasteczka. Dodalimy rwnie now funkcjonalno w postaci zapisw grupowych.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

2. Opis problemu
Pierwszym zadaniem realizowanym przez system jest okrelenie wszelkich informacji niezbdnych do prawidowego przebiegu rezerwacji. Obejmuje to ustalenie listy uytkownikw oraz listy pokoi w systemie z uwzgldnieniem informacji uzyskanych od kierownictwa (pokoje oraz mieszkacy wyczeni z rezerwacji) oraz konkretne terminy kolejnych etapw. Zarzdzajcy ma dostp do funkcji umoliwiajcych mu zdefiniowanie powyszych parametrw. W pierwszym etapie rezerwacji system oczekuje na potwierdzenie ze strony kadego mieszkaca chci pozostania w obecnie zajmowanym pokoju. Bdzie za to odpowiedzialna procedura potwierdzenia. Miejsca, ktre nie zostay potwierdzone zostan rozdysponowane w kolejnych etapach. Nastpne cztery etapy po jednym dla kadego roku studiw bd realizowane w odpowiednich odstpach czasowych. Do kadego z nich dopuszczeni bd ci mieszkacy, ktrzy speniaj warunek przynalenoci do odpowiedniego rocznika. Przy zapisach obowizuje zasada pierwszestwa. Poniewa s to etapy tosame (rni si jedynie uytkownikami do nich dopuszczonymi) bd one realizowane przy pomocy kopii jednej procedury procedury etapowej. Rezultatem dziaania systemu bdzie utworzenie listy rezerwacji i przekazanie jej administracji akademika. Kady uytkownik ma moliwo stworzenia nowej grupy bd doczenia do grupy ju istniejcej. Rezerwacj w imieniu wszystkich czonkw grupy (nie maj oni moliwoci rezerwacji miejsc) skada jej lider. Kady czonek ma moliwo wystpienia z grupy. Do penej realizacji zada przed nim stawianych system powinienem mie dostp do danych osobowych aktualnych mieszkacw rozwaanego akademika oraz do szczegowego spisu pokoi. Jego funkcje powinna w peni odzwierciedla obowizujcy regulamin rezerwacji.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

3. Koncepcja systemu
3.1.Opis obszarw aktywnoci i procedur biznesowych
Na podstawie [GHKK208], strony 5-29.

Obszar oglny Jest to obszar oglnodostpny. Zawiera nastpujce funkcjonalnoci:


Loguj na konto Przypomnij haso

Obszar studencki Jest to obszar dostpny dla studentw. Zawiera nastpujce funkcjonalnoci

Oglne

Potwierd tosamo Wywietl stan rezerwacji Wywietl list terminw Wywietl list logw Zmie dane Wyloguj

Lista dostpnych miejsc


Wywietl list dostpnych miejsc Wcz filtr dostpnych miejsc Usu filtr dostpnych miejsc

Skadanie rezerwacji

Zgo ch pozostania w obecnie zajmowanym pokoju Odwoaj ch pozostania w obecnie zajmowanym pokoju Dokonaj rezerwacj
Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

Odwoaj rezerwacj

Zapisy grupowe

Wywietl stan zapisw grupowych Utwrz grup Zapro do grupy Wybierz nowego szefa grupy Wypisz si z grupy Potwierd otrzymane zaproszenie Anuluj wysane zaproszenie

Obszar zarzdzania Studentami Jest to obszar dostpny dla zarzdzajcego. Zawiera nastpujce funkcjonalnoci:

Wywietl list studentw Wywietl profil studenta Wcz filtr listy studentw Usu filtr listy studentw Utwrz konto w obszarze studenckim Wczytaj dane studentw z pliku csv Usu wszystkie konta studentw Edytuj dane studenta
Usu konto w obszarze studenckim

Obszar zarzdzania pokojami Jest to obszar dostpny dla zarzdzajcego. Zawiera nastpujce funkcjonalnoci:

Wywietl list pokoi Wywietl dane pojedynczego pokoju Wcz filtr listy pokoi Usu filtr listy pokoi
Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

Dodaj pokj Wczytaj dane pokoi z pliku csv Usu wszystkie pokoje Edytuj dane na temat pokoju Usu pokj

Obszar zarzdzania rezerwacjami Jest to obszar dostpny dla zarzdzajcego. Zawiera nastpujce funkcjonalnoci:

Dodaj rezerwacj Usu rezerwacj Wywietl list rezerwacji Eksportuj list rezerwacji do pliku

Obszar zarzdzania terminami

Jest to obszar dostpny dla zarzdzajcego. Zawiera nastpujce funkcjonalnoci:


Ustal terminy etapw Wywietl terminy etapw Aktywuj etap Zakocz etap Przerwij etap

Obszar zarzdzania logami

Jest to obszar dostpny dla zarzdzajcego. Zawiera nastpujce funkcjonalnoci:


Wywietl list logw Wcz filtr listy logw Usu filtr listy logw

Obszar zarzdzania kontem

Jest to obszar dostpny dla zarzdzajcego. Zawiera nastpujce funkcjonalnoci:

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

Zmie haso Wyloguj

3.2.Opis funkcji
Na podstawie [GHKK08], strona 14. Student 1.Konto a.Logowanie/Wylogowanie b.Przypomnienie hasa c.Zmiana hasa d.Zmiana danych osobowych e.Wyraenie/Cofnicie zgody na udostpnienie danych osobowych 2.Rezerwacje a.Przegldnicie listy dostpnych miejsc b.Zgoszenie/odwoanie chci pozostania w obecnym pokoju c.Zoenie/odwoanie rezerwacji na nowy pokj 3.Zapisy grupowe a.Utworzenie grupy b.Wysanie zaproszenia do grupy c.Anulowanie wysanego zaproszenia d.Potwierdzenie otrzymanego zaproszenia e.Wybranie nowego szefa grupy f.Wypisanie z grupy 4.Pokoje a.Przegldnicie listy dostpnych miejsc b.Przefiltrowanie listy c.Usunicie filtra listy

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

5.Logi a.Wywietlenie listy logw uytkownika b.Przefiltrowanie listy logw c.Usunicie filtra listy logw Zarzdzajcy 1.Konto a.Logowanie/Wylogowanie b.Przypomnienie hasa c.Zmiana hasa d.Zmiana danych osobowych 2.Zarzdzanie uytkownikami a.Utworzenie/usunicie pojedynczego konta b.Utworzenie kont na podstawie pliku csv c.Usunicie wszystkich kont d.Przefiltrowanie listy studentw e.Usunicie filtra listy studentw f.Edycja danych uytkownikw g.Wywietlenie informacji na temat uytkownikw 3.Zarzdzanie pokojami a.Dodanie/usunicie pojedynczego pokoju b.Utworzenie pokoi na podstawie pliku csv c.Usunicie wszystkich pokoi d.Przefiltrowanie listy pokoi e.Usunicie filtra listy pokoi f.Edycja danych na temat pokoju g.Wywietlenie listy pokoi

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

System rezerwacji miejsc w domu studenckim

4.Zarzdzanie rezerwacjami a.Dodanie/usunicie rezerwacji b.Wywietlenie listy rezerwacji c.Eksport listy rezerwacji 5.Zarzdzanie terminami a.Ustalenie terminw poszczeglnych etapw b.Przerwanie trwajcego etapu 6.Zarzdzenie logami a.Wywietlenie listy logw wszystkich uytkownikw b.Przefiltrowanie listy logw c.Usunicie filtra listy logws

3.3.Wymagania niefunkcjonalne
Na podstawie [GHKK08], strona 14.

Wymagania produktowe
Wydajno System musi by na tyle wydajny, oby sprawnie dziaa, w sytuacji kiedy jest podczonych kilkaset uytkownikw. W systemie tym musi dziaa take baza (MySQL, PostgresSQL, lub podobna), serwer WWW (Apache, Tomcat, Jetty) Sprzt Minimalne wymagania do uruchomienia bazy MySQL oraz serwera WWW Apache Pentium II 333 512 MB RAM MHz oraz ok 100 MB wolnego miejsca na dysku oraz poczenie z internetem.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

10

System rezerwacji miejsc w domu studenckim

Jednak przy szacowanym obcieniu ok 600 uytkownikw zalecana konfiguracja to AMD Opteron 2.0 GHz 1024 MB RAM oraz ok 500 MB wolnego miejsca na dysku oraz poczenie do sieci Gigabitowym Ethernetem.

Odporno Prawdopodobiestwo zniszczenia danych w przypadku awarii systemu musi by moliwie najmniejsze. Idealnym rozwizaniem bdzie konfiguracja pracy dyskw w systemie RAID-1. Podczas awarii jednego dysku wszystkie dane bdzie mona odtworzy z drugiego dysku. Rozwizaniem zastpczym moe by Backup bazy danych jednak naley robi backup kadorazowo po kadym etapie rezerwacji.

Wymagania zewntrzne
atwo uytkowania Aplikacja musi by prosta w zrozumieniu dla uytkownika. Doczony do systemu Manual pomoe uytkownikowi zrozumie proces rejestracji.
Manual mona znale pod adresem http://[adres serwera na ktrym pracuje

system]/help.html Bezpieczestwo Bezpieczestwo systemu jest jednym z podstawowych wymaga niefunkcjonalnych. System musi by odporny na ataki osb trzecich. W tym celu zaleca si uycie pocze szyfrowanych oraz wykorzystanie certyfikatw. Zalecanym sposobem szyfrowania w serwerze WWW Apache jest mod ModSSL.

Ochrona prywatnoci System musi zapewnia prywatno uytkownikw, w szczeglnoci musi by zgodny z Ustaw o ochronie danych osobowych. Peny dostp do danych osobowych powinien mie tylko kierownictwo akademika. Reszta danych powinna by niedostpna nawet dla administratora.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

11

System rezerwacji miejsc w domu studenckim

Poziom autoryzacji wystarczajco zapewnia sama baza.

3.4.Architektura systemu
Analiza
Projektowany system powinien spenia nastpujce warunki: kady uytkownik sieci LAN powinien mie dostp do projektowanego systemu system powinien by wielodostpowy wydajny z racji na du ilo uytkownikw musi pracowa w czasie rzeczywistym przyjazny interfejs dla uytkownika Analiza wymaga jasno pokazuje, e jedyny moliwy model to architektura klient serwer.

Opis
Serwerem w naszym systemie bdzie serwer WWW.

Wszystkie procedury bd si wykonywa po stronie serwera. Serwer WWW musi take komunikowa si z baz danych. Wszystkie dane powinny by przechowywane w bazie.

Klientem, ktry bdzie si komunikowa z serwerem jest przegldarka WWW.

Przegldarka musi by zainstalowana na komputerach ktre chc korzysta z systemu.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

12

System rezerwacji miejsc w domu studenckim

Rys 3. 1. Schemat architektury systemu, za [GHKK08] strona 88

Diagram komponentowy

Rys 3. 2. Diagram komponentowy systemu

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

13

System rezerwacji miejsc w domu studenckim

Diagram wdroeniowy

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

14

System rezerwacji miejsc w domu studenckim

Rys 3. 3. Diagram wdroeniowy systemu

3.5. Dalsze moliwoci i kierunki rozwoju


Rozproszenia systemu
Celem tej czci prac jest stworzenie systemu rozproszonego na szereg serwerw jednostkowych reprezentujcych poszczeglne domy studenckie oraz jeden serwer gwny przypisany Administracji Miasteczka. Szczegowy opis koncepcji rozproszenia znajduje si w [Hudzik08]

Dodanie warstwy komunikacyjnej Jest to obszar wsplny dla wszystkich uytkownikw (zarwno studentw jak i zarzdzajcych) sucy do wzajemnej komunikacji. W zaoeniach ma on mie struktur forum, gdzie kady uytkownik moe zaoy nowy temat, bd doda wasn wypowied do tematu istniejcego. Dodatkowo zarzdzajcy peni rol moderatora. Dodanie forum nie ma wpywu na podstawow funkcjonalno systemu (tj. skadanie i zarzdzanie rezerwacjami), jest jednak znaczc platform komunikacji midzy uytkownikami.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

15

System rezerwacji miejsc w domu studenckim

4. Techniczna dokumentacja projektowa


4.1.Opis obiektw i powiza midzy nimi
Poniszy rozdzia jest wzorowany na [GHKK08], uaktualniony o zmiany w ostatecznej implementacji

Opis obiektw

Uytkownicy

id_uytkownika : integer login : varchar haso : varchar email : varchar typ : integer

Studenci:

id_uzytkownika: integer imi : varchar nazwisko : varchar rok_studiw : integer wydzia : varchar id_poprzedniego_pokoju : integer pe : char zarezerwowal : boolean telefon : varchar pesel : char

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

16

System rezerwacji miejsc w domu studenckim

zgoda_upublicznianie : boolean potwierdzony : boolean pozostalo_prob : integer zablokowany : integer zablokowany_komentarz : varchar id_grupy : integer

id_grupowy : varchar

Pokoje:

id_pokoju : integer nr_pokoju : integer postfix : char liczba_miejsc : integer dostepne_miejsca: integer rodzaj : char wykluczony: boolean pitro : integer

Grupy:

id_grupy : integer id_szefa : integer zarezerwowal: boolean

Zaproszenia:

id_nadawcy : integer id_odbiorcy : integer czas_wyslania : time data_wyslania : date


Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

17

System rezerwacji miejsc w domu studenckim

id_grupy : integer status : integer id_szefa : integer

Terminy:

id_terminy : integer data_rozpoczecia : date data_zakonczenia : date czas_rozpoczecia : time czas _zakonczenia : time

Zmienne:

id: varchar value : varchar

Rezerwacja:

id_rezerwacji : integer data_rezerwacji : date czas_rezerwacji : time id_terminu : integer id_uzytkownika : integer id_pokoju : integer

Logi:

id_logu : integer id_uzytkownika : integer id_typu : integer data: date

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

18

System rezerwacji miejsc w domu studenckim

czas: time tresc : varchar ip : varchar

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

19

System rezerwacji miejsc w domu studenckim

Schemat bazy danych:

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

20

System rezerwacji miejsc w domu studenckim

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

21

System rezerwacji miejsc w domu studenckim

Opis powiza pomidzy obiektami

jest rodzajem Studenci - Uytkownicy 1 1

Student jest typem uytkownika, dla ktrego pole typ przyjmuje okrelon warto. Posiada on dodatkowe atrybuty, oprcz tych posiadanych jako uytkownik.

mieszka w Studenci - Pokoje 1 0..1

Student mieszka w poprzednim roku w danym pokoju, do ktrego ma teraz pierwszestwo

dokonuje Studenci - Rezerwacje 1 1

Student ma prawo do dokonania i odwoania rezerwacji.

maj miejsce w Rezerwacje - Terminy 1 1

Rezerwacje s dokonywane w okrelonych terminach, zalenie od terminu mog dokona rezerwacji rne grupy studentw

posiada Uytkownicy Logi 1 0..1

Najwaniejsze dziaania uytkownika s rejestrowane w logach

dotyczy Rezerwacje Pokoje 1 1

Kada rezerwacja jest zwizana z konkretnym pokojem, ktrego dotyczy

naley do Studenci Grupy 1 0..1

Kady student moe nalee do jednej grupy

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

22

System rezerwacji miejsc w domu studenckim

4.2.Analiza dynamiki systemu.


Diagram zmiany stanw (STD) zoenie rezerwacji

Ryc2.2. Diagram STD , za [GHKK08]


Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

23

System rezerwacji miejsc w domu studenckim

4.3.Analiza kwerend
Poniszy rozdzia na podstawie [GHKK08]

Odnajd studenta

Szuka id_uytkownika studenta o podanym loginie log

Skadnia polecenia: SELECT id_uzytkownika FROM Uzytkownicy WHERE login = log;

Odnajd zarzdzajcego

Szuka id_uytkownika zarzdzjcego o podanym loginie log

Skadnia polecenia: SELECT id_uzytkownika FROM Uzytkownicy WHERE login = log;

Aktualizuj haso studenta

Przypisuje nowe haso studentowi o podanym id_uytkownika id_uzyt

Skadnia polecenia:

UPDATE Uzytkownicy SET haslo= nowe_haslo WHERE id_uzytkownika = id_uzyt;

Aktualizuj haso zarzdzajcego

Przypisuje nowe haso zarzdzajcemu

Skadnia polecenia:

UPDATE Uzytkownicy SET haslo= nowe_haslo WHERE id_uzytkownika = 0;

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

24

System rezerwacji miejsc w domu studenckim

Wywietl list dostpnych pokoi

Wypisuje pokoje w ktrych znajduj si miejsca dostpne do rezerwacji dla danego studenta o pci plec. Rodzaj pokoju u oznacza e jest on nieokrelony

Skadnia polecenia:

SELECT id_pokoju, FROM Studenci LEFT JOIN Pokoje ON plec=rodzaj OR rodzaj='u';

Dodanie rezerwacji

Dodana jest nowa rezerwacja o odpowiednich wartociach atrybutw:

Skadnia polecenia:

INSERT

INTO

Rezerwacje

(data_rezerwacji,

czas_rezerwacji,

id_terminu,

id_uzytkownika, id_pokoju) VALUES (data_r, czas_r, id_term, id_uzyt, czas_r);

Efekty uboczne 1.

Jeeli wczeniej nie byo nikogo w pokoju to rodzaj pokoju jest ustalany na plec osoby ktra pierwsza si wpisaa do pokoju

Skadnia polecenia: UPDATE Pokoje SET rodzaj = (SELECT plec FROM Studenci WHERE id_uzytkownika = NEW.id_uzytkownika) WHERE id_pokoju = NEW.id_pokoju;

1.

Pole zarezerwowal studenta jest ustawiane na TRUE


o

Skadnia polecenia:

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

25

System rezerwacji miejsc w domu studenckim

UPDATE

Studenci

SET

zarezerwowal

WHERE

id_uzytkownika

NEW.id_uzytkownika;

2.

Student zoy rezerwacje na miejsce wiec liczba miejsc w pokoju si zmniejsza o 1.


o

Skadnia polecenia: UPDATE Rezerwacje SET dostepne_miejsca = dostepne_miejsca-1 WHERE id_pokoju = NEW.id_pokoju;

Usunicie rezerwacji

Usunicie rezerwacji studenta o id_uzytkownika id_uzyt z tabeli Rezerwacje.

Skadnia polecenia:

DELETE FROM Rezerwacje WHERE id_uzytkownika = id_uzyt;

Efekty uboczne 1.

Ustawienie pola zarezerwowa na 0 w tabeli studenci


Skadnia polecenia: UPDATE Studenci SET zarezerwowal = 0 WHERE

id_uzytkownika=OLD.id_uzytkownika;

1.

Student odwoa rezerwacje na miejsce wiec liczba miejsc w pokoju si zwijsza o 1.


o

Skadnia polecenia: UPDATE Studenci SET zarezerwowal = 1 WHERE id_uzytkownika =

NEW.id_uzytkownika;
Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

26

System rezerwacji miejsc w domu studenckim

Dodanie studenta

Tworzy nowego studenta. Do tabel studenci i uytkownicy jest dodawany rekord o okrenych wartociach atrybutw.

Skadnia polecenia:

INSERT INTO Uzytkownicy (login, haslo, email) VALUES(login, haslo, email); SET id = (SELECT id_uzytkownika FROM Uzytkownicy WHERE

Uzytkownicy.login=login); INSERT INTO Studenci (id_uzytkownika, imie, nazwisko, rok_studiow, uczelnia , kierunek, data_urodzenia, id_poprzedniego_pokoju, plec) VALUES (id, imie, nazwisko, rok_studiow, uczelnia , kierunek, data_urodzenia, id_poprzedniego_pokoju, plec);

Usunicie studenta

Usunicie studenta o id_uzytkownika id_uzyt z tabel Studenci i Uytkownicy.

Skadnia polecenia:

DELETE FROM Studenci WHERE id_uzytkownika = id_uzyt; DELETE FROM Uytkownicy WHERE id_uzytkownika = id_uzyt;

Efekty uboczne

Usuwana jest ewentualna rezerwacja studenta. Patrz 2.5.7.

Aktualizacja danych studenta


Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

27

System rezerwacji miejsc w domu studenckim

Dane studenta w tabelach studenci i uytkownicy s aktualizowane okrelonymi wartociami atrybutw.

Skadnia polecenia: UPDATE Uzytkownicy SET (login, haslo, email) VALUES(login, haslo, email);

SET

id

(SELECT

id_uzytkownika

FROM

Uzytkownicy

WHERE

Uzytkownicy.login=login);
UPDATE Studenci SET (id_uzytkownika, imie, nazwisko, rok_studiow, uczelnia ,

kierunek, data_urodzenia, id_poprzedniego_pokoju, plec) VALUES (id, imie, nazwisko, rok_studiow, uczelnia , kierunek, data_urodzenia, id_poprzedniego_pokoju, plec);

Wywietlenie listy studentw

Wypisanie danych studentw.

Skadnia polecenia: SELECT * FROM Studenci

Wywietlenie danych studenta

Wypisanie danych studenta o id_uzytkownika id_uzyt.

Skadnia polecenia: SELECT * FROM Studenci WHERE id_uzytkownika = id_uzyt

Dodanie pokoju

Tworzenie nowego pokoju. Do tabeli Pokoje jest dodawany rekord o okrelonych wartociach atrybutw.

Skadnia polecenia:

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

28

System rezerwacji miejsc w domu studenckim

INSERT INTO Pokoje (id_pokoju, nr_pokoju, postfix, pietro, dostepne_miejsca, liczba_miejsc, rodzaj, wykluczony) VALUES(id_pokoju, nr_pokoju, postfix, pietro, dostepne_miejsca, liczba_miejsc, u, wykluczony)

Usunicie pokoju

Usunicie pokoju o id_pokoju id_pokoj z tabeli Pokoje.

Skadnia polecenia:

DELETE FROM Pokoje WHERE id_pokoju = id_ pokoj;

Efekty uboczne

Usuwana jest ewentualna rezerwacja dotyczca danego pokoju. Patrz 2.5.7.

Aktualizacja danych pokoju

Dane pokoju w tabelach Pokoje s aktualizowane okrelonymi wartociami atrybutw.

Skadnia polecenia: UPDATE Pokoje SET (id_pokoju, nr_pokoju, postfix, pietro, dostepne_miejsca,

liczba_miejsc, rodzaj, wykluczony) VALUES(id_pokoju, nr_pokoju, postfix, pietro, dostepne_miejsca, liczba_miejsc, u, wykluczony)

Wywietlenie listy pokoi

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

29

System rezerwacji miejsc w domu studenckim

Wypisanie danych pokoi.

Skadnia polecenia: SELECT * FROM Pokoje

Wywietlenie danych pokoju

Wypisanie danych pokoju o id_pokoju id_pokoj

Skadnia polecenia: SELECT * FROM Pokoje WHERE id_ pokoju = id_ pokoj

Wywietlenie listy dostpnych pokoi

Wypisanie danych dostpnych pokoi.

Skadnia polecenia: SELECT * FROM Pokoje WHERE dostepne_miejsca > 0

Wywietlenie listy rezerwacji

Wypisanie listy rezerwacji.

Skadnia polecenia: SELECT * FROM Rezerwacje

Dodanie terminu

Tworzenie nowego terminu. Do tabeli Terminy jest dodawany rekord o okrelonych warto ciach atrybutw.

Skadnia polecenia:

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

30

System rezerwacji miejsc w domu studenckim

INSERT

INTO

Terminy

(id_terminu,

data_rozpoczecia,

data_zakonczenia,

czas_rozpoczecia, czas _ zakonczenia) VALUES(id_terminu, data_rozpoczecia, data_zakonczenia, czas_rozpoczecia, czas _ zakonczenia)

Pobranie dat rozpoczcia i zakoczenia terminw

Pobiera daty rozpoczcia i zakoczenia terminw z tabeli Terminy w celu sprawdzenia ich spjnoci

Skadnia polecenia: SELECT id_terminu, data_rozpoczecia, data_zakonczenia FROM Terminy

Wywietlenie listy terminw

Wypisanie listy terminw.

Skadnia polecenia: SELECT * FROM Terminy

Dodanie rezerwacji

Tworzenie nowej rezerwacji. Do tabeli Rezerwacje jest dodawany rekord o okrelonych wartociach atrybutw.

Skadnia polecenia INSERT INTO Rezerwcje (id_uzytkownika, id_pokoju, id_terminu, data_rezerwacji, czas_rezerwacji)

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

31

System rezerwacji miejsc w domu studenckim

VALUES(id_uzyt, id_pok, id_term, data_rezerw, czas_rezerw)

Wywietlenie listy rezerwacji

Wypisanie listy rezerwacji, wraz z danymi studentw ktrych dotyczy owa rezerwacja

Skadnia polecenia SELECT imie, nazwisko FROM Rezerwacje LEFT JOIN Studenci ON

Rezerwacje.id_rezerwacji=id_studenta;

Wywietlenie listy logw

Wypisanie danych pokoi.

Skadnia polecenia:

SELECT * FROM Logi

Dodanie logu

Wpisanie logu do tabeli

Skadnia polecenia: INSERT INTO Logi (id_logu, id_uzytkownika, id_typu, data, czas, tresc, ip)
VALUES(id_logu, id_uzytkownika, id_typu, data, czas, tresc, ip)

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

32

System rezerwacji miejsc w domu studenckim

4.4.Analiza zoonoci

Zoono obliczeniowa poszczeglnych kwerend trudno oceni. W specyfikacji bazy nie ma informacji o tym jakie s zoonoci poszczeglnych operacji. Uzalenione s one od wewntrznej implementacji bazy. Take uyty przez nas MySQL ma zaimplementowane 3 silniki, ktre rni si miedzy sob sposobem dziaania oraz sposobem przechowywania danych.

Jednake mona wysnu pewne wnioski. Operacje INSERT mog mie zoono od O(1) (rekordy dopisywane na koniec tabeli silnik oparty na CVS) do O(n^2) jeeli dane s wstawiane w odpowiednie miejsce. Operacje DELETE rwnie mog si waha od O(n) do O(log2 N) w zalenoci jaki by sposb INSERT do bazy. Operacje JOIN maja zoono O(n^2) poniewa tworzony jest wtedy iloczyn kartezjaski zbiorw.

W naszym przypadku uywamy bardzo prostych operacji na bazie ze wzgldu na planowana prace pod duym obcieniem. Dlatego baza zostaa tak zaprojektowana aby kwerendy byy jak najprostsze oraz miay najmniejsz zoono obliczeniow.

4.5.Charakterystyka wybranych i alternatywnych narzdzi


Rozdzia na podstawie [GHKK08].

System operacyjny

Zdecydowalimy si na Linux [1], ze wzgldu na jego nastpujce zalety:

darmowy
Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

33

System rezerwacji miejsc w domu studenckim

dobrze znany zainstalowany w akademiku stabilny obsuguje rne potrzebne nam narzdzia, w szczeglnoci serwery WWW (Apache) i bazodanowe (jak MySql, PostgreeSQL)

Serwer WWW

Wybralimy Apache [4], poniewa jest:


darmowy przystosowany do obsugiwania dynamicznych stron WWW bardzo popularny, a wic sprawdzony stabilny zapewnia bezpieczestwo pocze (SSL/TSL) obsuguje uwierzytelnianie zainstalowany w akademiku

Serwer bazy danych

Wybralimy MySql [6], poniewa jest:

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

34

System rezerwacji miejsc w domu studenckim

do dobrze przez nas znany atwy do nauki uwaany za jeden z najwydajniejszych serwerw dla maych baz danych a wic takich jak nasza

dostpne s liczne narzdzia uatwiajce administracj

Jzyk programowania

Szukalimy jzyka nadajcego si do tworzenia dynamicznych stron WWW. Zdecydowalimy si na PHP [8], poniewa jest:

popularny, a wic istnieje duo materiaw do nauki, posiada interfejs do wielu systemw baz danych (w szczeglnoci MySQL) wydajny zorientowany obiektowo

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

35

System rezerwacji miejsc w domu studenckim

5. Dokumentacja deweloperska
5.1.Wstp
System jest zaimplementowany w jzyku PHP5 z uyciem framework'a CakePHP w wersji 1.2.0.6311-beta. Szczegowy opis framework'a mona znale na stronie projektu pod adresem www.cakephp.org. CakePHP umoliwia szybkie tworzenie aplikacji webowych w PHP w oparciu o wzorzec MVC (Model-View-Controller). Dostarcza wygodny i uniwersalny interfejs do komunikacji z baz danych, dziki czemu stworzona przez nas aplikacja w do wysokim stopniu uniezaleni si od uytego serwera bazy danych.

5.2.Struktura katalogw
Pliki projektu umieszczone s w strukturze katalogw opisanej poniej:

/cake Pliki framework'a /cake/libs/controller/app_controller.php Klasa bazowa wszystkich kontrolerw /app Pliki aplikacji /app/controllers pliki z kodami klas kontrolerw oraz komponentw. /app/models pliki z kodami klas modelw /app/views pliki zwizane z prezentacj /app/views/layouts ukady stron (html) /app/views/<nazwa>/*.thtml widoki kontrolera <nazwa>Controller /app/config pliki konfiguracyjne /app/config/database.php konfiguracja sterownika i poczenia z baz danych /app/config/core.php Gwny plik konfiguracyjny

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

36

System rezerwacji miejsc w domu studenckim

/app/webroot/css/ katalog z arkuszami stylw

5.3.Architektura systemu z punktu widzenia programisty


System podzielony jest na trzy warstwy: modele, widoki, kontrolery zgodnie ze wzorcem MVC (Model-View-Controller). Modele s klasami PHP, ktre odpowiedzialne s za przechowywanie danych warstw persystencji systemu. Rozszerzaj one klas AppModel. W praktyce modele s uywane jako interfejs do bazy danych, gdzie kady model odpowiada pewnej tabeli w bazie danych cho za pomoc jednego modelu mona porednio uzyska dostp do danych z tabel bdcych powizanymi z gwna tabel pewnymi relacjami. Kolejn warstw s klasy bdce kontrolerami. Rozszerzaj one klas AppController. Odpowiedzialne s za logik systemu. Domylnie zwizane s z jednym modelem, cho mona wewntrz nich korzysta z dowolnej liczby modeli (wpisujc ich nazwy do zmiennej $uses). Poszczeglne metody tych klas s wywoywane, kiedy system otrzyma danie wywietlenia jakiej strony. Framework CakePHP automatycznie analizuje URL dania i okrela ktrego kontrolera dotyczy oraz ktr jego metod naley wywoa. Domylnie mapowanie to ilustruje poniszy schemat: http://<server>/<sciezka_aplikacji>/<kontroler>/<metoda>/<warto_arg1>/<warto_arg2> Przykadowo adres http://localhost/akademik/rooms/add/12 bdzie skutkowa wywoaniem metody add o wartoci pierwszego argumentu wynoszcej 12, kontrolera RoomsController. Jeeli adres URL koczy si po nazwie kontrolera (nie ma czci okrelajcej metod), to domylnie wywoana bdzie metoda index() tego kontrolera. Ostatni warstw stanowi widoki, ktre s odpowiedzialne za prezentowanie uytkownikowi treci strony po zakoczeniu dziaania odpowiedniej metody kontrolera. Zazwyczaj s to po prostu szablony stron w jzyku html, w ktrych uywane s wstawki php. Framework domylnie odnajduje odpowiedni widok wedug zasady: /app/views/<kontroler>/<metoda>.*, Np. adresowi http://localhost/akademik/rooms/add/12 odpowiada widok /app/views/rooms/add.thtml.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

37

System rezerwacji miejsc w domu studenckim

5.4.Konwencje nazw
Uywajc framework'a cakePHP warto stosowa si do zasady convention over configuration (konwencja zamiast konfiguracji), dziki ktrej nie trzeba konfigurowa cieek do poszczeglnych czci systemu oraz powiza midzy klasami. Aby mc z tego korzysta, naley odpowiednio nazywa klasy i umieszcza je w odpowiednich miejscach. Jak to zrobi opisano poniej. Pliki z kodami klas modeli znajduj si w katalogu /app/models/ i powinny by nazwane maymi literami, tak samo jak nazwa klasy modelu. Nazwy klas modeli powinny by nazwane du liter, potem mae (tzw. notacja CamelCased), w liczbie pojedynczej od nazwy tabeli, ktrej dotycz, np. Room, Student. Nazwy klas kontrolerw powinny by w notacji CamelCased, pierwsza cz powinna by liczb mnog od nazwy klasy modelu, ktrego dotyczy. Druga cz to przyrostek Controller (np. RoomsController). Klasa powinna si znajdowa w pliku o nazwie odpowiadajcej nazwie klasy kontrolera, pisanej maymi literami z wyrazami oddzielonymi podkreleniem (np. rooms_controller.php) i powinna si znajdowa w katalogu /app/controllers. Nazwa pliku z widokiem powinna si nazywa tak samo, pomijajc rozszerzenie, jak nazwa metody odpowiedniego kontrolera (np. add.thtml dla metody add()). Plik powinien by umieszczony w katalogu /app/views/<kontroler>/, gdzie <kontroler> to nazwa kontrolera pisana maymi literami bez przyrostka controller (np. /app/view/rooms dla kontrolera RoomsController).

5.5.Kontroler a obszary aktywnoci


Ponisze zestawienie przedstawia odwzorowanie pomidzy klasami i metodami a obszarami aktywnoci i poszczeglnymi funkcjonalnociami.

Obszar oglny
Kontroler: AuthenticationController Uywa modeli: User Metoda index() rescue()
Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Funkcja Loguj na konto Przypomnij haso


Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

38

System rezerwacji miejsc w domu studenckim

logout() confirmIdentity() accountBlocked()

Wyloguj Wywietla stron potwierdzania tosamoci studenta Wywietla stron z informacj o zablokowaniu konta

Obszar studencki
Kontroler: StudentsAreaController Uywa modeli: User, Reservation, Student, Room Metoda cancel() rooms() book() Funkcja Odwoaj rezerwacj oraz Odwoaj ch pozostania w obecnie zajmowanym pokoju Wywietl list dostpnych pokoi Dokonaj rezerwacji oraz Zgo ch pozostania w obecnie zajmowanym pokoju. Jeeli student naley do grupy i aktualny etap jest wikszy od 1, to zapisywani s te wszyscy czonkowie grupy. Wywietla stron edycji danych i preferencji studenta Wywietla stron z logami operacji studenta.

edit() logs()

Kontroler: GroupsController Uywa modeli: User, Reservation, Student, Room, Log, Group, Invitation Metoda cancel_inv( $id ) reject_inv( $id ) accept_inv( $id ) Funkcja Anuluj wysane zaproszenie Odrzu odebrane zaproszenie Przyjmij zaproszenie. Jeeli wszystkie warunki poprawnociowe s spenione, zapisuje studenta do grupy.

invitations( $send = 0, $student = null ) Wywietl list zaprosze (odebranych lub wysanych). Metoda wywoywana porednio, przez funkcj main(). invite() Wylij zaproszenie do grupy

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

39

System rezerwacji miejsc w domu studenckim

elect( $leave = 0 ) leave() details() create() main()

Wybierz nowego szefa grupy. Jeeli $leave = 1, to po wybraniu nowego szefa student jest wypisywany z grupy. Wypisz si z grupy. Jeeli student jest szefem grupy, musi najpierw wybra nowego szefa grupy (elect). Pokazuje stron z szczegami dotyczcymi grupy. Funkcja jest dostpna dla odbiorcw zaprosze o statusie 'niepotwirdzony'. Tworzy now grup. Automatycznie zapisuje studenta do niej i mianuje go jej szefem. Wywietla gwn stron dot. zapisw grupowych. Pokazuje identyfikator grupwy studenta, dane grupy do ktrej naley, oraz list zaprosze wysanych lub odebranych.

4.1.1.Obszar zarzdzania studentami


Kontroler: StudentsController Uywa modeli: User, Reservation, Student, Room Metoda index() add( ) edit( $id ) Funkcja Wywietl list studentw pobiera z bazy danych dane wszystkich studentw Utwrz konto w obszarze studenckim Edytuj dane studentw wywietla formularz edycji danych wybranego studenta oraz zapisuje modyfikacje jeeli dane s poprawne. Wywietl profil studenta szczegowy widok danych studenta, umoliwia nawigacj pomidzy studentami oraz zawiera odnoniki do zarezerwowanego pokoju. Usu konto w obszarze studenckim Usuwa wszystkie konta studentw Blokuje konto studenta Odblokowuje konto studenta Wywietla stron wyboru pliku z rekordami, ktre maj by dodane do bazy (studenci) Dodaje wczytane z pliku rekordy do bazy (studenci)

details( $id )

delete( $id ) delete_all() block() unblock() load() create()

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

40

System rezerwacji miejsc w domu studenckim

verify() info() filter() removeFilter()

Sprawdza poprawno formatu danych w pliku, z ktrego maj by wczytane rekordy (studenci) Wywietla informacj o wymaganym formacie pliku z rekordami (studenci) Wywietla stron z wyborem kryteriw filtrowania listy studentw. Usuwa kryteria filtrowania.

Obszar zarzdzania pokojami


Kontroler: RoomsController Uywa modeli: Room, Reservation Metoda index() add( ) edit( $id ) Funkcja Wywietl list pokoi pobiera z bazy danych dane wszystkich pokoi i prezentuje w formie tabeli Dodaj pokj Edytuj dane na temat pokoju wywietla formularz edycji danych wybranego pokoju oraz zapisuje modyfikacje jeeli dane s poprawne. Wywietla szczegowy widok danych pokoju, zawiera informacje o rezrewacjach w danym pokoju. Umoliwia nawigacj pomidzy pokojami. Usu pokj Usuwa wszystkie pokoje Wywietla stron z wyborem kryteriw filtrowania listy pokoi. Usuwa kryteria filtrowania. Wywietla stron wyboru pliku z rekordami, ktre maj by dodane do bazy (pokoje) Dodaje wczytane z pliku rekordy do bazy (pokoje) Sprawdza poprawno formatu danych w pliku, z ktrego maj by wczytane rekordy (pokoje) Wywietla informacj o wymaganym formacie pliku z rekordami (pokoje)

details( $id )

delete( $id ) delete_all() filter() removeFilter() load() create() verify() info()

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

41

System rezerwacji miejsc w domu studenckim

Obszar zarzdzania terminami


Kontroler: TermsController Uywa modeli: Term, Reservation Metoda enable() disable() edit() index() Funkcja Aktywuje rezerwowanie. Przerywa rezerwowanie, oraz ewentualnie aktualnie trwajcy etap. Ustal terminy rezerwacji. Wywietl terminy rezerwacji.

Obszar zarzdzania kontem zarzdzajcego


Kontroler: AdminController Uywa modeli: User Metoda edit() Funkcja Zmie haso, zmie adres e-mail zarzdzajcego

Obszar zarzdzania rezerwacjami


Kontroler: ReservationsController Uywa modeli: User, Room, Student, Reservation Metoda index() add( ) delete( $id ) delete_all() Funkcja Wywietl list rezerwacji Dodaj rezerwacj. Wywietla formularz, z wyborem studenta oraz pokoju. Usu rezerwacj Usuwa wszystkie rezerwacje

Obszar zarzdzania logami


Kontroler: LogsController
Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

42

System rezerwacji miejsc w domu studenckim

Uywa modeli: User, Log,Student Metoda index() filter() removeFiltr() Funkcja Wywietla tabel z logami. Wywietla stron umoliwiajc wybr kryteriw filtrowania. Usuwa kryteria filtrowania logw.

Modele
Modele odpowiedzialne s za persystencj danych. Jeden model odpowiada jednej tabeli w bazie danych. Moe by powizany z innymi modelami, co bdzie skutkowao np. automatycznym pobraniem danych z innych tabel. Ponisza tabela opisuje zwizek klas modeli z baz danych, oraz ewentualne powizania midzy modelami: Tabela w bazie danych Model Uzytkownicy User Studenci Student belongsTo( Room (id_poprzedniego_pokoju) ), hasOne( User (id_uzytkownika) ), hasOne ( Reservation (id_rezerwacji) ) Pokoje Rezerwacje Room Reservation belongsTo( Student (id_rezerwacji) ), belongsTo( Room (id_pokoju) ), belongsTo( User (id_uzytkownika) ) Terminy Zmienne Grupy Logi Term Variable Group Log

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

43

System rezerwacji miejsc w domu studenckim

Klasy i ich metody


Klasa: AppController (cake/libs/controller/app_controller.php) Metoda Opis flash_error() flash_success() setVariables() setBookingActive() isBookingActive() currentPhaseTerms() currentPhase() nextPhaseTerms() nextPhase() checkCorrect() getTermsFromData() fetchTermsData() amIAdmin() AmIStudent() AmILoggedIn() RequireAdmin() Wywoanie funkcji ustawia komunikat o bdzie wywietlany na stronie Wywoanie funkcji ustawia komunikat o powodzeniu wywietlany na stronie Ustawia kilka zmiennych uywanych przez layout. Wywoywana jest w funkcji beforeFilter, a zatem w kadym kontrolerze. Ustawia warto zmiennej rezerwacja_aktywna Sprawdza warto zmiennej rezerwacja_aktywna Zwraca numer aktualnego etapu na podstawie podanej listy terminw Jak wyej, z tym e list terminw pobiera z bazy danych Zwraca numer nastpnego etapu na podstawie podanej listy terminw. Zwraca 0 jeeli brak nastpnego etapu. jak wyej, z tym e list terminw pobiera z bazy danych. Sprawdza poprawno terminw Konwertuje dane z formularza zmiany terminw do formatu array( 1 => array( 'start' => S, 'end' => E ), 2 => ..... ) Pobiera terminy etapw z bazy i zwraca tablic przeznaczon do wywietlenia w formularzu Sprawdza czy aktualnie zalogowany uytkownik jest administratorem. Sprawdza czy aktualnie zalogowany uytkownik jest studentem. Sprawdza czy uytkownik jest zalogowany. Funkcja sprawdza czy uytkownik ma prawa zarzdzajcego, jeeli nie to wywietla widok odmowy dostpu, lub przechodzi do obszaru oglnego, jeeli uytkownik nie jest zalogowany Jak wyej, z tym e wymaga, aby uytkownik by studentem Jak wyej, z tym e wymaga tylko, aby uytkownik by zalogowany.

requireStudent() requireSomeone()

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

44

System rezerwacji miejsc w domu studenckim

CheckUserPrivilege()

Funkcja sprawdza, czy student nie ma zablokowanego konta i ma potwierdzon tosamo. Jeeli nie, przekierowuje do odpowiedniej strony. Wywoywana w kontrolerze StudentsArea::beforeFilter().

SaveUrl() Funkcja zapisuje aktualny URL w $this->data RestoreUrl() Funkcja przekierowuje do adresu zapisanego przez funkcj SaveUrl(). W tym celu w formularzu naley utworzy ukryte pole 'Navigation.referer'.

Klasa: AppModel (cake/libs/model/app_model.php) Metoda Opis deleteAll( $conditions ) Funkcja maskuje metod deleteAll klasy Model. Kady rekord kasowany jest osobno (aby wowoana bya jego metoda beforeDelete).

Klasa: Student Metoda Opis book( $id, $phase ) getStudentSelect($cond) getGroupMembers($id) generateGID() checkIdGrupowy( $id ) Tworzy rezerwacj studenta w danym pokoju ($id) i terminie ($phase). Zwraca list studentw speniajcych okrelone warunki przeznaczon do wywietlenia np. w polu rozwijalnym. Zwraca list studentw nalecych do grupy identyfikowanej przez $id. Generuje losowy identyfikator grupy (osiem cyfr) Funkcja sprawdza, czy student posiada przypisany identyfikator grupowy. Jeeli nie, generuje nowy unikalny identyfikator i przypisuje go studentowi. Funkcja zwraca identyfikator jako wynik.

getStudentSelectForInvite( $cond, $all_public = false ) Funkcja zwraca list studentw przeznaczon do wywietalania w formularzu wysyania zaprosze do grupy. Jeeli $all_public = false, to kady student, ktry nie wyrazi zgody na upublicznianie danych jest identyfikowany przez swj identyfikator grupowy. Pozostali studenci, lub wszyscy studenci jeeli $all_public = true, s identyfikowani przez imi, nazwisko, rok studiw, wydzia. GetBlockedMessage( $student ) Zwraca powd zablokowania konta studenta lub pusty napis, jeeli konto nie zablokowane.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

45

System rezerwacji miejsc w domu studenckim

Klasa: Room Metoda Opis getRoomSelect($cond) beforeSave() Zwraca list pokojw speniajcych okrelone warunki przeznaczon do wywietlenia np. w polu rozwijalnym. Metoda jest wywoywana automatycznie przed zapisaniem modelu do bazy. Jeeli pokj jest tworzony, to ustawia pole liczba_dostepnych_miejsc na warto pola liczba_miejsc. Podczas modyfikacji, jeeli warto pola wykluczony ulega zmianie, usuwane s wszystkie rezerwacje z tego pokoju. Metoda wywoywana automatycznie przed usuniciem pokoju. Usuwa wszystkie rezerwacje z pokoju.

beforeDelete()

Klasa: User Metoda Opis generateLogin() radnomPassword() Na podstawie zadanego imienia i nazwiska generuje i zwraca unikalny w systemie login. Zwraca losowe 8 znakowe haso zoone z liter alfabetu aciskiego.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

46

System rezerwacji miejsc w domu studenckim

6. Testy
6.1.Plan testowania funkcjonalnoci
Testowanie caej aplikacji polega dogbnym przeanalizowaniu dziaania caego systemu. W tym celu przetestowano kad z dostpnych funkcji, za pomoc rnych danych wejciowych. Wyniki przedstawiono w formie sownego opisu rezultatu dziaania. Dla kadego testu wycignito wniosek, odpowiadajcy na pytanie czy aplikacja zachowaa si zgodnie z przewidywaniami, a jeeli nie, to jaki jest poprawny rezultat.

6.2.Opis testw funkcjonalnoci


Obszar oglny

Zaloguj si na konto 1. Poprawne wprowadzenie loginu i hasa studenta Rezultat: Wejcie do czci studenckiej Wniosek: System zachowa si zgodnie z zaoeniami

2. Poprawne wprowadzenie loginu i hasa zarzdzajcego Rezultat: Wejcie do czci zarzdzajcego Wniosek: System zachowa si zgodnie z zaoeniami

3. Poprawne wprowadzenie loginu, niepoprawne lub brak hasa Rezultat: Wygenerowany komunikat o bdzie Wniosek: System zachowa si zgodnie z zaoeniami

4. Niepoprawne wprowadzenie loginu Rezultat: Wygenerowany komunikat o bdzie Wniosek: System zachowa si zgodnie z zaoeniami

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

47

System rezerwacji miejsc w domu studenckim

Przypomnij haso 1. Poprawne wprowadzenie loginu i adresu email studenta Rezultat: Mail nie dochodzi do adresata Wniosek: Bd systemu, mail z hasem powinien doj do studenta

1. Niepoprawne wprowadzenie loginu i adresu email Rezultat: Komunikat o bdzie i brak moliwoci odzyskania hasa Wniosek: System zachowa si zgodnie z zaoeniami

Obszar studencki

Z rezerwacj 1. Zoenie rezerwacji w odpowiednim termie i przy braku zoonych rezerwacji Rezultat: Rezerwacja si powioda, zosta zmieniony ekran pocztkowy w menu obszaru studenckiego i tabela z rezerwacjami w obszarze zarzdzajcego Wniosek: System zachowa si zgodnie z zaoeniami.

2. Zoenie rezerwacji przez osob ktra ju zoya rezerwacje, lub ktra nie jest upowaniona do skadania rezerwacji w danym terminie, albo rezerwacja jest nieaktywna

Rezultat: Rezerwacja jest niemoliwa Wniosek: System zachowa si zgodnie z zaoeniami.

Anuluj rezerwacj 1. Anulowanie rezerwacji Rezultat: Rezerwacja zostaa anulowana, zosta zmieniony ekran pocztkowy w menu obszaru studenckiego i tabela z rezerwacjami w obszarze zarzdzajcego, student moe ponownie zarezerwowa (pod warunkiem gdy jest odpowiedni termin i rezerwacja jest aktywna) Wniosek: System zachowa si zgodnie z zaoeniami.

Wywietl dane pokoi

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

48

System rezerwacji miejsc w domu studenckim

Lista pokoi jest dostpna zawsze w zakadce pokoje, jej wywietlenie nie wymaga adnej aktywnoci za strony studenta

Wywietl dane studenta Lista danych studenta jest dostpna zawsze w zakadce twoje dane, jej wywietlenie nie wymaga adnej aktywnoci ze strony studenta

Obszar zarzdzania studentami

Utwrz konto w obszarze studenckim 1. Poprawne wprowadzenie danych (login, haso, imi, nazwisko, wydzia, rok studiw, pe, numer poprzedniego pokoju)

Rezultat: Zostao utworzone konto studenta, widoczne na licie studentw. W przypadku braku danych polach: rok studiw, nr poprzedniego pokoju i pe zostay wprowadzone wartoci domylne (odpowiednio: 1, brak i kobieta). Dane studenta s od teraz widoczne na licie studentw.

Wniosek: System zachowa si zgodnie z zaoeniami.

1. Niepoprawne wprowadzenie ktry z poniszych danych (login, imi, nazwisko, rok studiw). Rezultat: Nie zostao utworzone konto studenta, zosta wygenerowany komunikat o bdzie Wniosek: System zachowa si zgodnie z zaoeniami

Usu konto w obszarze studenckim 1. Usunicie studenta Rezultat: Konto danego studenta zostao usunite. Student zosta usunity z listy podobnie jak jego rezerwacji Wniosek: System zachowa si zgodnie z zaoeniami.

Edytuj dane studenta

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

49

System rezerwacji miejsc w domu studenckim

System zachowa si dokadnie tak samo, jak w przypadku utworzenia konta studenta

Wywietl list studentw Lista studentw jest dostpna zawsze w zakadce studenci jej wywietlenie nie wymaga adnej aktywnoci za strony zarzdzajcego

Wywietl dane pojedynczego studenta 1. Wywietlenie danych studenta Rezultat: Dane danego studenta zostaj wywietlone Wniosek: System zachowa si zgodnie z zaoeniami

Obszar zarzdzania pokojami

Dodaj pokj 1. Poprawne wprowadzenie danych (numer, liczba miejsc)

Rezultat: Zosta utworzony pokj, widoczny na licie pokoi.(take w obszarze studenckim) W przypadku braku danych w polach: pitro, wykluczony, zostay wprowadzone wartoci domylne (odpowiednio: 0, nie). Dane pokoju s od teraz widoczne na licie pokoi.

Wniosek: System zachowa si zgodnie z zaoeniami.

1. Niepoprawne wprowadzenie ktry z poniszych danych (numer, liczba miejsc), lub wpisanie istniejcego ju numeru Rezultat: Nie zostao utworzone konto pokoju, zosta wygenerowany komunikat o bdzie Wniosek: System zachowa si zgodnie z zaoeniami

Usu dane pokoju 1. Usunicie pokoju Rezultat: pokj zosta usunity z systemu, rezerwacje w nim zoone usunite.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

50

System rezerwacji miejsc w domu studenckim

Wniosek: System zachowa si zgodnie z wymaganiami

Edytuj dane pokoju System zachowa si dokadnie tak samo, jak w przypadku utworzenia danych pokoju, z tym e nie mona modyfikowa numeru pokoju

Wywietl list pokoi Lista pokoi jest dostpna zawsze w zakadce pokoje, jej wywietlenie nie wymaga adnej aktywnoci za strony zarzdzajcego

Wywietl dane pojedynczego pokoju 1. Wywietlenie danych pokoju Rezultat: Dane danego pokoju zostaj wywietlone Wniosek: System zachowa si zgodnie z zaoeniami

Obszar zarzdzania rezerwacjami

Dodaj rezerwacje 1. Dodanie rezerwacji Rezultat: Rezerwacja zostaa dodana. Wniosek: System zachowa si zgodnie z zaoeniami.

Usunicie rezerwacji 1. Usunicie rezerwacji Rezultat: Rezerwacja zostaa usunita. Wniosek: System zachowa si zgodnie z zaoeniami.

Wywietl list rezerwacji

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

51

System rezerwacji miejsc w domu studenckim

Lista rezerwacji jest dostpna zawsze w zakadce rezerwacje, jej wywietlenie nie wymaga adnej aktywnoci za strony zarzdzajcego

Obszar zarzdzania terminami

Ustal terminy etapw 1. Poprawne wprowadzenie danych Rezultat: Terminy zostay zmienione Wniosek: System zachowa si zgodnie z zaoeniami.

1. Niepoprawne wprowadzenie danych

Rezultat: Terminy nie zostay zmienione, zosta wygenerowany komunikat o bdzie Wniosek: System zachowa si zgodnie z zaoeniami.

Wywietl terminy etapw Lista terminw etapw jest dostpna zawsze w zakadce terminu, jej wywietlenie nie wymaga adnej aktywnoci za strony zarzdzajcego

Aktywuj etap 1. Aktywacja etapu Rezultat: Etap zosta aktywowany, odpowiedni studenci mog rezerwowa miejsca, Wniosek: System zachowa si zgodnie z zaoeniami.

Przerwij etap 1. Przerwanie etapu Rezultat: Etap zosta przerwany, adni studenci nie mog rezerwowa miejsca, Wniosek: System zachowa si zgodnie z zaoeniami.

6.3.Wnioski dotyczce testw

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

52

System rezerwacji miejsc w domu studenckim

Przeprowadzone beta testy caoci systemu jasno wykazay, e mimo drobnych mankamentw system dziaa poprawnie. Bdy najczciej dotyczyy mniej istotnych elementw aplikacji i nie powodoway utraty jej funkcjonalnoci, zwizanych z rezerwacj miejsc w pokojach.

6.4.Testy obcieniowe
Testy zostay przeprowadzone na komputerze o konfiguracji 2xPentium III 800Mhz 1280 RAM ECC. Testy byly przeprowadzone z uyciem programu JMeter

Przeprowadzenie testow

Kazdy uytkownik loguje si oraz pobiera list pokoi.

Dla 100 uzytkownikw:

Uzytkownicy logowali sie z "prdkoscia" 10 uytkownikw na 1 sek. Ilo bldw ~85% (przekroczony limit pamieci na serwerze)

Dla 50 uzytkownikw:

5 uytkownikw loguje sie w czasie 1 sek, ilo bldw ~60%

Dla 20 uzytkownikw:

5 uytkownikw loguje sie w czasie 1 sek, ilo bldw ~20% Czasy na request sie nie zmienialy ok 2,2 -2,7 sek. Zuycie procesorw podczas testowania wynisio 100%.

Wnioski.

Gorna granica wynosi 50 rownolegych poczen. Wynika to to z dostepnej pamieci na serwerze. Przy ok 200 osobach ktore rwnoczesnie chc skorzystac z systemu potrzeba ok (200x20MB na proces/watek) 4GB RAM.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

53

System rezerwacji miejsc w domu studenckim

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

54

System rezerwacji miejsc w domu studenckim

7. Podrczniki systemu
7.1.Podrcznik instalacji, konfiguracji i eksploatacji systemu
Instalacja i konfiguracja aplikacji
Instalacja samej aplikacji sprowadza si do rozpakowania lub skopiowania aplikacji w wybranym miejscu. Wane jest, aby ustawi waciciela caej hierarchii jako uytkownika uywanego przez serwer WWW. Inni uytkownicy nie powinni mie dostpu do kodw aplikacji ze wzgldw bezpieczestwa. Wane jest, aby ustawi uprawnienia do zapisu w katalogu /app/tmp, oraz wyczyci cache: rm -Rf app/tmp/cache/* Kolejn rzecz jak naley zrobi, jest konfiguracja poczenia z baz danych. Konfiguracja ta znajduje si w pliku /app/config/database.php. Naley odpowiednio ustawi adres serwera ('host'), login uytkownika ('login'), haso uytkownika ('password'), oraz nazw bazy danych ('database').

Konfiguracja serwera WWW


Serwer apache powinien mie wczone moduy sessions oraz mod_rewrite. Zakadajc, e aplikacja zostaa zainstalowana w katalogu PATH_TO_APP, naley ustawi warto zmiennej DocumentRoot w pliku httpd.conf nastpujco: DocumentRoot /PATH_TO_APP/app/webroot Naley upewni si, e dla kadego katalogu jest ustawiona opcja AllowOverride na All

Konfiguracja bazy danych

Aplikacja do dziaania wymaga bazy MySQL w wersji wikszej ni 5.0.2. Baz mona pobra ze strony http://www.mysql.com/ Informacje dotyczce instalacji bazy znajduj si na stronie http://dev.mysql.com/doc/refman/5.0/en/

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

55

System rezerwacji miejsc w domu studenckim

Po uruchomieniu "demona" bazy odtwarzamy baz z pliku db.sql doczonego do aplikacji w nastpujcy sposb : 1. Jeeli w bazie nie istniej adni uytkownicy tworzymy nowego uytkownika. 2. Tworzymy baz poleceniem CREATE DATABASE "Nazwa"; 3. Przyznajemy uytkownikowi prawa do modyfikacji, uaktualnienia, usuwania rekordw dla naszej nowo powstaej bazy. 4. Edytujemy plik db.sql i w pierwszej linii dopisujemy USE "nazwa naszej nowej bazy". 5. Odtwarzamy baz z pliku sql doczonego do aplikacji: mysql -u "uytkownik" -p < "[cieka do pliku]"/db.sql

Zalecenia

Ze wzgldu bezpieczestwa nie powinno si pracowa na uytkowniku root. Uytkownik, ktry bdzie si czy z serwerem WWW powinien mie tylko przywileje INSERT, UPDATE, DELETE na tabelach. Zalecana jest take najnowsza wersja MySQL z serii 5.0.X

Moliwe problemy

Jeeli niemoliwe jest stworzenie bazy (brak uprawnie) skontaktuj si z administratorem serwera i popro o utworzenie takiej bazy. Brak moliwoci odtworzenia bazy z pliku moe by spowodowana brakiem uprawnie. Skontaktuj si z administratorem.

Mozliwosci optymalizacji

Zmiana serwera na lighthttp oraz uzycie z pgp-fastcgi i xcache. Przetestowanie dokladniej naszej aplikacj z xCache i wyciagnicie wnioskw. Uycie profiler'a jezeli istnieje dla php i wychwycenie miejsc w ktrych uycie pamici jest najwiksze oraz optymalizacja tych miejsc.

Uwagi

Baza powinna dziaa na silniku MyISAM. Nie dziaa na silniku InnoDB. Stworzona i testowana bya na MySQL 5.0.56
Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

56

System rezerwacji miejsc w domu studenckim

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

57

System rezerwacji miejsc w domu studenckim

7.2.Przewodnik uytkownika
Obszar wsplny

Uwaga: W poniszej instrukcji w podrozdziaach dotyczcych elementw systemu wicych si z koniecznoci wprowadzenia danych przez uytkownika znajduj si uwagi odnonie walidacji, tzn. formatu danych wejciowych akceptowanych przez aplikacj. Naley szczegln uwag przywiza do wprowadzania danych, gdy system zaakceptuje dane bdne ale o prawidowym formacie (np. numer pokoju 2000, nie istniejcy w adnym akademiku).

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

58

System rezerwacji miejsc w domu studenckim

W celu skorzystania z aplikacji Akademik naley przej do strony <ostateczny adres strony>. Aby si zalogowa naley na ekranie pocztkowym wpisa swj login i haso w odpowiednich miejscach i klikn przycisk Zaloguj. Po kartk z loginem i hasem naley zgosi si bezporednio do wyznaczonej osoby z akademika. W przypadku wpisania bdnego hasa naley wprowadzi haso i login ponownie. W przypadku zapomnienia hasa naley klikn napis tutaj na dole ekranu, a nastpnie wprowadzi login i adres e-mail w odpowiednich polach i klin przycisk Odzyskaj

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

59

System rezerwacji miejsc w domu studenckim

Obszar studencki

Jest to cz aplikacji przeznaczonej dla studentw pozwalajca uytkownikowi zarezerwowa pokj.


W celach bezpieczestwa student musi podczas pierwszego zalogowania potwierdzi swoj tosamo. Naley wprowadzi imi i nazwisko, oraz wybra z list numer aktualnego pokoju (jeeli dotyczy), rok i wydzia. W przypadku nieudanych 3 prb zalogownia konto zostaje zablokowane i naley zgosi si do zarzdzajcego systemem, w celu wyjanienia nieporozumienia. Nastpnie, rwnie podczas pierwszego zalogowania, mona zmieni swoje dane i preferencje. Zmianie mog podlega dane osobowe i haso (zalecane). Mona rwnie wpisa adres e-mail, nr telefonu i PESEL. Wreszcie, mona wyrazi zgod na wywietlanie imienia i nazwiska na listach dostpnych dla innych studentw - tzn. na licie osb ktre zostay zapisane do danego pokoju. Niewyraenie takiej zgody powoduje, e student bdzie identyfikowany tylko z roku i wydziau, ponadto w przypadku zapisw

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

60

System rezerwacji miejsc w domu studenckim

grupowych student bdzie identyfikowany za pomoc losowego numeru, a nie imienia i nazwiska. Powysze dane mona zmienia take pniej, korzystajc z zakadki Twoje dane.

W obszarze studenckim, w prawym grnym rogu ekranu znajduje si imi i nazwisko uytkownika, oraz przycisk Wyloguj si, sucy do wyjcia z czci studenckiej programu. Ponad to znajduj si tam informacja czy rezerwacja jest aktywna oraz aktualna data i czas.

W zakadce Rezerwacja zaprezentowany jest stan rezerwacji studenta, oraz terminy. W odpowiedni sposb zaznaczony jest aktualny termin, oraz ten w ktrym student ma prawo dokona rezerwacji.

W zakadce Twoje dane znajduj si dane i preferencje uytkownika. Student ma prawo je zmienia, tak jak to miao miejsce podczas pierwszego zalogowania.

W zakadce Pokoje s przedstawione pokoje. Uytkownik moe zdefiniowa filtr, dziki ktremu bd widoczne tylko okrelone pokoje kryteria to ilo miejsc, parzysto numeru rodzaj (damski/mski) i dostpno. Usunicie filtra powoduje wywietlenie wszystkich pokoi. Aby zarezerwowa pokj naley klikn przycisk Rezerwuj (jest to moliwe oczywicie tylko wtedy, gdy rezerwacja jest dostpna dla uytkownika).

W zakadce Zapisy Grupowe student moe obsuy sprawy zwizane z zapisami grupowymi. System umoliwia kademu uytkownikowi zaoy now grup poprzez kliknicie napisu Utwrz now grup - ktrej zostaje automatycznie szefem. Szef podczas zapisw zapisuje nie tylko siebie, ale wszystkich czonkw grupy. Szef moe wybra nowego szefa spord czonkw grupy poprzez kliknicie napisu Wybierz nowego szefa oraz zaprosi do grupy poprzez kliknicie napisu Zapro do grupy dowolnego studenta tej samej pci nie bdcego w adnej grupie. Osoba ktra otrzymuje zaproszenie moe je przyj lub odrzuci. Kady czonek moe wypisa si z grupy poprzez kliknicie napisu Wypisz si z grupy.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

61

System rezerwacji miejsc w domu studenckim

W zakadce Logi prezentowane s logi, tzn. krtkie informacje o czasie i rodzaju dziaa uytkownika.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

62

System rezerwacji miejsc w domu studenckim

Obszar zarzdzajcego

Cz aplikacji przeznaczona dla administratora pozwalajca zarzdza systemem. W prawym grnym rogu ekranu znajduje login uytkownika, oraz przycisk Zmie dane pozwalajcy zarzdzajcemu zmieni haso i e-mail, a take przycisk Wyloguj, sucy do wyjcia z czci programu przeznaczonej dla zarzdzajcego. Ponad to znajduj si tam informacja czy rezerwacja jest aktywna oraz aktualna data i czas.

W zakadce Studenci znajduje si lista studentw. Rekordy mona posegregowa wedug kadego z parametrw. Aby zmodyfikowa lub usun dane studenta naley klikn odpowiednio przycisk Modyfikuj lub Usu. Poprzez kliknicie napisu Filtr uytkownik moe zdefiniowa filtr, dziki

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

63

System rezerwacji miejsc w domu studenckim

ktremu bd widoczne tylko okreleni studenci kryteria to imi, nazwisko, rok studiw, wydzia i aktualny pokj. Usunicie filtra powoduje wywietlenie wszystkich studentw. Aplikacja pozwala take na dodanie nowego studenta (klikajc napis Dodaj studenta i wypeniajc pola odpowiednimi danymi) i usunicie wszystkich studentw z listy (klikajc napis Usu wszystkich studentw). Ponadto program umoliwia dodanie listy studentw, poprzez kliknicie napisu Wczytaj dane studentw. Po jego klikniciu pojawia si zakadka umoliwiajca wybr pliku z danymi. Ponadto mona klikn napis czytaj wicej, aby dowiedzie si szczegw dotyczcych formatu danych. Uwaga: Aby doda rcznie studenta naley wypeni wszystkie podane pola: imi, nazwisko, email, uczelnia i kierunek. E-mail ma by w formie login@adres. Pola rok studiw, data urodzenia, nr poprzedniego pokoju i pe winny by wybrane z rozwijalnego menu.

W zakadce Pokoje zaprezentowane s dane pokoi w akademiku. Podobnie jak w przypadku studentw, aplikacja pozwala na dodawanie (rczne lub z pliku), modyfikacje, usuwanie (pojedyncze jak i wszystkich) pokoi, oraz zakadanie lub anulowanie filtrw, poprzez kliknicie odpowiednich przyciskw. Uwaga: Aby doda rcznie pokj naley wypeni pola numer i liczba miejsc. Pole pitro jest nieobowizkowe puste jest tosame z rwnym 0. Numer pokoju jest liczb skadajc si z od 1 do 4 cyfr. Liczba miejsc jest liczb z przedziau 1-4. Znacznik wykluczony i ewentualna kocwka a przy numerze pokoju s wybierane z rozwijalnego menu

W zakadce Rezerwacje przedstawiane s wszystkie rezerwacje pokoi, utworzone zarwno przez zarzdzajcego, jak i przez studentw. Tu take jest moliwo ich dodania oraz usunicia (pojedynczego jak i wszystkich), poprzez kliknicie odpowiednich przyciskw. Ponadto aplikacja umoliwia wyeksportowania listy rezerwacji do pliku. Uwaga: Aby doda rezerwacje naley wygra imi i nazwisko studenta oraz numer pokoju z rozwijalnych menu. Dane studentw s zawsze poprawne tzn. s to studenci istniejcy w systemie
Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

64

System rezerwacji miejsc w domu studenckim

i nie posiadajcy jeszcze rezerwacji. Numer musi odnosi si do pokoju z co najmniej jednym miejscem wolnym.

Zakadka Terminy rezerwacji pozwala na zarzdzanie terminami. Program udostpnia moliwo aktywowania (lub przerywania) rezerwacji oraz zmian terminw rezerwacji, poprzez kliknicie odpowiednich przyciskw. Uwaga: Aby zmieni terminy rezerwacji naley wybra rok oraz miesic, dzie, godzin i minut rozpoczcia i zakoczenia z rozwijalnych menu. Data zakoczenia danego terminu nie moe by pniejsza ni data rozpoczcia kolejnego (tzn. terminy nie mog si nakada).

W zakadce ostatniej zakadce, Logi prezentowane s logi, tzn. krtkie informacje o czasie i rodzaju dziaa wszystkich uytkownikw.

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

65

System rezerwacji miejsc w domu studenckim

8. Sprawozdanie z przebiegu prac


Skad zespou
Jan

Hudzik [JH] koordynator Grabiec [TG]

Tomasz Filip

Korski [FK] Kapuciski [WK]

Wojciech

8.1.Etap 1 : Dokumentacja projektowa


Okres trwania : X.2007 I.2008 Gwne zadania
analiza

problemu koncepcji systemu

opracowanie stworzenie

dokumentacji projektowej

Opis szczegowy
Spotkania

z dyrektorem Miasteczka AGH i omwienie problemu - JH, FK, WK oglnej koncepcji projektu - JH aktywnoci - JH

Opracowanie

Wyodrbnienie obszarw Opisanie funkcji Stworzenie

biznesowych JH

diagramw przypadkw uycia - TG niefunkcjonalnych - FK WK

Opisanie wymaga

Opisanie scenariuszy Stworzenie Stworzenie Dodanie Opis

diagramw przypywu danych TG diagramu zwizkw encji FK

sownika poj JH

celw produktu JH diagramu kontekstowego TG JH

Stworzenie

Specyfikacje procesw Opis

architektury systemu WK interfejsu graficznego uytkownika WK

Projekt

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

66

System rezerwacji miejsc w domu studenckim

8.2.Etap 2 : Implementacja systemu


Okres trwania : II.2008 VI.2008 Gwne zadania
implementacja

podstawowych funkcji systemowych testw systemu

przeprowadzenie opracowanie

dokumentacji projektowej funkcji systemowych TG bazy danych - WK

Opis szczegowy
implementacja implementacja opracowanie

interfejsu graficznego uytkownika TG, JH testw FK

przeprowadzenie opracowanie opracowanie

dokumentacji projektowej FK, JH, WK podrcznika programisty/projektanta TG

8.3.Etap 3 : Implementacja dodatkowych funkcji oraz integracja


Okres trwania : X.2008 I.2009 Gwne zadania
implementacja integracja

dodatkowych funkcji systemu

systemu ze standardami administracji Miasteczka AGH stabilnoci i bezpieczestwa systemu testw systemu

zwikszenie

przeprowadzane aktualizacja

dokumentacji projektowej mechanizmu weryfikacji uytkownika TG logw aktywnoci uytkownikw FK filtrw tabel WK, FK

Opis szczegowy
implementacja implementacja implementacja dodanie dodanie

funkcji importu/eksporty danych - JH mechanizmw zwikszajcych stabilno i bezpieczestwo systemu TG, WK zapisw grupowych TG testw obcieniowych WK
Wersja: 3.2 z dnia 12.01.2009 Stron: 69 Dugo: 710 kB

implementacja

przeprowadzenie
Plik: Akademik v3.2.odt

Copyright Akademia Grniczo-Hutnicza

Prowadzenie zaj: dr in. Magorzata abiska

67

System rezerwacji miejsc w domu studenckim

aktualizacja

dokumentacji projektowej FK, TG , JH, WK

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

68

System rezerwacji miejsc w domu studenckim

9. Bibliografia

Publikacje

[GHKK108] Grabiec T., Hudzik J., Kapuciski W., Korski F., System rezerwacji miejsc w domu studenckim v1.1, Krakw, 2008 [GHKK208] Grabiec T., Hudzik J., Kapuciski W., Korski F., System rezerwacji miejsc w domu studenckim v2.73, Krakw, 2008 [Hudzik08] Hudzik J., Opis systemu rozproszonego, Krakw, 2008

Plik: Akademik v3.2.odt Copyright Akademia Grniczo-Hutnicza

Wersja: 3.2 z dnia 12.01.2009

Stron: 69 Dugo: 710 kB

Prowadzenie zaj: dr in. Magorzata abiska

69

You might also like