WYŻSZA SZKOŁA TURYSTYKI I EKOLOGII z siedzibą w Suchej Beskidzkiej

Wielkość: px
Rozpocząć pokaz od strony:

Download "WYŻSZA SZKOŁA TURYSTYKI I EKOLOGII z siedzibą w Suchej Beskidzkiej"

Transkrypt

1 WYŻSZA SZKOŁA TURYSTYKI I EKOLOGII z siedzibą w Suchej Beskidzkiej WYDZIAŁ INFORMATYKI KIERUNEK: INFORMATYKA SPECJALNOŚĆ: INFORMATYKA STOSOWANA Praca dyplomowa inżynierska Aplikacja internetowa wspomagająca tworzenie interaktywnych map terenu dla portali WWW Jakub Turkiewicz, Nr albumu 3338 Mateusz Łysoń, Nr albumu 3280 My niżej podpisani oświadczamy, że składana przeze nas praca dyplomowa pt. Aplikacja internetowa wspomagająca tworzenie interaktywnych map terenu dla portali WWW została przygotowana samodzielnie i nie narusza praw autorskich innych osób. W pracy wykorzystaliśmy publikowane materiały i nie ujawniliśmy informacji poufnych.... data czytelny podpis... data czytelny podpis Promotor: dr inż. Michał Turek akceptuję pracę... podpis promotora Sucha Beskidzka 2011

2 Jakub Turkiewicz Sucha Beskidzka, Nr albumu 3338 Kierunek: Informatyka Specjalność: Informatyka stosowana OŚWIADCZENIE Ja niżej podpisany świadom odpowiedzialności prawnej oświadczam, że złożona przeze mnie praca dyplomowa na stopień inżyniera pt. Aplikacja internetowa wspomagająca tworzenie interaktywnych map terenu dla portali WWW została przygotowana samodzielnie. Równocześnie oświadczam, że praca ta nie narusza praw autorskich innych osób w rozumieniu ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U r. nr 24, poz. 83) oraz dóbr osobistych chronionych prawem cywilnym. Ponadto niniejsza praca nie zawiera informacji i danych uzyskanych w sposób nielegalny i nie była wcześniej przedmiotem innych procedur urzędowych związanych z uzyskaniem dyplomów lub tytułów zawodowych uczelni wyższej.... czytelny podpis autora pracy 2

3 Mateusz Łysoń Sucha Beskidzka, Nr albumu 3280 Kierunek: Informatyka Specjalność: Informatyka stosowana OŚWIADCZENIE Ja niżej podpisany świadom odpowiedzialności prawnej oświadczam, że złożona przeze mnie praca dyplomowa na stopień inżyniera pt. Aplikacja internetowa wspomagająca tworzenie interaktywnych map terenu dla portali WWW została przygotowana samodzielnie. Równocześnie oświadczam, że praca ta nie narusza praw autorskich innych osób w rozumieniu ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U r. nr 24, poz. 83) oraz dóbr osobistych chronionych prawem cywilnym. Ponadto niniejsza praca nie zawiera informacji i danych uzyskanych w sposób nielegalny i nie była wcześniej przedmiotem innych procedur urzędowych związanych z uzyskaniem dyplomów lub tytułów zawodowych uczelni wyższej.... czytelny podpis autora pracy 3

4 Wyższa Szkoła Turystyki i Ekologii z siedzibą w Suchej Beskidzkiej Streszczenie pracy dyplomowej inżynierskiej: Tytuł pracy: Aplikacja internetowa wspomagająca tworzenie interaktywnych map terenu dla portali WWW. Autorzy: Jakub Turkiewicz i Mateusz Łysoń Promotor: dr inż. Michał Turek Stron: 70, pozycji bibliograficznych: 30, tabel: 2, rysunków: 19, załączników: 1 CD Słowa kluczowe: interaktywność, mapa, aplikacja, szablon, uniwersalność, funkcjonalność. Cel pracy: Stworzenie uniwersalnej aplikacji internetowej dla każdego użytkownika, dostosowanej pod każdą platformę systemową, jak i sprzętową. Głównym jej zadaniem jest stworzenie interaktywnej mapy terenu w bardzo wygodny i nietrudny sposób. Zastosowano następujące metody: Analiza dziedziny, rynku i narzędzi, które obrazują konkurencję i użyte przez nią technologie. Przedstawienie szczegółowo wyjaśnionego problemu oraz implementacja z użyciem odpowiednich narzędzi, bazując przede wszystkim na wyciągniętych wnioskach z całej analizy teoretyczno-badawczej. Efekt pracy: Uzyskano aplikację webową, działającą na serwerze wirtualnym i przedstawiającą edytor map. Różni się ona od konkurencyjnych aplikacji, znajdujących się w sieci tym, że posiada niespotykane dotychczas rozwiązania edycyjne, łatwy w obsłudze interfejs użytkownika i wydajny tryb pracy. 4

5 Wyższa Szkoła Turystyki i Ekologii z siedzibą w Suchej Beskidzkiej Graduate work Summary: Title of work: The web application supporting the creation of interactive area maps for Web portals. Authors: Jakub Turkiewicz i Mateusz Łysoń Supervisor: Michał Turek Pages: 70, references: 30, tables: 2, drawings: 19, appendix: 1 CD Keywords: interactivity, map, application, template, versatility, functionality. The Purpose of work: Create a universal web application for each user, adapted into any platform and hardware system. Main task of it is making a interactive area map in a very convenient and not difficult way. The followed methods were used: Domain, market and tool analysis that reflect the competition and all used technologies by them. Detailed presentation of the unexplained problem and implementation with usage of appropriate tools, based primarily on conclusion from whole analysis of the theoretical research. The effect of the work: Obtained the web application which is running on a virtual server and presents a map editor. It differs from competing applications located in network that it has a unique solution to map edition, easy to use user interface and efficient mode of operation. 5

6 "Składamy serdeczne podziękowania Panu Michałowi Turkowi, za cenne porady, cierpliwość, poświęcony nam czas oraz wsparcie." 6

7 SPIS TREŚCI WSTĘP... 9 ROZDZIAŁ I PODSTAWOWE ZAGADNIENIA Interaktywna mapa Google Maps Lokalizator internetowy Zumi Serwis Wikimapia Podsumowanie podstawowych zagadnień Cel projektu Założenia dotyczące projektu ROZDZIAŁ II KONCEPCJA ROZWIĄZANIA Funkcjonalność tworzonego oprogramowania Wymagana funkcjonalność narzędzi Wybór narzędzi do modelowania projektu Unified Modeling Language Wybór narzędzi koniecznych do stworzenia implementacji Poszukiwanie narzędzi do budowy aplikacji internetowej Środki wymagane do stworzenia aplikacji internetowej Możliwe platformy dla projektowanej aplikacji Platforma sprzętowa System operacyjny Platforma umożliwiająca składowanie danych Wybór edytorów do pisania dokumentacji Microsoft Word L A TEX Podsumowanie koncepcji ROZDZIAŁ III PROJEKT ROZWIĄZANIA Modelowanie diagramu przypadków użycia Charakterystyka przypadków użycia Schemat bazy danych Relacje w tabelach

8 3.3 Podsumowanie projektu rozwiązania ROZDZIAŁ IV IMPLEMENTACJA Podział pracy nad aplikacją Rozmieszczenie aplikacji w plikach Spis modułów Opis poszczególnych modułów w aplikacji Moduł logowania, rejestracji i odzyskiwania haseł Moduł głównego menu Moduł tworzenia nowego projektu Moduł edycji projektu Podsumowanie implementacji ROZDZIAŁ V BEZPIECZEŃSTWO I TESTY APLIKACJI Wymogi haseł użytkowników Szyfrowanie haseł użytkowników Autoryzacja użytkowników Zapobieganie SQL Injection Podsumowanie bezpieczeństwa Testy aplikacji Test pierwszy Test drugi Podsumowanie testów i bezpieczeństwa ROZDZIAŁ VI ZAKOŃCZENIE I PODSUMOWANIE PRACY DODATEK A: WYKAZ ILUSTRACJI DODATEK B: ZESTAWIENIE TABEL DODATEK C: INSTALACJA I INSTRUKCJA OBSŁUGI APLIKACJI BIBLIOGRAFIA

9 WSTĘP Prezentowany system ma wspomagać tworzenie interaktywnych map terenu na potrzeby portali WWW, w prosty i wygodny sposób uwzględniając wymogi klienta, takie jak własne grafiki, czy dowolne modyfikacje. Praca podzielona została na 6 rozdziałów. Pierwszy rozdział dotyczyć będzie analizy dziedziny problemu, w której uwzględniono zagadnienia związane z tematyką map oraz rozpoznawanie rynku, w kierunku już istniejących produktów. W drugim rozdziale dokonano przeglądu metod modelowania, dziedziny problemu oraz przedstawiono narzędzia, którymi można dany problem rozwiązać. Ustalono w nim koncepcję rozwiązania. Trzeci rozdział, to z kolei projekty zakładanego systemu, w skład którego wchodzi model diagramu przypadków użycia oraz schemat bazy danych. W czwartym rozdziale opisano implementacje rozwijającego się systemu z rozbiciem na strukturę plików oraz poszczególne moduły aplikacji. Podsumowaniem implementacji jest działająca aplikacja, którą należy dalej rozwijać. Rozdział piąty, to opis zastosowanych środków bezpieczeństwa oraz możliwe zagrożenia. W rozdziale tym rozpisano również testy użytkowników końcowych aplikacji i wysnuto wnioski z tych testów. Rozdział szósty to zakończenie i podsumowanie całej pracy. Poszczególne fragmenty Pracy wykonali: Jakub Turkiewicz: Rozdział 1, Rozdział 3 Testy systemu i Zakończenie Dodatki A, B i C Praca napisana w L A TEX Mateusz Łysoń: Rozdział 2, Rozdział 4 Testy systemu i Zakończenie 9

10 ROZDZIAŁ I PODSTAWOWE ZAGADNIENIA Mapa jest to pomniejszony i uogólniony model rzeczywistości. Od bardzo dawna ludzie wykorzystują mapy do określania swojego położenia, ukształtowania terenu, określania drogi, wyznaczania granic oraz przedstawiania różnorakich statystyk. Jest wiele rodzajów map na których można przedstawić pewne dane. Przykładowymi rodzajami map są: Mapa ogólnogeograficzna 1 mapa, która zawiera wszystkie główne obiekty powierzchni Ziemi takie wody, zabudowa, roślinność), wraz z jej ukształtowaniem (rzeźba terenu), przedstawione z jednakowym względnym stopniem szczegółowości (wszystkie elementy przestrzeni geograficznej są równoważne). Mapa kropkowa 2 mapa, na której wielkość i przestrzenne rozmieszczenie pewnego zjawiska przedstawiono za pomocą kropek. Najczęściej spotyka się mapy kropkowe prezentujące rozmieszczenie ludności. Wagą kropki nazywa się wielkość zjawiska odpowiadającą jednej kropce (np mieszkańców). Mapa hipsometryczna 3 mapa ogólnogeograficzna, na której przy pomocy poziomic i barw między nimi zawartych jest odwzorowane ukształtowanie powierzchni lądu. Mapa hipsometryczna przedstawia wybrane wysokości oraz plastycznie obrazuje układ nizin, wyżyn i gór. Na szczegółowych mapach hipsometrycznych (małych terenów) można odczytać wypukłe formy terenu (pagórki, wzgórza i góry), oraz formy wklęsłe (doliny i nawet małe kotliny). Zwiększające się nieustannie zapotrzebowanie na graficzne zilustrowanie danych znajduje odzwierciedlenie w tworzeniu nowych map. W dobie komputeryzacji oczywistym jest przeniesienie map rysowanych na cyfrowe; umożliwia to przekazywanie danych w nowej formie. Na potrzeby Internetu powstały interaktywne mapy. Z istniejących w Internecie map interaktywnych na większą uwagę zasługują m.in. Google Maps, Zumi, Wikimapia

11 1.1 Interaktywna mapa Google Maps Serwis firmy Google, zakłada udostępnianie bazy map i zdjęć (robionych przez z satelitę i z samolotu). W serwisie Google Maps zarówno zdjęcia jak i mapy można oglądać w kilkunastu skalach. Jednakże zdjęcia nie są wszędzie skalowane w ten sam sposób. Największą skalowalność zdjęć posiadają duże miasta, najmniejszą skalowalność wsie i słabo zaludnione tereny. W serwisie dostępne jest również szybkie wyszukiwanie szukanych pozycji poprzez bezpośrednie wpisanie lokalizacji (Geokoder), lub za pomocą współrzędnych geograficznych. Ponadto istnieje możliwość ustalania tras między lokalizacjami. Trasy można dowolnie modyfikować poprzez przeciąganie myszą jej punktów. Na podstawie trasy jest obliczany przybliżony czas podróży. Od maja 2007 roku Serwis Google Maps oferuje nową formę przedstawiania rzeczywistości którą nazwał Street View 4. Jest to model rzeczywistości przedstawiony jako panorama zdjęć którą można oglądać z perspektywy oczu, dowolnie obracając i rozglądając się po sfotografowanych miejscach. Model ten jest bardzo szczegółowy lecz ma tylko kilka skal. Dostępność tej formy interaktywnych map została jak na razie ograniczona do największych miast świata, lecz jest wciąż rozszerzana. By poszerzyć popularność serwisu firma Google stworzyła dla swoich użytkowników API (z ang. Application Programming Interface) 5 dzięki któremu mogą oni umieszczać na swoich witrynach interaktywne mapy Google Maps. Dostęp do API utworzono na dwa sposoby. Pierwszy tzw. Google Maps API for Flash R to dostęp z poziomu języka JavaScript i ActionScript 3 (obiektowy język Adobe Flash). Drugi to dostęp w postaci obrazu, tzw. Google Static Maps API. API dla Google Maps począwszy od wersji 2.8 udostępnia szeroką funkcjonalność dla użytkowników. Gadgety takie jak mierzenie natężenia ruchu drogowego, możliwość geokodowania adresów, wyznaczanie tras przejazdu wraz z listą kroków, rysowanie polilinii, wsparcie dla języka KML 6 /GeoRSS 7 przyniają się do wzrostu popularności. Dzięki swojemu API firma Google wypromowała swój produkt do stopnia niemal najpopularniejszego przedstawiania modelu rzeczywistości. Z produktu Google

12 korzystają zarówno osoby prywatne jak i firmy. Do niewątpliwych atutów Google Maps należy dodać fakt, iż jest to produkt bezpłatny dla wszystkich użytkowników. Nie łatwo będzie komukolwiek przebić serwis Google Maps funkcjonalnością. Lecz wciąż nie zapełnia rynku potrzeb użytkowników. 1.2 Lokalizator internetowy Zumi Serwis Onet.pl we współpracy z kilkoma firmami stworzył lokalizator internetowy o nazwie Zumi. Lokalizator powstał w 2007 roku i był połączeniem koncepcji interaktywnych map internetowych z koncepcją tzw. żółtych stron opierających się na spisie oraz reklamowaniu abonentów, użytkowników, czy instytucji. Funkcjonalność serwis czerpie z innych produktów takich jak np. Google Maps, dodając swoje własne pomysły. Zumi oferuje swoim użytkownikom usługę podobną do Street View firmy Google którą nazwano Ulica 360 o. Z tym że w przypadku Zumi oferta ta jest kierowana jako nowy, mający przyciągnąć użytkowników i klientów, sposób reklamy czy to małych firm czy instytucji. Usługa reklamowa polegać ma na tym iż użytkownik serwisu Zumi czy to szukając czegoś konkretnego czy też z ciekawości mógłby z poziomu prezentowanej panoramy wejść do zabytku, kościoła, sklepu, instytucji, restauracji czy jakiejkolwiek firmy. Wyszukiwarka Zumi działa na swojej bazie tzw. Point Of Interest (POI) 8, co potocznie nazwano punktem użyteczności publicznej, punktem zainteresowania czy użytecznym miejscem. POI stosuje się głównie w nawigacjach GPS. Minimalną informacją zawartą w POI jest położenie geograficzne. POI może również zawierać informację o typie i nazwie, np. kino X czy teatr Y. Założeniem portalu Zumi jest jednak przypisanie jak największej ilości danych do danego POI. Do dodatkowych danych zbieranych przez serwis można zaliczyć: adres fizyczny, adres , adres strony WWW, numer NIP, numer REGON, numer KRS, telefon, forma własności, zatrudnienie w obiekcie, godziny otwarcia, możliwości płatności kartą, właścicielach czy inne warte uwagi dane multimedialne jak np. filmy wideo, zdjęcia czy opisana wcześniej panorama Ulica 360 o. Wyszukiwać można m.in.: instytucje, zabytki, bankomaty, punkty informacji turystycznej, inne atrakcje turystyczne, noclegi, in

