UNIWERSYTET JAGIELLOŃSKI Wydział Zarządzania i Komunikacji Społecznej

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

Download "UNIWERSYTET JAGIELLOŃSKI Wydział Zarządzania i Komunikacji Społecznej"

Transkrypt

1 UNIWERSYTET JAGIELLOŃSKI Wydział Zarządzania i Komunikacji Społecznej kierunek: Kulturoznawstwo specjalność: Elektroniczne Przetwarzanie Informacji Tomasz Borodziuk Projekt i implementacja serwisu ofertowego dla uczestników carpoolingu z wykorzystaniem Google Maps API Praca magisterska napisana pod kierunkiem dra Mariusza Barana Kraków (1)

2 Spis treści Wstęp... 4 Rozdział I Tworzenie serwisów internetowych z wykorzystaniem Google Maps... 6 I.1 Proces tworzenia serwisu internetowego... 6 I.2 Rodzaje witryn internetowych... 8 I.2.1 Portale informacyjne... 8 I.2.2 Witryny komercyjne... 9 I.2.3 Serwisy społecznościowe I.3 Baza danych jako podstawowy nośnik treści serwisu 13 I.4 Wybrane narzędzia wykorzystywane do budowy serwisów internetowych I.4.1 HTML I.4.2 CSS I.4.3 Język PHP I.4.4 Biblioteka Smarty I.4.5 Java Script I.5 Application Programming Interface I.5.1 Czym są API i w jakim celu są tworzone? I.5.2 Google Maps API Rozdział II Analiza zjawiska carpoolingu II.1 Czym jest carpooling? II.2 Tło historyczne II.3 Rozwój i zasady funkcjonowania carpoolingu na świecie II.4 Co zachęca, a co zniechęca do korzystania z carpoolingu? II.5 Carpooling w kulturze popularnej II.6 Narzędzia organizacyjne II.7 Przegląd i analiza wybranych serwisów z ofertami carpoolingu Rozdział III Specyfikacja i projekt serwisu na potrzeby carpoolingu III.1 Założenia wstępne III.2 Specyfikacja wymagań, które powinien spełniać serwis III.3 Model konceptualny III.3.1 Diagramy przypadków użycia (2) 2

3 III.3.2 Czynności użytkownika i aplikacji III.3.3 Model bazy danych III.4 Projekt implementacji przyjętego modelu bazy danych III.5 Struktura informacyjna III.6 Interfejs użytkownika III.7 Nazwa i szata graficzna serwisu Rozdział IV Implementacja projektu serwisu IV.1 Narzędzia wykorzystane do realizacji projektu IV.2 Omówienie struktury kodu serwisu IV.3 Ocena dokonanej implementacji Podsumowanie Spis ilustracji Spis tabel Bibliografia Literatura Źródła elektroniczne (3) 3

4 Wstęp Problem nieprzejezdnych dróg i przesiąkniętego spalinami powietrza w miastach i przy trasach autostrad dotyka nas w coraz większym stopniu. Codziennie setki tysięcy samochodów usiłuje przedrzeć się przez zakorkowane centra miast. Wiele z nich prowadzi tylko jedna osoba. W obliczu rosnących cen paliw i postępującej degradacji środowiska idea popularyzacji carpoolingu nabiera coraz większego znaczenia. Ze wspólnym podróżowaniem, poza korzyściami wynikającymi z oszczędności paliwa i mniejszej emisji spalin, wiąże się również rozwój wśród ludzi umiejętności współdziałania i ukierunkowanie na wzajemną pomoc. Być może dzięki tej właśnie formie integracji będziemy w stanie lepiej współpracować także w innych obszarach życia. Niezwykle ważny element w funkcjonowaniu carpoolingu stanowi wymiana informacji. Poprzez tworzenie systemów umożliwiających efektywne ogłaszanie i porównywanie ofert podwiezienia można znacząco przyspieszyć rozwój tej formy podróżowania. Internet i technologie wspierające tworzenie wyspecjalizowanych serwisów ofertowych stanowią idealne narzędzia dla tworzenia aplikacji wspomagających carpooling. W tworzeniu stron wymagających przedstawienia lokalizacji na mapach, planowania tras pomiędzy nimi oraz wykonywania obliczeń topograficznych bardzo użyteczne okazują się narzędzia udostępnianie przez Google Maps. Ważnym zagadnieniem związanym z tworzeniem tego typu oprogramowania stanowi wymodelowanie odpowiedniej architektury danych potrzebnych do opisu zamieszczanych ofert oraz mechanizmu pozwalającego na ich poprawne porównywanie i dobieranie. Celem niniejszej pracy jest analiza zjawiska carpoolingu, zbadanie procesu tworzenia serwisu internetowego oraz wykonanie aplikacji sieciowej dla uczestników tej formy podróżowania. Istotną cechę odróżniającą tworzony system, od innych, funkcjonujących obecnie w Internecie, ma stanowić potraktowanie trasy przejazdu jako dynamicznego elementu sformalizowanej negocjacji pomiędzy kierowcą a potencjalnymi pasażerami. W rozdziale pierwszym, dla szerszego zobrazowania i lepszego zrozumienia dalszej części pracy zostaną omówione podstawowe zagadnienia związane z techniką tworzenia serwisów internetowych. W poszczególnych podrozdziałach zostaną opisane narzędzia, używane do budowy stron internetowych oraz podstawowe typy tworzonych serwisów (4) 4

5 Zostanie również poruszony temat interfejsów programowania aplikacji, w szczególności Google Maps API. W kolejnej części dokonana zostanie szczegółowa analiza zjawiska carpoolingu i jego znaczenia w kulturze popularnej. Przedstawiony będzie również przegląd istniejących serwisów związanych z tą formą podróżowania oraz zostaną zidentyfikowane ich mocne i słabe strony. W rozdziale trzecim zostaną wyszczególnione założenia wstępne dotyczące planowanego projektu. Zdefiniowana będzie architektura serwisu, struktura bazy danych oraz plan tworzenia kodu programistycznego. Zaprezentowane będą również projekty interfejsu użytkownika i szaty graficznej strony WWW oraz uzasadnienie ich formy w oparciu o określone w poprzedniej części założenia. W końcowej części zostanie omówiony proces implementacji tworzonego projektu informatycznego. Zamieszczone będzie również podsumowanie wykonanej pracy oraz zarys perspektyw rozwoju serwisu (5) 5

6 Rozdział I Tworzenie serwisów internetowych z wykorzystaniem Google Maps I.1 Proces tworzenia serwisu internetowego Tworzenie serwisu internetowego jest wieloetapowym procesem. W praktyce agencji profesjonalnie projektujących rozbudowane strony na jego realizację składa się praca kilku, a czasem kilkunastu ludzi o zróżnicowanych umiejętnościach. W zespołach takich współpracują zarówno graficy, programiści, jak i analitycy oraz specjaliści od marketingu. Szczegółowy skład zespołu jest uzależniony od wielkości serwisu, poziomu jego skomplikowania, planowanych funkcjonalności itp. Edward Barrett, Deborach A. Levison oraz Suzana Lisanti w książce The MIT Guide to Teaching Web Site Design wskazują, że optymalny skład zespołu to 4 lub 5 osób. 1 Zdaniem autorów, jeśli zespół będzie większy, może się okazać, że nie będzie sprawnie funkcjonować. Czasem jednak rozmiar projektu zmusza do stworzenia większego zespołu. W przytoczonej publikacji wskazana jest lista najważniejszych ról, jakie powinni przyjąć członkowie zespołu tworzącego serwis 2. Każda osoba, może przyjąć jedną lub więcej z nich. Role mogą być również dzielone na kilka osób. Oto one: 1. kierownik projektu (project manager) 2. reprezentant klienta (client representative) 3. specjalista do spraw technologii (technology researcher) 4. redaktor treści strony (content developer writer) 5. architekt informacji (information architect) 6. grafik 7. projektant multimediów (multimedia designer) 8. programista aplikacji (technical designer) 9. tester 1 Edward Barrett, Deborah A. Levison, Suzana Lisanti, The MIT Guide to Teaching Web Site Design, The MIT Press, London, 2001, s Edward Barrett, Deborah A. Levison, Suzana Lisanti, op. cit., s (6) 6

7 Aby praca przebiegała sprawnie i przynosiła oczekiwane rezultaty ważne jest zdefiniowanie poszczególnych etapów projektowania, tworzenia i wdrażania serwisu. Ani Phyo, założycielka firmy SmartMonkey Media w swojej książce Web Design. Projektowanie atrakcyjnych stron WWW podaje siedmioetapowy model tworzenia serwisów internetowych 3. Składają się na niego następujące zadania: Zdefiniowanie wymagań. Opracowanie i sporządzenie scenariuszy działań. Określenie zawartości i struktury witryny. Zdefiniowanie mapy witryny i jej funkcjonowania. Zdefiniowanie układu strony. Przeprowadzenie gruntownego testu użyteczności witryny. Dalsze testy, poprawki i przeprojektowywanie. Jest to jeden modeli przedstawiających proces projektowy. Modele tego typu pozwalają podzielić pracę na podzadania oraz zdefiniować jej przebieg. Podobną, choć nieco bardziej złożoną drogę wskazuje Jeske James Garrett 4. Tu przewidzianych jest dziewięć etapów: Zdefiniowanie wymagań użytkowników Zdefiniowanie oczekiwań klienta Określenie strategii dotyczącej technologii Określenie strategii dotyczącej treści Zaprojektowanie architektury informacji Opracowanie technologii Opracowanie treści Projekt wyglądu strony Określenie kierownictwa projektu Powyższy model z pewnością sprawdzi się lepiej w realizacji dużych projektów, do których wydelegowana została wykwalifikowana kadra. 3 Marek Kasperski, Anna Boguska-Torbicz, Projektowanie Stron WWW, Użyteczność w praktyce, Gliwice, Helion 2008, s Marek Kasperski, Anna Boguska-Torbicz, op. cit., s (7) 7

8 I.2 Rodzaje witryn internetowych Trudno jest określić jednoznacznie ogólny, a zarazem wyczerpujący podział stron internetowych. Od początków powstania sieci WWW dokonano licznych prób klasyfikacji, jednak żadna z nich nie jest i nie może stać się tą główną i jedynie obowiązującą. Szybkiemu rozwojowi Internetu towarzyszy nieustający proces tworzenia się coraz to nowych typów witryn, które trudno jest klasyfikować według wcześniej przyjętych kryteriów. Jedną z pierwszych prób klasyfikacji witryn internetowych dokonała organizacja Internet Corporation for Assigned Names and Numbers przy wprowadzaniu podstawowych domen. 5 Próbowano ustalić podział na witryny komercyjne, które z założenia miały mieć końcówkę com, edukacyjne z końcówką edu i informacyjne z zakończeniem info. Podział ten nie sprawdził się jednak do końca. Wiele firm nie stosowało się do przyjętego nazewnictwa domen. Powstały również nowe witryny, które trudno było przypasować do przyjętego podziału. Bardzo zbliżony do podziału opartego o nazwy domen jest podział na kręgi tematyczne. Względem tego klucza możemy wyróżnić witryny edukacyjne, rozrywkowe, informacyjne oraz hybrydowe, które łączą w sobie kilka typów jednocześnie. I.2.1 Portale informacyjne Jak zauważa Dawid Kulbaka, redaktor portalu webinside.pl, w jednym ze swoich artykułów, jest rzeczą znamienną, że żadna organizacja, która ma wpływ na funkcjonowanie Internetu nie podjęła się posegregowania stron internetowych według określonego, obiektywnego kryterium. 6 Proponuje on podział portali informacyjnych w oparciu dwa słowa klucze: portal horyzontalny i portal wertykalny. Portalem horyzontalnym nazywamy rozbudowaną witrynę, która składa się z różnych kręgów tematycznych. W witrynie takiej oprócz zróżnicowanej treści tematycznej publikacji znajduje się również lista odnośników do innych stron, wyszukiwarka oraz aktualności z wielu dziedzin wiedzy. Niejednokrotnie tego typu portale oferują swoim czytelnikom usługę poczty elektronicznej. Coraz częściej umieszcza się na nich 5 Czytaj więcej: Dawid Kulabka, Rodzaje stron internetowych [online] rodzaje-stron-internetowych.html 6 Dawid Kulabka, Rodzaje stron internetowych [online] [dostęp 20 kwietnia 2011] (8) 8

9 przekazy w formie filmów i galerii zdjęć. Przykładami tego typu witryn w polskim Internecie są portale wp.pl oraz onet.pl. Jednym z najbardziej znanych portali tego typu na światowej scenie jest Yahoo.com. Dość mocno zauważalnym trendem we współczesnym Internecie są próby tworzenia portali horyzontalnych z witryn stacji radiowych, prasy oraz telewizji. Tak zdarzyło się np. w przypadku stron Gazety Wyborczej. Portal wertykalny, w przeciwieństwie do horyzontalnego, prezentuje spójnie tematycznie treści dedykowane dla wąskiej grupy odbiorców zainteresowanych określonym tematem. Nazywany jest również wortalem, co stanowi spolszczony skrót od nazwy vertical portal. Charakteryzuje go wąska specjalizacja. Tego typu witryny stanowią często fachowe źródło informacji w danej dziedzinie. Mocno sprecyzowana grupa odbiorców sprawia, że portale wertykalne stanowią ważny element dla reklamodawców, którzy chcą docierać do konkretnej grupy docelowej. Przykładem witryny tego typu jest skupiony na tematyce teatru w Polsce serwis e-teatr.pl lub Wortal Przedsiębiorczych ipis.pl. Często wortalami stają się strony wydawnictw tygodników i miesięczników skupionych na konkretniej tematyce. I.2.2 Witryny komercyjne Odmienny klucz podziału można przyjmuje się dla serwisów komercyjnych. Zdaniem Davida Kulbaki najważniejszym kryterium tej grupy stron jest wartość funkcjonalna i marketingowa witryn. 7 Tutaj poza podziałem na portal horyzontalny i wertykalny należy wyróżnić podział na portale korporacyjne, serwisy firmowe oraz serwisy produktowe. Portale korporacyjne tworzone są na bazie rozbudowanych systemów informatycznych, które zawierają elementy łączące wiedzę o firmie i klientach. Stanowią narzędzie komunikacji między pracownikami korporacji a klientami. Ważną funkcją takich portali jest zarówno gromadzenie informacji o klientach, udostępnianych usługach, relacjach biznesowych korporacji jak i kreowanie pozytywnego wizerunku firmy w Internecie. Wykorzystanie wiedzy dostarczanej przez narzędzie, jakim jest dobrze funkcjonujący portal korporacyjny pozwala firmie zoptymalizować komunikację 7 Dawid Kulabka, op. cit., w części: Strony komercyjne (9) 9

10 z klientem, co w efekcie przekłada się na zysk. Przykładem portalu korporacyjnego jest choćby strona internetowa Grupy ING (ing.pl). Serwisy firmowe to nieco mniej rozbudowane witryny. Zwykle nie posiadają one platformy pozwalającej na indywidualna obsługę klientów i nie magazynują w swoich zasobach bazodanowych informacji na ich temat. Ich funkcja ogranicza się zazwyczaj do kreowania wizerunku, prezentacji oferty i opisu działalności przedsiębiorstwa. Takie serwisy zawierają często informacje dotyczące historii firmy i aktualnych cen oferowanych przez nią produktów czy usług. 8 Niezbędny element stanowi tu również podstrona zawierająca dane kontaktowe. Coraz częściej w serwisach firmowych umieszcza się takie elementy jak sylwetki pracowników, zdjęcia miejsca pracy. Dzięki takim zabiegom wzrasta zaufanie do firmy u jej potencjalnych kontrahentów. Serwisy produktowe tworzone są z myślą o kreowaniu wizerunku konkretnego produktu. Często zdarza się, że witryny takie mogą działają w ramach większego projektu, np. portalu korporacyjnego. Prezentacja produktu musi być, oryginalna, wyróżniać się i zapadać w pamięć odbiorców, dlatego tego typu serwisy sięgają nader często po niekonwencjonalną kolorystykę, szablony układu treści, zabawne multimedia oraz wyszukane koncepcje reklamowe. Serwisy produktowe kierowane są bezpośrednio do grupy potencjalnych odbiorców danego dobra, dlatego też umieszcza się w nich takie elementy, które przykują uwagę właśnie tych osób. Dedykowany dla dzieci od 4 lat serwis produktowy napoju owocowego Pysio (pysio.pl) posiada jako główny element prostą grę planszową, której zasady są podawane drogą przekazu głosowego zaraz po uruchomieniu strony głównej. 9 Jest to dobry przykład jak ważne miejsce w tego rodzaju serwisach stanowią elementy budujące zainteresowanie odbiorcy. I.2.3 Serwisy społecznościowe Coraz ważniejszą rolę we współczesnym Internecie stanowią witryny społecznościowe. Główną ich cechą jest łączenie wokół siebie ludzi o zbieżnych zainteresowaniach, którzy aktywnie współtworzą treść witryny. Działanie serwisów społecznościowych opiera się na nurcie Web Dawid Kulabka, op. cit., w części: Strony komercyjne 9 Smok Pysio. Strona główna [online] [dostęp: 20 kwietnia 2011] (10) 10

