Projektowanie Aplikacji Internetowych Temat: Serwer wymiany plików Documentation Page 1

Podobne dokumenty
Platforma e-learningowa



Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

INSTRUKCJA UŻYTKOWANIA STRONY DLA PODSTAWOWEGO UŻYTKOWNIKA

Zdalny dostęp SSL. Przewodnik Klienta

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

- 1 Laboratorium fotografii cyfrowej Foto Video Hennig

Pierwsze logowanie. 3. Aby zmienid hasło należy przejśd do profilu wybierając Twój profil w głównym menu.

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

INSTRUKCJA instalacji aplikacji elisty.pl

Platforma e-learningowa

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

APLIKACJA ZIELONA FIRMA DLA PRACOWNIKÓW FIRMY PRINT & DISPLAY (POLSKA) SP Z O.O.

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

Lokalna kopia bioinformatycznego serwera obliczeniowego jako wysokowydajne środowisko obliczeniowe

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

1. Cel i zakres dokumentu Słownik pojęć użytych w instrukcji... 3

Serwis nie zbiera w sposób automatyczny żadnych danych, z wyjątkiem danych zawartych w plikach cookies podczas samego korzystania z Witryny.

Instrukcja instalacji Control Expert 3.0

SYSTEM PROXY. Zdalny dostęp do zasobów elektronicznych BGiOINT Politechniki Wrocławskiej

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

Instrukcja obsługi VPN w Szkole Gło wnej Handlowej w Warszawie

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Aplikacje internetowe - laboratorium

Przewodnik Google Cloud Print

1.2 Prawa dostępu - Role

FTP przesył plików w sieci