13 formacje drogowe, restauracje, puby itp. Wyszukiwanie odbywa się po słowach kluczowych oraz lokalizacjach. Dodatkowo w wynikach wyszukiwania jest informacja o odległości obiektu od wybranego przez użytkownika punktu. Ciekawą funkcją Zumi jest funkcja ustalania trasy. Do wyboru są różne formy podróży. Można stworzyć swoją własną trasę deklarując podróż samochodem lub pieszo. Można również skorzystać z wyszukiwarki rozkładów i połączeń komunikacji miejskiej. Niestety opcja ta dotyczy tylko ośmiu największych miast Polski. Przy tworzeniu własnej trasy przejazdu serwis informuje użytkownika o utrudnieniach na drodze, możliwości zobaczenia obrazu z kamery umieszczonej przy drodze połączonej w niektórych przypadkach ze stacją meteorologiczną, czarnych punktach czyli strefach szczególnie zagrożonych czy statycznych fotoradarach. Kolejną ciekawostką serwisu Zumi jest uruchomiona w czerwcu 2009 roku usługa gromadzenia i wyświetlania na mapie ogłoszeń sprzedaży nieruchomości. Ustalając lokalizację możemy otrzymać wykaz ogłoszeń sprzedaży nieruchomości z największych polskich serwisów ogłoszeniowych. Dzięki współpracy serwisu Zumi z serwisem Allegro jaką nawiązano w 2010 roku firmy znajdujące się w Zumi mogą oferować użytkownikom których interesują zakupy na danym obszarze swoje produkty wystawione na portalu aukcyjnym Allegro.pl co zwiększa zainteresowanie poprzez możliwość wstępnego zobaczenia produktu oraz jego opisu. Wpisanie do bazy Zumi jest bezpłatne. Serwis umożliwia wyróżnianie firm czy wzbogaconą prezentację za o pobiera opłaty. Obecnie w bazie serwisu Zumi znajduje się ponad milion punktów użyteczności publicznej zwanych POI. 1.3 Serwis Wikimapia Wikimapia to wielojęzyczny międzynarodowy portal internetowy. Hasłem przewodnim portalu jest: describing the whole planet Earth co w wolnym tłumaczeniu znaczy opiszmy cały świat. Hasło przewodnie ma swoje rozwinięcie w samej formie portalu. Wikimapia jest połączeniem edytowalności wiki i map Google Maps. Dzięki takiemu połączeniu możliwe jest nie tylko przeglądanie map lecz także samodzielne zaznaczanie miejsc na całym świecie. Portal udostępnia kilka warstw przeglądania. Zapożyczone od firmy Google war- 13

14 stwy map satelitarnych, warstwa topograficzna i tzw. warstwa hybrydowa czyli mapa satelitarna z naniesionymi uproszczonymi warstwami dróg, rzek itp. Podstawowymi warstwami są warstwy tworzone przez użytkowników które to nanosi się na wybraną warstwę zapożyczoną od Google Maps. Warstwy użytkowników to warstwy obiektów z dodanymi opisami w różnych językach. Tworzenie warstw przez użytkowników odbywa się w trybie wiki przez co warstwy są edytowalne dla wszystkich użytkowników i każdy może nanosić poprawki. Warstwy tworzy się rysując bezpośrednio na mapie wielokąty określające dany obszar. Pierwotnie warstwy miały tylko formę kwadratu ale ulepszono formę tworzenia warstw w 2007 roku co przyczyniło się do zwiększenia dokładności pokazywania danego obszaru. Również w 2007 roku dodano możliwość rysowania na warstwach łączonych linii prostych które przyjmują status drogi. Dzięki temu rozwiązaniu można np. dodać fragment drogi nie istniejący na mapie a będący drogą wiejską. Drogi takie są widoczne na odrębnych warstwach lub w trybie wyświetlania nazwanym Wikimapia map i przedstawiającym wszystkie warstwy stworzone przez użytkowników. Do tworzonej czy też już istniejącej warstwy można dodać opis w kilku językach lub przekierowanie do artykułu w Wikipedii. Można również przypisać kategorię do warstwy co niesie za sobą dokładniejsze wyniki wyszukiwania, filtrację do wybranych warstw, ograniczanie widoczności wybranych obiektów. Niektóre z dostępnych kategorii mają dodatkowo szczególne znaczenie w prezentacji na mapie w trybie Wikimapii map. I tak np. obszar oznaczony jako las będzie wyświetlany na mapie z wyróżnieniem w kolorze zielonym; rzeki, zbiorniki wodne czy stawy będą wyświetlane na niebiesko. Takie wyróżnienia kolorami ułatwiają orientację podczas przeglądania mapy. Wikimapia jest portalem bezpłatnym, a utrzymuje się z wyświetlania reklam Google AdWords w miejscu opisu wybranych przez użytkownika lokalizacji. 1.4 Podsumowanie podstawowych zagadnień Obecnie w sieci istnieje wiele portali które mają zapotrzebowanie na umieszczanie własnych danych w interaktywnych mapach. Portale te korzystają z niestandardowych, niekiedy bardzo prymitywnych rozwiązań. Istnieją rozwiązania bezpłatne 14

15 i komercyjne. Z wymienionych powyżej produktów można wybrać najbliższy oczekiwaniom, lecz oczekiwań jest tyle ile klientów i prędzej czy później ten brak standardów doprowadzi do zaistnienia nowych potrzeb i wymyślania nowych rozwiązań. Dodatkowo część produktów nie jest aktualizowana na bieżąco co powoduje niejednokrotnie spore przekłamania w prezentowanych danych. Większość z oferowanych na rynku produktów korzysta z technologii firmy Google, tworząc mniej lub bardziej udane nakładki na gotowy produkt. Inne koncepcje zakładają użycie technologii Flash. Do najprostszych należą techniki polegające na wykorzystaniu plików graficznych w dużej rozdzielczości jako podkładu i napisaniu kilku funkcji umożliwiających przeglądanie naniesionej zawartości. Widać że istniejące produkty są ograniczone pod względem treści i zasobów. Nie istnieją produkty które oferowałyby rozbudowane możliwości przekazywania treści i zasobów. Złożoność dostępnych produktów nie jest satysfakcjonująca. 1.5 Cel projektu Celem projektu jest stworzenie uniwersalnego szablonu do tworzenia map interaktywnych, dedykowanych na portale WWW, który ułatwiłby tworzenie i wdrażanie produktu. Szablon taki musi być jak najbardziej elastyczny. Musi uzupełniać lukę na rynku aplikacji internetowych, udostępniając opcje dowolnej modyfikacji zarówno tworzonych map jak i aktualnie istniejących już w bazie, dodawania własnych grafik w postaci zdjęcia, czy tapety, miniaturek o określonych wymiarach, ikon, dodawania opisów poszczególnych lokalizacji oraz opisów budowli, wyświetlających się odpowiednio jako chmurka i legenda, dodawania plików dźwiękowych oraz audiowizualnych. 1.6 Założenia dotyczące projektu Analizując cele dochodzimy do następujących założeń: aplikacja ma być uniwersalna, czyli działać na wszystkich platformach systemowych w możliwie jak największej liczbie konfiguracji, wymagana jest opcja tworzenia własnych, personalnych ustawień, czyli własnej bazy danych z preferencjami tworzenia danej mapy, 15

16 bazy danych powinny być luźno modyfikowalne, posiadać opcje dowolnego dodawania i usuwania zamieszczonych ustawień, tworzona aplikacja powinna oferować nowe, niedostępne do tej pory opcje budowania map internetowych, powinno istnieć kilka szablonów przykładowych dla klientów. 16

17 ROZDZIAŁ II KONCEPCJA ROZWIĄZANIA Znając funkcjonalność kilku produktów dostępnych na rynku aplikacji internetowych przechodzimy do ustalania funkcjonalności własnej aplikacji. O ile przyglądając się dostępnym aplikacjom, możemy w pewnych przypadkach w przybliżeniu stwierdzić w jakim języku programowania zostało wykonane oprogramowanie, o tyle nie jesteśmy w stanie stwierdzić tego jednoznacznie. W czym i jak napisana została aplikacja wie tylko programista ją piszący. Wybierając narzędzia do stworzenia naszej aplikacji musimy uwzględnić funkcjonalność jaką chcemy uzyskać, zaawansowanie narzędzi, poziom trudności narzędzi i możliwość implementacji narzędzi na wszystkich platformach. 2.1 Funkcjonalność tworzonego oprogramowania Wzorując się na Wikimapii 9 tworzony produkt powinien zawierać funkcję tworzenia własnych warstw, ich dowolnego wyświetlania, modyfikacji czy nakładania ich na siebie. Niezbędna jest funkcja zapisywania informacji tekstowych na danej pozycji mapy. Stanowi to podstawową funkcjonalność wszystkich większości produktów na rynku. Dodawanie własnych multimediów to kolejny krok do uniwersalnej aplikacji. Konkurencja podnosi zainteresowanie swoim produktem zwiększając funkcjonalność w tym zakresie. W dobie dzisiejszych multimediów niezbędnym stało się ich udostępnianie by poprawić zainteresowanie jakimkolwiek produktem. Najlepszym rozwiązaniem byłoby udostępnienie możliwości dodawania każdego rodzaju multimediów, począwszy od prostej grafiki, a na danych audio-wizualnych kończąc. Każda mapa interaktywna powinna udostępniać możliwość wyznaczania własnych tras, ich rysowania na mapie, zapisywania do bazy, edycji czy usuwania. Wyszukiwanie określonych lokalizacji to również niezbędna funkcjonalność by można było mówić o w pełni interaktywnej mapie terenu. Narzędzie które posiada Google Maps 10 i które niejako kopiuje serwis Zumi.pl

18 było by pomocne w podniesieniu atrakcyjności oprogramowania. Narzędziem tym jest w przypadku firmy Google StreetView, a w przypadku serwisu Zumi.pl Ulica 360 o Wymagana funkcjonalność narzędzi Aby zbudować aplikację spełniającą stawiane oczekiwania musimy wybrać narzędzia które dobrze się ze sobą komunikują. Mają wzajemne wspomaganie i przy współpracy są w miarę niezawodne. Skoro jest to aplikacja internetowa to niezbędny jest serwer na którym będzie przechowywana. Dane aplikacji powinny być przechowywane w jakiejś bazie danych. Po napisaniu aplikacji należy ją skompilować więc będzie nam potrzebny kompilator wybranego języka programowania. Przed samą budową aplikacji powinniśmy ją zamodelować aby późniejsza praca szła według założeń z modelu. Funkcjonalność jaką wymagamy od sposobów modelowania to możliwość opisu procesów jakie mają zachodzić w aplikacji, opisu terminatorów i ich komunikacji z aplikacją, opisy magazynów danych. 2.3 Wybór narzędzi do modelowania projektu Tworzona aplikacja i jej założenia wymagają zaprojektowania złożonego systemu. Dla ułatwienia samego procesu projektowania wskazane jest użycie jednej z metodyk, służących do modelowania dziedziny problemu. Dużą popularność zyskują metodyki umożliwiające modelowanie w trybie zorientowanym obiektowo. Wiążą się one z wykorzystaniem specjalnych języków modelowania - także graficznych. Wśród nich niezwykle dużą popularność zyskał język UML (z ang. Unified Modeling Language) 13. Z uwagi na szerokie możliwości graficznego pokazania różnych aspektów projektowania taka właśnie metodyka wydaje się najbardziej odpowiednia do przedstawienia dziedziny problemu projektowanej aplikacji

19 2.3.1 Unified Modeling Language Występująca na rynku przewaga narzędzia do modelowania pod nazwą UML nad innymi sposobami modelowania dziedziny problemu wskazuje na konieczność użycia części oferowanych przez UML metod do zobrazowania problemu. Cała funkcjonalność metody UML nie jest nam potrzebna by prawidłowo zamodelować tworzony system. Diagramy które będziemy wykorzystywać to diagram przypadków użycia, klas oraz encji. 2.4 Wybór narzędzi koniecznych do stworzenia implementacji Do opracowania założonego rozwiązania wymagane jest zaprojektowanie i wykonanie działającej implementacji aplikacji internetowej na podstawie założonego projektu. Zarówno zaprojektowanie jak i wykonanie aplikacji internetowej będą wymagały zaangażowania dodatkowych środków, głównie w postaci starannie dobranych narzędzi i technologii Poszukiwanie narzędzi do budowy aplikacji internetowej Osiągnięcie w budowanej aplikacji określonej w rozdziale 2.1 funkcjonalności będzie prawdopodobnie wymagało użycia kliku narzędzi umożliwiających budowanie aplikacji internetowych, budowania interfejsu dla użytkownika oraz silnika aplikacji który sprosta późniejszemu zadaniu przetwarzania dużej ilości danych. PHP Hypertext Preprocesor PHP 14 to obiektowy i skryptowy język programowania dla stron internetowych. Jest bardzo popularny ze względu na swoją bardzo dobrą współpracę z serwerem WWW Apache oraz serwerem baz danych MySQL. Jego szerokie możliwości oraz szereg dodatków czynią go językiem programowania bardzo przydatnym w budowie

20 aplikacji internetowych. Z mnogości funkcji jakie oferuje PHP możemy wyszczególnić te najbardziej przydatne w budowaniu naszej aplikacji. Funkcje łączenia z bazą danych Ponieważ zdecydowaliśmy się przetrzymywać dane w bazie danych, powinniśmy mieć do tych danych łatwy dostęp. PHP umożliwia nam szereg funkcji operujących na bazach danych wielu producentów. Począwszy od łączenia się z wybraną bazą danych, aż do zamknięcia połączenia, mamy możliwość dość swobodnego manipulowania danymi zawartymi w bazie. Funkcje przetwarzania tekstu Dzięki rozbudowanym funkcjom do przetwarzania tekstu jakie posiada PHP, możemy dobrze analizować wpisywaną przez użytkownika zawartość, aby zwiększyć bezpieczeństwo aplikacji. Język programowania JavaScript JavaScript jest obiektowym i skryptowym językiem programowania wykorzystywanym głównie na stronach WWW. Często jest używany do zapewnienia interaktywności. jquery Framework Biblioteka programistyczna, która jest dedykowana dla języka JavaScript. Umożliwia pozyskanie bardzo efektywnych animacji na stronach internetowych, co sprawia, że stają się one dynamiczne i bardziej profesjonalne. Kod napisany w jquery jest o wiele mniejszy pod względem objętości, czytelniejszy i co najważniejsze, dużo mniej skomplikowany w porównaniu do czystego JavaScript u. Wielką zaletą omawianego framework u jest to, że cieszy się ona pełną funkcjonalnością na wszystkich, dostępnych przeglądarkach, jakie są aktualnie na rynku internetowym. 20

21 CSS Kaskadowe arkusze stylów Język, który został stworzony dzięki organizacji W3C (World Wide Web Consortium) 15. Jest to standard mający na celu kreowanie formy w jakiej dana strona WWW zostanie wyświetlona. Całość bazuje na listach reguł, wewnątrz których można w łatwy sposób wypozycjonować poszczególne elementy na stronie, nadać czcionkom konkretną rodzinę, kolor, czy wielkość oraz manipulować szerokościami marginesów i odstępami międzywierszowymi Środki wymagane do stworzenia aplikacji internetowej Do wymodelowania projektu systemu konieczne będzie użycie niektórych opisanych narzędzi. Najlepszym rozwiązaniem będzie wykorzystanie tylko systemu do modelowania UML ze względu na wyczerpującą funkcjonalność tegoż systemu. Do zaprojektowania systemu z modelu najlepszymi narzędziami będą: podstawowy język tworzenia stron internetowych HTML i xhtml, obiektowo zorientowany język PHP oraz język programowania JavaScript. Do graficznego wykończenia aplikacji najlepszym rozwiązaniem będzie kaskadowy arkusz stylów i biblioteka jquery. 2.5 Możliwe platformy dla projektowanej aplikacji Jako że jednym z założeń jest uniwersalność aplikacji, należy zastanowić się nad możliwymi platformami i systemami na których będzie bezproblemowo działać nasza aplikacja. Ze względu na bardzo dużą liczbę dostępnych na rynku możliwości zachodzi potrzeba wymienienia kliku najpopularniejszych Platforma sprzętowa Charakterystyka aplikacji zakłada że będzie ona wykorzystywana raczej stacjonarnie w firmach aniżeli na urządzeniach przenośnych. Dodatkowo aplikacja nie będzie wymagać dostępu do Internetu jako że będzie posiadać opcje zapisu projektu