11 Idea witryn Web 2.0 polega na możliwości tworzenia przez użytkowników własnego zbioru danych. Joshua Porter w książce Serwisy społecznościowe. Projektowanie definiuje istotę tworzenia tego typu serwisów następująco 10 : Projektowanie społecznościowe to wymyślanie, planowanie i tworzenie stron internetowych i aplikacji wspierających interakcje między ludźmi. Zdaniem autora przytoczonej powyżej definicji oprogramowanie społecznościowe będzie stanowić przyszłość Internetu przez najbliższe dekady. Dla poparcia tego stwierdzenia, Porter odwołuje się do zjawiska, które zaobserwował klika lat przed napisaniem owej publikacji podczas prowadzenia badania użyteczności witryn internetowych. Nazywa je Efektem Amazon. 11 Zadaniem uczestników testu było wejście na stronę sklepu CircuitCity.com i dokonanie próby zakupu aparatu. Wiele osób poddanych badaniu chciało jednak wcześniej wejść na stronę amazon.com, na co nie pozwalała procedura testu. Dużym zaskoczeniem dla autora był fakt, że badani, zapytani czemu chcą odwiedzić stronę nie powoływali się na swoje dotychczasowe doświadczenia, takie jak np. przyzwyczajenie do interfejsu strony. Chcieli zebrać informacje o produkcie zamieszczone na tej stronie przeczytać komentarze innych użytkowników. Opisy produktów zamieszczane przez redakcje stron sklepów internetowych są z założenia tendencyjne, gdyż ich zadaniem jest zachęcanie do kupna. Dla uczestników testu metodą sprawdzenia, czy nie kupią bubla było sprawdzenie opinii innych klientów sklepu, którzy kupili już dany produkt i bezinteresownie wpisali na stronę komentarz na jego temat. W okresie, kiedy było prowadzone badanie niewiele sklepów internetowych prezentowało opinie użytkowników dotyczące sprzedawanych produktów. Przykład serwisu Amazon.com pokazał siłę, jaka drzemie w nurcie Web 2.0. Umożliwienie użytkownikom współtworzenia treści serwisu w wielu przypadkach przyczynia się do jego popularyzacji i zwiększenia wartości użytkowej dla jego odbiorców. 10 Joshua Porter, Serwisy społecznościowe. Projektowanie, tłum. Andrzej Stefański, Gliwice, Helion 2008, s Joshua Porter, op. cit., s (11) 11

12 Jak zauważa Dawid Kulabka 12 sukces Web 2.0 polega na tym, iż zasoby takich stron mogą być powiększane w szybkim tempie, a różnorodność zainteresowań uczestników sprawia, że krąg tematyczny nigdy nie będzie zawężony. Wśród serwisów działających w tym nurcie niezwykle dużą popularnością charakteryzują się blogi. 13 Coraz częściej przestają one przypominać pamiętniki. W wielu przypadkach blogi pełnią rolę serwisów opiniotwórczych prowadzonych, przez znane firmy lub osoby publiczne. Ich streść stanowią na ogół przemyślenia, wnioski, bądź też opinie na różne tematy wypowiedziane w indywidualnym tonie. Po konwencję Web 2.0 sięgają również firmy i organizacje społeczne, które tworzą dość szczególny odłam stron społecznościowych nazwany witrynami eventowymi. Możemy do nich zaliczyć witryny konkursowe, które nakłaniają odbiorców do wzięcia udziału w różnych konkursach, grach interaktywnych lub promocjach. Dzięki organizacji wydarzeń koordynowanych przez specjalnie stworzone serwisy internetowe firmy i organizacje budują związek z klientami uczestnikami. Witryny takie pełnią funkcje budowania społeczności wokół siebie oraz promowanego wydarzenia, a społeczność może realizować się w internecie lub poza nim. Dobrym przykładem takiego serwisu jest cocacolacup.pl. Przedstawiony przez Dawida Kulabkę podział jest jedynie próbą klasyfikacji witryn, względem kryteriów, które zapewne wydały się autorowi najbardziej istotne i rozróżniające. Wiele serwisów internetowych posiada jednocześnie cechy kilku z przedstawionych kategorii. Znajdą się pewnie też i takie, które trudno będzie skojarzyć z którąkolwiek z nich. Można by przytoczyć w tym miejscu inne podziały. Przykładowo Justyna Adamczyk w jednym z artykułów w serwisie e-marketing.pl jako wyznacznik klasyfikacji określa wartość marketingową witryn. 14 Opisany niniejszym podrozdziale podział daje jednak wyobrażenie na temat różnorodności funkcji pełnionych przez współczesne strony internetowe i oraz stosowanych form prezentacji i rozpowszechniania treści. 12 Dawid Kulabka, op. cit., w części: Witryny społecznościowe 13 Ibid., w części: Witryny społecznościowe 14 Justyna Adamczyk, Rodzaje stron internetowych [online] [dostęp 20 kwietnia 2011] (12) 12

13 I.3 Baza danych jako podstawowy nośnik treści serwisu WWW Baza danych jest to zbiór danych zorganizowanych w pewien logiczny i zestrukturalizowany sposób. Jej struktura jest zależna od modelu danych przyjętego przy organizowaniu tych danych, a wielkość wynika z liczby danych i powiązań między nimi. Sformatowaną bazą danych nazywa się zbiór danych w postaci skończonego zbioru wzorców służących do wyrażenia pewnych informacji o stanie świata rzeczywistego. Niesformatowaną bazę danych stanowi natomiast zbiór faktów tworzących nowe fakty na podstawie istniejących w postaci sieci sematycznych, oraz wyspecjalizowanych języków opisu wiedzy. 15 Aby baza danych stanowiła użyteczne źródło danych dla systemów informatycznych potrzebny jest System Zarządzania Bazą Danych (SZBD), który stanowi zorganizowany zbiór narządzi umożliwiających dostęp do zawartych w bazie danych i zarządzanie nimi. Podstawowe operacje, jakie umożliwia taki system to 16 : przechowywanie danych tworzenie i utrzymywanie struktur danych umożliwienie równoczesnego dostępu wielu użytkownikom wprowadzenie mechanizmu bezpieczeństwa i prywatności odzyskiwanie danych i operowanie na przechowywanych danych wprowadzanie i ładowanie danych udostępnianie wydajnych mechanizmów indeksowania przyspieszających wyszukiwanie danych zapewnienie spójności różnych rekordów ochrona przechowywanych danych za pomocą kopii bezpieczeństwa i procedur odtwarzania Systemy Zarządzania Bazą Danych muszą być ściśle dostosowane do stosowanych w bazie modeli danych. W zależności od wymagań stawianych systemom stosuje następujące modele 17 : 15 Maria Chałon, Systemy baz danych, Wrocław, Oficyna Wydawnicza Politechniki Wrocławskiej 2001, s Maria Chałon, op. cit., s Maria Chałon, op. cit., s (13) 13

14 hierarchiczny sieciowy relacyjny obiektowy W modelu hierarchicznym schemat bazy danych ma postać wielopoziomowego drzewa. 18 Każdy rekord z wyjątkiem głównego jest związany z dokładnie jednym rekordem nadrzędnym. Usunięcie wybranego rekordu wiąże się z usunięciem wszystkich rekordów podrzędnych dla danego. Ze względu na swoje ograniczenia, model ten został niemal całkowicie wyparty przez model sieciowy. W modelu sieciowym dane zapisuje się w postaci rekordów i powiązań pomiędzy nimi. 19 Stanowi on ulepszenie modelu hierarchicznego i pozwala definiować wskaźniki opisujące powiązania miedzy danymi w sposób bardziej elastyczny. W przeciwieństwie do modelu hierarchicznego, każdy rekord może mieć tutaj więcej niż jeden rekord nadrzędny. Dzięki temu model ten pozwala w prosty sposób definiować relację wieledo-wielu. Powiązania pomiędzy rekordami reprezentowane są przez wskaźniki. W modelu relacyjnym dane mają prawdopodobnie najprostszą strukturę, jaka może mieć baza tabelę. Podstawy relacyjnych baz danych zostały zdefiniowane z roku 1970 przez dr Edwarda Codda w publikacji A Relational Model of Data for Large Shared Data Banks 20. Formalne podstawy tego modelu oparte są na matematycznym pojęciu relacji. Nagłówki kolumn w tabelach oznaczają tutaj atrybuty, a poszczególne wiersze stanowią rekordy z danymi. Modele relacyjne są stosunkowo łatwe w użyciu. Na ich bazie powstało wiele dobrych systemów zarządzania bazą danych, dzięki czemu są bardzo popularne. Przykładami systemów opartych na tym modelu są ORACLE, INFORMIX, SYBASE. 21 Współcześnie coraz większą popularność zyskuje model obiektowy. W modelu tym baza danych stanowi zbiór obiektów abstrakcyjnych typów danych tworzonych zgodnie z kanonami programowania obiektowego. 18 Krzysztof Myszorowski, Systemy baz danych, Wydział Fizyki Technicznej Informatyki i Matematyki Stosowanej Politechniki Łódzkiej, Łódź 2002, s Krzysztof Myszorowski, op. cit., s Krzysztof Myszorowski, op. cit., s Maria Chałon, op. cit., s (14) 14

15 W zależności od przyjętego modelu danych możemy mówić o hierarchicznych, sieciowych, relacyjnych bądź obiektowych systemach baz danych. Powstają również systemy hybrydowe, oparte na kilku modelach danych. W ciągu ostatnich lat niezwykle popularne stały się bazy relacyjno-obiektowe. W większości relacyjnych systemów baz danych wykorzystywany jest SQL strukturalny język zapytań. 22 Do takich systemów należą choćby DB2, Oracle, Inter- Base, MySQL, dbase, Paradox. Składnię SQL zawiera następujące grupy: DDL (Data Definition Language) - język definiowania struktur danych DML (Data Manipulation Language) język wybierania i manipulowania danymi DCL (Data Control Language) język bezpieczeństwa dostępu do danych Elementy składni SQL należące do DDL i DCL używane są przez administratorów systemu relacyjnej bazy danych. DDL w celu utrzymania struktury bazy danych i jej obiektów, np. tabel, a DCL do operacji związanych z utrzymaniem bezpieczeństwa dostępu do danych (np. nadawania uprawnień). DML używany jest przez wszystkich użytkowników mających dostęp do bazy danych. Przy pomocy tego typu składni języka SQL wykonuje się podstawowe operacje na danych, takie jak odczyt, zapis lub zmiana. Najczęściej wykorzystywany system baz danych serwisach WWW to MySQL. 23 Dużą popularnością cieszą się też systemy PostgreSQL oraz Firebird. Przy wyborze systemu bazy danych należy wziąć pod uwagę kilka istotnych czynników, należą do nich: ograniczenia licencyjne, zgodność ze standardami, dostępne typy danych, szybkość działania oraz bezpieczeństwo danych. MySQL może być legalnie wykorzystywany w oparciu o dwie licencje. Pierwsza z nich to GNU General Public Licence. Można z niej korzystać, jeśli dzieło jest realizowane na licencji GPL, czyli udostępniane z pełnym kodem źródłowym. W przypadku realizacji projektu komercyjnego, który będzie rozpowszechniany bez źródeł, należy skorzystać 22 Arkadiusz Jakubowski, Podstawy SQL ćwiczenia praktyczne, Gliwice, Helion 2001, s Adam Golański, MySQL kontra PostgreSQL kontra Firebird [online] [dostęp: 16 marca 2011] (15) 15

16 z tej drugiej licencji komercyjnej. W tym przypadku właściciel projektu jest zobowiązany do uiszczenia opłat licencyjnych. System licencyjny PostgreSQL to BSD. Jest on najbardziej liberalny pozwala używać danego oprogramowania na wszelkie możliwe sposoby warunkiem legalności jest jedynie załączenie do projektu kopii licencji. Firebird jest z kolei rozprowadzany na licencji InterBase Public Licence. Dla twórców Zamkniętego Oprogramowania jest ona nieco mniej restrykcyjna niż GNU PL, wymaga jednak również rozpowszechniania projektów wraz z kodem źródłowym. Licencja Zgodność ze standardami Aspekt MySQL PostgreSQL Firebird GNU GPL/komercyjna BSD InterBase Public Licence przeciętna wysoka wysoka Szybkość bardzo wysoka przeciętna przeciętna Stabilność (dla Linuksa) wysoka bardzo wysoka bardzo wysoka Łatwość użycia wysoka wysoka wysoka Bezpieczeństwo przeciętne wysokie bardzo wysokie Tabela I.1 Porównanie baz banych wykorzystywanych w serwisach WWW źródło: Adam Golański, MySQL kontra PostgreSQL kontra Firebird [online] [dostęp: 16 marca 2011] Obecna w powyższej tabeli ocena szybkości została dokonana na podstawie benchmarków uruchomionych na następujących wersjach: MySQL 5.1.0, Firebird 1.6, PostgreSQL 8.1. Sprawdzano szybkość ładowania danych, indeksowania oraz czas wykonywania pięciu złożonych zapytań SELECT. W zastosowaniach wykorzystywanych przez duże organizacje bazy danych rozpatrywane pod względem ich zgodności z ACID (Atomic Consistency Isolation Durability) 24. Zgodność z ACID oznacza, że baza spełnia następujące cztery wymogi: Zatomizowanie Spójność 24 Luke Welling, Laura Thompson, PHP i MySQL Tworzenie stron WWW, tłum. Dawid Kaczmarek, Paweł Gonera, Gliwice, Helion 2005, s (16) 16

17 Izolacja Wytrzymałość Zatomizowanie oznacza tu, iż wszystkie polecenia typu UPDATE, INSERT, DELETE traktowane są jako pojedynczy, spójny obiekt i albo zostanie wykonane każde z tych poleceń, albo żadne. Jeśli dokonywany jest transfer pieniędzy pomiędzy kontami na jednym z kont wykonywane będzie polecenie DELETE, a na drugim INSERT. W sytuacji, gdy serwer, na którym pracuje baza, padłby po wykonaniu DELETE, a przed wykonaniem INSERT mogłoby dojść do katastrowy. Jeśli system jest zatomizowany do takiej sytuacji nie dojdzie. Warunek spójności oznacza, że żadna transakcja nie zostanie wykonana połowicznie. Jeśli jakikolwiek element z listy wprowadzanych modyfikacji zawiedzie wszystkie wprowadzone w ramach transakcji zmiany zostaną wycofane. Izolacja zapewnia, że wszystkie transakcje są wykonywane po sobie. Wytrzymałość gwarantuje, że jeśli serwer zostanie baza danych wróci do spójnego stanu. Choć spójna baza danych nie pozwala zapisać efektów połowicznie wykonanej transakcji, to po nieprzewidzianym restarcie dzięki logom nieukończonych transakcji może dokończyć przerwane operacje. Twórcy każdej z omawianych baz danych deklarują zgodność ze standardem ACID. 25 Niektórzy specjaliści od baz danych mają jednak wątpliwości, czy MySQL rzeczywiście zapewnia deklarowane wymogi bezpieczeństwa. Adam Golański w jednym, ze swoich artykułów zwraca uwagę na fakt, iż MySQL wdraża zatomizowane operacje poprzez bloki tabel, bez mechanizmu zwinięcia zmian, co, jak zaznacza, jest nadużyciem podejścia wszystko albo nic. Brak funkcjonalności zwijania zmian może doprowadzić do sytuacji, gdy awaria sprzętu w trakcie wykonywania zbioru poleceń rozbije zatomizowanie bloku i baza danych utraci spójność. Z pośród opisywanych systemów baz danych za najbardziej zgodny z ACID uważany jest Firebird. Każda z wymienionych baz dysponuje wygodnymi interfejsami użytkownika, a do podstawowej obsługi wymagana jest jedynie znajomość SQL. 25 Adam Golański, MySQL kontra PostgreSQL kontra Firebird [online] [dostęp: 16 marca 2011] (17) 17