SSI Web 8. (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety

Podręcznik Sprzedającego. Portal aukcyjny

HOTSPOT. [ konfiguracja, rejestracja, użytkowanie ]

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

Testowanie aplikacji. Kurs języka Ruby

11. Autoryzacja użytkowników

Logowanie do aplikacji TETA Web. Instrukcja Użytkownika

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2016

Spis treści. Spis treści Wstęp Instalacja nazwa.pl Instalacja Home.pl Edycja grafiki strony logo...

Problemy techniczne. Jak można zmienić dane licencjobiorcy?

ADMINISTRATOR SZKOŁY. Instrukcja użytkownika portalu


Publikowanie strony WWW

Skrócona instrukcja obsługi systemu VPN w Szkole Głównej Handlowej w Warszawie

INSTRUKCJA REJESTRACJI ORGANIZACJI W GENERATORZE WNIOSKÓW APLIKACYJNYCH SI NAWIKUS

Najważniejsze informacje dla klienta na temat Portalu Serwisowego D-Link Spis treści

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

System do zarządzania korespondencją ową w Twojej firmie i sklepie internetowym.

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Portal Personelu Medycznego Global Services Sp. z o.o.

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Elektroniczna Skrzynka Podawcza


CMS Admin instrukcja administratora

NetDrive czyli jak w prosty sposób zarządzać zawartością FTP

Program Windykator I Moduły do programu. Wymagania systemowe oraz środowiskowe dla programów

1. LOGOWANIE DO SYSTEMU

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

ibok Internetowe Biuro Obsługi Klienta

Zdalny dostęp do zasobów elektronicznych BGiOINT dla pracowników Politechniki Wrocławskiej

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

1. Składanie wniosku rejestracyjnego - rejestracja konta użytkownika/firmy

Przewodnik Google Cloud Print

System epon Dokumentacja użytkownika

Złóż wniosek o becikowe, zasiłek lub inne świadczenie przez Internet

Programowanie w Ruby

Przewodnik instalacji i rejestracji ASN RadioOS

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

MODUŁ NAUCZYCIEL - INSTRUKCJA OBSŁUGI

ZPKSoft Synchronizator

Serwis nie zbiera w sposób automatyczny żadnych informacji, z wyjątkiem informacji zawartych w plikach cookies.

Kancelaria Prawna.WEB - POMOC

Ogólnopolskie Repozytorium Prac Dyplomowych

POLITYKA PRYWATNOŚCI

KatMPBSoft - 1 -

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

Podręcznik użytkownika strony internetowej i systemu obsługi szkoleo PIPFIWM POLFARMED.

Podręcznik Użytkownika aplikacji NOVO Szkoła. Profil Ucznia

WXEth (firmware v1.03) Interfejs sieciowy dla stacji pogodowych Obsługa serwerów APRS-IS Obsługa serwisu

WPROWADZENIE WYSZUKIWANIE OGŁOSZEŃ

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Fundacja Ośrodka KARTA z siedzibą w Warszawie, przy ul. Narbutta 29 ( Warszawa),

BearingNet - AutoUpload

Konfiguracja klienta Lotus Notes R6 z certyfikatami i kluczami na karcie kryptograficznej lub w pliku.

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

VENUS-BEAUTY.pl. Instrukcja obsługi procesu zamówienia

ViewIt 2.0. System Monitoringu i Zarządzania Sygnalizacjami Świetlnymi. Funkcje

INSTRUKCJA ZARZĄDZANIA

Temat: EasyAccess 2.0 Data: 10 Października 2014 Prowadzący: Maciej Sakowicz

SUPLEMENT DO DYPLOMU

Jak się zalogować do Pocztowy24 Biznes

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Podręcznik Użytkownika aplikacji NOVO Szkoła. Profil Opiekuna

PHICS - Polish Harbours Information & Control System Dokumentacja użytkownika System weryfikacji autentyczności polskich dokumentów marynarzy

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

MySource Matrix CMS. Prosty Interfejs Użytkownika INSTRUKCJA wersja 1.3 POLAND AUSTRALIA UNITED KINGDOM NEW ZEALAND UNITED STATES

Jak stworzyć stronę WWW drużyny harcerskiej. dh Paweł Wnuk

Dokument zawiera instrukcję samodzielnej Instalacji Microsoft SQL Server 2008 R2 RTM - Express na potrzeby systemu Sz@rk.

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO

Transkrypt:

Documentation Page 1

DOKUMENTACJA PROJEKTU SERWER WYMIANY PLIKÓW Poniższy dokument zawiera : Specyfikację projketu str. 3-15 Diagramy przypadków użycia str. 8 13 Schemat bazy danych str. 16 Diagram klas str. 17-18 Diagram sekwencji str. 19 Realizację projektu str. 20-25 Unit testy str. 26-15 Documentation Page 2

Projektowanie Aplikacji Internetowych Temat: Serwer wymiany pliko w Michał Szczygieł, grupa 35, WFMIS Documentation Page 3

Spis Treści 1. EXECUTIVE SUMMARY...3 2. KONCEPCJA SYSTEMU...3 3. ANALIZA WYMAGAO...5 4. WYMAGANIA FUNKCJONALNE...6 5. WYMAGANIA NIEFUNKCJONALNE... 12 6. SPIS TREŚCI... 14 Spis Rysunków 1. Rysunek 1 : Koncepcja systemu...3 2. Rysunek 2 : Model przepływu danych......5 3. Rysunek 3 : Przypadek użycia - Gośd...6 4. Rysunek 4 : Panel logowania...7 5. Rysunek 5 : Panel użytkownika...8 6. Rysunek 6 Przypadek użycia - Użytkownik...9 7. Rysunek 7 : Przypadek użycia - Administrator... 11 8. Rysunek 8 : Wymagania sprzętowe... 12 Documentation Page 4

1. EXECUTIVE SUMMARY Dokument ten jest specyfikacją projektu o nazwie Server Wymiany Plików, której autorem jest Michał Szczygieł student III roku Informatyki. Specyfikacja zwiera ścisłe informacje dotyczące projektu począwszy od wymagao funkcjonalnych po wymaganie niefunkcjonalne. 2. KONCEPCJA SYSTEMU Praca z serwerem wymiany plików logistycznie odpowiadad będzie etapom: Jakie wykonywad będzie użytkownik, aby móc skorzystad z systemu. Jakie wykonywad będzie administrator w czasie pracy. W systemie wyróżniad będziemy 3 różne grupy użytkowników: Administratorzy Użytkownicy Goście Będą oni mieli przyznany dostęp do poszczególnych modułów systemu na różnych poziomach uprawnieo, wynikających z ich kompetencji i potrzeb. GOŚĆ Ma możliwośd założyd konto w systemie. Przegląda/pobiera publiczne pliki umieszczone na serwerze. SERWER BAZA DANYCH Składuje informacje o użytkownikach, plikach, przestrzeni dyskowej, etc. SERWER APLIKACJI Obsługuje żądanie użytkownika. REPROSYTORIUM Składuje pliki użytkowników. UŻYTKOWNIK ADMINISTRATOR Przegląda/pobiera/zamieszcza pliki różnego typu. Przegląda/tworzy wiadomości. Ma dostęp do danych o sobie. Wykonuje czynności związane z obsługą użytkowników/plików. Przegląda/tworzy wiadomości. Documentation Page 5

Serwis będzie przeznaczony do publicznego użytku. Jest to idealne rozwiązanie dla osób, które będą chciały mied kopię swoich danych lub mied do nich zdalny dostęp przy pomocy przeglądarki internetowej. Dane, będzie można upublicznid, przez co każdy będzie mógł je pobrad lub przeznaczyd tylko do użytku prywatnego. Dane w systemie przechowywane będą na dwóch różnych serwerach: Baza danych o Będą tu przechowywane informację na temat użytkowników, plików, praw dostępu etc. Repozytorium o Będą tu przechowywane wszystkie pliki użytkowników, do których będą mieli dostęp przez serwis. Do korzystania z serwisu będzie wymagane posiadania przeglądarki internetowej (minimum: IE 6 lub Mozilla Firefox 4) i dostępu do internetu. Szybkośd wymiany plików pomiędzy użytkownikiem a serwerem będzie ograniczona przez prędkośd łącza użytkownika jak i maksymalną przepustowośd serwera. Łatwośd obsługi zapewni prosty i przyjemny interfejs. Grupy użytkowników w systemie: Gośd to osoba korzystająca z serwisu, od której niewymagane jest zalogowanie się do systemu (założenie konta). Będzie ona miała jedynie możliwośd przeglądania i pobierania plików różnego typu udostępnionych od innych użytkowników (pliki o statusie publicznym). Użytkownik to osoba korzystająca z serwisu, która będzie miała możliwośd założenia konta, do którego będzie miała dostęp prywatny. Dzięki temu, będzie ona miała rozszerzony zasób możliwości w porównaniu do niezarejestrowanej osoby: Będzie posiadała pewną początkową określoną ilośd przestrzeni dyskowej znajdującej się na serwerze, którą będzie mogła wykorzystywad do gromadzenia plików różnego typu. Będzie mogła dodawad/usuwad oraz ustawiad tryb plików (status publiczny lub prywatny). Będzie miała możliwośd wysyłania/odbierania wiadomości do/od innych użytkowników/administratorów. Będzie miała możliwośd wyszukiwania/pobierania plików od innych użytkowników, które zostały oznaczone, jako publiczne. Administrator to osoba zarządzająca systemem oraz serwerami przechowywującymi dane: Będzie miała możliwośd edytowania danych użytkowników. Będzie miała możliwośd edytowania/pobierania/usuwania wszystkich plików (status publiczny i prywatny) Będzie miała możliwośd wysyłania/odbierania wiadomości do/od innych użytkowników/administratorów. Documentation Page 6

3. ANALIZA WYMAGAO 1. Model przepływu informacji w systemie. INTERNAUTA APLIKACJA PLIKI PUBLICZNE REJESTRACJA UŻYTKOWNIKA LOGOWANIE DO PANELU ADMINISTRATORA PRYWATNE LOGOWANIE DO KONTA ZARZĄDZANIE UŻYTKOWNIKAMI ZARZĄDZANIE PLIKAMI REPOZYTORIUM BAZA DANYCH Documentation Page 7

4. WYMAGANIA FUNKCJONALNE Wymagania funkcjonalne opisują funkcje wykonywane przez system. Powinny one dotyczyd wyłącznie zewnętrznych funkcji systemu. 1. Użytkownik będzie miał możliwośd skorzystania z serwisu o uprawnieniu gośd. 1.1. Gośd nie musi rejestrowad ani logowad się do systemu. 1.2. Będzie miał możliwośd przeglądania i pobierania publicznych plików. Rysunek 3: Przypadek użycia - Gośd 2. Użytkownik chcący zmienid swoje uprawnienia z poziomu gośd będzie miał możliwośd stworzenia swojego konta i zalogowania się do serwisu. 2.1. Rejestracja użytkownika będzie przebiegała przez podanie emaila, loginu i hasła. 2.1.1. Wprowadzanie tych danych będzie odbywało się poprzez wprowadzenie danych z klawiatury w trzech osobnych polach tekstowych i zaakceptowaniu poprzez wciśnięcie guzika rejestracja. 2.1.1.1. Dane powinny przejśd kontrolę przed wprowadzeniem do bazy danych. 2.1.2. Dane te będą przechowywane w bazie danych. Documentation Page 8

3. Możliwośd zalogowania użytkownika do serwisu. 3.1. Logowanie użytkownika będzie odbywało się poprzez podanie loginu i hasła. 3.1.1. Wprowadzanie tych danych będzie odbywało się poprzez wprowadzenie danych z klawiatury w dwóch osobnych tekstowych i zaakceptowaniu poprzez wciśnięcie guzika zaloguj. 3.1.2. Po wprowadzeniu danych, aplikacja sprawdzi czy taki użytkownik znajduje się w bazie danych oraz czy podane hasło zgadza się z tym znajdującym się w bazie. 3.2. Po zalogowaniu użytkownik będzie cały czas zalogowany aż do zakooczenia sesji (odnośnik do wylogowania). Rejestracja Pole na login Pole na hasło Przeglądanie publicznych plików Rysunek 4 : Panel logowania 4. Wygląd panelu użytkownika po zalogowaniu: Wyświetlanie plików innych userów Nazwa serwisu Logo serwisu Informacje o serwisie Zarządzanie plikami Wiadomości Message Wyloguj Wylogowywanie Rysunek 5 : Panel Użytkownika Documentation Page 9

4.1. Panel użytkownika będzie posiadał 4 linki do podstron: 4.1.1. Link informacje o serwisie (5). 4.1.2. Link zarzadzanie plikami (6). 4.1.3. Link wyświetlanie plików innych użytkowników (7). 4.1.4. Link wiadomości (8). 5. Podstrona informacje o serwisie powinna zawierad najważniejsze informację dotyczące serwisu. 5.1. Opcjonalna nazwa linku about. 5.2. Użytkownik będzie mógł tu znaleźd informacje jak używad serwis. 5.2.1. Użytkownik będzie miał dostęp do przeglądu/edycji swoich danych. 5.3. Wygląd tej podstrony będzie podobny do strony głównej. 6. Podstrona zarządzanie plikami. 6.1. Opcjonalna nazwa linku manage. 6.2. Użytkownik będzie mógł przeglądad/edytowad/usuwad pliki. 6.3. Użytkownik będzie mógł wysyład pliki na serwer (o ile dysponowad będzie wystarczającą przestrzenią dyskową) oraz nadad mu odpowiedni tryb (status publiczny lub prywatny). 7. Podstrona wyświetlająca pliki innych użytkowników 7.1. Opcjonalna nazwa linku repository. 7.2. Użytkownik będzie mógł przeglądad pliki dostępne do pobrania. 8. Podstrona wiadomości. 8.1. Opcjonalna nazwa linku message. 8.2. Użytkownik będzie mógł przeglądad/wysyład/usuwad wiadomości do innych zalogowanych użytkowników/administratorów. 9. Dla opcji wylogowanie, użytkownik zostanie przeniesiony na stronę główną, gdzie jest okno logowania (3). 9.1. Sesja użytkownika zostanie zakooczona, po wylogowaniu nie można wrócid na poprzednią podstronę ani żadną z innych podstron. Documentation Page 10

Rysunek 6: Przypadek użycia Użytkownik Documentation Page 11

10. Administrator systemu. 10.1. Logowanie administratora będzie odbywało się poprzez podanie loginu i hasła. 10.1.1. Wprowadzanie tych danych będzie odbywało się poprzez wprowadzenie danych z klawiatury w dwóch osobnych tekstowych i zaakceptowaniu poprzez wciśnięcie guzika zaloguj. 10.1.2. Po wprowadzeniu danych, aplikacja sprawdzi czy taki administrator znajduje się w bazie danych oraz czy podane hasło zgadza się z tym znajdującym się w bazie. 10.2. Po zalogowaniu administrator będzie cały czas zalogowany aż do zakooczenia sesji (odnośnik do wylogowania). 10.3. Będzie miał dostęp do panelu administratora, gdzie będzie miał dostęp do edytowania danych użytkowników, edytowania/pobierania/usuwania wszystkich plików (status publiczny i prywatny), wysyłania/odbierania/usuwania wiadomości do/od innych użytkowników/administratorów. 11. Panel administratora będzie posiadał 3 linki do podstron : 11.1. Link zarzadzanie użytkownikami (12). 11.2. Link zarzadzanie plikami (13). 11.3. Link wiadomości (14). 12. Podstrona zarządzanie użytkownikami. 12.1. Opcjonalna nazwa linku user manage. 12.2. Administrator będzie mógł przeglądad/edytowad/usuwad użytkowników. 12.3. Administrator będzie mógł zarządzad plikami danego użytkownika indywidualnie. 12.3.1. Administrator mógł przeglądad/edytowad/usuwad/pobierad pliki uzytkownika. 13. Podstrona zarządzanie plikami. 13.1. Opcjonalna nazwa linku file manage. 13.2. Administrator będzie mógł przeglądad/edytowad/usuwad wszystkimi plikami. 14. Podstrona wiadomości. 14.1. Opcjonalna nazwa linku message. 14.2. Administrator będzie mógł przeglądad/wysyład/usuwad wiadomości do innych zalogowanych użytkowników/administratorów. 15. Dla opcji wylogowanie, użytkownik zostanie przeniesiony na stronę główną, gdzie jest okno logowania (3). 15.1. Sesja administrator zostanie zakooczona, po wylogowaniu nie można wrócid na poprzednią podstronę ani żadną z innych podstron. Documentation Page 12

Rysunek 7: Przypadek użycia Administrator Documentation Page 13

5. WYMAGANIA NIEFUNKCJONALNE Wymagania niefunkcjonalne opisują ograniczenia, przy których system musi realizowad swoje funkcje. Wynikają z potrzeb użytkownika, ograniczeo budżetowych, konieczności współpracy z innymi systemami sprzętu lub oprogramowania, czynników zewnętrznych Wymagania sprzętowe Do prawidłowej pracy system wymaga dostarczenia odpowiedniego sprzętu oraz infrastruktury sieciowej. Najważniejsze z punktu widzenia gościa/użytkownika/administratora jest to, że wystarczy mu średniej klasy komputer z dostępem do Internetu oraz zainstalowanym ogólnodostępnym oprogramowaniem (przeglądarka WWW). Z punktu widzenia systemu kluczową rolę będzie miało zagwarantowanie przestrzeni dyskowej w bazach danych oraz stałe szybkie łącze do internetu. Baza danych Średniej klasy komputer Repozytorium Documentation Page 14

Bezpieczeostwo systemu System zarządza danymi użytkowników, zatem wymaga zastosowania szczególnych środków bezpieczeostwa. a) Panel administratora Strona administracyjna będzie dostępna jedynie dla wybranej grupy osób, dlatego też zostanie zaimplementowany odpowiedni mechanizm kontroli dostępu do stron szczególnie istotnych dla funkcjonowania systemu. Administrator będzie logował się do systemu na stronie logowania. Umożliwi mu to dostęp do zabezpieczonej części systemu (panelu administratora). Gdy administrator zaloguje się do systemu, aplikacja obsługująca panel będzie przechowywała jego dane do czasu, a się on nie wyloguje. Wszystkie zabezpieczone strony wchodzące w skład panelu, przed udostepnieniem administratorowi swej zawartości będą sprawdzały czy jest on zalogowany. b) Panel użytkownika Użytkownik będzie logował się do systemu na stronie logowania. Umożliwi mu to dostęp do zabezpieczonej części systemu (panelu użytkownika). Gdy użytkownik zaloguje się do systemu, aplikacja obsługująca panel będzie przechowywała jego dane do czasu, a się on nie wyloguje. Wszystkie zabezpieczone strony wchodzące w skład panelu, przed udostepnieniem użytkownikowi swej zawartości będą sprawdzały czy jest on zalogowany. Hasła będą przechowywane w bazie, tzn. przechowywany będzie jedynie kod haszujący hasło. W celu sprawdzenia poprawności hasła wprowadzonego przez użytkownika/administratora będzie generował się jego kod haszujący i porównywał się go z kodem przechowywanym w bazie danych. 6. SŁOWNIK Login nazwa użytkownika przechowywanego w bazie danych, który chce edytowad własne notatki. Hasło hasło użytkownika, które przechowywane jest w bazie danych. Zaloguj przycisk służący do zalogowania się użytkownika na podstawie loginu i hasła. Zarejestruj opcja umożliwiająca dodania nowego użytkownika do bazy danych. Serwis strona internetowa z pewnymi funkcjonalnościami. Documentation Page 15