22 do pliku. Dostęp do Internetu jest konieczny do umieszczenia projektu, stworzonego w aplikacji, w sieci. Podążając w tym kierunku możemy wybrać platformę sprzętową jaką jest PC Personal Computer 16. Jest to platforma najbardziej rozpowszechniona i najłatwiej dostępna oraz ma pełną możliwą funkcjonalność System operacyjny Przy wyborze systemu operacyjnego kierować będziemy się przede wszystkim łatwością implementacji narzędzi, jego dostępnością i popularnością na rynku oraz osobistymi doświadczeniami. System operacyjny rodziny Windows Najbardziej rozpowszechniony system operacyjny wykorzystywany w rozwiązaniach domowych i komercyjnych. Przeznaczony na komputery stacjonarne i przenośne. Jego niewątpliwą zaletą jest liczba użytkowników. Co zwiększa liczbę użytkowników, do których ma dotrzeć tworzona aplikacja. Rodzinę systemów MS Windows najlepiej zawęzić do trzech ostatnich i najpopularniejszych systemów operacyjnych tj. MS Windows XP, MS Windows Vista oraz MS Windows 7. Na systemach z rodziny Windows nie będzie żadnego problemu z doborem narzędzi do budowy aplikacji. System operacyjny rodziny Linux Do rodziny systemów operacyjnych Linux można zaliczyć bardzo dużo zróżnicowanych dystrybucji, które można podzielić na funkcjonalność jaką mają spełniać. Systemy operacyjne Linux przeznaczone są przede wszystkim na wszelkiego rodzaje serwery czy urządzenia sieciowe. Popularnością dorównują systemom operacyjnym rodziny MS Windows. Jednakże zaawansowanie tych systemów ogranicza liczbę użytkowników do tych bardziej zaawansowanych

23 Narzędzia do budowy naszej aplikacji dobrze współpracują z tymi systemami. Jest on więc również odpowiedni. System operacyjny rodziny Mac OS X Ostatnim z porównywanych przez nas systemów jest Mac OS X, który jest dedykowany tylko i wyłącznie dla komputerów stacjonarnych, jak i przenośnych, kalifornijskiej korporacji, jaką jest Apple Inc. 17 System ten jest bardzo prosty w użyciu, a przede wszystkim jest szybki i stabilny. Czasami można mieć wrażenie, że jest połączeniem dwóch omawianych wcześniej systemów. Łatwość w obsłudze, którą mamy w systemach MS Windows oraz szeroki wachlarz narzędzi występujący w systemach Linux, daje rewelacyjną kompilację, jaką jest Mac OS X. Co raz to większa popularność i narastające zainteresowanie omawianym systemem, doprowadziła do tego, że również to oprogramowanie znajduje się na naszej liście rozwiązań o wykorzystanych i możliwych platformach. Jeśli zaś poruszymy kwestię narzędzi, które będą potrzebne do powstania rozwiązania, to nie musimy się martwić, ponieważ i na ten system operacyjny jest bardzo duża dostępność narzędzi, programów i aplikacji wspomagających budowę naszego szablonu Platforma umożliwiająca składowanie danych Projekt systemu zakłada szeroką gamę usług, z których będą mogli korzystać przyszli użytkownicy. Zapewne przez działający system przewinie się spora ilość danych, które trzeba będzie gdzieś gromadzić. Sugeruje to zastosowanie dobrej, ale przede wszystkim wydajnej platformy do gromadzenia i składowania danych. Najlepszym rozwiązaniem wydaje się wykorzystanie gotowego Systemu Zarządzania Bazą Danych (SZBD) 18, umożliwiającego dostęp interakcyjny z wykorzystaniem specjalnego dialektu języka SQL. Istnieje sporo takich systemów, z których można skorzystać w różnych przypadkach. Żeby znaleźć najbardziej optymalny system dla

24 projektowanej aplikacji, należy w takiej sytuacji dokładnie przeanalizować najpopularniejsze przypadki dostępne na rynku. Spośród wszystkich możliwości zostały wybrane dwa systemy, a są nimi MySQL i PostgreSQL. SZBD MySQL Chyba najpopularniejszym obecnie stosowanym rozwiązaniem jest wolno dostępny system zarządzania relacyjną bazą daynch pod nazwą MySQL. System ten jest pisany z myślą o szybkości. MySQL jest w większej części zgodny z obowiązującym standardem SQL:2003. System ten wprowadza swoje własne rozszerzenia i elementy języka SQL. Dużą zaletą MySQL jest dostępność tego systemu pod większość popularnych platform systemowych i różnych architektur procesorów. Czyni go to systemem uniwersalnym. MySQL jest wykorzystywany z serwerem WWW Apache oraz implementacją języka PHP jako platforma AMP. Jest to najpopularniejsza platforma do budowy stron i aplikacji internetowych. SZBD PostgreSQL Jeden z trzech najczęściej wykorzystywanych systemów zarządzania bazami danych. Obsługuje procedury pisane w wielu popularnych językach min. Python, Ruby, PHP, C, C++ czy Java. Posiada rozbudowany system indeksowania. W PostgreSQL dostępny jest mechanizm wyzwalaczy, który pozwala na automatyczne uruchamianie procedur po pewnych operacjach. 2.6 Wybór edytorów do pisania dokumentacji Ten podrozdział, dotyczyć będzie analizy wszystkich narzędzi, które posłużą do powstawania tej dokumentacji. Dostępnych programów i edytorów tekstu w sieci jest ogromna ilość, ale w tej pracy cała liczba możliwych technologii została ograniczona do dwóch najbardziej użytecznych i popularnych technik. Mowa tutaj o procesorze 24

25 tekstu, jakim jest Microsoft Word 19, dostępnym w pakietach biurowych MS Office 20 oraz o oprogramowaniu L A TEX Microsoft Word Jak już wcześniej wspomniano, jest to najpowszechniejszy z wszystkich dostępnych programów, do edycji tekstu. Działa on na komercyjnej licencji, która jest osiągalna tylko na systemy Windows i Mac OS X. Wykorzystywany będzie bardziej jako notatnik, a zapisana w nim treść, zostanie zmodyfikowana, łączona z testami systemu, czy modelowaniem projektu L A TEX Zostanie użyty w całym procesie powstającego projektu, jako finalne oprogramowanie, którego zadaniem będzie odpowiednie sformatowanie całości dokumentu tekstowo-graficznego, patrząc pod kątem technicznym na jego zawartość, m.in. ustalenie szerokości marginesów, akapitów, interlinii, kroju czcionek, wygenerowanie spisu treści oraz bibliografii, odpowiednie ułożenie tabel i rysynków, czy wytworzenie przypisów. Dzięki zebraniu wszystkich materiałów, powstanie finalna wersja udokumentowanej pracy inżynierskiej. 2.7 Podsumowanie koncepcji Podsumowując rozważania na temat platform na które przeznaczony zostanie nasz system dochodzimy do wniosku, że najlepszym rozwiązaniem będzie skupienie się nad działaniem aplikacji na sprzęcie typu PC z zainstalowanymi systemami z rodziny MS Windows. Dodatkowo platformą przeznaczoną na składowanie danych powinien być system zarządzania bazami danych pod nazwą MySQL. Całość naszym zdaniem zapewni odpowiedni poziom zainteresowania tworzoną aplikacją. Uzasadniając stwierdzamy, że wybrane przez nas funkcjonalność, narzędzia i platformy są odpowiednie do napisania przez nas założonej aplikacji i wykonania. Wybrane szczegóły są ogólno dostępne i cały czas przez nas wykorzystywane. Ograniczamy

26 tym samym czas potrzebny na przyswojenie nowych, trudnych języków programowania i narzędzi. 26

27 ROZDZIAŁ III PROJEKT ROZWIĄZANIA Jak już zostało ustalone w ogólnej koncepcji rozwiązania, cały szablon musi być uniwersalnie dopasowany do każdej platformy systemowej. Jest to jedna z najważniejszych cech naszej aplikacji, ponieważ bez względu na posiadany system operacyjny, każdy będzie mógł korzystać z tego projektowanego oprogramowania, bez jakichkolwiek problemów. Dodatkowo będzie on współpracować w oparciu o najbardziej znany, łatwy w obsłudze i powszechnie używany system zarządzania bazami danych, czyli MySQL, co też uważamy za kolejną, pozytywną właściwość. Do wykreowania struktury strony WWW oraz jej wyglądu zostaną użyte następujące języki, takie jak: HTML, znany jako język znaczników hipertekstu i CSS, czyli kaskadowe arkusze stylów. Wszystkie funkcje, moduły i cała mechanika aplikacji będzie bazowała na wieloplatformowym, obiektowym języku, jakim jest PHP, który strony internetowe generuje dynamicznie. Za całą interakcję z użytkownikiem, jak również za efekty wizualne są odpowiedzialne: JavaScript i biblioteka pisana pod ten język - jquery. Zarys całego systemu i logiki w nim panującej przedstawimy w poniższym podrozdziale na konkretnych diagramach języka UML. 3.1 Modelowanie diagramu przypadków użycia Jedną z najistotniejszych rzeczy występujących w diagramach przypadków użycia, są Aktorzy. Aktor jest obiektem, który jest odpowiedzialny za interakcję z działającym systemem i wypełniający swoje obowiązki, które mu przydzielono w projektowanym modelu systemu. Mimo, że z nim współpracuje, to tak na prawdę nie wchodzi w jego skład tylko znajduje się poza głównymi granicami całej architektury. Sposobem przedstawienia obiektów w postaci Aktora jest ludzik. Domyślnie wyglądem przypomina człowieka, tyle że jest skonstruowany za pomocą odcinków połączonych razem ze sobą, dających szkielet oraz posiada dużą głowę. Konsumenci, którzy będą mogli korzystać z funkcjonalności dostarczonej za pośrednictwem projektowanego rozwiązania, to: 27

28 ADMINISTRATOR jest odpowiedzialny za przede wszystkim sprawne działanie systemu, kontroluję pracę SERWERA, dodaje, bądź edytuje istniejące już dane, czy opcje aplikacji. Dba o bezpieczeństwo panuące w systemie, nadzoruje kontami UŻYTKOWNIKÓW, eliminuje napotykane wady w funkcjonalności aplikacji. Ma pełne uprawnienia i możliwości, co do edycji oraz nieograniczony dostęp do całego systemu. Ten aktor został wprowadzony jako pierwszy do modelowanego systemu, ponieważ miał największy priorytet. UŻYTKOWNIK jego głównym celem jest tworzenie wyglądu powstającego segmentu mapy, gdzie w skład tego wchodzi między innymi: każda nowopowstała warstwa, dzięki której jesteśmy w stanie rozróżnić dla przykładu kolejne piętra w domach, budynkach. Do kolejnych czynności zalicza się możliwość usuwania, modyfikacji już istniejących danych, czy ich zapis na przenośne nośniki danych, czy po prostu na dyski twarde. Ponadto ma przydzielone uprawnienia do dodawania multimediów do ulubionych, czy odwiedzonych już wcześniej lokacji w postaci plików audio-wizualnych oraz plików graficznych. Szablon udostępnia także omawianemu aktorowi, opcje wyszukiwania pożądanej lokalizacji oraz wyznaczania trasy. Z kolei ten aktor przyczynił się do testowania końcowego tego szablonu aplikacji, co zostanie omówione w rozdziale 5. SERWER jest to główny silnik uruchomionej aplikacji, który jest w stanie wyświetlić całą zawartość w przeglądarce internetowej, podstawa, bez której, w gruncie rzeczy, nie jesteśmy w stanie nic dalej zrobić, testować, nanosić zmiany itp. Za wprawienie w ruch SERWERA odpowiada ADMINISTRATOR i jest to kluczowa czynność, która musi się odbyć zaraz na początku, przed samym uruchomieniem aplikacji, w przeciwnym wypadku dalsza praca, czy ewolucja aplikacji jest niemożliwa. I jest to ostatni już z omawianych aktorów, znajdujących się po zewnętrznej stronie modelowanego systemu. 28

29 Wszystkie zależności między użytkownikami, administratorem, serwerem, a projektowanym systemem w obszarze rozstrzyganego problemu, jest możliwe wyrażenie tego, dzięki diagramowi Przypadków Użycia (Rys.1). Rys. 1. Diagram przypadków użycia Źródło: Opracowanie własne Jak widać na powyższym rysunku, można w nie trudny sposób wywnioskować, iż zarówno UŻYTKOWNIK, jak i ADMINISTRATOR, wykonują bardzo podobne czynności. Ich drogi spotykają się głównie w trakcie tworzenia danych i dodawania nowych funkcjonalności. W obydwu przypadkach korzystają z opcji zapisu, modyfikacji, czy usuwania danych. UŻYTKOWNIK ma dodatkową możliwość dodawania plików multimedialnych w trakcie powstawania rysowanej mapy, wyszukiwania na niej lokacji i wyznaczania drogi. Natomiast wracając do ADMINISTRATORA, jest on w dużej mierze powiązany z SERWEREM. To właśnie dzięki niemu ADMINISTRATOR jest w stanie kontrolować pracę systemu, monitorować zachowania UŻYTKOWNIKÓW w stosunku do uruchomionej na SERWERZE aplikacji internetowej. Całość pracy ADMINISTRA- TORA zaczyna się od momentu uruchomienia serwera WWW. 29

30 3.1.1 Charakterystyka przypadków użycia W tym podrozdziale zostanie szczegółowo omówiony każdy z przypadków użycia, zarówno w postaci merytorycznej, jak i przedstawiony graficznie w formie grafu. Charakterystyka ta, ma za zadanie rozbić każdy, kolejny przypadek użycia z głównego diagramu, do takiej postaci, aby czytelnik wiedział, co i kto wchodzi w skład pojedynczego przypadku, jakie czynności oraz funkcje są w nim wykonywane. Dodatkowo zostaną uwzględnione warunki, czy ewentualne alternatywne akcje w poszczególnych przypadkach. Oto lista wszystkich przypadków użycia: Tworzenie danych Przypadek ten rozpoczyna UŻYTKOWNIK po uruchomieniu szablonu aplikacji. Po wykonaniu tej czynności ma do wyboru dwie opcje: wygenerowanie nowego okna do rysowania mapy lub wybranie istniejącej już mapy. Jest to również możliwe po wybraniu pustego szablonu mapy. Ten krok jest dość istotny, ponieważ w tym miejscu UŻYTKOWNIK określa warstwy powstającej mapy. Po spełnieniu wszystkich warunków ma on dostęp do narzędzi, umożliwiających projektowanie końcowej mapy, która z kolei jest poszerzona o dodatkowe opcje: zapis, modyfikację i usuwanie. Rys. 2. Szczegółowy diagram tworzenia danych Źródło: Opracowanie własne 30

31 Jak widać na powyższym diagramie, jest on najistotniejszy i kluczowy dla UŻYT- KOWNIKA oraz dla powstającej, nowej mapy. Cały proces łączy się z późniejszym powstaniem nowej warstwy danej mapy i pełnym zarządzaniem danymi na nich. Kreowanie warstw wyświetlanej mapy Przypadek ten jest rozszerzeniem dla tworzonej mapy. UŻYTKOWNIK w nim wybiera konkretną mapę i ładuje ją, przy czym pojawia się opcja przypisania liczbowej wartości, która będzie oznaczać warstwę danej mapy. Określany jest w tej chwili priorytet warstwy, czyli mapa z wyższą liczbą, będzie ustawiona wyżej od tej z niższym priorytetem (liczbą). Całość jest zatwierdzana, po czym następuje alternatywny powrót do wyboru kolejnej mapy. Rys. 3. Szczegółowy diagram kreowania warstw Źródło: Opracowanie własne Z powyższego diagramu wynika, że każdy UŻYTKOWNIK, w bardzo łatwy sposób może nadawać konkretnym mapom priorytety. Co to oznacza? Wyjaśnienie jest proste, mianowicie UŻYTKOWNIK może posadzić drzewo na ziemi, ale nie może już zrobić tego samego w odwrotną stronę. Usuwanie danych Na diagramie widnieje cały proces usuwania danych, dostępny zarówno dla UŻYT- KOWNIKA, jak i dla ADMINISTRATORA systemu. Obydwie ze stron wykonują kopię roboczą na wypadek późniejszych awarii oraz błędów występujących w trakcie modelowania mapy, czy modułów. Całość ogranicza się tylko do zaznaczenia 31