18 Do postawienia prostej bazy danych MySQL wydaje się narzędziem w zupełności wystarczającym, choć w przypadku profesjonalnych projektów wymagających pełnej zgodności z ACID konieczny może okazać się wybór innego systemu (18) 18

19 I.4 Wybrane narzędzia wykorzystywane do budowy serwisów internetowych I.4.1 HTML HTML jest skrótem od nazwy HyperText Markup Language, co można przetłumaczyć jako hipertekstowy język znaczników. Język ten pozwala zdefiniować sposób wyświetlania treści na stronie i odnośniki do innych miejsc w sieci. Obecne w nazwie słowo hipertekstowy informuje właśnie o tej drugiej z wymienionych powyżej funkcjonalności. HTML został stworzony przez Tima Bernersa-Lee, który wynalazł również HTTP - specjalny protokół do przeznaczony do transferu dokumentów HTML. 26 Wynalazca, chciał stworzyć dla badaczy instytutu, w którym pracował, prosty język znaczników umożliwiający przekazywanie wyników badań poprzez sieć komputerową. HTML oparty jest na SGML (ang. Standard Generalized Markup Language) standardowym uogólnionym języku znaczników służącym do ujednolicania struktury i formatu różnego typu danych. Z biegiem czasu powstał język nowocześniejszy, a za razem znacznie prostszy (więc również bardziej dostępny), który był w stanie zastąpić SGML dla potrzeb hipertekstu. Jest nim XML rozszerzalny język znaczników. Obecnie również wiele programów wykorzystywanych do edycji tekstu zawiera komponenty XML. 27 Ze względu na jego prostotę i lepsze dostosowanie do potrzeb dokumentów elektronicznych coraz łatwiej o jednoznaczną interpretację znaczników przez przeglądarki. Problem różnego sposobu wyświetlania tego samego kodu HTML przez różne przeglądarki powoli odchodzi do przeszłości. Na bazie języka XML powstała nowa gałąź HTML XHTML. W użyciu jest ona bardzo podobna do HTML, jednak dzięki zastosowaniu jako podstawy XML zamiast SGML, język ten jest kompatybilny zarówno ze standardowymi przeglądarkami parsującymi SGML jak i środowiskami zgodnymi z XML. 26 Bryan Pfaffenberger, Steven M. Schafer, Chuck White, Bill Karow, HTML, XHTML i CSS Biblia, Gliwice, Helion 2005, s Bryan Pfaffenberger, Steven M. Schafer, Chuck White, Bill Karow, op. cit. s (19) 19

20 I.4.2 CSS Jedną z głównych idei, które przyświecały twórcom SGML było przekonanie, że struktura dokumentu powinna być oddzielona od jego prezentacji. 28 Do struktury odnoszą się tu takie elementy jak tytuły, akapity, nagłówki czy listy, a więc określone komponenty wykorzystywane przy tworzeniu dokumentu. Prezentacja odnosi się natomiast do sposobu, w jaki owe komponenty struktury mają być przedstawione. Przyglądając się kolejnym wersjom HTML można stwierdzić, że idea ta nie zawsze znajdowała pełne odzwierciedlenie w praktyce. Istotny krok w kierunku jej realizacji został poczyniony z wprowadzeniem wersji 4. Odpowiedzialna za standaryzację HTML organizacja W3C umieściła wtedy w Rekomendacji Specyfikacji HTML 4.0 następujące wyjaśnienie 29 : HTML has its roots in SGML which has always been a language for the specification of structural markup. As HTML matures, more and more of its presentational elements and attributes are being replaced by other mechanisms, in particular style sheets. Experience has shown that separating the structure of a document from its presentational aspects reduces the cost of serving a wide range of platforms, media, etc., and facilitates document revisions. Konwencja wstawiania atrybutów dotyczących prezentacji do znaczników określających strukturę dokumentu, była szeroko stosowana w poprzedzających 4.0 wersjach HTML (poza 1.0). Wiązało się to z dużą niedogodnością, gdyż np. jeśli chciało się zmienić kolor nagłówków w dokumencie, trzeba było zmieniać atrybut koloru w każdym wystąpieniu nagłówka w tekście. Wprowadzenie kaskadowych arkuszy stylów (CSS) dało projektantom możliwość zbiorczego zarządzania sposobem prezentacji poszczególnych elementów struktury całego dokumentu, a nawet grupy dokumentów. Dzięki stylom zmiana wyglądu strony WWW stała się dużo prostsza. 28 Bryan Pfaffenberger, Steven M. Schafer, Chuck White, Bill Karow, op. cit. s HTML 4.0 Specification W3C Recommendation 18-Dec-1997 [online] [dostęp 5 maja 2011] w części 2 Introduction to HTML Separate structure and presentation (20) 20

21 I.4.3 Język PHP PHP jest językiem skryptowym. Służy więc do kontroli działania całej aplikacji - strony WWW. Może być również wykorzystywany do wykonywania komend wiersza poleceń na serwerze, przetwarzania obrazów (choćby przy pomocy biblioteki GTK+) oraz wielu innych operacji. Wykonywanie PHP obywa się po stronie serwera, dzięki czemu odwiedzający stronę opartą na tym języku nie muszą posiadać żadnych narządzi do jego interpretacji, gdyż po wejściu na stronę napisaną w PHP otrzymują jedynie wynik działania aplikacji na przykład kod HTML. Język ten został utworzony w 1994 roku i jest dziełem Rasmusa Lerdorfa. 30 W późniejszym czasie został poddany kilku poważnym modyfikacjom, dzięki którym stał się dojrzałym produktem Open Source 31 o szerokich zastosowaniach. Skrót PHP w zamyśle autora oznaczał pierwotnie Personal Home Page (Osobista Strona Domowa). W późniejszym czasie został jednak zmieniony zgodnie z rekursywną konwencją nadawania nazw Projektu GNU i oznacza obecnie PHP Hypertext Preprocesor (PHP Preprocesor Hipertekstu). Projekt PHP posiada swoją własną stronę pod adresem Stąd też można bezpłatnie, w dowolnym momencie pobrać najnowszą wersję oprogramowania. Składnia PHP oparta jest na kilku innych językach programowania, w szczególności C i Perlu. 32 Dzięki temu osoby, które potrafią programować w tych językach lub podobnych (np. C++ lub Java) mogą rozpocząć programowanie w PHP niemal od zaraz. Stąd też zapewne wynika niezwykła popularność PHP. Do głównych zalet PHP należą 33 : wysoka wydajność interfejsy do wielu różnych systemów baz danych wbudowane biblioteki służące do rozwiązywania wielu popularnych zadań WWW niski koszt łatwość nauki i wykorzystania szeroka obsługa mechanizmów zorientowanych obiektowo przenośność 30 Luke Welling, Laura Thompson, PHP i MySQL Tworzenie stron WWW, tłum. Dawid Kaczmarek, Paweł Gonera, Gliwice, Helion 2005, s Jego kod źródłowy można bezpłatnie wykorzystywać, zmieniać i redystrybuować. 32 Luke Welling, Laura Thompson, op. cit., s Luke Welling, Laura Thompson, op. cit., s (21) 21

22 otwarty kod źródłowy dostępność wsparcia I.4.4 Biblioteka Smarty Bardzo pomocnym narzędziem podczas projektowania aplikacji internetowych w PHP jest obiektowa biblioteka skryptów Smarty. Podobnie jak PHP jest to pakiet o otwartym kodzie źródłowym. 34 Jej stosowanie narzuca w tworzonej aplikacji PHP podział na logikę i warstwę szablonów prezentujących treść strony. Ułatwia to utrzymanie porządku w kodzie i znacznie wspomaga proces generowania aplikacji od strony prezentacyjnej. Rozwiązuje też następujący problem: w jaki sposób oddzielić kod pisany przez programistów (PHP) od kodu tworzonego przez projektantów witryn (HTML). 35 Dla lepszego zrozumienia opisywanego problemu warto przeanalizować następujący przykład. Ilustracja I.1 Przykładowy układ witryny WWW źródło: Hasin Hayder, J. P. Maia, L. Gheorge, Smarty. Szablony w aplikacjach PHP, tłum. Radosław Meryk, Robert Polański, Gliwice, Helion 2006, s. 20. Dla tworzonej strony WWW został zaplanowany układ składający się z nagłówka, menu nawigacyjnego, treści strony, oraz stopki widoczny na rysunku powyżej. Projektanci tworzą szablony ukazujące w jaki sposób treść będzie prezentowana na stronie. Wprowadzając, ilustracje, tabelki oraz dobierając właściwy styl dla tekstu 34 Smarty Template Engine [online] [dostęp 6 maja 2011] 35 Hasin Hayder, J. P. Maia, L. Gheorge, Smarty. Szablony w aplikacjach PHP, tłum. Radosław Meryk, Robert Polański, Gliwice, Helion 2006, s (22) 22

23 tworzą wizerunek strony. Jedyną informacją potrzebną do pracy projektantom jest to, w jaki sposób powinna wyglądać witryna, oraz w jakich działach ma być prezentowana treść. Inną grupę stanowią programiści. Ich nie interesuje wizualna strona witryny. Ważną informacją jest dla nich natomiast jakich danych mają dostarczyć do poszczególnych szablonów. Istotną rzeczą, którą muszą uzgodnić z programistami są natomiast nazwy przekazywanych zmiennych. Smarty stanowi również dużą pomoc dla projektantów tworzących samodzielnie cały serwis. Pozwala łatwiej podzielić kod serwisu na sekcje, pracę na etapy i spojrzeć bardziej całościowo na stronę wizualną witryny. Opisywana biblioteka jest obecnie bardzo popularnym systemem szablonów. Nie jest jednak jedynym dostępnym na rynku. Spośród innych mechanizmów obsługi szablonów warto wymienić choćby: PHP Savant: PHPlib: FastTemplate: Yapter: I.4.5 Java Script W budowie stron WWW, coraz częściej wykorzystuje się Java Script skryptowy język programowania stworzony przez firmę Netscape w drugiej połowie lat dziewięćdziesiątych. 36 Pozwala on na umieszczanie w stronach internetowych funkcji, obsługiwanych po stronie komputera użytkownika, a nie serwera. Dzięki temu możliwe jest tworzenie aplikacji sieciowych, których obsługa nie wymaga ciągłego odświeżania strony przy każdej wykonywanej czynności, jak ma to miejsce w serwisach działających wyłącznie po stronie serwera. Strony wykorzystujące technologię Java Script sprawiają wrażenie działających bardziej płynnie i w z serwisami opartymi 36 Danny Goldman, Java Script Biblia - wydanie IV, tłum. Grzegorz Kowalski, Piotr Rajca, Gliwice, Helion 2002, s (23) 23

24 wyłącznie na PHP i HTML w mniejszym stopniu obciążają serwer. Do obszarów w których zdecydowanie warto wykorzystywać Java Script należą 37 : walidacja formularzy na stronach WWW dostarczanie informacji w formie małej bazy danych i tworzenie do niej przyjaznego interfejsu użytkownika kontrola nad nawigacją pomiędzy poszczególnymi elementami strony, gdy bazuje się na wyborach użytkownika wstępne przetwarzanie danych po stronie klienta przed wysłaniem ich na serwer dynamiczne zmienianie zawartości i stylu dokumentu w odpowiedzi na działania użytkownika Korzystając z opisywanej technologii, należy mieć świadomość z ograniczeń, które wprowadzono w celu ochrony prywatności użytkowników oglądających strony zaprogramowane w języku Java Script i uniemożliwienia nieautoryzowanego dostępu do ich komputerów. W związku z tym z poziomu JS znacznie ograniczone są takie czynności jak: odczyt lub zapis ustawień przeglądarki, wyglądu głównego okna, przycisków nawigacyjnych i ustawień drukowania, uruchamianie aplikacji na maszynie klienta. nieuprawniony dostęp do plików na komputerze klienta oraz serwerze, przechwycenie strumienia przesyłanych danych, czy też wysyłanie poczty elektronicznej w imieniu gościa strony. 37 Danny Goldman, Java Script Biblia - wydanie IV, tłum. Grzegorz Kowalski, Piotr Rajca, Gliwice, Helion 2002, op. cit. s (24) 24

25 I.5 Application Programming Interface I.5.1 Czym są API i w jakim celu są tworzone? Application Programming Interface (API) to język, a zarazem format komunikacji używany przez aplikacje do komunikacji z systemem operacyjnym lub innym programem kontrolującym (np. systemem zarządzania bazą danych), bądź też protokołem komunikacji. 38 Implementacja API polega na tworzeniu funkcji umożliwiających wywołanie konkretnych podprogramów działających w obrębie systemu. Tak stworzony interfejs umożliwia dostęp do określonych modułów systemu dla aplikacji korzystających z niego. Ilustracja I.2 API w komunikacji w obrębie systemu informatycznego źródło: PC Magazine Encyklopedia, API Definition [online] [dostęp 26 maja 2011]. 38 PC Magazine Encyklopedia, API Definition [online] p [dostęp 26 maja 2011] (25) 25

26 Najbardziej rozwinięte a jednocześnie najbardziej skomplikowane są API pisane dla systemów operacyjnych na potrzeby działających w ich obrębie aplikacji. Jednym z ich zadań jest zapewnienie komunikacji między interfejsem użytkownika, a funkcjami systemu. Coraz częściej tworzy się API na potrzeby aplikacji sieciowych. Wiele współczesnych serwisów internetowych udostępnia własne API umożliwiając wykorzystywanie przy ich użyciu wybranych funkcji przez inne zewnętrzne aplikacje. 39 Należą do nich serwisy udostępniające systemy kartograficzne, np. Google Maps, Yahoo! Maps oraz serwisy pogodowe, np. Weather.com. Dzięki takim interfejsom możliwe jest wykorzystywanie we własnym serwisie WWW aktualnych danych kartograficznych, meteorologicznych bądź giełdowych bez budowania i utrzymywania skomplikowanych podsystemów pozyskujących takie dane. I.5.2 Google Maps API Serwis Google Maps stanowi obecnie jeden z najbardziej kompletnych i dostępnych systemów WWW udostępniających dane kartograficzne. Umożliwia on oglądanie map i zdjęć lotniczych powierzchni Ziemi oraz udostępnia pokrewne im funkcje. Serwis wykorzystuje dane pochodzące z wielu zewnętrznych firm, w tym Transnavicom, TeleAtlas oraz Polskiego Przedsiębiorstwa Wydawnictw Kartograficznych. 40 Zaawansowany system informatyczny witryny udostępnia wiele użytecznych funkcji takich jak geokodowanie adresów wpisywanych w języku naturalnym, obliczanie odległości pomiędzy punktami geograficznymi, projektowanie tras przejazdu, generowanie wskazówek dojazdu do wybranego miejsca i tym podobne. Od kilku lat serwis udostępnia i udoskonala rodzinę interfejsów programowania aplikacji umożliwiających dostęp do wielu zaawansowanych funkcjonalności z poziomu podstawowych języków programowania stron WWW. 41 Wykorzystywanie Google Maps API w serwisach internetowych jest bezpłatne. Jedynie w przypadku, gdy zamierza się wykorzystywać materiały serwisu do marketingu bezpośredniego na 39 Bruce W. Perry, 80 sposobów na Ajax, tłum. Robert Górzyński, Gliwice, Helion 2007, s Google Maps [online] [dostęp 30 maja 2011]. 41 Google Maps API Family [online] [dostęp 30 maja 2011] (26) 26