SCHEMAT BAZY DANYCH Documentation Page 16

DIAGRAMY KLAS Rysunek 1 : Diagram klas przedstawiający warstwę widoku projektu, warstwa ta składa się z plików phtml Rysunek 2 : Diagram klas przedstawiający warstwę kontrolera projektu, opracowany na bazie diagramów przypadków użycia Documentation Page 17

Rysunek 3 : Diagram klas przedstawiający logikę projektu opracowany na podstawie diagramów przypadków użycia Documentation Page 18

DIAGRAMY SEKWENCJI Rysunek 4 : Diagram sekwencji przedstawiający proces logowania Documentation Page 19

Rysunek 5 : Diagram sekwencji przedstawiający proces rejestracji Documentation Page 20

REALIZACJA PROJEKTU Rysunek 6 : Panel logowania Rysunek 7 : Panel rejestracji Documentation Page 21

Rysunek 8 : Panel po zalagowaniu się administratora Rysunek 9 : Panel po zarejestrowaniu się użytkownika Documentation Page 22

Rysunek 10 : Panel wysyłania plików Rysunek 11 : Panel wysyłania wiadomości Documentation Page 23

Rysunek 12 : Panel zarządzania użytkownikami Rysunek 13 : Panel usuwania danego użytkownika Documentation Page 24