32 niechcianego materiału i dokonania wyczyszczenia danych. Czynność ta jest zakomunikowana wcześniejszą informacją, w której potwierdzamy albo anulujemy proces usunięcia danych. Rys. 4. Szczegółowy diagram usuwania danych Źródło: Opracowanie własne Komentując ten rysunek, zwrócono szczególną uwagę na utrzymywanie porządku panującego w kodzie źródłowym oraz inteligentne segregowanie i kompletowanie tego kodu przez ADMINISTRATORA w odpowiednio wcześnie zdefiniowanej strukturze katalogów. Natomiast, poruszając kwestię UŻYTKOWNIKA, usuwane przez niego dane dotyczą się głównie niepotrzebnych elementów, obszarów na mapie, ale również warst danej mapy. Modyfikacja danych Przypadek ten zaczyna się od chwili wyboru modelowanej mapy przez UŻYT- KOWNIKA, który to ją zamierza edytować oraz od ADMINISTRATORA, który z kolei wczytuje nieskończony, bądź niepoprawny moduł. Następnie są modyfikowane według uznania obydwu ze stron, po czym każdy z nich przystępuje do procesu zapisywania. Podobnie jak to ma miejsce w przypadku użycia Zapis danych, wszystkie zmodyfikowane dane zostaną zachowane po zatwierdzeniu informacji o zachodzących zmianach. 32

33 Rys. 5. Szczegółowy diagram modyfikacji danych Źródło: Opracowanie własne Osoba często modyfikująca swój wyrób, będzie w stanie zauważyć duży związek z poniższym przypadkiem użycia, czyli z zapisywaniem danych. Bieżący przypadek różni się tylko tym, że cały proces zapisujących się projektów jest poprzedzony edycją, wybranych przez UŻYTKOWNIKÓW I ADMINISTRATORA elementów. Zapis danych Szczegółowy diagram poniżej obejmuje okoliczności w jakich się znajdują UŻYT- KOWNIK i ADMINISTRATOR, jeśli chcą dokonać zapisu danych. Przebieg zapisu rozpoczyna się w momencie, gdy zostaną wybrane odpowiednio elementy, które posłuża do zachowania. Kolejno zatwierdzenie opcji zapisu spowoduje pojawienie się komunikatu o pomyślnym toku zapsiwania. Rys. 6. Szczegółowy diagram zapisu danych Źródło: Opracowanie własne 33

34 Zarówno UŻYTKOWNIK modelujący mapę oraz jej warstwy, jak i programista, który głowi się nad nową funkcjonalnością modułów i próbuje je wdrożyć - w tym przypadku ADMINISTRATOR - potrzebują mieć możliwość zapisywania swojego stanu pracy. Bez tej opcji, cała ich praca nie miałaby sensu, a tworzenie nowej rzeczy bez przerwy, na dłuższą metę jest awykonalne, np. projekt ogromnego, kilkupiętrowego pawilonu, czy bardzo zaawansowanego modułu. Dodawanie multimediów Przypadek ten ilustruje, jakie kroki powinien przejść UŻYTKOWNIK, aby ten mógł spokojnie dodać materiały multimedialne na swojej, nowej mapie. Zaczyna się od zaznaczenia jakiegoś punktu na mapie o określonych współrzędnych. Następnie UŻYTKOWNIK jest poproszony o zlokalizowanie pożądanego pliku audiowizualnego na swoim sprzęcie, po czym zatwierdza i integruje znaleziony plik z miejscem na mapie. Rys. 7. Szczegółowy diagram dodawania multimediów Źródło: Opracowanie własne Jeśli chodzi tutaj o przedstawiony powyżej przypadek użycia, to jest on żywym dowodem na to, że ten interaktywny szablon posiada coś nowoczesnego i innowacyjnego, jak na współczesną technologię internetową. W porównaniu do innych, interaktywnych map terenu, które zostały dokładnie omówione we wcześniejszych rozdziałach, ewidentnie widać, po zebraniu wszystkich argumentów przemawiających za tym, iż ta aplikacja staje się wyjątkowym narzędziem dla każdej osoby. 34

35 Wyszukiwanie lokalizacji W tym przypadku UŻYTKOWNIK ma prawo także do wyszukania lokalizacji, która go interesuje. Na samym początku wybiera moduł za to odpowiedzialny, czyli typową wyszukiwarkę, w której wprowadza parametry szukania, mowa tutaj o np. danym obszarze zieleni, odcinku torów kolejowych, czy starej kamienicy. Dzięki tej opcji UŻYTKOWNIK ma dodatkową możliwość wyznaczenia własnej drogi z jednego miejsca, do drugiego układu współrzędnych. Następnie zwracana zostaje lista wynikowa wraz z współrzędnymi lokacji, po czym osoba obsługująca mapę, wybiera odpowiednie miejsce z listy, zaznaczając ją. Rys. 8. Szczegółowy diagram wyszukiwania lokalizacji Źródło: Opracowanie własne Podsumowując ilustrację wyżej, UŻYTKOWNIK dzięki wyszukiwarce punktów, miejsc oraz obszarów na mapie, może w szybki sposób namierzyć pożądaną lokalizację. Jest to dosyć wygodna funkcjonalność, chociażby z tego względu, że posiadając bardzo dużą ilość koordynatów na mapie, z łatwością je można namierzać. Wyznaczanie trasy Przypadek ten zostaje użyty opcjonalnie przez UŻYTKOWNIKA, w momencie wprowadzenia parametrów wyszukiwania. Pokazanie się dodatkowego pola tekstowego, umożliwia wprowadzenie dodatkowego miejsca (współrzędnej) na mapie, określającego początek lub koniec trasy. Ponadto, korzystająca z aplikacji osoba, określa 35

36 punkty kontrolne danej drogi, przez które trasa może, lecz nie musi przebiegać. Po zatwierdzeniu pożądanych ustawień, generowana jest ścieżka w postaci nowej trasy, wyglądem przypominająca odcinek lub zbiór odcinków, jeżeli zostały określone punkty kontrolne. Rys. 9. Szczegółowy diagram wyznaczania trasy Źródło: Opracowanie własne Rozważając szczegółowy diagram dotyczący wyznaczenia drogi, ułatwia on zobrazowanie UŻYTKOWNIKOM stworzonego rozwiązania, jakie proponuje aplikacja. Można to rozwiązanie zmodyfikować o podanie alternatywnych punktów kontrolnych, jeśli to UŻYTKOWNIK zna jakieś skróty w trasie, albo wie o istniejących robotach na drodze. Dodanie nowej funkcjonalności Przypadek ten zaczyna się po uruchomieniu szablonu aplikacji przez ADMINI- STRATORA w trybie edycyjnym. Po spełnieniu tego zadania, ma on do wybrania dwie drogi. Pierwszą z nich jest wygenerowanie nowego modułu mapy, bądź załadowanie istniejącego już modułu. Opcja ta jest również możliwa po stworzeniu pustego modułu mapy, w celu ułatwienia pracy ADMINISTRATOROWI, który może skopiować i operować na istniejącym już kodzie. Gdy zostaną zakończone wszystkie poprzednie etapy tworzenia nowego modułu, ADMINISTRATOR przystępuje do implementowania modułu. Edycja budowania modułów została rozszerzona o kolej- 36

37 ne funkcjonalnoci, czyli zapisywanie danych, modyfikowanie i usuwanie ich. Rys. 10. Szczegółowy diagram dodawania nowych funkcjonalności Źródło: Opracowanie własne Ten diagram z kolei jest bardzo istotny i z najwyższą wagą dla ADMINISTRA- TORA, a także dla nowo powstającego modułu. Pełne zarządzanie danymi odbywa się na niemal identycznych warunkach, jakie można dostrzec w przypadku UŻYT- KOWNIKA i projektowanej przez niego mapy wraz z wszystkimi zależnościami, występującymi pomiędzy każdą warstwą. Różnica w omawianych dziedzinach tkwi tylko w uprawnieniach i dostępie danej osoby do trybu edycyjnego z pełnym wachlarzem możliwości. Kontrola pracy systemu Decydującą rolę sprawuje tutaj ADMINISTRATOR. Po wcześniejszym zalogowaniu się do panelu administracyjnego, ma on do wyboru dwie opcje. Pierwszą z tych opcji jest wykonanie szczegółowego testu wydajnościowego, którego cechą główną jest wychwycenie napotkanych błędów, wylistowanie komunikatów ostrzeżeń i wygenerowanie na jego podstawie raportu, zapisywanego do pliku tekstowego. Ko- 37

38 lejnym, a zarazem ostatnim zadaniem ADMINISTRATORA jest sprawdzenie logów systemowych, czyli czy nie było jakichś niepożądanych zmian w plikach, ustawieniach. Rys. 11. Szczegółowy diagram kontroli pracy systemu Źródło: Opracowanie własne Podsumowując, ten diagram przedstawia jedną z najważniejszych zadań, które wykonuje ADMINISTRATOR. Kontrolując pracę systemu jest on w stanie na bieżąco monitorować zachowania zachodzące w systemie. Łączy się to z poniższymi przypadkami użyć, czyli z pilnowaniem bezpieczeństwa oraz eliminowaniem błędów. Pilnowanie bezpieczeństwa Poniższy diagram przestawia rozwiązanie, które rozszerza możliwości kontroli systemu. ADMINISTRATOR, po wcześniejszym przeglądnięciu danych i ustawień, weryfikuje je pod kątem zawartości. W tej sytuacji powinien ograniczyć dostęp do informacji i automatycznie zwiększyć odporność systemu, tam gdzie zaistniały szkody. Dla pewności ADMINISTRATOR przegląda wpisy w rejestrze raz jeszcze. Niezbędną czynnością jest tutaj wykonanie kopii zapasowej, która umożliwi ewentualne, późniejsze przywrócenie ostatnio działających ustawień oraz danych. 38

39 Rys. 12. Szczegółowy diagram dot. bezpieczeństwa Źródło: Opracowanie własne Teraz kilka rozważań na temat bezpieczeństwa panującego w systemie. Zaraz obok powstających nowych funkcjonalności, dokonywanych przez ADMINISTRA- TORA, jest to drugi z najważniejszych procesów. Dzięki tym wszystkim krokom zawartym w diagramie powyżej ADMINISTRATOR systemu może uniknąć wiele nieprzyjemnych zjawisk, takich jak: straty danych, doszukiwanie się różnic w ustawieniach systemu. Eliminowanie błędów Diagram ten pokazuje wszystkie stany ADMINISTRATORA, który ma za zadanie naprawić błędy zaistaniałe w budującej się aplikacji. Na samym początku potrzebne jest zlokalizowanie wady, po czym należy natychmiast przywrócić dane z wykonanej wcześniej kopii zapasowej. Gdy ADMINISTRATOR już to wykona, zaczyna informować UŻYTKOWNIKÓW o trwających pracach naprawczych i w trybie natychmiastowym poprawia zaistniałe niedogodności lub pisze łatki naprawcze. Na zakończenie, optymalizuje swój kod źródłowy żeby był jak najbardziej wydajny i wdraża go. Robi to do tego stopnia, aż nie uzyska zadowalających efektów. 39

40 Rys. 13. Szczegółowy diagram eliminowania błędów Źródło: Opracowanie własne Reasumując rozważania dotyczące naprawy aplikacji, należy poruszyć kwestię doszukiwania się błędów i szybkiej reakcji, jeśli chodzi o ich reperację. Mianowicie, ADMINISTRATOR piszący kod musi szybko znaleźć problem i rozwiązać go, lecz także musi pamiętać o załadowaniu kopii zapasowej systemu, aby UŻYTKOWNIK mógł dalej korzystać z aplikacji. Uruchomienie serwera WWW Ostatni z omawianych przypadków użycia mówi włączeniu serwera WWW. Głównymi warunkami, które należy spełnić podczas tego procesu to: włączenie sprzętu, gdzie ADMINISTRATOR przechowuje dane dotyczące szablonu oraz uruchomienie środowiska AMP, w którym wykonuje swoje prace związane z całkowitym powstawaniem aplikacji. Ten krok jest ściśle związany z SERWEREM, bo właśnie w tym momencie ADMINISTRATOR systemu nawiązuje z nim połączenie. Gdy wszystko przebiegnie zgodnie z planem, pozostaje już tylko przygotować wirtualne katalogi z zawartością szablonu aplikacji i sprawdzić, czy zainstalowane środowisko AMP jest poprawnie skonfigurowane. 40

41 Rys. 14. Szczegółowy diagram uruchomienia serwera WWW Źródło: Opracowanie własne Patrząc na ostatni graf z przypadkami wykonywanych czynności, trzeba stwierdzić stanowczo, że bez udziału SERWERA, z którym komunikuje się ADMINISTRA- TOR i bez jakiejkolwiek platformy sprzętowej, dalszy postęp w realizowaniu aplikacji byłby po prostu niemożliwy. Jeśli zaś chodzi o środowisko AMP, przygotowanie wirtualnych katalogów pod pisany szablon, czy sprawdzenie konfiguracji, to jedynym, ale bardzo negatywnym czynnikiem w tejże sytuacji jest opóźnienie rozwoju aplikacji. 3.2 Schemat bazy danych Jak wiadomo, każdy system informatyczny pracuje w oparciu o jakiś skład danych, w którym przechowuje się informacje. Mowa tu oczywiście o bazie danych, która jest priorytetowym elementem, a zaprojektowanie jej jest również bardzo ważne. Celem było stworzenie czytelnej, logicznie połączonej i znormalizowanej bazy. W przypadku mniejszych projektów, dla przykładu może tu posłużyć uniwersalny szablon, któremu poświęcona jest ta praca, wykonanie takiej bazy jest trywialne, w porównaniu do ciężkich i bardzo złożonych systemów. Dlatego postanowiono rozplanować cały system na jak największą liczbę tabel z sensownie dobranymi relacjami. Największym problemem stanowiło inteligentne połączenie wszystkich tabel w logiczną całość. Ostateczne rozwiązanie schematu bazy danych zostało rozdzielone 41

42 na 8 tabel, gdzie 2 pełnią rolę głównych koncentratorów, a pozostałe 6 są podpięte do nich za pomocą kluczy obcych. Tabele kompletnej bazy danych przedstawiono w Tabeli 1. Tabela 1 Baza danych wykaz tabel NAZWA TABELA: Wspolrzedna TABELA: Trasa TABELA: Prawa TABELA: Multimedia TABELA: Warstwa TABELA: Obiekt TABELA: Projekt TABELA: Uzytkownik PRZESŁANIE W tej tabeli gromadzone są współrzędne osi X i Y Ta tabela przechowuje wyniki wygenerowanych tras Tutaj są zapisane ograniczenia dostępu użytkowników W tej tabeli są gromadzone nazwy i typy plików multimedialnych W skład tabeli wchodzi nazwa danej warstwy, jej kolor i widoczność Wewnątrz tej tabeli gromadzone są dane dotyczące wytworzonych elementów W tej tabeli zapisywany jest stan oraz granice projektu Składowane są do niej dane loginu, haseł i adresów Źródło: opracowanie własne Jak widać na powyższej tabeli, zaprojektowana baza danych przez projektantów jest schludna i niewielkich rozmiarów. Wszystkie skompletowane dane, które się w niej znajdują, są odpowiednio posegregowane, żeby każdy użytkownik w nietrudny sposób mógł się do tych danych dostać Relacje w tabelach Relacyjna baza danych, jak sama nazwa wskazuje, składa się z kolekcji danych, czyli tabel oraz z relacji, w tym przypadku są to zależności pomiędzy tabelami. Na poniższej liście przedstawiona została zawartość tabel, wraz ze szczegółami: 42

43 TABELA Wspolrzedna idwspolrzedna, INT, określa klucz główny danej współrzędnej. Jest unikatowy, ponieważ oznacza konkretny punkt na mapie, osx, INT, ma za zadanie zapisać wartość z osi współrzednych X, osy, INT, ma za zadanie zapisać wartość z osi współrzednych Y. TABELA Trasa idtrasa, INT, klucz główny, przypisany do unikatowej trasy, którą można później ponownie wywołać, wynik, VARCHAR(45), służy do zapisywania listy współrzędnych, początku i końca drogi. TABELA Prawa idprawa, INT, określa dostęp i możliwości danego użytkownika szablonu, jest unikatowy, opis, VARCHAR(25), komentuje zakres praw, przykładowo "administrator" lub "uzytkownik". TABELA Multimedia idmultimedia, INT, przypisuje konkretny identyfikator do danego rodzaju multimediów, opis, TEXT, ma za zadanie zachować komentarz dotyczący danego pliku, typ, VARCHAR(20), definiuje pliki ze względu na kategorie, czyli dźwięk, wideo, grafika. TABELA Warstwa idwarstwa, INT, bardzo ważny identyfikator, który przechowuje informacje, czy dany obszar ma być wyświetlany, czy nie, nazwa, VARCHAR(45), przechowuje nazwę danego obszaru, kolor, VARCHAR(20), określa kolor zaznaczonej przestrzeni, aktywna, BOOL, wartość logiczna, ustawiająca widoczność danego terytorium, 43