27 większą skalę należy wykupić odpowiednią licencję. W tym celu należy skontaktować się z zespołem Google Maps API Premier. Do najbardziej rozwiniętych API z Google Maps API Family należy Maps JavaScript API. Jak sama nazwa wskazuje, jest on stworzony w opisywanym w poprzedniej części pracy języku JavaScript. Serwis udostępnia również wersję API dostępną z poziomu technologii FLASH przy wykorzystaniu języka Action Script 3. Google Maps API dla Java Script jest obecnie udostępniane w dwóch wersjach oznaczonych numerami 2 i 3. Korzystanie z wersji 2 wymaga wygenerowania specjalnego klucza dostępowego przy użyciu przeznaczonej do tego podstrony Google dostępnej po zalogowaniu się na prywatne konto Google. Klucz taki umożliwia korzystanie z interfejsu w jednym konkretnym serwisie, dla którego został wygenerowany. W wersji 3 wycofano konieczność generowania klucza, co znacznie zwiększyło komfort korzystania z interfejsu. Wymaganie dotyczące korzystania z klucza w API V2 jest nieco uciążliwe gdyż każda zmiana domeny strony WWW, bądź też wykorzystanie zaprogramowanej przy użyciu API mapki na innej stronie wymagało generowania coraz to nowych kluczy i implementacji ich w kodzie strony. Prawdopodobnie z tego powodu wycofano klucze w wersji 3. Google Maps API V3 w użyciu dużym stopniu przypomina poprzednią wersję (2), jednak wewnętrzna struktura tego interfejsu została zdefiniowana na nowo, co sprawiło, że działa on znacznie szybciej (27) 27

28 Rozdział II Analiza zjawiska carpoolingu II.1 Czym jest carpooling? W Słowniku wyrazów obcych i zwrotów obcojęzycznych Władysława Kopalińskiego możemy znaleźć krótką definicję terminu car pool. 42 : car pool [wym. kaapu:l] ang., 'pula samochodowa', układ prywatnych właścicieli samochodów, na mocy którego każdy kierowca kolejno zabiera własnym wozem pozostałych jako pasażerów (do miejsca pracy i do domu).. Carpooling polega zatem na udostępnianiu miejsc dla innych podróżujących w prywatnych, bądź służbowych samochodach. 43 System oparty na carpoolingu może bazować na użytkowaniu jednego samochodu przez grupę kilku osób, z których jedna jest jego właścicielem, bądź też rotacyjnie kilku samochodów należących do kilku członków grupy. Ilustracja II.1 Podróż w ramach carpoolingu źródło: [online] [dostęp: 20 maj 2011] 42 Władysław Kopaliński, Słownik wyrazów obcych i zwrotów obcojęzycznych [online] [dostęp 1 czerwca 2011], termin: car pool. 43 Jacek Szołtysek - Akademia Ekonomiczna w Katowicach, Car-pooling w koncepcji podróży pasażerskiej w miastach, Logistyka 4/ (28) 28

29 Jak zaznacza ekspert ds. logistyki prof. J. Szołtysek, żeby mówić o carpoolingu jako o systemie musi być spełnionych kilka warunków, w szczególności: regularna częstotliwość (wręcz regularność) współdzielenia, własność prywatna samochodów, wykluczenie przewożenia w ramach systemu dzieci i młodzieży do lat 18. II.2 Tło historyczne Zjawisko carpoolingu pojawiło się już w latach czterdziestych XX wieku. 44 Szczególny rozkwit nastąpił po 1973 roku na skutek tzw. kryzysu paliwowego. Kryzys paliwowy dotknął wszystkie kraje wysoko uprzemysłowione, uzależnione od ropy naftowej. Był on skutkiem embarga państw zrzeszonych w OPEC wobec Stanów Zjednoczonych po rozpoczęciu wojny izraelsko-arabskiej. 45 Sankcje spowodowały gwałtowny wzrost cen ropy naftowej na rynkach światowych. Kraje w których zaczęło brakować ropy zmuszone były do poszukiwania nowych rozwiązań. Największymi ośrodkami promującymi carpooling stały się więc Stany Zjednoczone oraz uprzemysłowione państwa europejskie. 46 Państwa te aktywnie zachęcały do korzystania ze wspólnych przejazdów. Załączona ilustracja przedstawia reklamę z 1943 roku zachęcającą do carpoolingu. Ilustracja II.2 Reklama z 1943 r. zachęcająca do carpoolingu źródło: [online] ersuasion/use_it_up/images_html/ride_with_hi tler.html [dostęp: 20 maja 2011 r.]. 44 Marc Oliphant, Andrew Amey, Dynamic Ridesharing: Carpooling Meets the Information Age [online] [dostęp: 4 kwietnia 2011 r.]. 45 Encyklopedia Wiem [online] [dostęp: 20 maja 2011 r.] 46 Marc Oliphant, Andrew Amey, op. cit (29) 29

30 Również w Polsce w latach PRL była prowadzona kampania podwieź sąsiada. 47 Kampania miała na celu zachęcenie obywateli do dzielenia się szczególnym dobrem jakim był w tamtych latach samochód. W późniejszym okresie idea carpoolingu rozszerzona została o wymiar ekologiczny i finansowy. 48 Aktualnie zwraca się uwagę przede wszystkim na fakt iż carpooling ogranicza emisję spalin w wyniku zmniejszenia liczby aktywnych pojazdów. Podstawowymi zaletami carpoolingu pojawiającymi się najczęściej w artykułach prasowych są: Zmniejszenie ilości spalin, aspekt ekologiczny Zmniejszenie korków, aspekt urbanistyczny Zmniejszenie stresu, aspekt psychologiczno-społeczny Zwiększenie bezpieczeństwa jazdy, szczególnie w nocy Zjawisko wspiera wiele państw na całym świecie i jest komentowane często w gazetach, czasopismach czy portalach internetowych. Regionalne władze zachęcają swoich obywateli do carpoolingu zarówno reklamami, jak i znacznymi ułatwieniami komunikacyjnymi do których należą na przykład specjalne pasy dla osób podróżujących w co najmniej 2-osobowym składzie. Ilustracja II.3 Pas ruchu przeznaczony dla carpoolingu źródło: Jeremy Korzeniewski [online] [dostęp: 8 lipca 2011 r.] 47 Stefan Wroński, Z sąsiadem szybciej do pracy [online] [dostęp: 23 kwietnia 2011 r.]. 48 Marc Oliphant, Andrew Amey, op. cit (30) 30

31 Korzystanie z ofert carpoolingu stało się szczególnie łatwe wraz z rozwojem sieci oraz dostępem do Internetu. Nowe technologie umożliwiają kierowcom dotarcie z ofertą do większego grona potencjalnych pasażerów oraz szybszy kontakt zainteresowanych stron i łatwiejsze umówienie się na przejazd. II.3 Rozwój i zasady funkcjonowania carpoolingu na świecie W ciągu dziesięcioleci funkcjonowania, carpooling rozwijał się od najbardziej tradycyjnych form, jak np. stały układ z sąsiadem na wspólny dojazd do pracy do postaci bardziej wyszukanych. W związku z tym w publikacjach opisujących to zjawisko wyróżnia się dwa rodzaje carpoolingu: statyczny i dynamiczny. 49 Statyczny to ten tradycyjny, gdzie współpasażera dobiera się spośród znajomych osób w oparciu o codzienne relacje interpersonalne, dynamiczny to np. slugging i carpooling bazujący na Internecie. Tu współpasażerowie nie muszą się wcale znać, a o ich doborze decyduje często zbieg okoliczności. Slugging, określany też jako casual carpooling, opiera się na specjalnych miejscach przeznaczonych do wsiadania, gdzie ustawia się kolejka osób chcących być zabrane w danym kierunku. 50 Do podwożenia obcych osób zachęcają często specjalnie pasy ruchu dla pojazdów uczestniczących w opisywanym systemie (High Occupancy Vehicles, HOV), podczas gdy jednocześnie na innych nie carpoolingowych pasach pobierana jest opłata za przejazd, bądź też pasy te są z reguły zakorkowane. W przypadku tego typu systemów od podwożonych zwykle nie wymaga się wnoszenia żadnych opłat, a podwożący właściciele samochodów odnoszą korzyści polegające na możliwości bezpłatnego przejazdu, bądź też przejazdu szybszym pasem niż pozostali uczestnicy ruchu. 49 Marc Oliphant, Andrew Amey, op. cit. 50 Emily Badger, Slugging The People s Transit [online] [dostęp: 25 maja 2011 r.] (31) 31

32 Ilustracja II.4 Slugging - miejsce wsiadania źródło: Monica Lopossay [online] [dostęp: 25 maja 2011 r.]. Slugging bardzo dobrze przyjął się w Waszyngtonie - na zdjęciu kolejka osób oczekujących na przejazd w kierunku Horner Road. Systemy takie funkcjonują m.in. również w San Francisco oraz Houston. W miastach, w których pojazdy przewożące większą ilość osób są w jakiś sposób uprzywilejowane (pasy ruchu HOV, parkingi HOV) powstają również internetowe listy mailingowe, poprzez które anonsuje się chęć zabrania dodatkowych pasażerów i przejazdu w danym kierunku. Ten typ organizowania systemu carpoolingu określa się jako eslug, bądź też slugingiem Przykładami grup e-slagingowych są: eslug o Miejsce wyjazdu: Navy Yard Area w Washington, D.C. o Miejsca docelowe: Horner Road Park i okolica o Główni uczestnicy: Pracownicy U.S. Navy, USDOT, NGIA o Link: RosslynSlugs o Miejsce wyjazdu: Rosslyn Area w Arlington o Miejsca docelowe: Router 17 Park i okolica o Główni uczestnicy: Pracownicy State Department, Ganneh Media o Link: 51 Marc Oliphant, Andrew Amey, op. cit (32) 32

33 Grupy te działają nieoficjalnie, w godzinach dojazdu do pracy. Zarządzanie są przez wolontariuszy będących pracownikami wymienionych instytucji (organizacja grupy mailingowej i zasad jej działania), a głównym motywatorem ich działania jest istnienie pasa HOV na drodze I95/395. Współcześnie rozwijanych jest coraz więcej serwisów internetowych, które umożliwiają odnajdywanie podwożących i współpasażerów do podróży na zasadach carpoolingu. Należą do nich między innymi carpoolworld.com, mitfahrgelegenheit.de, carpooling.pl. II.4 Co zachęca, a co zniechęca do korzystania z carpoolingu? Jest wiele zalet carpoolingu. Przynosi on korzyści zarówno użytkownikom, lokalnej społeczności, jak i instytucjom wspierającym jego organizację.52 Możemy do nich zaliczyć: dla użytkowników: o mniejsze wydatki na podróżowanie o krótszy czas podróży, jeśli na trasie istnieją wydzielone tranzytowe pasy ruchu HOV, bądź też jeśli mamy w alternatywie jazdę komunikacją publiczną o wygodniejszy przejazd niż w przypadku komunikacji miejskiej 53 o okazja do zawierania nowych znajomości dla lokalnej społeczności: o mniejsza emisja zanieczyszczeń 54 o mniejsza liczba pojazdów w ruchu o mniejsze rozmiary kongestii o mniejsza degradacja środowiska naturalnego dla instytucji wspierających organizację carpoolingu (firmy, uczelnie): o optymalne wykorzystanie przez pracowników parkingu zakładowego o większa integracja pracowników o redukcja stresu związanego z dojazdem do pracy (tylko jedna osoba prowadzi) 52 Jacek Szołtysek, op. cit. 53 Marek Sieczkowski, Carpooling nowa forma transportu zbiorowego [online] [dostęp: 24 maja 2011 r.]. 54 Jacek Szołtysek, op. cit (33) 33

34 o poprawa odbioru społecznego firmy Jak każda forma transportu i carpooling ma swoje wady. Należą do nich: konieczność uzgodnienia i dopasowania czasu i trasy przejazdu z współpasażerami może wiązać się z różnorakimi trudnościami większe ryzyko spóźnienia (szczególnie dla osób posiadających samochód) w związku z koniecznością zebrania się kilku osób z których każda może się spóźnić użytkownik może trafić przez przypadek na współpasażera, którego nie lubi i z którym nie ma ochoty z nim podróżować jazda w pełnym samochodzie jest dla wielu osób mniej komfortowa niż w pustym większe konsekwencje wypadku, gdy samochód jest pełny niż gdy jedzie nim więcej osób jeśli współpasażerami są obce osoby pojawia się niebezpieczeństwo kradzieży, szantażu, wymuszeń W przypadku carpoolingu bardzo ważna jest dobra organizacja systemu. 55 W wielu przypadkach pozwala to zminimalizować wady i zmaksymalizować korzyści wynikające z tej formy transportu. II.5 Carpooling w kulturze popularnej W czasie II wojny światowej, w USA i Wielkiej Brytanii, carpooling, jak wiele innych działań mobilizujących naród w kryzysowych okolicznościach był przedstawiany jako patriotyczna powinność. 56 Do dziś w artykułach dotyczących podwożenia samochodem często przytacza się propagujące carpooling plakaty z tamtego okresu, przestrzegające ludzi przed samolubnym zajmowaniem całego samochodu dla siebie. Szczególnie popularny wydaje się być ten z hasłem: When you ride ALONE you ride with 55 Jacek Szołtysek, op. cit. 56 Brian Kaller, Carpooling [online] [dostęp: 25 maja 2011 r.] (34) 34

35 Hitler!. 57 W wielu przypadkach funkcjonuje on jako ikona zagadnienia: historia carpoolingu. Do klasyki zapisała się również zastosowana w nim forma przekazu i perswazji. Niejednokrotnie wykorzystywano ją później w nowych kontekstach. Ilustracja II.5 When you ride alone you ride with Convenant! źródło: [online] /when-you-ride-alone-you-ride-withthe-covenant [dostęp: 10 lip 2011 r.]. Ilustracja II.6 When you ride alone you ride with bin Laden! źródło: [online] [dostęp: 10 lip 2011 r.]. Innym dobrze rozpoznawalnym plakatem związanym z carpoolingiem (z okresu II wojny światowej) jest Hitler rides In the empty seat. Ilustracja II.7 Plakat nakłaniający do carpoolingu źródło: [online] ellaneous [dostęp: 10 lip 2011 r.]. 57 Weimer Purcell [online] [dostęp 27 maja 2011 r.] (35) 35

36 Motyw carpoolingu przewija się w wielu filmach i serialach np. w 1996 roku powstał film Carpool [polski tytuł Bajzel na kółkach ], a w 2005 Carpool Guy. 58 W serwisie youtube.com nie brakuje również skeczy i reportaży przedstawiających wspólne przejazdy. Najwięcej z nich powstało w USA, gdzie ten sposób podróżowania jest bardzo rozpowszechniony, np. popularny w Stanach Zjednoczonych program satyryczno rozrywkowy Saturday Night Live przedstawił skecz Sunday Morning Drive z A. Baldwinem i K. Wiig w rolach głównych. 59 O znaczeniu zjawiska Carpoolingu w kulturze może świadczyć również fakt, iż obecnie wiele kursów językowych podczas szkolenia wykorzystuje przykłady prowadzenia rozmów w czasie wspólnej jazdy. Taki kurs dostępny jest np. w English Language School ELS. 60 W Polsce motyw Carpolingu został przedstawiony m. in. w komedii Francuski numer (2005) Roberta Wichrowskiego, w której możemy obserwować próby wjazdu z Warszawy do Paryża grupy składającej się z 5 osób i psa starym, rozklekotanym mercedesem. 61 Głównym motywem podróży prowadzącej samochód Magdy jest zakład, który zawarła ze swoim chłopakiem Mateuszem. Pozostali współpasażerowie mają dużo mniej błahe powody wyjazdu i w związku z tym są bardziej skłonni by znosić trudy podróży. Film obfituje w zabawne dialogi, karykaturalne obrazy Polaków i realiów życia w Polsce. Ilustracja II.8 Plakat z filmu Francuski numer źródło: FilmWeb [online] [dostęp: 3 lipca 2011 r.]. 58 IMDb The Internet Movie Database [online] [dostęp: 4 lipca 2011 r.]. 59 RuTube [online] [dostęp: 5 lipca 2011 r.]. 60 English For Everyone, Riding in a Carpool [online] [dostęp: 4 lipca 2011 r.] 61 Robert Wichrowski, Francuski numer [DVD], Polska, ITI Home Video, (36) 36