Rysunek 14 : Panel edycji danych użytkownika z poziomu administratora Rysunek 15 : Zarządzanie wszystkimi plikami Documentation Page 25

Rysunek 16 : Panel zarządzania danymi użytkownika Rysunek 17 : Główne repozytorium Documentation Page 26

UNIT TESTY KONFIGURACJA UNIT TESTO W Rysunek 18 : phpunit.xml Documentation Page 27

Rysunek 19 : TestHelper.php Rysunek 20 : ControllTestCase.php Documentation Page 28

Rysunek 21 : IndexControllerTest Powyższy test jednostkowy testuje akcje index w kontrolerze index. Powyższy test przechodzi w 100 %. Rysunek 22 : Model database Documentation Page 29

Rysunek 23 : DatabaseTestCase.php Documentation Page 30

1. <?php 2. if (!defined('setup_test')) { 3. // require_once '../../setuptest.php'; 4. } 5. 6. //require_once 'Application/Models/Ftp/Ftp.php'; 7. 8. class Applcation_Models_Ftp_FtpTest extends UnitTestCase 9. { 10. /** 11. * Please set Your personal options 12. * 13. * @var array 14. */ 15. protected $_options = array( 16. 'server' => '87.239.220.142', 17. 'username' => 'server', 18. 'password' => '*******' 19. ); 20. 21. public function setup() 22. { 23. } 24. 25. public function teardown() 26. { 27. } 28. 29. public function testgetprotocol() 30. { 31. $url = 'ftp://87.239.220.142'; 32. $result = parse_url($url, PHP_URL_SCHEME); 33. $this->assertequal('ftp', $result, 'Oczekiwany URL Sheme jest inny niż FTP'); 34. } 35. 36. public function testcreatefactory() 37. { 38. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp'); 39. $this->assertisa($ftp, 'KontorX_Ftp', 'Utworzony obiekt nie jest typu "Aplication_Models_Ftp"'); 40. } 41. 42. public function testcheckadaptertypeftp() 43. { 44. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp'); 45. $adapter = $ftp->getadapter(); 46. $this->assertisa($adapter, 'KontorX_Ftp_Adapter_Ftp', 'Adapter nie jest typu " Aplication_Models Adapter_Ftp"'); 47. } 48. 49. public function testconnectfailure() 50. { 51. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', array( 52. 'server' => 'ftp.noexists.info', 53. 'username' => 'usernamame', Documentation Page 31

54. 'password' => 'password' 55. )); 56. 57. try { 58. $ftp->getadapter()->connect(); 59. $this->fail("połączenie do serwera nie może zostać nawiązane"); 60. } catch(exception $e) { 61. $this->assertisa($e, Aplication_Models_Ftp_Adapter_Exception', "Wyjątej nie jest instancją ' Aplication_Models_Ftp_Adapter_Exception'!"); 62. } 63. } 64. 65. public function testconnectsuccessloginfailure() 66. { 67. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', array( 68. 'server' => '87.239.220.142', 69. 'username' => 'non_user', 70. 'password' => 'non_password' 71. )); 72. 73. try { 74. $ftp->getadapter()->connect(); 75. $this->fail("połączenie do serwera nie może zostać nawiązane"); 76. } catch(exception $e) { 77. $this->assertisa($e, Aplication_Models_Ftp_Adapter_Exception', "Wyjątej nie jest instancją 'KontorX_Ftp_Adapter_Exception'!"); 78. } 79. } 80. 81. public function testconnectsuccessloginsuccess() 82. { 83. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', $this->_options); 84. 85. try { 86. $ftp->getadapter()->connect(); 87. } catch(exception $e) { 88. $this->fail("połączenie do serwera nie zostało nawiązane:", $e- >getmessage()); 89. } 90. } 91. 92. public function testputfile() 93. { 94. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', $this->_options); 95. 96. $remotefile = 'httpdocs/remotetestputfile.txt'; 97. $localfile = 'testputfile.txt'; 98. 99. $result = $ftp->put($remotefile, $localfile); 100. $this->asserttrue($result, 'Wystąpił błąd w trakcie wysyłania pliku na serwer'); 101. } 102. Documentation Page 32

103. public function testgetfile() 104. { 105. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', $this->_options); 106. 107. $localfile = 'testgetfile.txt'; 108. $remotefile = 'httpdocs/remotetestputfile.txt'; 109. 110. $result = $ftp->get($localfile, $remotefile); 111. $this->asserttrue($result, 'Wystąpił błąd w trakcie pobierania pliku z serwera'); 112. } 113. 114. public function testrenameafile() 115. { 116. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', $this->_options); 117. 118. $currentfilename = 'httpdocs/remotetestputfile.txt'; 119. $newfilename = $currentfilename.'.bak'; 120. 121. $result = $ftp->rename($currentfilename, $newfilename); 122. $this->asserttrue($result, 'Wystąpił błąd w trakcie zmiany nazwy pliku na serwera'); 123. } 124. 125. public function testrenamebfile() 126. { 127. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', $this->_options); 128. 129. $currentfilename = 'httpdocs/remotetestputfile.txt.bak'; 130. $newfilename = 'httpdocs/remotetestputfile.txt'; 131. 132. $result = $ftp->rename($currentfilename, $newfilename); 133. $this->asserttrue($result, 'Wystąpił błąd w trakcie zmiany nazwy pliku na serwera'); 134. } 135. 136. public function testequalputandgetfile() 137. { 138. $putlocalfile = 'testputfile.txt'; 139. $getlocalfile = 'testgetfile.txt'; 140. $result = (file_get_contents($putlocalfile) == file_get_contents($getlocalfile)); 141. $this->asserttrue($result, 'Plik przesłany na serwer i ponowie pobrany z serwera są sobie różne!'); 142. 143. unlink($getlocalfile); 144. } 145. 146. public function testdeletefile() 147. { 148. $ftp = Applcation_Models_Ftp_Ftp::factory('ftp', $this->_options); 149. 150. $path = 'httpdocs/remotetestputfile.txt'; Documentation Page 33

151. $result = $ftp->delete($path); 152. $this->asserttrue($result, 'Wystąpił błąd w trakcie usuwania pliku na serwera'); 153. } 154. 155. public function testlistrawparse() 156. { 157. $rawlist = array( 158. "drwxr-xr-x 3 gabriel gabriel 4096 2010-06-12 16:22 Adapter", 159. "-rw-r--r-- 1 gabriel gabriel 4338 2010-06-21 22:11 FtpTest.php", 160. "-rw-r--r-- 1 gabriel gabriel 11 2010-06-12 16:22 testputfile.txt", 161. "drwxr-x--- 5 widmogrod 504 4096 Oct 1 2009 anon_ftp" 162. ); 163. 164. $result = array(); 165. 166. foreach($rawlist as $list) { 167. // to nie jest najlepsze rozwiązanie ale zawsze ogranicza pole błędu 168. if (preg_match('#(\d{4}-\d{2}-\d{2})#', $list, $matched)) { 169. $info = sscanf($list, "%s %d %s %s %d %s %s %s"); 170. list($permisions, $size, $user, $group, $filesize, $date, $hour, $filename) = $info; 171. } else { 172. $info = sscanf($list, "%s %d %s %s %d %s %d %s %s"); 173. list($permisions, $size, $user, $group, $filesize, $month, $day, $year, $filename) = $info; 174. $date = $month. ' '. $day. ' '. $year; 175. $hour = ''; 176. } 177. 178. $result[] = array( 179. 'type' => ((substr($permisions,0,1) == 'd')? 'DIR' : 'FILE'), 180. 'filesize' => $filesize, 181. 'permisions' => $permisions, 182. 'user' => $user, 183. 'group' => $group, 184. 'time' => strtotime("$date, $hour") 185. ); 186. } 187. 188. var_dump($result); 189. 190. $success = array( 191. array ( 192. "type"=> "DIR", 193. "filesize"=> 4096, 194. "permisions"=> "drwxr-xr-x", 195. "user"=> "server", 196. "group"=>"server", 197. "time"=>1276352520 198. ), Documentation Page 34

199. array ( 200. "type"=> "FILE", 201. "filesize"=> 4338, 202. "permisions"=> "-rw-r--r--", 203. "user"=> "server", 204. "group"=>"server", 205. "time"=>1277151060 206. ), 207. array ( 208. "type"=> "FILE", 209. "filesize"=> 11, 210. "permisions"=> "-rw-r--r--", 211. "user"=> "server", 212. "group"=>"server", 213. "time"=>1276352520 214. ), 215. array ( 216. "type"=> "DIR", 217. "filesize"=> 4096, 218. "permisions"=> "drwxr-x---", 219. "user"=> "server", 220. "group"=>"504", 221. "time"=>1254348000 222. ) 223. ); 224. 225. $this->assertidentical($result, $success, 'Wartości sparsowane "rawlist" nie są identyczne!'); 226. } 227. } 228. 229. $r = new Applcation_Models_Ftp_FtpTest(); 230. $r->run(new TextReporter()); Documentation Page 35