44 Multimedia_idMultimedia, INT, klucz obcy, łączący się z tabelą multimedialną. TABELA Obiekt idobiekt, INT, atrybut ten przechowuje unikalny identyfikator danego obiektu na mapie, nazwa, VARCHAR(60), zapisuje nazwę danego przedmiotu, Warstwa_idWarstwa, INT, klucz obcy, pobierający dane o warstwach, na którym się znajduje obiekt. TABELA Projekt idprojekt, INT, klucz główny zapisujący kolejne liczby stworzonych projektów, stan, VARCHAR(20), służy do określenia etapu w jakim jest projekt, przykładowo "nowy", "zapisany", granica, VARCHAR(20), definiuje brzegi mapy, poza którymi nie można rysować, Obiekt_idObiekt, INT, klucz obcy, pobierający dane dotyczące obiektów stworzonych w danym projekcie, Wspolrzedna_idWspolrzedna, INT, klucz obcy, przechowujący współrzędne granic mapy, miejsc obiektów, Trasa_idTrasa, INT, klucz obcy, zwracający informacje na temat wytworzonych tras. TABELA Uzytkownik iduzytkownik, INT, unikatowy, a zarazem niezbędny klucz główny, przypisany do odpowiedniej osoby w systemie, login, VARCHAR(20), przechowuje ciąg znaków, niezbędnych do logowania, rejestracji, czy przypominania hasła, haslo, VARCHAR(20), spełnia taką samą rolę co atrybut "login", , VARCHAR(45), magazynuje listę adresów poczty elektronicznej, potrzebnej do przypomnienia haseł, 44

45 Projekt_idProjekt, INT, klucz obcy, dzięki któremu można połączyć daną osobę z konkretnym projektem, Prawa_idPrawa, INT, stanowi sprawdzenie, czy dana osoba ma przywileje administratora, czy też nie. Powyższa lista tabel omawianej bazy danych jest zrozumiała dla czytelnika, ponieważ zastosowano podczas jej tworzenia technikę normalizacji baz danych. Tabele zostały rozłożone do jak najprostszej postaci, dlatego późniejsze dodanie relacji między tabelami nie stanowiło już problemu. 3.3 Podsumowanie projektu rozwiązania Podsumowując. Pierwszorzędną sprawą było zamodelowanie diagramu przypadków użycia, po którym można wywnioskować, ile osób będzie brało udział w powstawaniu aplikacji, ile ludzi będzie potrzebnych do testowania szablonu, jakie możliwości zostaną przydzielone użytkownikom końcowym, podczas tworzonych przez nich map oraz jakie są relacje pomiędzy aktorami, wchodzącymi w skład projektowanego systemu. Kolejną rzeczą wartą przypomnienia jest schemat relacyjnej bazy danych, wewnątrz której zostały logicznie połączone tabele z danymi, poprzez wykorzystane pary klucz główny = klucz obcy. Dzięki temu, komunikacja i pobieranie danych z tabel jest dużo prostsza. Reasumując wszystkie rozważania na temat rozwiązania, które dotyczy modelowanego projektu, w jasny sposób określa kolejne kroki do przejścia oraz wyznacza nowe zadania, które trzeba spełnić. Mając już model głównego systemu, wraz z dołączoną strukturą bazy danych, programista może bez problemu przejść do implementacji. 45

46 ROZDZIAŁ IV IMPLEMENTACJA Po przeanalizowaniu dostępnych na rynku produktów, wybraniu odpowiedniej funkcjonalności, rozeznaniu się po narzędziach i możliwościach implementacji przychodzi pora na rozpoczęcie pracy nad samą aplikacją. Mamy już wszystko co jest nam potrzebne do napisania, przynajmniej w założeniu, kompletnej aplikacji. Pozostaje więc ją napisać. 4.1 Podział pracy nad aplikacją Praca nad aplikacją będzie dzielić się na dwie części. Pierwsza to zbudowanie odpowiedniego silnika aplikacji w którym zawierać się będą programowe funkcje i metody. Druga część to napisanie interfejsu graficznego umożliwiającego interakcje z użytkownikiem. Obie części aplikacji będą tworzone w miarę równocześnie ze względu na równoczesne testowanie poprawności, zarówno wyglądu jak i wykorzystania funkcjonalności. Pisana przez nas funkcja będzie znajdować się od razu w interfejsie użytkownika i wstępnie testowana. 4.2 Rozmieszczenie aplikacji w plikach Ze względu na jakość i łatwość pracy pliki w których będzie aplikacja będą podzielone na trzy grupy. Pierwszą grupą będą pliki do interakcji z użytkownikiem. Ze względu na specyfikę aplikacji będą się one znajdować w katalogu głównym aplikacji. Głównym plikiem wykonywalnym będzie plik index.php ze względu na automatyczne ładowanie go przez przeglądarki przy starcie. Druga grupa to pliki odpowiedzialne za wygląd aplikacji. Wszystkie pliki będą mieć rozszerzenie *.css ponieważ wygląd aplikacji będzie ustalany za pomocą kaskadowych arkuszy stylów. Znajdować będą się w podfolderze głównej aplikacji noszącym nazwę css. 46

47 Trzecią i ostatnią grupą są pliki silnika aplikacji. Pliki będą mieć rozszerzenia *.php i *.js. Zawierać będą kolejno funkcje języka PHP oraz skrypty języka Java- Script. Rys. 15. Struktura katalogów i plików aplikacji Źródło: Opracowanie własne Po uzgodnieniu struktury plików tworzymy zadeklarowane pliki i rozpoczynamy pisanie kodu źródłowego. 4.3 Spis modułów System został podzielony na kilka modułów by ułatwić pracę nad aplikacją i późniejsze wprowadzanie poprawek. Część modułów działa osobno ale większość jest łączona ze sobą w większe moduły. Spis modułów z krótkim opisem ich działania czy zawartości przedstawia Tabela 2. 47

48 Tabela 2 Lista modułów aplikacji MODUŁ Logowania Rejestracji Odzyskiwania dostępu do aplikacji Głównego menu Tworzenia nowego projektu Edycji Granic Warstw Obiektów Multimediów Tras OPIS Moduł weryfikujący użytkowników przed przystąpieniem do pracy z aplikacją Moduł dodawania nowych użytkowników do bazy danych Moduł pozwalający odzyskać hasło do konta użytkownika w razie problemów Moduł rozgraniczający inne moduły na zdefiniowane podgrupy Moduł otwierający okno edycyjne do tworzenia projektów Moduł łączący w całość poszczególne moduły tworzenia map Moduł rysujący granice terenu Moduł rysujący granice wybranej warstwy Moduł wyznaczający obiekt na mapie Moduł do wstawiania plików na obszary mapy Moduł rysowania tras na mapie Źródło: opracowanie własne Jak widać na załączonej tabeli część modułów integruje w grupy mniejsze moduły i wyświetla ja jako całość. Lista modułów będzie ulegała zmianie w zależności od zaawansowania aplikacji. 4.4 Opis poszczególnych modułów w aplikacji Mając ustalone moduły aplikacji przystępujemy do pisania każdego z osobna i ich integracji z całością kodu aplikacji. Większość modułów będzie występowała razem ze względu na charakter aplikacji, ale nie powinno to zbytnio spowolnić aplikacji, a ma na celu jedynie ułatwienie pracy użytkownikom. 48

49 4.4.1 Moduł logowania, rejestracji i odzyskiwania haseł Trzy moduły występujące niejako razem. Jeden rejestruje nowych użytkowników aplikacji, drugi zezwala już istniejącym na pracę w aplikacji, a trzeci nadaje nowe hasło do aplikacji w razie zguby poprzedniego dla zarejestrowanych użytkowników. Rejestracja będzie się odbywać przez prosty formularz. Dane wprowadzone do formularza będą po zatwierdzeniu wprowadzania danych przesyłane metodą POST do funkcji rejestracja(), która sprawdzi czy są wprowadzone wymagane dane i czy dane te nie zawierają szkodliwego kodu. Do sprawdzenia czy wymagane dane zostały wprowadzone, użyta została funkcja warunkowa if() z atrybutem:!empty($_post[ zmienna ]) Sprawdza to, czy przesłana z formularza wartość nie jest pusta. W razie błędu funkcja wraca do strony logowania z parametrem błędu i parametrem nie uzupełnionego pola. Strona rejestracyjna podświetli za pomocą innego formatowania pole do uzupełnienia. W przypadku poprawnego przejścia wszystkich funkcji warunkowych, czyli gdy wszystkie wymagane pola są uzupełnione, funkcja wykonuje zapytanie do tabeli użytkowników, w którym szuka wszystkich rekordów gdzie nazwa użytkownika lub adres są zgodne z wprowadzonymi w rejestracji. Jeśli zapytanie zwróci jakieś wyniki, funkcja rejestracja() wraca do formularza rejestracji z parametrem, który informuje użytkownika, że dane które wprowadził istnieją już w bazie danych. Jeżeli zapytanie do bazy danych zwróci pusty wynik następuje proces dodawania do bazy danych poszczególnych wartości. Dodawaniem do bazy zajmuje się zapytanie INSERT INTO Uzytkownik VALUES () Logowanie będzie czytać dane wprowadzone do formularza i wysyłać wartości metodą POST do funkcji logowanie($login, $haslo), która po pierwsze sprawdzi czy wartości nie są puste a następnie wykona zapytanie do bazy danych czy w tabeli użytkowników znajduje się rekord z nazwą użytkownika podaną w logowaniu oraz czy hasło podane podczas logowania zgadza się z tym zapisanym w tabeli. Hasło by mogło być porównane musi być w zapytaniu zaszyfrowane funkcją md5() by sprawdzić czy wartości po szyfrowaniu są jednakowe. Od odpowiedzi z bazy danych będzie zależało czy zostanie uruchomiona sesja aplikacji czy też aplikacja zaproponuje rejestrację. Jeśli odpowiedź na zapytanie SQL będzie zwracała pełną odpowiedź z danymi użytkownika nastąpi przekierowanie na kolejne moduły aplikacji. Odzyskiwanie hasła to również prosty formularz w którym użytkownik gdyby nie 49