37 II.6 Narzędzia organizacyjne Organizacja carpoolingu możliwa jest zarówno poprzez umowę bezpośrednią z sąsiadami, kolegami, znajomymi, jak i przy udziale organizacji wspierających, takich jak zakłady pracy, uczelnie, bądź też inne organizacje. 62 Inicjatywa może wyjść od każdego zainteresowanego. By ten sposób podróży umożliwiał uczestnikom podróż w dowolnym czasie i kierunku potrzebne jest stworzenie systemu grupującego maksymalnie dużą liczbę osób i umożliwiającego szybką wymianę informacji dotyczących planowanych przejazdów. W minionych latach funkcje te wspierały tablice ogłoszeniowe w siedzibach firm i uczelni, kanały CB radio, ogłoszenia w prasie. Współcześnie najbardziej odpowiednim narzędziem dla carpoolingu wydaje się być Internet. Istotnym pytaniem jest: jakie konkretnie dane potrzebne są do organizacji systemu? W mniejszych społecznościach wystarcza podanie adresu wyjazdu, miejsca docelowego, czasów podróży, dni tygodnia, w których zgłaszający może zaoferować, bądź też chce skorzystać z podwiezienia. Można tu wykorzystać następujący grafik: Nazwisko i imię Nazwisko i imię Nr telefonu Dni dostępności Miejsce wsiadania (jeśli zamierza (jeśli zamierza być (by ustalić miejsce samochodu do / wysiadania kierować) podwiezionym) zabrania lub współdzielenia odwołać) Tabela II.1 Grafik dla potrzeb Car-Poolingu źródło: Jacek Szołtysek - Akademia Ekonomiczna w Katowicach, Car-pooling w koncepcji podróży pasażerskiej w miastach, Logistyka 4/2008. Kolejnym aspektem są zasady doboru współpodróżujących. Wyróżnia się tu trzy etapy: dobór geograficzny (początku i końca podróży), chronologii czasowej (preferowane czasy wyjazdu i dotarcia do celu), preferencji osobistych, w tym kierowcy i pasażerów, odnoszące się do: o płci, 62 Jacek Szołtysek, op. cit. o osobowości (gaduła, milczek itp.), o preferencji dotyczących spędzania czasu w samochodzie (37) 37

38 Narzędzia wyszukiwania ofert powinny uwzględniać wymienione aspekty. Opisywane funkcjonalności mogą spełniać serwisy internetowe. Poprzez opcje umożliwiające rejestrację użytkowników, zamieszczanie oferowanych i poszukiwanych przejazdów w bazie danych oraz udostępnianie narzędzi pozwalających na odnalezienie ofert najbardziej odpowiadających zadanym kryteriom stają się kluczowym narzędziem organizacji carpoolingu. Wiodące serwisy carpoolingowe coraz częściej udostępniają swoim użytkownikom specjalnie aplikacje pozwalające na dostęp do zamieszczanych ofert poprzez urządzenia przenoście, takie jak iphone oraz ipad. 63 Dzięki takim narzędziom użytkownik systemu może poszukiwać współpasażera będąc już w trasie, a to przyczynia się do zwiększenia dynamiki całego procesu. II.7 Przegląd i analiza wybranych serwisów z ofertami carpoolingu Wybór serwisów w poniższym przeglądzie został dokonany na podstanie ilości ofert (popularności serwisu) oraz innowacyjności rozwiązań technicznych. Te dwie cechy nie zawsze idą w parze. Nawet najbardziej dopracowany technicznie serwis nie będzie miał żadnych szans zaistnienia w sieci, jeśli nie pozyska odpowiednio dużej ilości użytkowników. Z drugiej strony, szczególnie podczas tworzenia serwisu, należy zwrócić uwagę właśnie na obszar rozwiązań technicznych, gdyż serwis posiadający oferty jedynie w formie gazetowej listy ogłoszeń nie będzie wystarczająco użyteczny dla dużych społeczności. carpoolworld.com Find your perfect carpool instantly! Ogólnoświatowy portal tematyczny umożliwiający zamieszczanie i porównywanie ofert carpoolingu.64 Serwis został wprowadzony w 2000 roku przez Maxa Foxa i Izabelle Boulard - dyrektora i wicedyrektor korporacji Datasphere tworzącej systemy consultingowe. Na stronie zaimplementowano jeden z pierwszych zawansowanych technicznie systemów porównujących zamieszczane oferty przejazdów. Zalogowany 63 itunes Applications [online] [dostęp: 4 lipca 2011 r.]. 64 Why carpoolworld.com? [online] [dostęp: 5 lipca 2011 r.] (38) 38

39 użytkownik może wprowadzić listę miejsc wyjazdu i przyjazdu pomiędzy którymi zamierza się poruszać, a system wyświetli mu listę przejazdów o zbliżonych parametrach, do tych które wskazał, jeśli takie znajdują się w bazie danych. System został opatentowany w 2004 roku. Za opłatą 10 dolarów udostępnia użytkownikom, możliwość zakładania własnych społeczności. Taka funkcjonalność jest przydatna szczególnie dla firm chcących propagować carpooling w obrębie własnych pracowników. Ten sposób formowania carpoolingu odznacza się większym bezpieczeństwem dojazdów i sprzyja integracji członków organizacji. Serwis cechuje duża innowacyjność i niskie koszty wdrożenia i utrzymania. W wersji globalnej (darmowej, bez funkcji zamkniętych społeczności) oferuje użytkownikom kompletny i darmowy system porównywania tras. Na głównej stronie serwisu znajduje się mapa aktualnych ofert pomagająca użytkownikowi zorientować się, jakie ma szanse na znalezienie ofert na planowanym odcinku już w pierwszych sekundach od wejścia na stronę. Zalety Wady duża ilość ofert pobieranie opłat za niektóre globalny zasięg funkcjonalności innowacyjny system oferty globalne skupione głownie wyszukiwania ofert w Ameryce Północnej, możliwość tworzenia lokalnych ograniczona ilość ofert na społeczności pozostałych kontynentach 65 długie i skomplikowane formularze konieczne do wypleniania przy rejestracji użytkowników dodawaniu ofert Tabela II.2 Zalety i wady serwisu carpoolworld.com karzoo.eu Carpool Europe Popularny w zachodniej Europie serwis carpoolingowy. Jest tu zamieszczane wiele ofert przejazdów na terenie Austrii, Belgii, Francji, Niemiec, Wielkiej Brytanii, 65 Carpoolworld [online] [dostęp: 5 lipca 2011 r.] (39) 39

40 Luksemburga, Holandii oraz Szwajcarii. 66 Pojawiają się również oferty z innych obszarów, lecz jest ich dużo mniej. Serwis posiada przyjemną dla oka szatę graficzną oraz prostą i intuicyjną wyszukiwarkę tras. Podobnie jak carpoolworld posiada również moduł dla firm pozwalający na wyszukiwanie przejazdów w obrębie wyznaczonej grupy użytkowników. Serwis jest całkowicie bezpłatny. Dużą zaletą serwisu jest możliwość wzajemnej oceny użytkowników po ukończonym przejeździe. Pozwala to ocenić przyszłym współpodróżującym na ile solidna i wiarygodna jest osoba zamieszczająca ofertę w bazie. Zalety duża ilość ofert darmowy również dla firm przyjazny interfejs prosty i intuicyjny system wyszukiwania ofert możliwość weryfikacji użytkowników po komentarzach (jeśli jakieś mają) Tabela II.3 Zalety i wady serwisu krazoo.eu Wady mała ilość ofert spoza Europy Zachodniej 66 Carpool Europe [online] [dostęp: 6 lipca 2011 r.] (40) 40

41 carpooling.pl klikasz, jedziesz, oszczędzasz Serwis należy do niemieckiej sieci stron oferujących carpooling. 67 W Polsce funkcjonuje od marca 2010 r. i zyskuje coraz większą popularność. 68 Polska wersja serwisu zintegrowana jest z centralną bazą danych, w związku z czym jej użytkownicy mają dostęp do ponad 300 tys. ofert z całej Europy. Najwięcej ogłoszeń dotyczących przejazdów na terenie Polski pochodzi z Wrocławia, Opola, Katowic oraz Warszawy. Jak podają administratorzy serwisu, 70% użytkowników polskiej wersji serwisu to mężczyźni, co znacząco odbiega od statystyk sieci w innych państwach Europy, gdzie kobiety stanowią prawie 50%. Strony carpooling.pl przeglądają w dużej części osoby w wieku lat. Od 30 czerwca 2011 r. serwis uruchomił system rezerwacji i ocen. 69 Kierowca, który zdecyduje się aktywować w swojej ofercie opcję rezerwacji daje do zrozumienia, że zależy mu na znalezieniu pasażerów, którzy planują podróż na danej trasie i na pewno nie odwołają przejazdu w ostatniej chwili. Dużym atutem systemu jest również dostępność specjalnej aplikacji na urządzenia mobilne, która znacznie ułatwia dostęp do bazy ofert poprzez telefon komórkowy, w szczególności iphone. 70 Serwis rozwija się obecnie bardzo dynamicznie i jest promowany w wielu portalach w sieci. Duża liczba poważnych ofert w bazie stanowi jego główny atut. W wyszukiwarce przejazdów miejsca wyjazdu i przyjazdu można wskazać jedynie z długiej listy wyboru. 71 Ograniczenie wyszukiwanych miejsc jedynie do zesłownikowanych miejscowości przy tak dużej liczbie dostępnych lokalizacji nie wydaje się zbyt praktyczne. Zalety duża ilość ofert z Polski i Europy Zachodniej system rezerwacji i opinii Wady mało praktyczny interfejs wyszukiwania ofert 67 Sabina Stodolak, Carpooling, czyli jak podróżować ekologicznie i tanio w Polsce [online] [dostęp: 20 lipca 2011 r.]. 68 Carpooling coraz bardziej popularny [online] [dostęp: 4 lipca 2011 r.]. 69 Carpooling.pl uruchamia system rezerwacji i ocen. [online] [dostęp: 7 maja 2011 r.]. 70 Nowa aplikacja na iphone [online] [dostęp: 20 maja 2011 r.]. 71 Carpooling.pl ramka Szukaj Przejazdu [online] [dostęp: 20 maja 2011 r.] (41) 41

42 estetyczny i funkcjonalny design dostępność aplikacji umożliwiającej dostęp do bazy ofert przez telefony komórkowe Tabela II.4 Zalety i wady serwisu carpooling.pl edojazd.pl Najniższe koszty dojazdów dla wszystkich Dużą zaleta serwisu jest uproszczony system rejestracji kont użytkowników. Dzięki integracji systemu strony z portalem społecznościowym Facebook, użytkownik może utworzyć konto na podstawie danych ze swojego profilu. Serwis posiada przyjazną dla oka, ascetyczną szatę graficzną, wydaje się bardzo prosty w obsłudze i dobrze zorganizowany. 72 Jak piszą twórcy serwisu, nie zależy im jedynie na stworzeniu możliwości trampingowego podróżowania, przeżycia przygody i ograniczenia kosztów podróży. W swojej działalności promocyjnej powołują się na wyższe cele. Za misję serwisu uważają uspołecznianie, zacieśnianie kontaktów międzyludzkich, ukierunkowanie na obopólną pomoc i budzenie w ludziach świadomości ekologicznej. Serwis nie posiada obecnie zbyt wielu ogłoszeń. Do jego atutów należy zaliczyć innowacyjny interfejs wyszukiwania ofert. Nie ma tu żadnych słowników lokalizacji jak w serwisie carpooling.pl. Oferty wyszukuje się poprzez zaznaczanie na mapie strefy początkowej i strefy końcowej. Zaprojektowany w JavaScript panel wyszukiwania wygląda bardzo profesjonalnie, choć zaznaczanie stref może sprawiać trudności nowym użytkownikom. Pojawianie się wyników wyszukiwania już w trakcie wprowadzania danych do formularza oraz brak przycisku Szukaj może budzić zdziwienie i przy większej liczbie użytkowników nadmiernie obciążać system bazy danych. Zalety innowacyjny interfejs wyszukiwania ofert uproszczona rejestracja dzięki integracji z portalem Facebook nacisk na rozwój wartości Wady mała liczba ofert zaznaczanie stref początkowych i końcowych może sprawiać trudności 72 edojazd [online] [dostęp: 20 lipca 2011 r.] (42) 42

43 prospołecznych estetyczna szata graficzna prosty i przejrzysty design Tabela II.5 Zalety i wady serwisu edojazd.pl jedziemyrazem.pl Wspólne dojazdy samochodem Portal powstał pod koniec 2007 roku. 73 Listę dostępnych ofert widać już na stronie głównej serwisu. Najwięcej z nich dotyczy dojazdów do pracy. W serwisie zaimplementowano dość skomplikowany formularz wyszukiwania ofert oparty jest na zesłownikowanych lokalizacjach tak jak w carpooling.pl. W interfejsie serwisu jest wiele długich formularzy, których wypełnianie może zniechęcać do korzystania ze strony. Przy stronie funkcjonuje forum internetowe, na którym można wymieniać poglądy dotyczące funkcjonowania strony. Zalety Wady całkiem duża liczba ofert długie formularze użytkownik forum internetowe działające w ramach serwisu korzystający ze strony może się poczuć jak w niezbyt przyjazdym urzędzie skomplikowany w użyciu interfejs wyszukiwania ofert Tabela II.6 Zalety i wady serwisu jedziemyrazem.pl siejedzie.pl Nowatorski autostop oraz carpooling Pierwsza rzecz, która rzuca się w oczy po wejściu na strony serwisu to zakręcona szata graficzna wskazująca, że jest on raczej skierowany do młodzieży. 74 Figurujący w stopce liczni partnerzy strony (Radio Luz, Miesięcznik Studencki Manko, portal dlastudenta.pl, dziennik Metro, Afrykańskie Koło Naukowe UJ, Koło Naukowe Stosunków Międzynarodowych przy Uniwersytecie Mikołaja Kopernika w Toruniu oraz Wydawnictwo Zielone Brygady) dają nadzieję na to, że serwis jest w miarę 73 JedziemyRazem.pl [online] jedziemyrazem.pl [dostęp: 20 lipca 2011 r.]. 74 Siejedzie.pl [online] siejedzie.pl [dostęp: 20 lipca 2011 r.] (43) 43

44 rozreklamowany i można znaleźć w nim jakieś oferty. Dostęp do ofert możliwy jest dopiero po rejestracji i zalogowaniu. Po dokonaniu wszystkich czynności związanych z zakładaniem konta, przejściu do zakładki Szukaj kierowców, wybrania przy pomocy dość zgrabnego formularza planowanej trasy system zawiesza się. Ostatnie ogłoszenie na stronie pochodzi z 4 sierpnia 2009 r. Strona działa bardzo wolno. Prawdopodobnie w związku z powolnym działaniem strony i błędami w jej funkcjonowaniu serwis zamarł. Na dzień dzisiejszy nie można w nim znaleźć żadnych ofert. Zalety spójna szata graficzna profesjonalnie opracowany regulamin i autoprezentacja serwisu duża liczba wartościowych partnerów popularyzujących serwis Tabela II.7 Zalety i wady serwisu siejedzie.pl Wady błędy w działaniu strony długi czas ładowania poszczególnych podstron brak możliwości wyszukania jakiejkolwiek oferty bądź jej zamieszczenia strona nie nadaje się do użytku gumtree.pl [Serwis ogłoszeń lokalnych] Popularny serwis ogłoszeń lokalnych Gumtree ma w swoich działach miejsca do zamieszczania ofert przejazdów. 75 W formie klasycznego ogłoszenia można w nim umieścić informację o planowanej trasie i poszukiwanych współpasażerach bądź kierowcach. Pomimo braku jakichkolwiek narzędzi umożliwiających sprawne przeszukiwanie takich ofert, serwis spełnia oczekiwania osób, które nie chcą wgłębiać się w architekturę coraz to nowych wynalazków i preferują tradycyjną formę anonsów. Zalety prosta forma ogłoszeń, do której przyzwyczajeni są użytkownicy brak konieczności definiowania Wady przy większej liczbie ofert przeszukiwanie serwisu jest czasochłonne 75 Sabina Stodolak, Carpooling, czyli jak podróżować ekologicznie i tanio w Polsce [online] [dostęp: 20 lipca 2011 r.] (44) 44

45 kryteriów przeszukiwania brak jakichkolwiek udogodnień (np. wyświetlania miejsc na mapie) Tabela II.8 Zalety i wady listy ogłoszeń o carpoolingu na gumtree.pl Na chwilę obecną istnieje bardzo wiele serwisów WWW pozwalających na zamieszczanie i wyszukiwanie ofert podwiezienia. Część z nich działa bardziej na skalę światową, grupując ludzi poszukujących taniego sposobu na organizację wakacyjnego wyjazdu, a część skupia społeczności lokalne i pomaga w odnajdywaniu osób oferujących regularne, wspólne dojazdy do pracy lub szkoły. Bardzo wiele istniejących w sieci serwisów prawie nie posiada ofert, gdyż zostały wyparte przez inne, które zyskały większą popularność. Posiadanie dużej ilości ofert wydaje się być podstawowym warunkiem przetrwania tego typu stron. Ważne jest również to, by zamieszczone oferty odpowiadały oczekiwaniom użytkowników, stąd też dużo łatwiej jest osiągnąć sukces rozpropagowując serwis w mniejszej społeczności i tworząc gęstą siatkę połączeń interesujących właśnie tą społeczność, a dopiero później rozszerzać działalność reklamową na sąsiednie obszary. W większości badanych serwisów moduł wyszukiwania zamieszczonych informacji o przejazdach nie uwzględnia, faktu, że miejsce wyjazdu, a za nim cel podróży potencjalnego podwożonego mogą być w pobliżu dowolnego punktu trasy planowanej przez potencjalnego podwożącego. Początek i koniec trasy pokonywanej przez podwożącego i podwożonego nie zawsze muszą być przecież takie same (45) 45

46 Rozdział III Specyfikacja i projekt serwisu na potrzeby carpoolingu III.1 Założenia wstępne Projektowany serwis ma wspomagać proces organizacji przejazdów w ramach carpoolingu. System będzie działać w oparciu o witrynę WWW. Podstawowym zadaniem, jakie ma spełniać, jest magazynowanie informacji dotyczących przejazdów planowanych przez użytkowników oraz ich udostępnianie w sposób dostosowany do potrzeb odbiorców. Istotną cechę odróżniającą tworzoną stronę, od innych, funkcjonujących obecnie w sieci, stanowić będzie potraktowanie trasy przejazdu jako dynamicznego elementu, który może ulec modyfikacjom, w zależności od zapotrzebowania współpasażerów, w skali w której nie spowoduje to znaczącego jej wydłużenia. Dzięki temu przy dobieraniu zmagazynowanych w bazie danych informacji o przejazdach do zapytania użytkownika, będzie można uwzględnić dokładną lokalizację z której chce on wyruszyć i tę, do której chce dotrzeć. Takie podejście do będzie wymagać dostępu do szczegółowych informacji o długości i czasie przejazdu pomiędzy zadanymi lokalizacjami - stąd potrzeba integracji systemu z którymś z dostępnych w sieci serwerów danych geograficznych. III.2 Specyfikacja wymagań, które powinien spełniać serwis Aplikacja powinna umożliwiać: niezalogowanym użytkownikom: wyszukiwanie dostępnych w bazie danych informacji o przejazdach dopasowanych do zadanego miejsca wyjazdu i celu podróży, daty wyjazdu, itp. rejestrację i aktywację nowego konta w serwisie, (46) 46

47 przeglądanie informacji dotyczących carpoolingu, zasad działania serwisu, danych kontaktowych umożliwiających komunikację z autorem lub administratorem serwisu, zalogowanym użytkownikom: dodawanie informacji o planowanych przejazdach i poszukiwanych pasażerach oraz podwożących, wyszukiwanie zamieszczonych informacji o przejazdach, wysyłanie ofert dołączenia do pojawiających się w wynikach wyszukiwania przejazdów zawierających proponowane warunki owego dołączenia do danego przejazdu (proponowany wkład w koszty przejazdu, propozycję modyfikacji trasy, informacje o proponowanym miejscu wsiadania/wysiadania jeśli ofertę wysyła potencjalny podwożony lub informacje o posiadanym samochodzie, jeśli ofertę wysyła podwożący), przeglądanie informacji o złożonych przez siebie ofertach i odpowiedziach na nie, przeglądanie zamieszczonych przez siebie informacji o przejazdach i złożonych w ramach tych przejazdów ofertach, odpowiadanie na oferty złożone w ramach dodanych przez siebie przejazdów, przez innych użytkowników serwisu (akceptacja lub odrzucenie), dostęp do danych kontaktowych użytkownika, który zaakceptował złożoną przez nich ofertę lub którego ofertę zaakceptowali, wycofywanie/usuwanie złożonych przez siebie ofert, które nie zostały jeszcze rozpatrzone lub zaakceptowane, usuwanie dodanych przez siebie przejazdów, w ramach których nie zostały jeszcze złożone żadne oferty, blokowanie możliwości składania nowych ofert do dodanych przez siebie przejazdów, wystawienie oceny i komentarza z przejazdu użytkownikowi, którym zaplanowali wspólną podróż, edycję własnych danych kontaktowych (imię, nazwisko, adres , numer telefonu), zmianę hasła dostępu do konta w serwisie, (47) 47

48 usunięcie swojego konta w serwisie pod warunkiem, że nie posiadają zaplanowanych przejazdów, których termin odjazdu jeszcze nie minął. Na stronach serwisu powinny znaleźć się informacje: o carpoolingu wytłumaczenie czym jest, jaką ma historię i na jakich zasadach funkcjonuje, informacje dotyczące serwisu, sposobu jego działania i obowiązujących jego użytkowników zasad, w szczególności: o zasadach porównywania tras, o sugerowanych zasadach podziału kosztów podróży, o zasadach wystawiania komentarzy, dane umożliwiające kontakt z autorem lub opiekunem serwisu. III.3 Model konceptualny III.3.1 Diagramy przypadków użycia Ilustracja III.1 Diagram przypadków użycia - użytkownik niezalogowany Użytkownik niezalogowany może przy pomocy dostępnej wyszukiwarki sprawdzać informacje o dostępnych w serwisie przejazdach. Weryfikacja, czy do bazy danych dodano już interesującą użytkownika propozycję przejazdu, nie wymaga zalogowania (48) 48

49 Aby jednak odpowiedzieć na daną propozycję poprzez wysłanie oferty dołączenia, konieczne jest zaistnienie w serwisie jako użytkownik zalogowany. W tym celu użytkownik niezalogowany może dokonać rejestracji i aktywacji konta. Po wykonaniu tych czynności będzie mógł się zalogować. Ilustracja III.2 Diagram przypadków użycia - użytkownik zalogowany Użytkownik zalogowany poza wyszukiwaniem informacji o przejazdach może składać oferty dołączenia do któregoś z nich. Złożone oferty może na bieżąco przeglądać i w razie potrzeby wycofywać. Może również sam dodawać informacje o planowanych przejazdach i rozpatrywać otrzymane do nich oferty dołączenia. Jeśli zaakceptuje, którąś z ofert będzie to oznaczać ustanowienie przejazdu, co wiąże się z możliwością wystawienia komentarza drugiemu użytkownikowi. W razie potrzeby może usunąć informacje o którymś z planowanych przez siebie przejazdów, lub zablokować możliwość dodawania do niego nowych ofert. Posiada prawo do zmiany własnych (49) 49

50 danych kontaktowych i hasła dostępu do konta. Może również usunąć swoje konto z serwisu. Problematykę przypadków użycia poszczególnych użytkowników systemu można zobrazować w sposób bardziej szczegółowy i całościowy. Ilustracja III.3 Diagram przypadków użycia - spojrzenie całościowe (50) 50

51 Warto rozróżnić dwa przypadki użytkownika zalogowanego: który dodał informacje o planowanym przejeździe oraz który wysłał ofertę dołączenia do przejazdu. Każdy zalogowany użytkownik może być zarówno tym pierwszym, tym drugim, oboma naraz, jak i żadnym z nich. Zastosowany podział ma jednak zobrazować różnicę sytuacji użytkownika, który zamieszcza w serwisie informację o planowanym przejeździe i oczekuje na oferty składane w ramach tego przejazdu (A) oraz tego, który korzysta z wyszukiwarki zamieszczonych przejazdów i chce się dołączyć do któregoś z nich (B). Użytkownik A, by umówić się na wspólny przejazd przegląda listę dodanych przez siebie informacji o planowanych przejazdach i sprawdza, czy otrzymał do któregoś jakieś oferty. Jeśli tak, każdą z nich może zaakceptować lub odrzucić. Jeśli nie chce już otrzymywać nowych ofert może zamknąć przejazd nie będzie on już brany pod uwagę przy wyszukiwaniu. Jeśli ofertę zaakceptował, a więc wspólny przejazd został ustanowiony, po jego odbyciu, może wystawić współpasażerowi komentarz. Użytkownik B, by umówić się na wspólny przejazd przegląda listę złożonych przez siebie ofert. Jeśli któraś została zaakceptowana, przejazd jest ustanowiony, może wystawić komentarz dla współpasażera. Jeśli którąś, nie zaakceptowaną jeszcze, ofertę chce wycofać, może to zrobić poprzez jej usunięcie (51) 51

52 III.3.2 Czynności użytkownika i aplikacji Ilustracja III.4 Diagram czynności wspólny przejazd Powyższy diagram obrazuje ciąg czynności, które będą wykonać użytkownicy w celu ustanowienia przejazdu. Po akceptacji oferty użytkownik, który złożył ofertę, oraz ten, który ją zaakceptował otrzymują dane kontaktowe umożliwiające im potwierdzenie zawartej umowy przez telefon lub i odbycie wspólnej podróży. Niezależnie od tego, czy podwiezienie dojdzie do skutku, akceptacja oferty uprawnia użytkowników do wystawienia jednego komentarza temu drugiemu (52) 52

53 Ilustracja III.5 Diagram czynności dodawanie informacji o przejeździe Przedstawiony diagram obrazuje czynności wykonywane przez użytkownika oraz system podczas dodawania informacji o przejeździe. Geokodowanie lokalizacji, wytyczanie tras i określanie ich długości i czasu przejazdu oraz prezentowanie ich na mapie odbywać się będzie z wykorzystaniem omawianego w pierwszym rozdziale interfejsu programistycznego Google Maps. Ponieważ jednym z głównych założeń (53) 53

54 tworzonego serwisu jest funkcjonalność dopasowywania trasy przejazdu do zapytań użytkowników z uwzględnieniem ich położenia geograficznego, system musi poprawnie zapisać wprowadzone lokalizacje, tak by było możliwe ich późniejsze porównywanie z innymi, wprowadzanymi przez wyszukujących dostępne przejazdy. Stąd też wynika konieczność potwierdzenia przez użytkownika położenia zgeokodowanych lokalizacji na mapie. Ilustracja III.6 Diagram czynności - wyszukiwanie dostępnych informacji o przejazdach (54) 54

55 Opcja wyszukiwania Poprzez wybór opcji wyszukiwania, użytkownik określa sposób przeszukiwania informacji, o planowanych przez innych, przejazdach. Jeśli, na przykład, chce dołączyć do przejazdu planowanego przez kogoś, kto ma wolne miejsca w samochodzie i poszukuje dodatkowych pasażerów, wybiera pozycję szukam samochodu z kierowcą. Pierwszą konsekwencją tego wyboru jest wyciągnięcie z bazy danych informacji tylko o tych przejazdach, do których poszukiwani są pasażerowie, drugą - ocena dopasowania geograficznego planowanych przejazdów do zapytania będzie opierać się na porównywaniu pierwotnej długości przejazdu z bazy danych z długościami odcinków przejazdu o następującym przebiegu: A. miejsce wyjazdu określone w informacji o przejeździe, B. miejsce wyjazdu podane w zapytaniu wyszukującego, C. cel podróży wprowadzony w zapytaniu wyszukującego, D. cel podróży określony w informacji o przejeździe. Jeśli natomiast, zostanie wybrana druga dostępna opcja wyszukiwania - szukam pasażerów, z bazy danych zostaną wyciągnięte informacje tylko o tych planowanych przejazdach, do których poszukiwany jest samochód z kierowcą, a ocena dopasowania geograficznego przejazdów z bazy danych będzie opierać się na porównywaniu długości przejazdu odcinka wprowadzonego przez wyszukującego z długościami odcinków przejazdu o przebiegu: A. miejsce wyjazdu określone w wyszukiwarce, B. miejsce wyjazdu zapisane w informacjach o przejeździe, C. cel podróży z informacji o przejeździe, D. cel podróży wprowadzony w wyszukiwarce. Zarówno podwożącemu, jak i podwożonemu mogą, towarzyszyć w podróży dodatkowe osoby np. osoba podwożąca będzie jechać z mężem, a podwożący z dzieckiem. Takie osoby w będą w dalszej części nazywane również podwożącymi, bądź podwożonymi, w zależności od tego, czy jazdą z podwożącym z A do D, czy z podwożonym z B do C (55) 55

56 Podczas sprawdzania dopasowania geograficznego i ekonomicznego przejazdów do zapytania będą obliczane następujące wskaźniki: sugerowany wkład w koszty przejazdu podwożonych (podróżujących z punktu B do C jednej z podanych wcześniej tras) liczony na osobę, nazwijmy go cppb, szacowany koszt przejazdu na osobę podwożących (podróżujących z punktu A do D jednej z podanych wcześniej tras), nazwijmy go cppa, ocena dopasowania przejazdu z bazy danych do planowanego przez wyszukującego, nazwijmy go c. Określenie powyższych wskaźników jest potrzebne do identyfikacji przejazdów, które mogą być atrakcyjne dla planujących przejazd w ramach carpoolingu. Wskaźnik cppb Ilustracja III.7 Sugerowany wkład w koszty przejazdu każdego z podwożonych Wykorzystane symbole: cppb sugerowany wkład w koszty przejazdu każdego z podwożonych, f(xy) szacowana długość przejazdu z punktu X do punktu Y liczona w kilometrach, f(abcd) szacowana długość przejazdu z punktu A do D przez B i C liczona w kilometrach, t(ab) szacowany czas przejazdu z punktu A do punktu B liczony w minutach, t(abcd) - szacowany czas przejazdu z punktu A do D przez B i C liczony w minutach, a liczba osób podwożących, b liczba osób podwożonych, k szacowany średni koszt paliwa potrzebnego na przejazd samochodem jednego kilometra trasy liczony w PLN (określany przez podwożącego), r stawka rekompensaty zwracanej każdemu z podwożących za godzinę wydłużenia szacowanego czasu jazdy w związku z rozszerzeniem drogi planowanego pierwotnie przejazdu o trasę którą na odbywać się podwożenie określona w PLN (stała zdefiniowana w systemie) (56) 56

57 Sugerowany wkład w koszty przejazdu osoby podwożonej jest sumą 3 elementów: szacowanego kosztu paliwa potrzebnego na przejazd odcinka, na którym ma odbywać się podwożenie, podzielonego przez liczbę wszystkich podróżujących, szacowanego kosztu paliwa, potrzebnego na przejazd dystansu o który wydłużyłaby się trasa planowana przez podwożącego w związku z podożeniem, podzielonego przez liczbę osób podwożonych ), rekompensata dla każdego z podwożących za wydłużenie szacowanego czasu podróży, podzielona przez liczbę osób podwożonych. Zgodnie z przyjętym planem określania tego kosztu, podwożonym sugerowane będzie się pokrycie szacowanych kosztów wydłużenia trasy. Jeśli planowany przez nich przejazd, będzie leżał dokładnie na trasie określonej przez podwożącego, drugi i trzeci składnik sumy, którą jest cppb, będą równe 0. Podanej we wzorze stałej określającej stawkę rekompensaty za czas wydłużenia planuje się przypisać wartość 10. Jeśli na przykład, gdy podwożących jest czterech, podwożonych dwóch, a czas wydłużenia szacowanego czasu jazdy wynosi pół godziny, podwożonym będzie się sugerować wkład w koszty przejazdu po 10 PLN większy tytułem wydłużenia czasu jazdy podwożonych. Wprowadzanie tego składnika ma wyeliminować sytuację w której duża ilość osób znacząco wydłuża swoją podróż, aby podwieźć gdzieś np. jedną i niewiele na tym oszczędza im większa ilość podwożących w stosunku do podwożonych, tym większa presja, by nie wydłużać czasu jazdy. Wyniki wyszukiwania w opcji szukam samochodu z kierowcą są sortowane rosnąco względem cppb. Wysyłający ofertę dołączenia do przejazdu mogą zaproponować w niej wkład w koszty przejazdu podwożonych na poziomie sugerowanego, lub zaproponować inny. Wskaźnik cppa Ilustracja III.8 Szacowany koszt podróży podwożących Wykorzystane symbole: cppa szacowany koszt podróży każdego z podwożących, (57) 57

58 f(abcd) szacowana długość przejazdu z punktu A do D przez B i C liczona w kilometrach, a liczba osób podwożących, b liczba osób podwożonych, k szacowany średni koszt paliwa potrzebnego na przejazd samochodem jednego kilometra trasy liczony w PLN (określany przez podwożącego). Szacowany koszt podróży podwożących to różnica między kosztem paliwa na całej trasie, a wkładem w koszty podróży, jaki otrzymają od podwożonych. Wyniki wyszukiwania w opcji szukam pasażerów są sortowane rosnąco względem cppa. Wskaźnik c Ilustracja III.9 Ocena dopasowania przejazdu do zapytania użytkownika Wykorzystane symbole: c ocena dopasowania przejazdu do zapytania, cppb sugerowany wkład w koszty przejazdu każdego z podwożonych, f(bc) szacowana długość przejazdu z punktu B do C liczona w kilometrach, b liczba osób podwożonych, k szacowany średni koszt paliwa potrzebnego na przejazd samochodem jednego kilometra trasy liczony w PLN (określany przez podwożącego). Zgodnie z sugerowanym modelem podziału kosztów, podwożący mają zwracane koszty ewentualnego wydłużenia przejazdu. Jeśli jednak, koszt przejazdu, dla podwożonego w ramach carpoolingu, miałby być wyższy, niż koszt paliwa potrzebny na przejazd na wskazanym przez niego odcinku, oferta takiej podróży nie będzie dla niego atrakcyjna. W związku z tym przejazdy, dla których wskaźnik c jest mniejszy lub równy zero, nie pojawią się w wynikach wyszukiwania (58) 58

59 Zakładanie konta użytkownika Czynnością, którą musi wykonać wcześniej każdy użytkownik, aby dodać informacje o planowanym przejeździe, lub złożyć ofertę dołączenia jest założenie konta w serwisie. Załączony diagram obrazuje proces rejestracji użytkowników. Po wprowadzeniu wymaganych danych, konieczna jest aktywacja konta potwierdzająca poprawność wprowadzonego przez użytkownika adresu . Ilustracja III.10 Diagram czynności zakładanie konta (59) 59

60 III.3.3 Model bazy danych Przyjęte założenia dotyczące funkcjonalności serwisu wymagają składowania różnorakich danych. Należą do nich: informacje o planowanych przez użytkowników przejazdach, dane tworzące treść ofert dołączenia do przejazdów, informacje o lokalizacji miejsc wyjazdów i celów podróży, dane kontaktowe użytkowników, komentarze wystawiane przez użytkowników innym użytkownikom. Następujący model bazy danych powstał w wyniku: wyszczególnienia konkretnych informacji, które należy składować, dopasowania do nich, dostępnych w systemie zarządzania bazą danych, typów danych określenia relacji pomiędzy tymi danymi. Ilustracja III.11 Diagram bazy danych (60) 60