50 pamiętał swojego hasła może podać login i adres podany przy rejestracji i tym sposobem wygenerować nowe hasło przesyłane mu na podany adres . Wartości wprowadzone w formularzy będą wysyłane do funkcji odzyskaj() która najpierw sprawdzi czy wartości nie są puste, po czym wykona generowanie nowego hasła i wyśle nowe hasło pod podany adres . Wygenerowane hasło zostaje następnie zaszyfrowane i wprowadzone do bazy danych zamiast poprzedniego w rekordzie gdzie adres i login zgadzają się z wprowadzonymi przez użytkownika. Funkcja logowania: public function logowanie($login,$haslo) { {if (!empty($login) &&!empty($haslo)) { $konto = $this->sql->mysql_query("select * FROM Uzytkownik WHERE login = ".$login." AND haslo = MD5( ".$haslo." )"); Wszystkie moduły korzystają z funkcji zawartych w klasie Uzytkownik. Moduły te są wyświetlane jako pierwsze i umieszczone w pliku index.php ponieważ bez poprawnego logowania nie jest możliwa dalsza praca z aplikacją Moduł głównego menu Po poprawnym logowaniu użytkownikowi ukaże się menu z którego może wybrać opcje takie jak: tworzenie nowego projektu, lista projektów do załadowania, eksport/import projektów, zarządzanie swoim profilem czy zakończenie pracy i wylogowanie się z aplikacji. Ten moduł to statyczna strona html gdzie przyciski to odnośniki do innych stron ze specyficzną dla danej opcji strukturą. I tak odnośnik nowego projektu będzie przekierowywał na plik nowy.php gdzie będzie formularz do wpisania nazwy projektu i przycisk zatwierdzający opcje. Otwieranie projektu będzie prowadziło do formularza istniejące.php z listą już istniejących projektów. Wybranie istniejącego projektu i zatwierdzenie go uruchomi funkcję wczytajprojekt($id), gdzie nastąpi seria zapytań do różnych tabel w bazie danych celem wczytania zawartości projektu. Eksport projektów będzie otwierał plik eksport.php w którym będzie formularz z listą projektów do wyboru oraz przyciskiem do eksportu. Eksportowanie projektów do zamieszczenia na serwerach jest jak na razie tylko koncepcją i nie zostało 50

51 rozwinięte w aplikacji. Dane konta będą otwierały plik user.php gdzie będzie formularz z polami wypełnianymi danymi z zapytania SQL odnośnie zalogowanego użytkownika. Zmiana danych i zatwierdzenie ich spowoduje uruchomienie funkcji updateuser() gdzie dane z formularza przesłane metodą POST zostaną umieszczone w zapytaniu UPDATE do bazy danych. Moduł głównego menu jest niezbędny jeżeli w aplikacji ma panować porządek i rozgraniczenie funkcjonalności. Poza tym z wymienionych wyżej funkcji użytkownik nie będzie używał tylko jednej na raz i nie będzie tego robił tak często jak funkcji przeznaczonych do edycji Moduł tworzenia nowego projektu Moduł ten będzie dostępny z poziomu pliku nowy.php który można wywołać z głównego menu. Tworzenie nowego projektu nie musi być dostępne cały czas. Raz utworzony projekt zawsze będzie można zapisać i zamknąć by znów móc tworzyć inne nowe projekty. Zatwierdzenie nazwy projektu będzie otwierało plik projekt.php gdzie jest okno edycyjne. Zostanie również uruchomiona funkcja tworzprojekt($nazwa), gdzie nastąpi dodanie do tabeli projektów w bazie danych nowego rekordu o wartościach kolejnego numeru id, nazwie projektu oraz id użytkownika który projekt utworzył. Zostanie również utworzony tymczasowy plik edycji projektu w którym będą na bieżąco zapisywane wykonywane operacje Moduł edycji projektu Moduł edycyjny aplikacji to połączone ze sobą moduły tworzenia poszczególnych funkcji mapy. Na moduł edycyjny będą się więc składać moduły granic, warstw, obiektów, multimediów oraz tras. Moduł edycyjny wyglądem przypomina program graficzny. Użytkownik posiada panel z poszczególnymi funkcjami oraz obszar roboczy na którym rysuje poszczególne składowe mapy. Rysowanie odbywa się za pomocą skryptów JavaScript które rysują linie po określonych punktach współrzędnych. Dodatkowo każda z wybranych funkcji ma swój identyfikator w bazie danych. Po identyfikatorze program wie więc czy rysowane obiekty to granice mapy czy jakiejś warstwy. 51

52 Funkcje rysujące linie zostały zebrane w jednej bibliotece pod nazwą rysowanie.js. Do funkcji znajdujących się w bibliotece zaliczyć można: rysujpiksel(), rysujlinie(), nanieslinie(), naniesobiekt(). Funkcja rysujpiksel() tworzy element DIV o szerokości 1 x 1 piksel z atrybutami tła i pozycji absolutnej na czterech współrzędnych przekazywanych przez pozostałe funkcje. Dostaje również identyfikator warstwy, po którym jest ustalany kolor tła. Funkcja rysujlinie() to implementacja algorytmu Bresenhama 22. Za pomocą funkcji rysujpiksel(), algorytm ten po obliczeniach zobrazuje na siatce pikseli jak najlepszą linię. Aby linie mogły być widoczne, istnieje funkcja nanieslinie(), która odczytuje współrzędne z pozycji wskaźnika myszy po kliknięciu. Po wczytaniu drugiej pary współrzędnych uruchamia funkcję rysujlinie() przekazując do niej współrzędne początku i końca. W module edycyjnym będą również dostępne opcje zapisu projektu i jego zakończenia. Zapis projektu będzie się odbywał poprzez czytanie pliku tymczasowego projekt, jego rozbicie na linie poprzez funkcję explode() i rozbicie tą samą funkcją z innym atrybutem dzielącym na poszczególne dane. Następnie funkcja rozpoznając rekord zerowy będzie sprawdzała jaka operacja została wykonana. Jako że każda operacja czy to rysowanie granic czy warstw posiada swoje id będzie to właśnie ta wartość w pliku tymczasowym. Po rozpoznaniu id operacji funkcja doda wartości kolejne z danej tabeli powstałej z drugiego dzielenia funkcją explode() do odpowiedniej tabeli w bazie danych do każdej z tabel na tym etapie dopisując id projektu tak by odciążyć inne funkcje z zapisywania dodatkowego atrybutu. Po zapisie plik tymczasowy będzie czyszczony. Cały ten proces został zapisany jako funkcja zapisz- Projekt(). Zakończenie pracy z projektem będzie zamykało i kasowało plik tymczasowy projektu wcześniej uruchamiając funkcję zapiszprojekt(). Po wykonaniu funkcji zostanie wywołany plik głównego menu. Moduł granic mapy Do modułu granic mapy będzie należało zapisanie w pliku tymczasowym projektu identyfikatora granicy i punktów współrzędnych od do wyznaczających linię

53 graniczną danej strefy, obiektu czy miejsca. Będzie to zapisywane w pliku tymczasowym w postaci: identyfikator ; pierwsza współrzędna linii druga współrzędna linii itd. aż do zakończenia rysowania granic. Granice nie będą musiały być zamykane, w takim przypadku ostatnia współrzędna będzie inna od pierwszej. Użytkownik może zamknąć granicę rysując ją do jej początku. Moduł granic nie musi być deklarowany na początku projektu. Granice mogą zostać nałożone w każdej chwili edycji aplikacji. Użytkownik będzie miał możliwość określenia, czy zawartość poza granicami ma zostać rysowana, czy obcinana. Jest to jednak nadal założenie nie zaimplementowane. Moduł warstw mapy Na tym module będą tworzone poszczególne warstwy mapy. Pełna aplikacja zakłada tworzenie własnych warstw przez użytkowników wedle woli jednak nie zostało to jeszcze zaimplementowane. Przy pisaniu aplikacji deklarujemy tylko kilka standardowych warstw takich jak: łąki, lasy, rzeki, jeziora, morza, drogi. Moduł warstw będzie zapisywał do odpowiednich tabel granice, identyfikator i nazwę warstwy. Podstawowe warstwy będą dostępne w postaci listy na panelu użytkownika. Po wybraniu odpowiedniej warstwy jej identyfikator zostanie zapisany do tymczasowego pliku projektu a po nim będą zapisywane współrzędne granic warstwy. Warstwy tworzone przez użytkowników będą za pomocą mini formularza w którym użytkownik będzie musiał podać nazwę nowej warstwy i może podać kolor wypełnienia warstwy. Z puli dostępnych kolorów będą wyłączane już używane przez inne warstwy. Widoczność warstw można włączać lub wyłączać w zależności o preferencji. Wiąże się to jednak z przeładowaniem strony. Wynika to z tego że przy wyłączaniu bądź włączaniu warstwy wysyłany jest metodą POST atrybut który następnie funkcja warunkowa analizuje i całkowicie blokuje wyświetlanie warstwy o danym id. Pomaga to budować mapy poziomami, zaczynając od najniższych i stopniowo nakładając na siebie kolejne. Po zakończeniu projektu końcowy użytkownik również będzie mógł wybrać sobie widoczność już gotowej warstwy. 53

54 Moduł obiektów mapy Obiekty takie jak budynki, pomniki, ławki, latarnie, fontanny będą umieszczanie w tym module a ich położenie będzie zapisywane w przeznaczonej do tego tabeli. Aplikacja będzie udostępniała podstawowe obiekty, tworzenie obiektów przez użytkownika końcowego będzie możliwe z poziomu tego modułu. Aby dany obiekt mógł być wyświetlany na projekcie musi posiadać własny identyfikator nadawany automatycznie, nazwę po której będzie można go odszukać oraz współrzędne na których się znajduje. Może również posiadać z góry przypisany opis. Z podstawowych obiektów projektu użytkownik może tworzyć miasta, parki, czy plany budynków. Ma również możliwość dodawania własnych obiektów, na przykład odpowiednio przygotowanych ikon przedstawiających dany obiekt w rzeczywistości. Dodawanie obiektów odbywa się poprzez wybranie odpowiedniego obiektu z listy rozwijanej i umieszczeniu go na projekcie. Obiekt będzie umieszczany na jednych współrzędnych ale objętościowo będzie zajmował powierzchnię przypisaną danemu obiektowi. Do dodawania obiektów do projektu służy funkcja dodajobiekt() która otrzymując współrzędne środka obiektu i identyfikator typu obiektu oblicza szerokość i wysokość elementu DIV i rysuje go na mapie. Wyrysowany element będzie miał swoje id oraz poprzez kaskadowe arkusze styli swoją grafikę. Moduł multimediów mapy Założona funkcjonalność udostępnia użytkownikowi dodawanie dowolnych multimediów na mapie. W tym module będzie wykonywana ta funkcjonalność. Pliki będą pobierane na serwer za pomocą zmiennej $_FILES, a następnie kopiowane z lokalizacji tymczasowej za pomocą funkcji php move_uploaded_file() przenoszone do właściwej lokalizacji. Ich lokalizacja na mapie oraz ścieżka dostępu będą zapisane do tabeli w bazie danych. Do bazy będą również zapisywane uprawnienia multimediów do warstw. Polegać to będzie na tym że użytkownik będzie mógł ustalić na jakiej widoczności warstwy ma być widoczny zasób. Domyślnie będzie to wyświetlanie na wszystkich warstwach. W celu oddzielenia od siebie typów multimediów konieczne jest stworzenie tablicy z typami możliwych multimediów by dodawać do każdego multimedium identyfikator 54

55 typu. Można będzie dzięki temu na przykład wyświetlać multimedia jednego typu zamiast wszystkich. Dodatkowo w informacji o zamieszczonym zasobie dodamy informację czy jest on widoczny na wszystkich warstwach czy tylko na wybranych. Taki dodatek pozwoli na przykład wyłączać zasoby dostępne na widoku miast razem z warstwą miast. Moduł tras na mapie Moduł ten pozostaje w fazie koncepcji ze względu na napotkane trudności z przerysowywaniem już istniejących elementów DIV bez nanoszenia nowych między dwoma współrzędnymi. Koncepcja zakłada że wyznaczanie tras będzie się odbywało w tym module na zasadzie analizy warstwy dróg z tabeli warstw i nanoszeniu granic trasy na współrzędne z tabeli warstwy dróg. Do ustalenia trasy będzie konieczna wartość początkowa trasy jak i jej koniec. Zarówno jednym jak i drugim może być albo współrzędna z warstwy dróg albo współrzędne obiektów. Użytkownik wyznaczając miejsce startu i miejsce docelowe uruchomi funkcję sledztrase() która wczyta zawartość tabeli dróg a następnie śledząc wierzchołki drogi będzie rysować warstwę trasy tak by współrzędne trasy były jak najbliżej punktu docelowego. 4.5 Podsumowanie implementacji Podsumowując proces implementacji otrzymujemy podstawowy kod aplikacji. Aplikacja na tym etapie musi przejść jeszcze szereg testów poprawnościowych. Niezbędna będzie zapewne optymalizacja kodu w celu przyśpieszenia aplikacji. Część z opisanych modułów nie działa prawidłowo. Aplikacja działa na tabelach bazy danych. Aby nie wykonywać nieustannie zapytań do bazy danych w czasie tworzenia projektu wszystkie informacje zostają zapisane w tymczasowym pliku projektu. Przy zapisie projektu dane z tymczasowego pliku projektu są za pomocą funkcji php rozdzielane i odpowiednio umieszczane w zapytaniach SQL-owych. Po wczytaniu wszystkich danych plik tymczasowy projektu jest czyszczony by dane nie duplikowały się. W razie wystąpienia błędu w aktualizacji bazy aplikacja w tymczasowym pliku zapisze informację w miejscu w którym 55

56 ostatnio wykonała zapytanie SQL i przerwie działanie. Użycie pliku tymczasowego aplikacji pomaga min. W sytuacjach gdzie nie można było z różnych względów zapisać projektu. Użytkownik po takiej awarii otworzy projekt bez żadnych strat ponieważ funkcja otwierająca projekt będzie zawsze sprawdzać czy pik tymczasowy projektu jest pusty czy jest w nim zawartość nie przeniesiona do bazy danych. 56

57 ROZDZIAŁ V BEZPIECZEŃSTWO I TESTY APLIKACJI Żeby aplikacja nie była narażona na ataki osób postronnych i aby dane użytkowników nie zostały skradzione, niezbędne było zastosowanie odpowiednich zabezpieczeń. Szyfrowanie haseł oraz zarządzanie kontami użytkowników wymagają odpowiednich środków. W związku z tym, że aplikacja pracuje na bazach danych MySQL, podstawowym elementem było zapobiegnięcie atakom typu SQL Injection. 5.1 Wymogi haseł użytkowników Każdy użytkownik, który zakłada konto musi podać dwukrotnie hasło dostępu do aplikacji, które z kolei ma spełniać trzy założenia bezpiecznego hasła ustalone w aplikacji. Hasło musi posiadać przynajmniej 6 znaków, 2 znaki mają być dużymi literami oraz hasło musi posiadać przynajmniej jedną cyfrę lub znak specjalny. Bez spełnienia tych wymagań użytkownik nie przejdzie procesu rejestracji. Mechanizm sprawdzający wpisane hasło, rozbija wpisany ciąg znaków na pojedyncze elementy, a następnie analizuje wystąpienie trzech wymagań. Jeśli cały proces funkcji zwróci wartość 1 hasło jest uznane za bezpieczne, następuje jego szyfrowanie i zapisywanie do tabeli w bazie danych. 5.2 Szyfrowanie haseł użytkowników Po procesie weryfikacji bezpieczeństwa hasła aplikacja musi zaszyfrować hasło przed odczytaniem go bezpośrednio z bazy danych. W tym celu aplikacja szyfruje zweryfikowane hasło za pomocą algorytmu MD5 23, sprowadzając je do postaci 128-bitowego skrótu. Hasło jest szyfrowane poprzez funkcję języka PHP o nazwie md5() gdzie jedynym podawanym argumentem jest ciąg znaków do szyfrowania. Funkcję md5() aplikacja wykorzystuje bezpośrednio w zapytaniu do bazy danych. Szyfrowanie algorytmem MD5 jest wystarczające do zabezpieczenia aplikacji przed nieautoryzowanym dostępem do bazy

58 W przypadku, gdy hasło zostaje przez użytkownika generowane z modułu Odzyskiwania dostępu do aplikacji, jest ono tworzone losowo i również szyfrowane funkcją md5(). Losowe hasło jest w takim przypadku wysyłane użytkownikowi na adres e- mail podany przy rejestracji i zgodny z wprowadzonym w module odzyskiwania. 5.3 Autoryzacja użytkowników Aby zapobiec przypadkom zduplikowania się użytkowników i przypadkowemu nadpisaniu hasła przy rejestracji użytkownika na login już istniejący w bazie, aplikacja weryfikuje w procesie rejestracji, czy wprowadzona wartość login i hasło nie istnieją już w bazie danych. Jeśli choć jedna z podanych wartości znajduje się już w tabeli, użytkownik jest proszony o poprawę wprowadzanych danych do formularza. 5.4 Zapobieganie SQL Injection Atak typu SQL Injection 24 polega na takim zapisaniu wartości wysyłanych do bazy danych by uzyskać interesujące informacje. Można przez to uzyskać dostęp np. do kont użytkowników wpisując odpowiednie wartości w polu logowania. Jednym z najbardziej skutecznych metod zapobiegania SQL injection jest dokładne przefiltrowanie i sprawdzenie wprowadzanych danych które mają być wykorzystywane w zapytaniach SQL oraz ścisłe określenie wszystkich możliwych wprowadzanych znaków które nie mogą być wprowadzane do zapytań. W celu ochrony przed SQL Injection aplikacja została zaopatrzona w funkcję filtrującą wprowadzaną zawartość. Każda wartość wprowadzana przez użytkownika jest filtrowana na nieodpowiednie znaki i w przypadku zwracania wartości FALSE wyrzucana użytkownikowi jako błędna. 5.5 Podsumowanie bezpieczeństwa Podsumowując wywód na temat bezpieczeństwa należy również zaznaczyć że wszystkie funkcje mające na celu bezpieczeństwo aplikacji są wykonywane na serwe

59 rze. Gdyby były one wykonywane na platformie użytkownika mogły by być łatwo wyłączone. Bezpieczeństwo aplikacji w obecnym stanie jest zadowalające i przyjmując że aplikacja będzie udoskonalana o inne metody szyfrowania można pozostawić ją w obecnym stanie bez obaw o bezpieczeństwo zawartych danych. 5.6 Testy aplikacji Aby mieć pewność co do działania aplikacji należy przekazać ją do testów osobom trzecim które nie brały udziału w jej tworzeniu. Daje to nowe światło na problemy występujące podczas jej użytkowania. W końcu tylko ktoś kto nie zna aplikacji będzie wstanie powiedzieć czego ona nie może a co dzieje się przypadkiem. Aby stwierdzić poprawność działania aplikacji została ona przekazana dwóm osobom do przetestowania. Pierwsza to osoba znająca się w pewnym stopniu na programowaniu. Druga to statystyczny użytkownik posiadający wiedzę potrzebną do użytkowania platformy Test pierwszy Aby mieć pewność co do działania aplikacji należy przekazać ją do testów osobom trzecim które nie brały udziału w jej tworzeniu. Daje to nowe światło na problemy występujące podczas jej użytkowania. W końcu tylko ktoś, kto nie zna aplikacji, będzie w stanie powiedzieć czego ona nie może, a co dzieje się przypadkiem. Aby stwierdzić poprawność działania aplikacji, została ona przekazana dwóm osobom do przetestowania. Pierwsza to osoba znająca się w pewnym stopniu na programowaniu. Natomiast druga, to statystyczny użytkownik posiadający wiedzę potrzebną do użytkowania platformy Test drugi Test drugi przeprowadzony przez osobę znającą jedynie podstawową obsługę platform sprzętowych i systemów operacyjnych wykazał dobre przystosowanie aplikacji do pracy z użytkownikami. 59

60 Tester bez problemu założył swoje konto w aplikacji. Nie uzupełniał dodatkowych danych. Utworzenie hasła odpowiadającego wymogom nie przyniosło większych trudności. Po procesie rejestracji tester bez problemów zalogował się do aplikacji. Praca z samą aplikacją przebiegała pomału, sprawdzając działanie poszczególnych funkcji by przekonać się co tak naprawdę robią. Niewielkim problemem było wyjaśnienie testerowi koncepcji warstw w aplikacji i przykładowe przedstawienie mu zasady działania warstw. Używając narzędzi aplikacji tester wyszczególnił poprawki które były by wskazane do zapewnienia lepszej wygody korzystania z aplikacji. Były to min. sugestie o zapewnienie większej automatyki w aplikacje chociażby dokładając mechanizm domykania granic warstwy przy dwukrotnym kliknięciu na tą samą współrzędną. Opinia po testach była przychylna ale sugeruje że trzeba poświęcić jeszcze dużo czasu na dopracowanie aplikacji dla standardowych użytkowników. Aplikacja przy testach otrzymała miano intuicyjnej więc należy nadal iść w kierunku rozdzielania poszczególnych modółów edycyjnych. 5.7 Podsumowanie testów i bezpieczeństwa Po przeprowadzonych testach i zastosowanych procesach bezpieczeństwa, jedynym słusznym wnioskiem jest stwierdzenie, że aplikacja mimo wielu niedociągnięć, jest rozwijana w dobrym kierunku i po dalszych pracach powinna osiągnąć zadowalający efekt. 60

61 ROZDZIAŁ VI ZAKOŃCZENIE I PODSUMOWANIE PRACY Przy pisaniu niniejszej pracy powstała aplikacja za pomocą której można stworzyć rozbudowany projekt topografii terenu lub innej powierzchni opisywanej mapą graficzną. W aplikacji nacisk położono na interakcje z użytkownikiem i zachowanie bezpieczeństwa przechowywanych danych. Działanie aplikacji przetestowano poprzez osoby trzecie i określono dalszą ścieżkę rozwoju. Wnioski i sugestie od testerów będą bardzo pomocne przy kontynuacji pracy nad aplikacją. Do rozwiązania przedstawionego problemu konieczna była szczegółowa analiza zagadnień związanych z tematyką tworzenia map oraz analizą produktów będących już na rynku. Przeanalizowane produkty pomogły określić funkcjonalność jaką aplikacja powinna zawierać oraz elementy których brak w dostępnych produktach. Dla urzeczywistnienia postawionej w pracy funkcjonalności aplikacji wspomagającej tworzenie map interaktywnych stworzono system, który posiada podstawową zakładaną funkcjonalność i zadatki na rozbudowę o nowe ciekawe funkcje. Podsumowując cały proces tworzenia oprogramowania można stwierdzić że powstała aplikacja, mimo że nie osiągnęła formy finalnej, zawiera większość zakładanej przez nas funkcjonalności i po dalszych pracach powinna być przystosowana dla użytkowników końcowych. Praca napisana została w następującym kształcie: W rozdziale pierwszym opisano zagadnienia związane z tematyką map, przytaczając kilka definicji map przedstawiono jak duża jest różnorodność sposobów przedstawiania danych na terenie. Następnie dokonano analizy najpopularniejszych produktów występujących na rynku czerpiąc z tego podstawy dla własnej aplikacji. Analiza przyszłej konkurencji pozwoliła na końcu rozdziału wysnuć założenia i cele dotyczące projektu. W rozdziale drugim skupiono się nad możliwymi narzędziami potrzebnymi do rozwiązania zakładanego problemu. Dużą uwagę skupiono tutaj na językach w jakich ma być pisana aplikacja oraz na sposobach zaplanowania aplikacji jeszcze przed pisaniem. Ustalono funkcjonalność jaką powinna posiadać tworzona aplikacja i na jakich platformach sprzętowych oraz systemach operacyjnych powinna działać by osiągnąć najlepsze rezultaty. Rozdział zakończono podsumowaniem całej koncepcji aplikacji. 61

62 W trzecim rozdziale skupiono się nad wstępnym zaprojektowaniem działań aplikacji. Określono projekt rozwiązania stawianego problemu i zbudowano wstępne struktury przepływu i magazynowania danych. W rozdziale czwartym opisano przebieg implementacji aplikacji. Przedstawiono podział plików w aplikacji oraz podział pracy nad aplikacją. Opisano poszczególne moduły aplikacji oraz ich działanie. Stwierdzono gdzie mogą wystąpić problemy i co wymaga dalszego rozwoju. Rozdział zakończono podsumowaniem z przeprowadzonych działań. W piątym rozdziale poruszono kwestie bezpieczeństwa i jego zagwarantowania. Opisano możliwe sytuacje i sposoby ich zapobiegania. Następnie przedstawiono przeprowadzone na aplikacji testy i wnioski z nich płynące. Podsumowując rozważania nad postawionym problemem można dojść do stwierdzenia, że stworzona tutaj praca pozwoliła rozwiązać stawiane cele i zaprezentować rozwiązanie postawionego problemu. Rozwijając w przyszłości przedstawioną tutaj aplikację można rozważyć wprowadzenie większej interaktywności poprzez zastosowanie bardziej zaawansowanych narzędzi. 62

63 DODATEK A: WYKAZ ILUSTRACJI Rys. 1. Diagram przypadków użycia, s. 29. Rys. 2. Szczegółowy diagram tworzenia danych, s. 30. Rys. 3. Szczegółowy diagram kreowania warstw, s. 31. Rys. 4. Szczegółowy diagram usuwania danych, s. 32. Rys. 5. Szczegółowy diagram modyfikacji danych, s. 33. Rys. 6. Szczegółowy diagram zapisu danych, s. 33. Rys. 7. Szczegółowy diagram dodawania multimediów, s. 34. Rys. 8. Szczegółowy diagram wyszukiwania lokalizacji, s. 35. Rys. 9. Szczegółowy diagram wyznaczania trasy, s. 36. Rys. 10. Szczegółowy diagram dodawania nowych funkcjonalności, s. 37. Rys. 11. Szczegółowy diagram kontroli pracy systemu, s. 38. Rys. 12. Szczegółowy diagram dot. bezpieczeństwa, s. 39. Rys. 13. Szczegółowy diagram eliminowania błędów, s. 40. Rys. 14. Szczegółowy diagram uruchomienia serwera WWW, s. 41. Rys. 15. Struktura katalogów i plików aplikacji, s. 47. Rys. 16. Pasek URL z adresem pliku index.php, s. 67. Rys. 17. Panel logowania, rejestracji i przypominania hasła, s. 67. Rys. 18. Menu główne, panel administracyjny, s. 68. Rys. 19. Panel edycyjny z funkcjami budowania mapy, s. 68. DODATEK B: ZESTAWIENIE TABEL Tabela 1. Baza danych wykaz tabel, s. 42. Tabela 2. Lista modułów aplikacji, s

64 DODATEK C: INSTALACJA I INSTRUKCJA OBSŁUGI APLIKACJI Aplikacja do należytego uruchomienia się, wymaga przede wszystkim jednego spośród trzech głównych systemów operacyjnych, które zostały dokładnie omówione w rozdziale Są nimi: Microsoft Windows XP, Vista oraz 7; współczesne dystrybucje Linux; Mac OS X firmy Apple. Gdy przystępujemy do procesów instalacyjnych należy w tej sytuacji wykonać następujące czynności: 1. W zależności od posiadanego systemu operacyjnego, pobieramy i instalujemy pakiety emulujące lokalny, wirtualny serwer WWW. Dla systemów z rodziny Windows będą to: WAMP 25 i XAMPP 26, zaś użytkownicy systemu Mac OS X wchodzą na stronę główną projektu MAMP 27 i z tamtąd ściągają instalator. Natomiast dla systemów Linux jest to pakiet LAMP 28 dostępny w repozytorium linuksa. Można to zrobić za pomocą kilku komend w powłoce (z ang. shell) systemowej: wprowadzamy polecenie sudo apt-get install lamp-server i zatwierdzamy klawiszem <Enter>, po chwili instalator poprosi o wpisanie hasła dla użytkownika root do bazy danych MySQL. Można ten krok zignorować i pozostawić konto użytkownika root bez hasła przechodząc dalej, instalacja pakietu LAMP dobiegła końca. 2. Kolejne instrukcje dla użytkowników systemu z rodziny Windows: Zarówno WAMP, jak i XAMPP, działają bardzo podobnie. Aby uruchomić. któregoś z nich, wystarczy dwukrotnie kliknąc ikonę danego projektu na pulpicie. Za moment powinien pojawić się znaczek w pasku systemowym (z ang. tray). W wersji WAMP włączenie wszystkich serwisów odbywa się po wyborze opcji Start All Services, natomiast w przypad

65 ku XAMPP, każdy proces uruchamiany jest po kolei, wciskając przycisk Start przy odpowiednim serwisie. Gdzie należy wgrać nasz szablon aplikacji? Wszyscy posiadacze programu WAMP wklejają wszystkie foldery z plikami, do domyślnie stworzonego katalogu wirtualnego, który znajduje się tutaj: C:\wamp\www. Tymczasem użytkownicy XAMPP przenoszą cały materiał do tego miejsca: C:\xampp\htdocs. 3. Kolejne instrukcje dla użytkowników systemu z rodziny Mac OS X: Do poprawnego działania pakietu MAMP, trzeba spełnić jeden, podstawowy warunek. Mianowicie posiadany komputer musi mieć zainstalowany system Apple Mac OS X, w wersji i późniejsze edycje. Po ściągnięciu najnowszego obrazu instalatora MAMP_MAMP_PRO_1.9.4.dmg, klikamy na niego dwukrotnie, po czym ukaże się naszym oczom nowe okno, w którym wystarczy przeciągnąc ikonę programu do katalogu Programy/Applications. Wewnątrz tego katalogu, znajdujemy ikonę MAMP i wybieramy ją pojedynczym kliknięciem. Otworzy się główne okno emulatora. W ramce Status można zauważyć, w jakim stanie znajdują się serwery Apache i MySQL. Czerwone kropki oznaczają, że usługa jest wyłączona, natomiast zielone w drugą stronę. Do włączenia/wyłączenia pakietu, służy włącznik Start/Stop Servers. Aby sprawdzić, czy dany program zainstalował się poprawnie oraz bezproblemowo skonfigurował, wystarczy kliknąć w Open start page, a po chwili zostanie otworzona strona startowa projektu MAMP w domyśnie ustawionej przeglądarce internetowej. Domyślnie ustawionymi portami serwera Apache i bazy MySQL, są kolejno: 8888 i W tej wersji MAMP, są także do wyboru dwie wersje PHP: i Standardowo jest do Aby sprawdzić, czy wirtualny katalog, do którego musimy wkleić całą zawartość naszej aplikacji, działa należycie, uruchamiamy dowolną przeglądarkę WWW i wpisujemy adres: lub i zatwierdzamy klawiszem <Enter>. Jeśli uj- 65

66 rzymy wielki komunikat It Works!, oznacza to, że możemy już przystąpić do kopiowania szablonu. Należy całą zawartość katalogów ze wszystkimi plikami przenieść do domyślnie utworzonego, wirtualnego katalogu WWW, który się znajduje pod tą ścieżką: /Applications/MAMP/htdocs. 4. Kolejne instrukcje dla użytkowników systemu z rodziny Linux: Po zainstalowaniu wszystkich paczek z Apache, PHP i MySQL, przechodzimy do sprawdzenia ich funkcjonalności. Na samym początku zobaczymy na stan Apache a. Należy teraz uruchomić dowolną przeglądarkę i wpisać w adresie: lub zatwierdzając klawiszem <Enter>. Napis It Works! powiadomi o tym, że wirtualny serwer funkcjonuje tak jak powinien. Kolejnym krokiem będzie sprawdzenie poprawności instalacji interpretera PHP. Tworzymy plik z rozszerzeniem *.php, na przykład test.php, otwieramy go i wpisujemy tą linijkę kodu: <?php phpinfo();?>, po czym zamykamy plik i zapisujemy zmiany. Zanim jednak zobaczymy jakiekolwiek zmiany, należy ten plik przenieść do podanej lokalizacji: /var/www, ponieważ tam Apache domyślnie tworzy wirtualny katalog, który jest później wyświetlany na stronach w przeglądarce. Dlatego właśnie w tym miejscu należy także skopiować całą zawartość aplikacji. Po każdej tego typu modyfikacji trzeba zrestartować serwer WWW. Do tego posłuży nam okno powłoki systemu i ta oto komenda: sudo /etc/init.d/apache2 restart. Powracamy teraz do przeglądarki internetowej i w pasku adresowym wpisujemy: Naszym oczom powinna pojawić się strona, zawierająca informacje dotyczące wersji i konfiguracji PHP. Sprawa związana z MySQL jest o wiele prostsza, ponieważ od momentu końca instalacji działa on poprawnie. A dostęp do zarządzania bazami danych jest możliwy również spod powłoki systemowej. Wystarczy wywołać program mysql na prawach administratora (sudo) z dwoma parametrami -u, określający użytkownika oraz -p, jako parametr wprowadzanego hasła. Domyślnie użytkownik i hasło to root. Całe polecenie wygląda zatem następująco: sudo mysql -u root -p root. Od tej chwili mamy dostęp do wszystkich baz danych znajdujących się na lokalnym komputerze. 66

67 Po zrealizowaniu wszystkich poprzednich kroków, czyli instalacji odpowiedniego oprogramowania AMP na daną platformę systemową, sprawdzeniu konfiguracji Apache a, MySQL a i modułów PHP, uruchomieniu tych usług oraz przeniesieniu całej zawartości aplikacji do wirtualnego katalogu, można przystąpić do jej załadowania na przeglądarce. Cały proces zaczyna się od wprowadzenia w pasku adresowym, ścieżki dostępu do pliku index.php, który uruchamia szablon: Rys. 16. Pasek URL z adresem pliku index.php Źródło: Opracowanie własne Gdy zostanie wprowadzony już adres dostępowy do tego pliku, po chwili pojawić się powinien panel logowania, rejestracji i przypominania hasła, który jest widoczny na poniższym rysunku: Rys. 17. Panel logowania, rejestracji i przypominania hasła Źródło: Opracowanie własne Jeżeli rejestracja przebiegnie pomyślnie, a istniejący już użytkownik wprowadzi swój login i hasło do formularza, to zostanie on automatycznie przekierowany do menu głównego aplikacji, w którym może wybrać kolejno jedną z czterech opcji: Nowy Projekt, Załaduj Projekt, Eksportuj Projekt i Dane Konta. Poniższy zrzut ekranu jest na to dowodem: 67

68 Rys. 18. Menu główne, panel administracyjny Źródło: Opracowanie własne Zacznijmy omawianie każdej opcji od końca. Dane Konta dają możliwość zmiany swoich danych osobowych, są to przykładowo hasło, adres itp. Eksportuj Projekt pozwala użytkownikowi zapisać stan pracy na dysk twardy. Kolejną opcją jest Załaduj Projekt, dzięki której można odtworzyć eksportowany projekt. Natomiast Nowy Projekt przenosi zalogowaną osobę do obszaru rysowania mapy oraz panelu edycyjnego, który jest poniżej: Rys. 19. Panel edycyjny z funkcjami budowania mapy Źródło: Opracowanie własne 68

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Tomasz Kapelak Nr albumu: 187404 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja elektronicznego dziennika ocen ucznia Autor: Grzegorz Dudek wykonanego w technologii ASP.NET We współczesnym modelu edukacji, coraz powszechniejsze

Bardziej szczegółowo

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Parys Nr albumu: 209216 Aukcjomat Praca licencjacka na kierunku INFORMATYKA w zakresie INFORMATYKA Praca wykonana pod kierunkiem

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

omnia.pl, ul. Kraszewskiego 62A, 37-500 Jarosław, tel. +48 16 621 58 10 www.omnia.pl kontakt@omnia.pl

omnia.pl, ul. Kraszewskiego 62A, 37-500 Jarosław, tel. +48 16 621 58 10 www.omnia.pl kontakt@omnia.pl .firma Dostarczamy profesjonalne usługi oparte o nowoczesne technologie internetowe Na wstępie Wszystko dla naszych Klientów Jesteśmy świadomi, że strona internetowa to niezastąpione źródło informacji,

Bardziej szczegółowo

Strona wizytówka od 400 zł

Strona wizytówka od 400 zł Strona wizytówka od 400 zł Oferta z dnia 21.01.2010 Prosta strona zawierająca podstawowe informacje o firmie oraz jej ofercie. Pozwala ona klientom na odnalezienie firmy w sieci, zapoznanie się z jej ofertą,

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja mobilnego systemu wspomagającego organizowanie zespołowej aktywności fizycznej Autor: Krzysztof Salamon W dzisiejszych czasach życie ludzi

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

Bardziej szczegółowo

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji

Bardziej szczegółowo

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI Sprawne zarządzanie projektami Tworzenie planów projektów Zwiększenie efektywności współpracy Kontrolowanie i zarządzanie zasobami jak również pracownikami Generowanie raportów Zarządzaj projektami efektywnie

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

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

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo

Natalia BIEŃ Uniwersytet Przyrodniczy, Studenckie Koło Naukowe Informatyków IMPLEMENTACJA PORTALU INTERNETOWEGO W TECHNOLOGIACH PHP I MYSQL

Natalia BIEŃ Uniwersytet Przyrodniczy, Studenckie Koło Naukowe Informatyków IMPLEMENTACJA PORTALU INTERNETOWEGO W TECHNOLOGIACH PHP I MYSQL Natalia BIEŃ Uniwersytet Przyrodniczy, Studenckie Koło Naukowe Informatyków IMPLEMENTACJA PORTALU INTERNETOWEGO W TECHNOLOGIACH PHP I MYSQL 1. Wprowadzenie W dzisiejszych czasach Internet odgrywa istotną

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

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

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach) Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach) 1. Wstęp: 1.1. Cel. Niniejszy dokument przestawia specyfikację wymagań systemowych (zarówno funkcjonalnych jak i niefunkcjonalnych)

Bardziej szczegółowo

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

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania

Bardziej szczegółowo

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ Systemy baz danych 1. 2 Wstęp do baz danych 2. 2 Relacyjny model baz danych. 3. 2 Normalizacja baz danych. 4. 2 Cechy

Bardziej szczegółowo

Załącznik techniczny przedmiotu zamówienia komponentu

Załącznik techniczny przedmiotu zamówienia komponentu Załącznik nr 1 mapowego dla portalu WWW Załącznik techniczny przedmiotu zamówienia komponentu 1.1 Komponent mapowy Zleceniodawcy pozostawia się wolną rękę w wyborze technologii w jakiej zostanie stworzony

Bardziej szczegółowo

Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej

Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej Małgorzata Barańska Wydział Informatyki i Zarządzania, Politechnika Wrocławska Beata Laszkiewicz Wydział

Bardziej szczegółowo

ViLab- program służący do prowadzenia obliczeń charakterystyki energetycznej i sporządzania świadectw charakterystyki energetycznej

ViLab- program służący do prowadzenia obliczeń charakterystyki energetycznej i sporządzania świadectw charakterystyki energetycznej ViLab- program służący do prowadzenia obliczeń charakterystyki energetycznej i sporządzania świadectw charakterystyki energetycznej ViLab jest samodzielnym programem służącym do prowadzenia obliczeń charakterystyki

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

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

Spis treści. Spis treści... 2. Wstęp... 3. Instalacja nazwa.pl... 3. Instalacja Home.pl... 8. Edycja grafiki strony... 17. logo... Instalacja serwera Spis treści Spis treści... 2 Wstęp... 3 Instalacja nazwa.pl... 3 Instalacja Home.pl... 8 Edycja grafiki strony... 17 logo... 17 Wstęp Najnowszy sklep internetowy spod znaku sellsmart,

Bardziej szczegółowo

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P). PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II DZIAŁ I: KOMPUTER W ŻYCIU CZŁOWIEKA. 1. Lekcja organizacyjna. Zapoznanie uczniów z wymaganiami edukacyjnymi i PSP. 2. Przykłady zastosowań komputerów

Bardziej szczegółowo

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

Data wydania: 2013-06-12. Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego Wersja 1.0 Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach Programu Operacyjnego Kapitał Ludzki Tytuł dokumentu: Dokumentacja dla administratora strony

Bardziej szczegółowo

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji: 2012-03-08

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji: 2012-03-08 Nr: 12 Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW Data modyfikacji: 2012-03-08 Co zawiera ten dokument: Ten dokument zawiera informacje o możliwościach i sposobie

Bardziej szczegółowo

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych Piotr Dynia PowerPivot narzędzie do wielowymiarowej analizy danych Od autora Wraz z wprowadzeniem na rynek nowej wersji pakietu Office: Microsoft Office 2010 udostępniono darmowy dodatek dla Excela o nazwie

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

CMS, CRM, sklepy internetowe, aplikacje Web

CMS, CRM, sklepy internetowe, aplikacje Web CMS, CRM, sklepy internetowe, aplikacje Web Aplikacje PHP, open source, dodatki Add-ins, templatki, moduły na zamówienie Aplikacje mobilne jquery Mobile + PhoneGap Kilka platform w cenie jednego kodu JavaScript!

Bardziej szczegółowo

2 Podstawy tworzenia stron internetowych

2 Podstawy tworzenia stron internetowych 2 Podstawy tworzenia stron internetowych 2.1. HTML5 i struktura dokumentu Podstawą działania wszystkich stron internetowych jest język HTML (Hypertext Markup Language) hipertekstowy język znaczników. Dokument