61 III.4 Projekt implementacji przyjętego modelu bazy danych Przyjęty model danych zostanie zaimplementowany w którymś z dostępnych relacyjnych systemów zarządzania bazą danych. Może nim być np. opisywany w rozdziale pierwszym MySQL, jak również PostgreSQL. Przedstawiony poniżej projekt implementacji został przygotowany w oparciu o MySQL, jednak nie stanowi to znaczącego ograniczenia wdrożenie modelu bazy w PostgreSQL wyglądałoby bardzo podobnie. Implementacji należy dokonać poprzez wykonanie odpowiedniego skryptu napisanego w języku SQL. Skrypt taki powinien zawierać następujące elementy: kod tworzący bazę danych kod zakładający poszczególne tabele, kod zakładający odpowiednie klucze definiujące relacje pomiędzy danymi i ograniczenia ułatwiające zachowanie spójności danych Fragment tworzący bazę danych o nazwie carpooling : CREATE DATABASE `carpooling` Ilustracja III.12 Procedura zakładania bazy danych Aby rozpocząć tworzenie tabel musimy przejść do nowo utworzonej bazy danych. USE `carpooling` Ilustracja III.13 Procedura przechodzenia do nowo utworzonej bazy danych Fragment kodu tworzący tabelę, której zadaniem będzie magazynowanie informacji o planowanych przez użytkowników przejazdach: CREATE TABLE `drives` ( `id` int(10) unsigned NOT NULL auto_increment, `date` datetime NOT NULL, `login` char(100) NOT NULL, `input_date` timestamp NOT NULL default CURRENT_TIMESTAMP, `car` text, `kmprice` float(2,2) NOT NULL default '0.00', (61) 61

62 `notice` text, `owner_group_number` int(2) NOT NULL default '1', `group_b_limit` int(2) NOT NULL default '4', `owner_status` int(1) NOT NULL default '1', `distance` float NOT NULL default '0', `duration` float NOT NULL default '0', `status` char(20) NOT NULL default 'close', PRIMARY KEY (`id`), KEY `login` (`login`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Ilustracja III.14 Procedura zakładania tabeli magazynującej informacje o przejazdach Dużym usprawnieniem podczas pisania kodu aplikacji, odpowiedzialnego za budowanie i wysyłanie zapytań do bazy danych, jest stworzenie struktury, która sama dba o swoją spójność. Dzięki temu podczas usuwania z bazy danych (bądź też zmiany kluczowej nazwy) wpisu, który ma istotne powiązania z danymi w innych tabelach, nie trzeba będzie osobno zlecać zmian w tych tabelach wykonają się one automatycznie. Taką strukturę można osiągnąć poprzez zastosowanie kluczy obcych i nałożenie na nie odpowiednich paramentów. W typowych instalacjach MySQL wymaga to zastosowania w tworzonych tabelach mechanizmu składowania danych InnoDB, zamiast, ustawianego często jako domyślnego, MyISAM. Mechanizm ten określa się za pomocą parametru ENGINE. Ponieważ w tworzonych tabelach przewiduje się składowanie m.in. polskich słów należy zastosować system znaków uwzględniający wszystkie polskie litery. Najbardziej odpowiedni wydaje się być tu UTF8, stąd też definicja tabeli zakończona jest frazą DEFAULT CHARSET=utf8. Fragment kodu tworzący tabelę składującą informacje o wprowadzanych przez użytkowników lokalizacjach: CREATE TABLE `markers` ( `id` int(11) unsigned NOT NULL auto_increment, `address` text NOT NULL, `lng` float(10,8) NOT NULL, `lat` float(10,8) NOT NULL, (62) 62

63 `drive_id` int(10) unsigned NOT NULL, `offer_id` int(11) unsigned default NULL, `description` text NOT NULL, `status` char(20) NOT NULL, `input_date` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `drive_id` (`drive_id`), KEY `offer_id` (`offer_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Ilustracja III.15 Procedura zakładania tabeli magazynującej informacje o lokalizacjach Fragment kodu tworzący tabelę do przechowywania danych składanych ofert: CREATE TABLE `offers` ( `id` int(11) unsigned NOT NULL auto_increment, `login` char(100) NOT NULL, `drive_id` int(10) unsigned NOT NULL, `option` int(1) NOT NULL, `start_date` datetime NOT NULL, `number_of_people` int(2) NOT NULL, `passengers_limit` int(2) default NULL, `kmprice` float default NULL, `offered_rate` float NOT NULL, `costperpersona` float NOT NULL, `costperpersonb` float NOT NULL, `status` char(20) NOT NULL, `input_date` timestamp NOT NULL default CURRENT_TIMESTAMP, `car_info` text, `send_notice` text, `answer_notice` text, PRIMARY KEY (`id`), KEY `login` (`login`), KEY `drive_id` (`drive_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Ilustracja III.16 Procedura zakładania tabeli magazynującej informacje o ofertach dołączenia (63) 63

64 Fragment kodu zakładający tabelę do przechowywania informacji o użytkownikach serwisu: CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL auto_increment, `login` char(100) NOT NULL, `password` char(100) default NULL, ` ` char(50) default NULL, `phone` char(20) default NULL, `first_name` char(200) default NULL, `last_name` char(200) default NULL, `status` char(20) NOT NULL, `input_date` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `login` (`login`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Ilustracja III.17 Procedura zakładania tabeli magazynującej informacje o użytkownikach Tu, poza kluczem głównym, ustawianym we wszystkich tabelach modelu na autoinkrementowalne id, został zastosowany UNIQUE KEY na login, którego zadaniem jest uniemożliwienie dodania dwóch użytkowników o takiej samej nazwie. Fragment kodu definiujący tabelę na komentarze: CREATE TABLE `comments` ( `id` int(11) unsigned NOT NULL auto_increment, `offer_id` int(11) unsigned NOT NULL, `rate` int(1) NOT NULL, `comment` text NOT NULL, `login` char(100) default NULL, `to_login` char(100) NOT NULL, `input_date` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `to_login` (`to_login`), KEY `login` (`login`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Ilustracja III.18 Procedura zakładania tabeli magazynującej informacje o przejazdach (64) 64

65 Kolejnym krokiem, po założeniu tabel, jest zdefiniowanie ograniczeń z użyciem kluczy obcych. Fragment kodu definiujący ograniczenia na tabeli do przechowywania informacji o przejazdach: ALTER TABLE `drives` ADD CONSTRAINT `drives_ibfk_1` FOREIGN KEY (`login`) REFERENCES `users` (`login`) ON DELETE CASCADE ON UPDATE CASCADE; Ilustracja III.19 Procedura zakładania ograniczeń na tabeli o nazwie drives Dzięki ograniczaniu w ten sposób struktury danych tabeli drives nie jest konieczne zlecanie jej modyfikacji przy zmianach nazwy użytkownika login w tej tabeli zmieni się automatycznie na ten ustawiany w tabeli users". Jeśli użytkownik usunie swoje konto, nie będzie również konieczne zlecanie usuwania danych o wprowadzonych przez niego przejazdach tabela posprząta się sama. Fragment kodu zakładający ograniczenia dla tabeli przechowującej dane ofert dołączenia do przejazdów: ALTER TABLE `offers` ADD CONSTRAINT `offers_ibfk_2` FOREIGN KEY (`drive_id`) REFERENCES `drives` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `offers_ibfk_1` FOREIGN KEY (`login`) REFERENCES `users` (`login`) ON DELETE CASCADE ON UPDATE CASCADE; Ilustracja III.20 Procedura zakładania ograniczeń na tabeli o nazwie offers Powyższy kod można zanalizować rozważając co będzie jak skasujemy poszczególne wpisy: jeśli skasujemy informację o planowanym przejeździe, do którego została złożona dana oferta, ta oferta zostanie również usunięta dzięki zastosowaniu ograniczenia offers_ibfk_2, jeśli skasujemy konto użytkownika, który dodał jakieś oferty, te oferty również zostaną usunięte na mocy ograniczenia offers_ibfk_ (65) 65

66 Podobny mechanizm zadziała w przypadku modyfikacji kluczowych pól zmiany wartości pola id informacji o planowanym przejeździe lub zmiany loginu użytkownika. Fragment kodu zakładający ograniczenia na tabeli mającej przechować informacje o lokalizacjach: ALTER TABLE `markers` ADD CONSTRAINT `markers_ibfk_1` FOREIGN KEY (`drive_id`) REFERENCES `drives` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `markers_ibfk_2` FOREIGN KEY (`offer_id`) REFERENCES `offers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; Ilustracja III.21 Procedura zakładania ograniczeń na tabeli o nazwie markers Każdy wpis w tabeli markers jest powiązany z wpisem w tabeli drives. Usunięcie wpisu w tabeli z informacjami o przejeździe spowoduje też usunięcie wpisów opisujących lokalizacje powiązane z tym przejazdem z tabeli markers. Pole offer_id w przeciwieństwie do pola drive_id może przyjmować wartość NULL. Wynika to z faktu, że nie każdy wpis dotyczący lokalizacji jest uzupełnieniem jakiejś oferty dołączenia do przejazdu, każdy taki wpis odnosi się natomiast do jakiegoś planowanego przejazdu. Ograniczenie na pole offer_id jest jednak potrzebne, gdyż w sytuacji, gdy usuwana jest jedynie oferta dołączenia do przejazdu, a nie cała informacja o przejeździe, powinny zostać usunięte wpisy odnoszące się jedynie do danej oferty. Pomimo, że informacje o lokalizacjach również pochodzą od użytkowników, w tej tabeli nie jest koniecznie wprowadzanie pola login i definiowania dla niego ograniczeń. Każdy wpis w tabeli markers jest powiązany pośrednio z jednym lub dwoma wpisami w tabeli users poprzez tabele drives lub offers dzięki ograniczeniom markers_ibfk_1 i drives_ibfk_1 oraz `markers_ibfk_2` i `offers_ibfk_1`. Fragment kodu definiujący ograniczenia dla tabeli przechowującej komentarze użytkowników: ALTER TABLE `comments` ADD CONSTRAINT `comments_ibfk_2` FOREIGN KEY (`to_login`) REFERENCES `users` (`login`) ON DELETE CASCADE ON UPDATE CASCADE, (66) 66

67 ADD CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`login`) REFERENCES `users` (`login`) ON DELETE SET NULL ON UPDATE CASCADE; Ilustracja III.22 Procedura zakładania ograniczeń na tabeli magazynującej komentarze Dzięki zdefiniowaniu ograniczeń w ten sposób, komentarze wystawione dla danego użytkownika znikną, jeśli usuniemy konto tego użytkownika. Jeśli jednak usuniemy konto użytkownika, który wystawił komentarz innemu użytkownikowi, komentarz ten pozostanie w bazie jako wystawiony anonimowo dla konkretnego użytkownika. Na poziomie prezentacji danych będzie można odpowiednio określić taką sytuację, np., że użytkownik, który wystawił komentarz usunął swoje konto. III.5 Struktura informacyjna Serwis posiada trzy podstrony o treściach stałych: O carpoolingu zawierająca tekst wyjaśniający czym jest carpooling i pełniąca funkcję strony startowej, O serwisie z informacjami o roli i sposobie działania aplikacji WWW, Kontakt z danymi umożliwiającymi kontakt z autorem strony. Ważnym elementem struktury informacyjnej serwisu są przetworzone przez system dane wprowadzane przez użytkowników. Należą do nich: pojawiające się w wynikach wyszukiwania informacje o planowanych przejazdach, do których można dołączyć, informacje przeznaczone dla użytkownika: o o wprowadzonych przez niego przejazdach, o o ofertach dołączenia do jego przejazdów złożonych przez innych użytkowników, o o złożonych przez niego ofertach dołączenia i stanie ich rozpatrywania. o komentarze otrzymane przez innych użytkowników, o komentarze wystawione dla niego przez innych użytkowników. Każdy użytkownik ma również dostęp do wprowadzonych przez siebie danych kontaktowych i możliwość ich edycji (67) 67

68 III.6 Interfejs użytkownika Interfejs użytkownika stanowi część aplikacji odpowiedzialnej za interakcję z użytkownikiem. Ilustracja poniżej przedstawia planowany układ części stałych interfejsu tworzonego serwisu WWW. Wyjątek stanowi pole umiejscowione pod parametrami logowania, w zależności od tego, czy użytkownik jest zalogowany, czy też nie, zawiera formularz logowania lub formularz rozpoczynający dodawanie informacji o przejeździe. Ilustracja III.23 Poglądowy projekt interfejsu użytkownika Elementy menu głównego przed zalogowaniem: O carpoolingu, O serwisie, (68) 68

69 Rejestracja, Kontakt. Elementy menu głównego po zalogowaniu: O carpoolingu, O serwisie, Panel użytkownika, Kontakt, Wylogowanie. Ekrany interfejsu użytkownika: Strona startowa, Informacje o serwisie, Wyniki wyszukiwania, Dodawanie oferty dołączenia do przejazdu, Dodawanie przejazdu wskazywanie lokalizacji, Dodawanie przejazdu wprowadzanie danych przejazdu, Panel użytkownika menu, Panel użytkownika oferty złożone przez użytkownika, Panel użytkownika przejazdy użytkownika i otrzymane oferty, Panel użytkownika edycja ustawień konta, Komentarze o użytkowniku, Kontakt (69) 69

70 III.7 Nazwa i szata graficzna serwisu Podczas określania nazwy, kolorystyki i motywów graficznych serwisu zostały wzięte pod uwagę pola skojarzeniowe, w których mieści się tematyka tworzonego projektu: ochrona środowiska, komunikacja, samochód, podwożenie, ruch, ekonomiczność, oszczędność. Nazwa serwisu Autotransfer nawiązuje do podstawowych obiektów, które pojawiają się w problematyce carpoolingu: samochodu, transferu - przeniesienia z miejsca na miejsce. Słowo transfer pojawia się w słownictwie związanym z transportem lotniczym, nasuwa więc skojarzenia z szybkim i dobrze zorganizowanym sposobem przemieszczania się, a więc celem którego realizację ma wspomagać serwis. Kolory, które dominują w szablonie graficznym strony to: ciemno zielony, oliwkowy, pomarańczowy, biały. Zastosowanie odcieni zieleni jako koloru dominującego nawiązuje do faktu, iż carpooling jest często kojarzony z zmniejszaniem emisji CO2 do atmosfery, a co za tym idzie ochroną środowiska. Podkreślenie tej cechy w kolorystyce strony może przyczynić się do pozytywnego nastawienia odbiorcy. Kolor pomarańczowy kojarzony jest z dynamiką i zasobami energii. Stanowi istotny element dynamizujący przekaz i zwiększający jego atrakcyjność. Zastosowanie białego zwiększa poczucie przejrzystości i uporządkowania prezentowanych treści (70) 70

71 Ilustracja III.24 Projekt logo serwisu źródło: projekt własny W projekcie logo został wykorzystany motyw samochodu wypełnionego pasażerami. Pasażerowie są kolorystycznie rozróżnieni na dwie grupy, co nawiązuje do obecnego w strukturze informacyjnej serwisu podziału na podwożących i podwożonych. W jego animowanej wersji, można dostrzec drgania samochodu i lekko podskakujące sylwetki pasażerów, co sugeruje, że samochód jest właśnie w ruchu (71) 71

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

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

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

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

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

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

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

Bardziej szczegółowo

Narzędzia Informatyki w biznesie

Narzędzia Informatyki w biznesie Narzędzia Informatyki w biznesie Przedstawiony program specjalności obejmuje obszary wiedzy informatycznej (wraz z stosowanymi w nich technikami i narzędziami), które wydają się być najistotniejsze w kontekście

Bardziej szczegółowo

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Deduplikacja danych. Zarządzanie jakością danych podstawowych Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Inżynieria Biomedyczna Rodzaj przedmiotu: obowiązkowy moduł specjalności informatyka medyczna Rodzaj zajęć: wykład, laboratorium PROGRAMOWANIE INTERNETOWE Internet Programming

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

Opis Architektury Systemu Galileo

Opis Architektury Systemu Galileo Opis Architektury Systemu Galileo Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Marek Sobierajski 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 5 1.1 Cel.......................................... 5 1.2 Zakres........................................

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

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

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz SYLLABUS na rok akademicki 01/013 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr II/4 Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

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

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

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

KARTA KURSU. Języki hipertekstowe i tworzenie stron WWW. Opis kursu (cele kształcenia) Warunki wstępne. Efekty kształcenia. Nazwa

KARTA KURSU. Języki hipertekstowe i tworzenie stron WWW. Opis kursu (cele kształcenia) Warunki wstępne. Efekty kształcenia. Nazwa KARTA KURSU Nazwa Nazwa w j. ang. Języki hipertekstowe i tworzenie stron WWW Hypertext languages and web page design Kod Punktacja ECTS* 4 Koordynator dr inż. Marcin Piekarczyk Zespół dydaktyczny: dr inż.

Bardziej szczegółowo

PROJEKT Z BAZ DANYCH

PROJEKT Z BAZ DANYCH POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI PROJEKT Z BAZ DANYCH System bazodanowy wspomagający obsługę sklepu internetowego AUTOR: Adam Kowalski PROWADZĄCY ZAJĘCIA: Dr inż. Robert Wójcik, W4/K-9 Indeks:

Bardziej szczegółowo

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie

Bardziej szczegółowo

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL. E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL. Autor: Larry Ullman Poznaj zasady wirtualnego handlu i zarabiaj prawdziwe pieniądze Jak stworzyć doskonałą witrynę sklepu internetowego? Jak

Bardziej szczegółowo

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle 2010-10-21

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle 2010-10-21 Organizacja zajęć BAZY DANYCH II WYKŁAD 1 Wykładowca dr inż. Agnieszka Bołtuć, pokój 304, e-mail: aboltuc@ii.uwb.edu.pl Liczba godzin i forma zajęć: 15 godzin wykładu oraz 30 godzin laboratorium Konsultacje:

Bardziej szczegółowo

Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr 351203)

Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr 351203) Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr 351203) Technikum - kl. 3 Td, semestr 5 i 6 Ocena niedostateczna dopuszczająca Wymagania edukacyjne wobec ucznia: Uczeń nie

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

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

Hurtownie danych wykład 5

Hurtownie danych wykład 5 Hurtownie danych wykład 5 dr Sebastian Zając SGH Warszawa 7 lutego 2017 1 Współbieżność i integracja Niezgodność impedancji 2 bazy danych Współbieżność i integracja Niezgodność impedancji Bazy relacyjne

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

BIBLIOTEKA CYFROWA JAKO KONTENER TREŚCI DLA PORTALI INTERNETOWYCH. DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA.

BIBLIOTEKA CYFROWA JAKO KONTENER TREŚCI DLA PORTALI INTERNETOWYCH. DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA. BIBLIOTEKA CYFROWA JAKO KONTENER TREŚCI DLA PORTALI INTERNETOWYCH. DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA. Michał Kwiatkowski Piotr Grzybowski Poznańskie Centrum Superkomputerowo-Sieciowe II Konferencja

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

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

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

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

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I WYMAGANIA EDUKACYJNE Witryny i Aplikacje Internetowe klasa I Dopuszczający definiuje pojęcia: witryna, portal, wortal, struktura witryny internetowej; opisuje rodzaje grafiki statycznej wymienia i charakteryzuje

Bardziej szczegółowo

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW KARTA KURSU Nazwa Nazwa w j. ang. Przetwarzanie dokumentów XML i zaawansowane techniki WWW XML processing and advanced web technologies Kod Punktacja ECTS* 3 Koordynator dr Maria Zając Zespół dydaktyczny:

Bardziej szczegółowo

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych: Egzaminy na plus Stres na minus! Zdawaj bezpłatne egzaminy Microsoft, Linux, C++ z nami i zadbaj o swoją karierę. Oferujemy Ci pierwsze certyfikaty zawodowe w Twojej przyszłej karierze, które idealnie

Bardziej szczegółowo

Szczegółowy opis zamówienia:

Szczegółowy opis zamówienia: Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h

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

Pojęcie bazy danych. Funkcje i możliwości.

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska JavaFX - wprowadzenie JavaFX Wydział Informatyki i Zarządzania Politechnika Wrocławska Definicja JavaFX - wprowadzenie Definicja Historia JavaFX Script Rich Internet Application JavaFX - rodzina technologii

Bardziej szczegółowo

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop. 2017 Spis treści O autorach 11 Wprowadzenie 13 CZĘŚĆ I ROZPOCZĘCIE PRACY Lekcja 1. Co oznacza publikowanie treści w sieci

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

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

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Bazy danych stanowią obecnie jedno z ważniejszych zastosowań komputerów. Podstawowe zalety komputerowej bazy to przede wszystkim szybkość przetwarzania danych, ilość dostępnych

Bardziej szczegółowo

SPECYFIKACJA WYMAGAŃ. w zakresie migracji i uruchomienia nowego serwisu WWW na potrzeby PKP S.A.

SPECYFIKACJA WYMAGAŃ. w zakresie migracji i uruchomienia nowego serwisu WWW na potrzeby PKP S.A. SPECYFIKACJA WYMAGAŃ w zakresie migracji i uruchomienia nowego serwisu WWW na potrzeby PKP S.A. Spis treści Spis treści Wprowadzenie... 2 Ogólny opis... 3 Wymagania funkcjonalne... 4 Wymagania dotyczące

Bardziej szczegółowo

Numer i nazwa obszaru: Temat szkolenia:

Numer i nazwa obszaru: Temat szkolenia: Numer i nazwa obszaru: Obszar tematyczny nr 8 Tworzenie stron internetowych Temat szkolenia: Prezentacja treści na stronach internetowych wykonanych przez nauczycieli lub ich uczniów SZCZEGÓŁOWY PROGRAM

Bardziej szczegółowo

Jak ustawić cele kampanii?

Jak ustawić cele kampanii? Jak ustawić cele kampanii? Czym są cele? Jest to funkcjonalność pozwalająca w łatwy sposób śledzić konwersje wygenerowane na Twojej stronie www poprzez wiadomości email wysłane z systemu GetResponse. Mierzenie

Bardziej szczegółowo

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych rk Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych pojęć, prawdopodobnie zastanawiasz się, kiedy zaczniesz

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Pełna specyfikacja usługi Kreator WWW

Pełna specyfikacja usługi Kreator WWW Powierzchnia dyskowa W ramach usługi Kreator WWW jest zarezerwowana powierzchnia dyskowa 5 i 10 GB. Dodatkowo przydzielone jest od 5 do 10 GB, które można przeznaczyć na utrzymywanie odrębnego serwisu

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

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

CZYM ZAJMUJE SIĘ PROJEKTANT? oprac. K. Jamrozik

CZYM ZAJMUJE SIĘ PROJEKTANT? oprac. K. Jamrozik CZYM ZAJMUJE SIĘ PROJEKTANT? oprac. K. Jamrozik Wykorzystana grafika pochodzi z publikacji Jennifer Niederst Robbins, Projektowanie stron internetowych. Przewodnik dla początkujących webmasterów po HTML5,

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

DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA

DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA Michał Kwiatkowski Piotr Grzybowski Poznańskie Centrum Superkomputerowo-Sieciowe VII Warsztaty Biblioteki Cyfrowe 22.10.2010 Plan prezentacji 2/15 Geneza Biblioteka

Bardziej szczegółowo

Bazy danych i ich aplikacje

Bazy danych i ich aplikacje ORAZ ZAPRASZAJĄ DO UDZIAŁU W STUDIACH PODYPLOMOWYCH Celem Studiów jest praktyczne zapoznanie słuchaczy z podstawowymi technikami tworzenia i administrowania bazami oraz systemami informacyjnymi. W trakcie

Bardziej szczegółowo

Informatyczne fundamenty

Informatyczne fundamenty Informatyczne fundamenty Informatyka to szeroka dziedzina wiedzy i praktycznych umiejętności. Na naszych studiach zapewniamy solidną podstawę kształcenia dla profesjonalnego inżyniera IT. Bez względu na

Bardziej szczegółowo

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia Przedmiot: Bazy danych Rodzaj przedmiotu: Podstawowy Kod przedmiotu: MBM 1 S 0 5 64-4 _1 Rok: III Semestr: 5 Forma studiów:

Bardziej szczegółowo

Świat Internetu to brutalne miejsce które cały czas ewoluuje

Świat Internetu to brutalne miejsce które cały czas ewoluuje Świat Internetu to brutalne miejsce które cały czas ewoluuje Dobra strona internetowa to podstawa biznesu XXI wieku i Twoja wizytówka w wirtualnym świecie. Obecnie strony internetowe pełnią priorytetową

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

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

Architektura systemu e-schola

Architektura systemu e-schola ą ą ą Architektura systemu e-schola System e-schola zbudowany jest w postaci interaktywnej witryny intranetowej, działającej jako aplikacja serwerowa typu WEB(oparta o serwer WWW) Architektura systemu

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Bardziej szczegółowo

MEDIAFLEX PREZENTACJA FIRMY. Mediaflex Sp. z o. o.. ul. Wodna 17, 30-556 Kraków www.mediaflex.pl

MEDIAFLEX PREZENTACJA FIRMY. Mediaflex Sp. z o. o.. ul. Wodna 17, 30-556 Kraków www.mediaflex.pl MEDIAFLEX PREZENTACJA FIRMY Mediaflex Sp. z o. o.. ul. Wodna 17, 30-556 Kraków www.mediaflex.pl Mediaflex oferta Oferujemy kompleksowe działania wspomagające działalność naszych Klientów w Internecie.

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania, Programowanie aplikacji internetowych Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Bazy danych Database Kierunek: Rodzaj przedmiotu: obieralny Rodzaj zajęć: wykład, laboratorium Matematyka Poziom kwalifikacji: I stopnia Liczba godzin/tydzień: 2W, 2L Semestr: III Liczba

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Aplikacje Internetowe

Aplikacje Internetowe Aplikacje Internetowe ITA-103 Wersja 1 Warszawa, październik 2008 Spis treści Wprowadzenie i-4 Moduł 1 Podstawy HTML 1-1 Moduł 2 Kaskadowe Arkusze Stylów CSS 2-1 Moduł 3 Podstawy JavaScript 3-1 Moduł 4

Bardziej szczegółowo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:

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

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap. Kod szkolenia: Tytuł szkolenia: FRONT-END Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap. Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest zarówno dla

Bardziej szczegółowo

Case study strona firmowa

Case study strona firmowa Case study strona firmowa Klient Cele Zespół Projektowanie Funkcje UI, UX, AI Podsumowanie Zaufali nam Referencje Klient Luqam - firma konsultingowa działająca w trybie projektowo-szkoleniowym: 12 lat

Bardziej szczegółowo

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych BAZY DANYCH Co to jest baza danych Przykłady baz danych Z czego składa się baza danych Rodzaje baz danych CO TO JEST BAZA DANYCH Komputerowe bazy danych już od wielu lat ułatwiają człowiekowi pracę. Są

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

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Tomasz Grześ. Systemy zarządzania treścią, cz. II Tomasz Grześ Systemy zarządzania treścią, cz. II Panel administracyjny Panel administracyjny pozwala na zarządzanie wszystkimi elementami pakietu, m.in. zarządzanie użytkownikami, edycję stron, instalowanie

Bardziej szczegółowo

Rok akademicki: 2014/2015 Kod: CCB s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2014/2015 Kod: CCB s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Technologie informacyjne Rok akademicki: 2014/2015 Kod: CCB-1-104-s Punkty ECTS: 3 Wydział: Inżynierii Materiałowej i Ceramiki Kierunek: Chemia Budowlana Specjalność: - Poziom studiów: Studia

Bardziej szczegółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

Budowanie interfejsów do baz danych

Budowanie interfejsów do baz danych Budowanie interfejsów do baz danych Wprowadzenie Organizacja zajęć O sobie O Projekcie Termin rozpoczęcia Tematyka (propozycje?) Narzędzia (pendrive lub hosting) 2008 Szczepan Bednarz 2 z 20 Bazy danych

Bardziej szczegółowo