Bardziej szczegółowo

Monitoring procesów z wykorzystaniem systemu ADONIS

Monitoring procesów z wykorzystaniem systemu ADONIS Monitoring procesów z wykorzystaniem systemu ADONIS BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management

Bardziej szczegółowo

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

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

CMS- kontakty (mapa)

CMS- kontakty (mapa) CMS- kontakty (mapa) Rozpatrzy inny rodzaj kontaktu mapa sytuacyjna. W naszej kategorii kontaktów dodamy teraz multimedialną mapę dojazdową. W tym celu potrzebny nam będzie moduł HTML 1.0. Będziemy mogli

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

DODAJEMY TREŚĆ DO STRONY

DODAJEMY TREŚĆ DO STRONY DODAJEMY TREŚĆ DO STRONY SPIS TREŚCI Pasek narzędzi i wyszukiwarka aplikacji... 2 Dodawanie portletów... 3 Widok zawartości stron... 4 Zawartość portletu... 5 Ikonki wybierz oraz dodaj zawartość stron...

Bardziej szczegółowo

PLATFORMA ACTIVE FORMS. Kreator Formularzy Internetowych ze wsparciem dla RWD

PLATFORMA ACTIVE FORMS. Kreator Formularzy Internetowych ze wsparciem dla RWD PLATFORMA ACTIVE FORMS Kreator Formularzy Internetowych ze wsparciem dla RWD ACTIVE FORMS 2 Spis treści WPROWADZENIE 3 Dowolnie złożone formularze 3 Niski czas i koszt zbudowania formularza 4 TOP 10 WŁAŚCIWOŚCI

Bardziej szczegółowo

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

Załącznik do umowy nr..

Załącznik do umowy nr.. Załącznik do umowy nr.. z dnia I Opis przedmiotu zamówienia specyfikacja techniczna: 1. System mobilny: Aplikacja przeznaczona dla telefonów z systemem Android, wersja 4.0 wzwyż i napisana w języku natywnym

Bardziej szczegółowo

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer? Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym

Bardziej szczegółowo

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Jednolite zarządzanie użytkownikami systemów Windows i Linux Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Paweł Gliwiński Nr albumu: 168470 Praca magisterska na kierunku Informatyka Jednolite

Bardziej szczegółowo

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r.

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Stworzenie platformy internetowej na potrzeby projektu. 1 Wykonanie portalu internetowego na potrzeby e-usługi, obejmującego

Bardziej szczegółowo

Ankieta: Dostępność obiektów użyteczności publicznej w Krakowie dla osób z niepełnosprawnością ruchową

Ankieta: Dostępność obiektów użyteczności publicznej w Krakowie dla osób z niepełnosprawnością ruchową Ankieta: Dostępność obiektów użyteczności publicznej w Krakowie dla osób z niepełnosprawnością ruchową Małopolska Infrastruktura Informacji Przestrzennej (MIIP) Kraków, 2014 Spis treści 1. LOKALIZACJA

Bardziej szczegółowo

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Visio 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zaktualizowane szablony Szablony

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Rozkład materiału nauczania. Zajęcia komputerowe z pomysłem. Szkoła podstawowa. Klasa 4

Rozkład materiału nauczania. Zajęcia komputerowe z pomysłem. Szkoła podstawowa. Klasa 4 Rozkład materiału nauczania. Zajęcia komputerowe z pomysłem. Szkoła podstawowa. Klasa 4 Nr tematu Nr lekcji Temat Dział Osiągnięcia ucznia Temat z podstawy programowej 1 1 Kodeks dla każdego Komputer bez

Bardziej szczegółowo

egroupware czy phpgroupware jest też mniej stabilny.

egroupware czy phpgroupware jest też mniej stabilny. Opengroupware to projekt udostępniający kompletny serwer aplikacji oparty na systemie Linux. Dostępny na licencji GNU GPL, strona domowa: http://www.opengroupware.org/ Jego cechy to wysoka stabilność,

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych KARTA PRZEDMIOTU Nazwa przedmiotu/modułu: Nazwa angielska: Kierunek studiów: Poziom studiów: Profil studiów Jednostka prowadząca: Programowanie aplikacji internetowych Web application development edukacja

Bardziej szczegółowo

- w firmie AGD, w komputerze używanym przez sekretarkę oraz trzech akwizytorów stwierdzono usterkę systemu komputerowego,

- w firmie AGD, w komputerze używanym przez sekretarkę oraz trzech akwizytorów stwierdzono usterkę systemu komputerowego, 1. Projekt realizacji prac prowadzących do zlokalizowania i usunięcia usterek systemu komputerowego, w zakresie diagnozowania wstępnego, ustalenia przyczyn usterek i usunięcia usterek. 2. Założenia do

Bardziej szczegółowo

Szpieg 2.0 Instrukcja użytkownika

Szpieg 2.0 Instrukcja użytkownika Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:

Bardziej szczegółowo

OPIS PRZEDMIOTU ZAMÓWIENIA

OPIS PRZEDMIOTU ZAMÓWIENIA Lubelskie Centrum Transferu Technologii Politechniki Lubelskiej ul. Nadbystrzycka 36, 20-618 Lublin Tel. 81 538 42 70, fax. 81 538 42 67; e-mail: lctt@pollub.pl OPIS PRZEDMIOTU ZAMÓWIENIA Do realizacji

Bardziej szczegółowo

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu

Bardziej szczegółowo

Komputerowy system elektronicznego dzienniczka ucznia e-dziennik

Komputerowy system elektronicznego dzienniczka ucznia e-dziennik Komputerowy system elektronicznego dzienniczka ucznia e-dziennik Komputerowy system elektronicznego dzienniczka ucznia e-dziennik jest serwisem internetowym przeznaczonym dla szkół podstawowych, gimnazjalnych

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików... 49 Konsola... 49 Zapisanie rezultatu do pliku... 50

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików... 49 Konsola... 49 Zapisanie rezultatu do pliku... 50 Spis treści Rozdział 1. Instalacja systemu Aurox...5 Wymagania sprzętowe... 5 Rozpoczynamy instalację... 6 Wykrywanie i instalacja urządzeń... 7 Zarządzanie partycjami... 10 Konfiguracja sieci i boot loadera...

Bardziej szczegółowo

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk

Bardziej szczegółowo

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER Opr. Barbara Gałkowska Microsoft SharePoint Microsoft SharePoint znany jest również pod nazwą Microsoft SharePoint Products and Technologies

Bardziej szczegółowo

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. Kontrola topto Obsługa aplikacji Kontrola topto 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. 5. Dodawanie, edycja i usuwanie przejść.

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Instalacja rozwiązania... 2. Uruchomienie rozwiązania w systemie Sage... 3. Konfiguracja dodatku... 4. Ustawienia dodatkowe rozwiązania...

Instalacja rozwiązania... 2. Uruchomienie rozwiązania w systemie Sage... 3. Konfiguracja dodatku... 4. Ustawienia dodatkowe rozwiązania... Rozwiązanie przygotowane do wymiany danych pomiędzy programem Sage Handel a serwisem www.allegro.pl za pośrednictwem oprogramowania Firmy PhotoSoft EasyUploader. Rozwiązanie pozwala na przesyłanie towarów

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika w zakresie obsługi aplikacji internetowej KRAZ Rejestr Podmiotów Prowadzących Agencji Zatrudnienia Spis treści 1. Informacje wstępne... 3 2. Prowadzenie rejestru po zmianie ustawy...

Bardziej szczegółowo

Kartografia multimedialna krótki opis projektu. Paweł J. Kowalski

Kartografia multimedialna krótki opis projektu. Paweł J. Kowalski Kartografia multimedialna krótki opis projektu Paweł J. Kowalski Copyright Paweł J. Kowalski 2008 1. Schemat realizacji projektu 2 Celem projektu wykonywanego w ramach ćwiczeń z kartografii multimedialnej

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki

Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania został skonstruowany w oparciu o następujące dokumenty: Rozporządzenie MEN z dnia 7 września 2004 roku w sprawie zasad oceniania,

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

WORDPRESS INSTRUKCJA OBSŁUGI

WORDPRESS INSTRUKCJA OBSŁUGI WORDPRESS INSTRUKCJA OBSŁUGI Zapraszamy do zapoznania się z Instrukcją obsługi panelu CMS Wordpress, która w krótkim czasie i bez większego kłopotu pozwoli na edycję treści i zawartości strony, w tym:

Bardziej szczegółowo

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Podręcznik użytkownika Publikujący aplikacji Wykaz2 Podręcznik użytkownika Publikujący aplikacji Wykaz2 TiMSI Sp z o o ul Czapli 63, 02-781 Warszawa tel : +48 22 644 86 76, fax: +48 22 644 78 52 NIP: 951-19-39-800 Sąd Rejonowy dla mst Warszawy w Warszawie,

Bardziej szczegółowo

Umowa użytkownika. 1. Uprawnienia. 2. Logowanie do platformy szkoleń elektronicznych

Umowa użytkownika. 1. Uprawnienia. 2. Logowanie do platformy szkoleń elektronicznych Umowa użytkownika Platforma szkoleń elektronicznych firmy Olympus (https://elearning.olympuseuropa.com) to internetowe środowisko, które zostało stworzone z myślą o przeszkoleniu i podniesieniu świadomości

Bardziej szczegółowo

dziennik Instrukcja obsługi

dziennik Instrukcja obsługi Ham Radio Deluxe dziennik Instrukcja obsługi Wg. Simon Brown, HB9DRV Tłumaczenie SP4JEU grudzień 22, 2008 Zawartość 3 Wprowadzenie 5 Po co... 5 Główne cechy... 5 baza danych 7 ODBC... 7 Który produkt

Bardziej szczegółowo

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu.

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu. 1. Informacje Podstawowe Mediamanager 2.1 jest systemem wspierającym zarządzanie dokumentami elektronicznymi. Podstawowymi funkcjami realizowanymi przez oprogramowanie jest przetrzymywanie, zarządzanie

Bardziej szczegółowo

Tomasz Grześ. Systemy zarządzania treścią

Tomasz Grześ. Systemy zarządzania treścią Tomasz Grześ Systemy zarządzania treścią Co to jest CMS? CMS (ang. Content Management System System Zarządzania Treścią) CMS definicje TREŚĆ Dowolny rodzaj informacji cyfrowej. Może to być np. tekst, obraz,

Bardziej szczegółowo

którego nie stosuje się przepisów ustawy z dnia 29 stycznia 2004 r. Prawo zamówień publicznych na:

którego nie stosuje się przepisów ustawy z dnia 29 stycznia 2004 r. Prawo zamówień publicznych na: GŁÓWNY URZĄD GEODEZJI I KARTOGRAFII Warszawa, 2 października 2015 r. DEPARTAMENT NADZORU, KONTROLI I ORGANIZACJI SŁUŻBY GEODEZYJNEJ I KARTOGRAFICZNEJ NG-KiSZ.2611.6.2015 Do wszystkich Wykonawców Dotyczy:

Bardziej szczegółowo

KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU

KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU TORINGU PRZEMIESZCZA I ICH WIZUALIZACJI NA MAPIE CYFROWEJ 05-130 Zegrze, ul. Warszawska 22A Appletu przy projektowaniu i tworzeniu systemu Applet-

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

Specyfikacja. www.html-css-ajax.com. Załącznik A

Specyfikacja. www.html-css-ajax.com. Załącznik A Załącznik A Specyfikacja www.html-css-ajax.com Internetowy serwis poświęcony tworzeniu stron WWW z wykorzystaniem języka XHTML i technologii CSS oraz AJAX. Jakub Ciesielski http://www.html-css-ajax.com

Bardziej szczegółowo

OPIS JAKOŚCIOWY (wymagania minimalne) ZESTAWIENIE PARAMETRÓW GRANICZNYCH

OPIS JAKOŚCIOWY (wymagania minimalne) ZESTAWIENIE PARAMETRÓW GRANICZNYCH załącznik nr 3 do SIWZ pieczęć wykonawcy... OPIS JAKOŚCIOWY (wymagania minimalne) ZESTAWIENIE PARAMETRÓW GRANICZNYCH Dot.: Dostawa biuletynu informacji publicznej, portalu miejskiego oraz hostingu w ramach

Bardziej szczegółowo

9.1.2. Ustawienia personalne

9.1.2. Ustawienia personalne 9.1.2. Ustawienia personalne 9.1. Konfigurowanie systemu Windows Systemy z rodziny Windows umożliwiają tzw. personalizację ustawień interfejsu graficznego poprzez dostosowanie wyglądu pulpitu, menu Start

Bardziej szczegółowo

DESIGNER APPLICATION. powered by

DESIGNER APPLICATION. powered by DESIGNER APPLICATION powered by O FIRMIE HiddenData specjalizuje się w technologii dystrybucji treści video w Internecie oraz w budowie złożonych, funkcjonalnych aplikacji internetowych i mobilnych. Budujemy

Bardziej szczegółowo

Udostępnianie online 3.1. Wydanie 1

Udostępnianie online 3.1. Wydanie 1 Udostępnianie online 3.1 Wydanie 1 2008 Nokia. Wszelkie prawa zastrzeżone. Nokia, Nokia Connecting People i Nseries są znakami towarowymi lub zarejestrowanymi znakami towarowymi firmy Nokia Corporation.

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

Centrum Informacji Społeczno-Gospodarczej

Centrum Informacji Społeczno-Gospodarczej Instrukcja użytkownika w zakresie obsługi aplikacji internetowej KRAZ Rejestr Podmiotów Prowadzących Agencji Zatrudnienia Strona 2 1. Informacje wstępne W związku z nowelizacją Ustawy o Promocji Zatrudnienia

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo