Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Maciej Kozieł Nr albumu: mk291587 Aplikacja do aranżacji wnętrz wykorzystująca rozszerzoną rzeczywistość Praca licencjacka na kierunku INFORMATYKA Praca wykonana pod kierunkiem dra Janusza Jabłonowskiego Instytut Informatyki Czerwiec 2013
Oświadczenie kierującego pracą Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwalifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego. Data Podpis kierującego pracą Oświadczenie autora (autorów) pracy Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny z obowiązującymi przepisami. Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem procedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni. Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersją elektroniczną. Data Podpis autora (autorów) pracy
Streszczenie W pracy przedstawiono szczegółowy opis realizacji aplikacji na urządzenia mobilne, która dzięki rozszerzonej rzeczywistości ułatwia użytkownikom aranżację wnętrz. System wspierany jest przez katalog produktów, z którym klienci są w stanie integrować własne sklepy internetowe z dekoracjami. Słowa kluczowe rozszerzona rzeczywistość, aplikacja na urządzenie mobilne, system sklepów, aranżacja wnętrz 11.3 Informatyka Dziedzina pracy (kody wg programu Socrates-Erasmus) Information systems Information systems applications Enterprise information systems Enterprise applications Klasyfikacja tematyczna Tytuł pracy w języku angielskim Interior design application based on Augmented Reality
Spis treści Wprowadzenie....................................... 11 1. Wizja projektu..................................... 13 1.1. Wprowadzenie................................... 13 1.1.1. Cel...................................... 13 1.1.2. Zakres.................................... 13 1.1.3. Definicje................................... 13 1.1.4. Omówienie reszty rozdziału........................ 14 1.2. Umiejscowienie produktu............................. 14 1.2.1. Korzyści................................... 14 1.2.2. Postawienie problemu........................... 15 1.2.3. Kontekst produktu............................. 15 1.3. Osoby mające wpływ na wymagania i projekt.................. 15 1.3.1. Demografia rynku............................. 16 1.3.2. Środowisko użytkownika.......................... 16 1.3.3. Charakterystyka osób mających wpływ na wymagania......... 17 1.3.4. Charakterystyka użytkowników...................... 17 1.3.5. Alternatywy i konkurencja........................ 18 1.4. Omówienie produktu................................ 18 1.4.1. Umiejscowienie produktu......................... 18 1.4.2. Podsumowanie możliwości......................... 18 1.4.3. Założenia i zależności........................... 19 1.4.4. Koszta.................................... 19 1.4.5. Licencjonowanie i instalacja........................ 20 1.5. Własności produktu................................ 20 1.5.1. Funkcjonalność Aplikacji Klienckiej.................... 20 1.5.2. Obsługa i własności Katalogu Produktów................ 21 1.5.3. Integracja ze sklepem internetowym - cechy Modułu Integracyjnego. 21 1.6. Ograniczenia.................................... 21 1.7. Założenia jakościowe................................ 22 1.8. Priorytety...................................... 22 1.9. Inne wymagania.................................. 23 1.9.1. Standardy.................................. 23 1.9.2. Wymagania systemowe.......................... 23 1.9.3. Wymagania środowiska.......................... 23 3
2. Architektura...................................... 25 2.1. Wprowadzenie................................... 25 2.1.1. Cel...................................... 25 2.1.2. Zakres.................................... 25 2.1.3. Omówienie reszty rozdziału........................ 25 2.2. Prezentacja architektury systemu......................... 26 2.2.1. Przypadki użycia.............................. 26 2.2.2. Dekompozycja logiczna.......................... 26 2.2.3. Dekompozycja na procesy......................... 26 2.2.4. Instalacja systemu............................. 26 2.2.5. Implementacja systemu.......................... 26 2.3. Założenia i zależności................................ 26 2.3.1. Technologia................................. 26 2.3.2. Oprogramowanie.............................. 27 2.3.3. Narzędzia.................................. 27 2.3.4. Transfer danych.............................. 27 2.3.5. Zespół.................................... 27 2.3.6. Harmonogram............................... 27 2.3.7. Dokumentacja techniczna......................... 27 2.4. Przegląd przypadków użycia............................ 28 2.4.1. Wyeksportowanie wybranych produktów do Katalogu......... 28 2.4.2. Importowanie produktów do katalogu.................. 29 2.4.3. Wyszukiwanie obiektów.......................... 29 2.4.4. Wyświetlenie obiektu w Widoku AR................... 30 2.5. Dekompozycja logiczna systemu.......................... 30 2.5.1. Omówienie................................. 30 2.5.2. Najważniejsze komponenty........................ 31 2.6. Dekompozycja na procesy............................. 33 2.6.1. Moduł Integracyjny Katalog Produktów............... 33 2.6.2. Aplikacja Kliencka Katalog Produktów................ 34 2.7. Instalacja systemu................................. 35 2.7.1. Instalacja aplikacji mobilnej........................ 35 2.7.2. Publikacja Aplikacji Klienckiej do sklepu Google Play......... 35 2.7.3. Instalacja Katalogu Produktów...................... 36 2.7.4. Instalacja Modułu Integracyjnego..................... 37 2.8. Implementacja systemu.............................. 37 2.8.1. Omówienie................................. 37 2.8.2. Warstwy................................... 38 2.9. Przechowywane dane................................ 38 2.9.1. Dane przechowywane po stronie Modułu Integracyjnego........ 38 2.9.2. Dane przechowywane po stronie Katalogu Produktów......... 38 2.10. Wydajność systemu................................ 38 2.10.1. Moduł Integracyjny............................ 38 2.10.2. Katalog Produktów............................ 38 2.10.3. Aplikacja Kliencka............................. 39 2.11. Jakość........................................ 39 2.11.1. Wydajność i Skalowalność......................... 39 2.11.2. Niezawodność................................ 39 2.11.3. Bezpieczeństwo............................... 39 4
3. Biznesowe przypadki użycia............................. 41 3.1. Wprowadzenie................................... 41 3.1.1. Schemat przypadku użycia........................ 41 3.2. Wzbogacenie (modyfikacja) produktu o informacje wymagane w trybie AR. 42 3.2.1. Krótki opis................................. 42 3.2.2. Cele..................................... 42 3.2.3. Wydajność................................. 42 3.2.4. Warunki wstępne.............................. 43 3.2.5. Czynności.................................. 43 3.2.6. Kategoria.................................. 43 3.2.7. Ryzyko................................... 43 3.2.8. Możliwe usprawnienia........................... 44 3.2.9. Właściciel.................................. 44 3.2.10. Możliwe rozwinięcia............................ 44 3.3. Wyeksportowanie wybranych produktów do Katalogu............. 44 3.3.1. Krótki opis................................. 44 3.3.2. Cele..................................... 44 3.3.3. Wydajność................................. 44 3.3.4. Warunki wstępne.............................. 45 3.3.5. Czynności.................................. 45 3.3.6. Kategoria.................................. 46 3.3.7. Ryzyko................................... 46 3.3.8. Możliwe usprawnienia........................... 46 3.3.9. Właściciel.................................. 46 3.3.10. Możliwe rozwinięcia............................ 46 3.4. Wybór produktów, które mają być dostępne w Katalogu............ 46 3.4.1. Krótki opis................................. 46 3.4.2. Cele..................................... 47 3.4.3. Wydajność................................. 47 3.4.4. Warunki wstępne.............................. 47 3.4.5. Czynności.................................. 47 3.4.6. Kategoria.................................. 47 3.4.7. Ryzyko................................... 48 3.4.8. Możliwe usprawnienia........................... 48 3.4.9. Właściciel.................................. 48 3.4.10. Możliwe rozwinięcia............................ 48 3.5. Dodanie sklepu do katalogu............................ 48 3.5.1. Krótki opis................................. 48 3.5.2. Cele..................................... 48 3.5.3. Wydajność................................. 48 3.5.4. Warunki wstępne.............................. 48 3.5.5. Czynności.................................. 49 3.5.6. Kategoria.................................. 49 3.5.7. Ryzyko................................... 49 3.5.8. Możliwe usprawnienia........................... 49 3.5.9. Właściciel.................................. 49 3.5.10. Możliwe rozwinięcia............................ 49 3.6. Modyfikacja i usuwanie produktu......................... 50 3.6.1. Krótki opis................................. 50 5
3.6.2. Cele..................................... 50 3.6.3. Wydajność................................. 50 3.6.4. Warunki wstępne.............................. 50 3.6.5. Czynności.................................. 50 3.6.6. Kategoria.................................. 50 3.6.7. Ryzyko................................... 50 3.6.8. Możliwe usprawnienia........................... 50 3.6.9. Właściciel.................................. 51 3.6.10. Możliwe rozwinięcia............................ 51 3.7. Logowanie do katalogu............................... 51 3.7.1. Krótki opis................................. 51 3.7.2. Cele..................................... 51 3.7.3. Wydajność................................. 51 3.7.4. Warunki wstępne.............................. 51 3.7.5. Czynności.................................. 51 3.7.6. Kategoria.................................. 51 3.7.7. Ryzyko................................... 51 3.7.8. Możliwe usprawnienia........................... 52 3.7.9. Właściciel.................................. 52 3.7.10. Możliwe rozwinięcia............................ 52 3.8. Dodawanie nowego konta użytkownika Katalogu................ 52 3.8.1. Krótki opis................................. 52 3.8.2. Cele..................................... 52 3.8.3. Wydajność................................. 52 3.8.4. Warunki wstępne.............................. 52 3.8.5. Czynności.................................. 52 3.8.6. Kategoria.................................. 53 3.8.7. Ryzyko................................... 53 3.8.8. Możliwe usprawnienia........................... 53 3.8.9. Właściciel.................................. 53 3.8.10. Możliwe rozwinięcia............................ 53 3.9. Instrukcja Jak korzystać z aplikacji...................... 53 3.9.1. Krótki opis................................. 53 3.9.2. Cele..................................... 53 3.9.3. Wydajność................................. 53 3.9.4. Warunki wstępne.............................. 54 3.9.5. Czynności.................................. 54 3.9.6. Kategoria.................................. 54 3.9.7. Ryzyko................................... 54 3.9.8. Możliwe usprawnienia........................... 54 3.9.9. Właściciel.................................. 54 3.9.10. Możliwe rozwinięcia............................ 54 3.10. Wyszukiwanie obiektów.............................. 55 3.10.1. Krótki opis................................. 55 3.10.2. Cele..................................... 55 3.10.3. Wydajność................................. 55 3.10.4. Warunki wstępne.............................. 55 3.10.5. Czynności.................................. 55 3.10.6. Kategoria.................................. 56 6
3.10.7. Ryzyko................................... 56 3.10.8. Możliwe usprawnienia........................... 56 3.10.9. Właściciel.................................. 56 3.10.10.Możliwe rozwinięcia............................ 56 3.11. Filtrowanie obiektów................................ 56 3.11.1. Krótki opis................................. 56 3.11.2. Cele..................................... 57 3.11.3. Wydajność................................. 57 3.11.4. Warunki wstępne.............................. 57 3.11.5. Czynności.................................. 57 3.11.6. Kategoria.................................. 57 3.11.7. Ryzyko................................... 58 3.11.8. Możliwe usprawnienia........................... 58 3.11.9. Właściciel.................................. 58 3.11.10.Możliwe rozwinięcia............................ 58 3.12. Wyświetlanie listy kategorii............................ 58 3.12.1. Krótki opis................................. 58 3.12.2. Cele..................................... 58 3.12.3. Wydajność................................. 58 3.12.4. Warunki wstępne.............................. 59 3.12.5. Czynności.................................. 59 3.12.6. Kategoria.................................. 59 3.12.7. Ryzyko................................... 59 3.12.8. Możliwe usprawnienia........................... 59 3.12.9. Właściciel.................................. 59 3.12.10.Możliwe rozwinięcia............................ 59 3.13. Wyświetlenie listy obiektów należących do danej kategorii........... 60 3.13.1. Krótki opis................................. 60 3.13.2. Cele..................................... 60 3.13.3. Wydajność................................. 60 3.13.4. Warunki wstępne.............................. 60 3.13.5. Czynności.................................. 60 3.13.6. Kategoria.................................. 60 3.13.7. Ryzyko................................... 60 3.13.8. Możliwe usprawnienia........................... 61 3.13.9. Właściciel.................................. 61 3.13.10.Możliwe rozwinięcia............................ 61 3.14. Wyświetlenie szczegółów obiektu......................... 61 3.14.1. Krótki opis................................. 61 3.14.2. Cele..................................... 61 3.14.3. Wydajność................................. 61 3.14.4. Warunki wstępne.............................. 61 3.14.5. Czynności.................................. 62 3.14.6. Kategoria.................................. 62 3.14.7. Ryzyko................................... 62 3.14.8. Możliwe usprawnienia........................... 62 3.14.9. Właściciel.................................. 62 3.14.10.Możliwe rozwinięcia............................ 62 3.15. Wyświetlenie galerii danego obiektu....................... 63 7
3.15.1. Krótki opis................................. 63 3.15.2. Cele..................................... 63 3.15.3. Wydajność................................. 63 3.15.4. Warunki wstępne.............................. 63 3.15.5. Czynności.................................. 63 3.15.6. Kategoria.................................. 63 3.15.7. Ryzyko................................... 64 3.15.8. Możliwe usprawnienia........................... 64 3.15.9. Właściciel.................................. 64 3.15.10.Możliwe rozwinięcia............................ 64 3.16. Przypisanie do znacznika.............................. 64 3.16.1. Krótki opis................................. 64 3.16.2. Cele..................................... 64 3.16.3. Wydajność................................. 64 3.16.4. Warunki wstępne.............................. 64 3.16.5. Czynności.................................. 65 3.16.6. Kategoria.................................. 65 3.16.7. Ryzyko................................... 65 3.16.8. Możliwe usprawnienia........................... 65 3.16.9. Właściciel.................................. 65 3.16.10.Możliwe rozwinięcia............................ 65 3.17. Wyświetlenie obiektu w widoku AR....................... 65 3.17.1. Krótki opis................................. 65 3.17.2. Cele..................................... 66 3.17.3. Wydajność................................. 66 3.17.4. Warunki wstępne.............................. 66 3.17.5. Czynności.................................. 66 3.17.6. Kategoria.................................. 66 3.17.7. Ryzyko................................... 66 3.17.8. Możliwe usprawnienia........................... 66 3.17.9. Właściciel.................................. 67 3.17.10.Możliwe rozwinięcia............................ 67 3.18. Robienie zdjęć trybu AR.............................. 67 3.18.1. Krótki opis................................. 67 3.18.2. Cele..................................... 67 3.18.3. Wydajność................................. 67 3.18.4. Warunki wstępne.............................. 67 3.18.5. Czynności.................................. 68 3.18.6. Kategoria.................................. 68 3.18.7. Ryzyko................................... 68 3.18.8. Możliwe usprawnienia........................... 68 3.18.9. Właściciel.................................. 68 3.18.10.Możliwe rozwinięcia............................ 68 3.19. Kupno produktu.................................. 68 3.19.1. Krótki opis................................. 68 3.19.2. Cele..................................... 68 3.19.3. Wydajność................................. 69 3.19.4. Warunki wstępne.............................. 69 3.19.5. Czynności.................................. 69 8
3.19.6. Kategoria.................................. 69 3.19.7. Ryzyko................................... 69 3.19.8. Możliwe usprawnienia........................... 69 3.19.9. Właściciel.................................. 69 3.19.10.Możliwe rozwinięcia............................ 69 4. Organizacja i przebieg prac............................. 71 4.1. Organizacja prac.................................. 71 4.2. Podział prac..................................... 71 4.2.1. Filip Daca.................................. 71 4.2.2. Maciej Kozieł................................ 73 4.2.3. Paweł Nowosad............................... 73 4.2.4. Łukasz Siczek................................ 74 5. Opis zawartości pakietu............................... 77 6. Podsumowanie..................................... 79 Bibliografia......................................... 81 9
Wprowadzenie Rozszerzona rzeczywistość jest pojęciem stosunkowo nowym i w ostatnim czasie cieszy się bardzo dużym zainteresowaniem. Z drugiej strony na rynku aplikacji mobilnych w dalszym ciągu niewiele jest użytecznych zastosowań tej technologii. Realizując nasz projekt chcieliśmy stworzyć produkt, który w ciekawy sposób wykorzysta rozszerzoną rzeczywistość urozmaicając standardowy schemat robienia zakupów internetowych. W niniejszym tekście bardzo szczegółowo opisano realizowany przez nas system, zarówno ze względu na jego architekturę i budowę ze strony technicznej, jak i wizję produktu znajdującego potencjalne miejsce na rynku. Można znaleźć tu wszystkie informacje na temat samego projektu, wszystkich części systemu oraz organizacji pracy. Praca składa się z sześciu rozdziałów. W rozdziale 1 ukazano najistotniejsze cechy projektu. Szczegółowy opis budowy i realizacji systemu zawarto w rozdziale 2. Rozdział 3 przedstawia opis najistotniejszych przypadków użycia systemu. W rozdziale 4 opisano szczegółowo przebieg i podział prac członków zespołu. Opis zawartości płyty z dostarczonym kodem aplikacji podano w rozdziale 5. W ostatnim rozdziale 6 umieszczono podsumowanie i istotne przemyślenia końcowe. 11
Rozdział 1 Wizja projektu 1.1. Wprowadzenie 1.1.1. Cel Celem tego rozdziału jest zebranie, przeanalizowanie i zdefiniowanie głównych cech systemu. W głównej mierze rozdział opisuje zrealizowany system pod kątem dostępnych funkcjonalności, spełnianych wymagań i zagadnień kluczowych dla interesantów. Ponadto pozwala na weryfikację początkowych założeń w istniejącym systemie. Rozdział pomaga stwierdzić, czy system w dostatecznym stopniu odpowiada na potrzeby klientów i zamawiających, oraz czy został zrealizowany zgodnie z założeniami. 1.1.2. Zakres Rozdział swoim zakresem obejmuje zagadnienia związane z całością systemu zrealizowanego w ramach przedmiotu Zespołowy Projekt Programistyczny, w którego skład wchodzą: aplikacja kliencka działająca na urządzeniu mobilnym, internetowy katalog produktów wraz z jego interfejsem oraz wtyczka integracyjna dla jednego z popularnych zrębów sklepu internetowego. 1.1.3. Definicje Podstawowe pojęcia używane w dokumencie pracy licencjackiej: System - w dokumencie mówimy o systemie jako o przedmiocie realizowanego projektu. Jest to w tym wypadku aplikacja kliencka na urządzenie mobilne zintegrowana z katalogiem produktów oraz dodatkowym modułem - wtyczką integracyjną dla sklepu internetowego. Sam sklep internetowy nie wchodzi w skład takowego Systemu, jedynie integruje się z nim za pomocą dodatkowego modułu. Aplikacja Kliencka - część Systemu odpowiadająca za interakcję z użytkownikiem Urządzenia Mobilnego. Jej głównym zadaniem jest prezentowanie produktów z Katalogu w trybie Rozszerzonej Rzeczywistości. Katalog (Produktów) - część Systemu odpowiadająca za przechowywanie informacji o obiektach, które mogą zostać użyte w Aplikacji Klienckiej. Jego głównym zadaniem jest katalogowanie, przechowywanie i wyszukiwanie przedmiotów, oraz udostępnianie ich dla Aplikacji 13
Klienckiej. Wtyczka / Moduł Integracyjny - część Systemu odpowiadająca za integrację dowolnego sklepu internetowego opartego o jeden z popularnych zrębów z Systemem. Jej głównym zadaniem jest umożliwienie eksportu wybranych produktów do Katalogu Produktów. AR / Rozszerzona Rzeczywistość - technologia umożliwiająca rozszerzanie otaczającej rzeczywistości o wirtualne obiekty, które do niej nie należą. W Systemie zrealizowana jest przez wyświetlanie obiektów z Katalogu Produktów bezpośrednio na obrazie z kamery Urządzenia Mobilnego. Dzięki temu Użytkownik uzyskuje złudzenie obecności nieistniejących obiektów w rzeczywistości, która go otacza. Użytkownik / Użytkownik Końcowy / Klient - użytkownik Aplikacji Klienckiej. Sklep - Sklep w niniejszym dokumencie reprezentuje sklep internetowy zintegrowany z Systemem za pomocą Modułu Integracyjnego. To pojęcie może również odnosić się do użytkownika go reprezentującego - właściciela lub administratora. Produkt / Obiekt - element, który System jest w stanie przedstawić w trybie Rozszerzonej Rzeczywistości. Mówiąc o Obiekcie poruszamy się w dziedzinie prezentacji AR. Obiekt jest wirtualnym reprezentantem Produktu w Rozszerzonej Rzeczywistości. Produkt jest rozumiany jako element Katalogu Produktów - przedmiot ze sklepu internetowego. Urządzenie Mobilne - telefon komórkowy, bądź tablet o specyfikacji określonej w dalszej części dokumentu. Znacznik - specjalny, ustalony element graficzny, który po wydrukowaniu jest rozpoznawany przez Aplikację Kliencką jako punkt odniesienia dla wyświetlanego Obiektu. 1.1.4. Omówienie reszty rozdziału W pozostałych sekcjach rozdziału omówione zostaną: założenia realizowane przez System, środowisko interesariuszy i użytkowników Systemu, jego główne funkcje i cechy, ustalenia dotyczące wszelkich wymagań. 1.2. Umiejscowienie produktu 1.2.1. Korzyści Aplikacja zastępuje tradycyjny sposób handlowania obrazami, plakatami i podobnymi elementami wystroju wnętrz, które wieszane są pionowo na ścianach. Dotychczas jedynym sposobem na zaaranżowanie wnętrza był zakup wybranych produktów oraz rozmieszczenie ich w pomieszczeniu. Jeśli okazywało się, że któryś element nie komponuje się z otoczeniem, trzeba było zwrócić go i powtórzyć cały proces w stosunku do innego przedmiotu. Nasz produkt ułatwia proces aranżacji wnętrza. Teraz bez konieczności wychodzenia z pomieszczenia oraz zakupu produktu można sprawdzić, jak pożądany obiekt prezentuje się w 14
domu. Jeśli zachodzi taka potrzeba, można wybrać kilka podobnych produktów oraz ustawić obok siebie w celu wybrania najbardziej odpowiadającego przedmiotu. 1.2.2. Postawienie problemu Problem Wypływa na Skutki problemu Skuteczne rozwiązanie spowoduje Bardzo ograniczona możliwość wyboru produktów, które najlepiej komponują się w domowych warunkach Klienci, właściciele sklepów Klient jest zmuszony kupować produkty (np. meble i obrazy) bez gwarancji, że pożądany przedmiot dobrze wkomponuje się w mieszkanie. W przypadku niewłaściwego wyboru klient musi zwrócić przedmiot. wzrost zainteresowania sklepami internetowymi oferującymi produkty do aranżacji wnętrz, bardziej przemyślana decyzja o kupnie przyczyni się do obniżenia liczby zwróconych towarów, większa liczba zadowolonych klientów, wzrost obrotów. 1.2.3. Kontekst produktu Dla Którzy Aplikacja do aranżacji wnętrz Które W przeciwieństwie do Nasz produkt Klientów i właścicieli sklepów Kupują lub sprzedają towary Jest narzędziem Umożliwia zakup uprzednio sprawdzonego produktu Tradycyjnej formy kupowania umeblowania Pozwala na wybór kilku produktów i umiejscowienie ich w dowolnym miejscu na ścianie w celu porównania z otoczeniem oraz podjęcia właściwej decyzji bez konieczności fizycznego posiadania tych obiektów. 1.3. Osoby mające wpływ na wymagania i projekt Kluczowym interesariuszem jest firma Agitive będąca pomysłodawcą oraz zleceniodawcą projektu. Podczas pracy nad realizacją systemu utrzymywaliśmy stały kontakt oraz konsultowaliśmy ważne decyzje rozwojowe. Bezpośrednich klientów możemy podzielić na dwie grupy. Pierwszą z nich są sklepy internetowe (nazywane dalej Sklepami ), które mogą prezentować swoje produkty za po- 15
średnictwem naszej aplikacji. Drugą grupą klientów są użytkownicy końcowi (nazywani dalej Klientami ). Używając naszej aplikacji, Klienci mogą przeglądać ofertę sklepów, prezentując wybrane produkty na ekranie obsługiwanego urządzenia (tabletu, lub smartphonu) w trybie Rozszerzonej Rzeczywistości. 1.3.1. Demografia rynku Rynek Sklepów Potencjalnym klientem jest praktycznie dowolny sklep internetowy, który sprzedaje produkty do aranżacji wnętrz. Jest to pierwszy tego typu projekt w Polsce, więc trudno jest określi specyfikę rynku. Jedynym wymaganiem technicznym, jest posiadanie przez Sklep systemu sprzedaży, wspieranego przez naszą aplikację. Rynek Klientów Potencjalnym klientem końcowym jest dla nas dowolny użytkownik tabletu bądź smartphona. Aktualnie obserwujemy stały wysoki wzrost liczby tych urządzeń. Do końca 2012 roku spodziewany udział smartphonów w rynku telefonów komórkowych wynosi 49 %. 1.3.2. Środowisko użytkownika Sklep Środowisko użytkownika, jako administratora sklepu, nie różni się od jego domyślnego środowiska pracy, z którego korzysta podczas wykonywania prac administracyjnych w swoim sklepie. Jednak aby administrator sklepu mógł rozpocząć pracę z naszym systemem, potrzebuje integracji swojego środowiska z Katalogiem produktów, którą zapewni instalacja modułu integracyjnego. Wymagany jest do tego, albo doświadczony administrator platformy sklepowej, albo odpowiednio przeszkolona osoba, oddelegowana z firmy zewnętrznej. Cała interakcja ze środowiskiem systemu odbywa się przez interfejs webowy. Aby dodawać produkty do katalogu, oraz nim zarządzać, wystarczy jeden, zaznajomiony z systemem użytkownik. Czas dodania produktów do katalogu jest znikomy i składa się na niego tylko zaznaczenie produktów do eksportu i potwierdzenie operacji. Każdy produkt można indywidualnie edytować, poprzez interfejs webowy. Klient Aplikacja kliencka jest dostępna do ściągnięcia za darmo w sklepie Google Play. Do uruchomienia użytkownik potrzebuje urządzenia z systemem operacyjnym Android w wersji 2.2 lub wyższej. Aplikacja do działania wymaga połączenia z Internetem. Aby skorzystać z modułu AR, użytkownik potrzebuje papierowego znacznika, który może pobrać bezpośrednio z aplikacji. 16
1.3.3. Charakterystyka osób mających wpływ na wymagania Agitive Przedstawiciele Opis Typ Kryteria sukcesu Zaangażowanie Maciej Szerling, Michał Stachowski Firma IT specjalizująca się w tworzeniu aplikacji mobilnych i webowych. Przedstawiciele zamawiającego mają duże doświadczenie w branży IT i mogą współuczestniczyć w realizowanych projektach. Odpowiedzialność: Zleca konkretne zadania. System został wykonany zgodnie ze specyfikacją. Sugeruje dobór technologii, odpowiada na pytania zespołu, dostarcza urządzenia oraz część dokumentacji. 1.3.4. Charakterystyka użytkowników Sklep Opis Typ Odpowiedzialność Kryteria sukcesu Rezultat Ma sklep internetowy i jest zainteresowany nowymi drogami dystrybucji swoich produktów. Nie jest obeznany z technologiami zastosowanymi przy produkcji i integracji modułu integracyjnego. Jego interakcja z modułem ogranicza się do interfejsu webowego. Kontroluje dodawanie produktów do katalogu i ich ewentualną modyfikację. Produkty ze sklepu są poprawnie dodawane do katalogu. Produkty znajdujące się w katalogu są prezentowane potencjalnym klientom poprzez naszą aplikację mobilną. Produkty dodane go katalogu zwiększają atrakcyjność aplikacji mobilnej dla użytkowników końcowych; większy wybór przedmiotów, które można obejrzeć / kupić. Klient Opis Typ Ma urządzenie z systemem Android oraz naszą aplikację i jest zainteresowany znalezieniem i ewentualnym zakupem przedmiotu z katalogu produktów. Nie musi mieć żadnej specjalistycznej wiedzy. 17
Kryteria sukcesu Znalazł produkt którym był zainteresowany, oraz zobaczył poprzez moduł AR, jak będzie się prezentował w docelowym otoczeniu. Dokonał zakupu wybranego towaru. 1.3.5. Alternatywy i konkurencja Z przeprowadzonej analizy wynika, że technologia AR nie jest wykorzystywana na szeroką skalę przez firmy działające w handlu detalicznym. Rozszerzona Rzeczywistość została użyta jako rozbudowanie papierowego katalogu produktów IKEA. Aplikacja jest dostępna bezpłatnie w Google Play. Innym ciekawym zastosowaniem jest wirtualne przymierzanie butów. Jednakże aplikacja, która ma realizować tą funkcjonalność jest jeszcze niedostępna, została tylko zaprezentowana na Dworcu Centralnym w Hamburgu w kwietniu 2012 roku. 1.4. Omówienie produktu 1.4.1. Umiejscowienie produktu Nasz projekt składa się z 3 współpracujących ze sobą produktów, z których 2 są całkowicie niezależne od zewnętrznych systemów, a mianowicie aplikacja kliencka dla Androida oraz serwis internetowy z katalogiem produktów. Natomiast moduł integracji z naszą usługą dla sklepów internetowych jest komponentem systemu sklepowego Magento. Jest on pośrednikiem w komunikacji pomiędzy naszym katalogiem produktów, a sklepem naszego klienta. Taki pośrednik pełni rolę tłumacza, który wie w jaki sposób wykonać polecenia określone w naszym API za pomocą API systemu sklepowego, którego jest komponentem. Dzięki takiemu rozwiązaniu nasz serwer może swobodnie komunikować się ze sklepem niezależnie od używanego przez klienta systemu. Nasz komponent do realizacji swoich funkcjonalności wymaga w ramach sklepu dostępu do modułów odpowiedzialnych za katalog produktów oraz udostępnianie szczegółów na temat wybranego produktu. Dostęp do szczegółów wybranych produktów będzie wymagał wcześniejszej zgody właściciela. 1.4.2. Podsumowanie możliwości System wizualizacji produktów z użyciem AR Korzyści klienta Szeroka oferta produktów. Łatwy zakup produktów. Możliwość zweryfikowania rzeczywistego wyglądu produktu w pomieszczeniu. Cechy Łatwa integracja sklepów z naszym serwisem. Aplikacja umożliwia szybkie przejście do strony produktu w serwisie klienta. Umieszczanie z możliwością edycji wybranych produktów na żywo na obrazie z kamery. 18
Korzyści klienta Łatwe wyszukiwanie i przeglądanie produktów. Cechy Klasyfikowanie produktów do różnych kategorii oraz możliwość definiowania i stosowania filtrów. System katalogu produktów Korzyści klienta Łatwa integracja z systemem katalogu. Łatwe zarządzanie produktami w katalogu. Powiększeniu grupy odbiorców. Cechy Możliwość dodania do serwisu sklepowego komponentu umożliwiającego zarządzanie produktami w naszym katalogu. Zarządzanie produktami w katalogu możliwe jest za pomocą dwóch alternatywnych metod. Pierwszą z nich jest moduł do systemu klienta, który umożliwia edycję z poziomu serwisu sklepu. Drugą jest strona internetowa naszego katalogu. Nowa grupa potencjalnych klientów dzięki zastosowaniu technologii AR, która przyciąga nowych klientów oraz zwiększa szansę zakupu produktu. 1.4.3. Założenia i zależności Projekt do działania będzie wymagał następujących kompomentów: Android w wersji 2.2 lub nowszej, Vuforia,.Net w wersji 4.5 lub nowszej, Microsoft Azure, Magento w wersji 1.7 lub nowszej. W przypadku jeśli któryś z systemów okaże się niedostępny w trakcie realizacji projektu, wizja będzie wymagała modyfikacji. 1.4.4. Koszta Aplikacja kliencka do przeglądania produktów będzie dystrybuowana za darmo poprzez Google Play, który pozwala bez dodatkowych opłat rozprowadzać darmowe aplikacje. 19
Podobnie jest w przypadku katalogu, którego sama dystrybucja nie będzie generowała żadnych kosztów, ponieważ zarządzanie produktami będzie odbywało się za pomocą serwisu internetowego znajdującego się na naszych serwerach oraz dostępnego za darmo do pobrania modułu do sklepu klienta. Głównym źródłem kosztów naszego systemu będzie utrzymywanie serwerów, które będą znajdowały się w chmurze Windows Azure. Takie rozwiązanie będzie obarczone koniecznością opłacania comiesięcznego abonamentu, którego kwota będzie zależała od rozmiaru przestrzeni dyskowej, rozmiaru bazy danych, liczby maszyn wirtualnych, czasu zużycia procesora oraz wyjściowego transferu internetowego zużywanych nasz serwer. Z kolei te parametry są bezpośrednio powiązane z liczbą klientów oraz ich zapotrzebowaniem na rozmiar dostępnego miejsca na produkty i ruchu internetowego jaki generują ich klienci. Stąd nasza usługa będzie sprzedawana w formie comiesięcznego abonamentu, którego kwota będzie uzależniona od zapotrzebowania klienta na powyżej wymienione parametry oraz od marży, która będzie stanowiła główny przychód dla tego projektu. 1.4.5. Licencjonowanie i instalacja Instalacja aplikacji klienckiej dla Androida odbywa się automatycznie poprzez sklep Google Play i nie wymaga żadnej dodatkowej konfiguracji. Aktualizacja programu będzie odbywała się podobnie jak instalacja za pośrednictwem dostępnego sklepu. W przypadku sklepów instalacja dla serwisu internetowego polega na założeniu konta i wygenerowania hasła z dostępem do strony zarządzania katalogiem oraz opcjonalnie zintegrowania naszego modułu z serwisem sklepowym klienta. Aktualizacje serwisu do zarządzania katalogiem odbywają się bezpośrednio na serwerze, co nie wymaga żadnych dodatkowych czynności od klienta. Instalacja serwisu z katalogiem będzie wymagała konta w chmurze Windows Azure oraz wyeksportowania tam wcześniej przygotowanej paczki zawierającej certyfikaty i klucze wygenerowane dla serwera. Instalacja modułu do serwisu sklepowego odbywa się zgodnie ze standardem rozszerzeń Magento. 1.5. Własności produktu 1.5.1. Funkcjonalność Aplikacji Klienckiej Główną funkcjonalnością udostępnianą przez Aplikację Kliencką jest prezentacja obiektów na obrazie z kamery (tryb AR), bazując na rozpoznanym Znaczniku. Ponadto aplikacja umożliwia manipulowanie wyświetlonymi obiektami - przesuwanie w pionie / poziomie oraz zmniejszanie i obracanie. Obiekty, które Aplikacja Kliencka może wyświetlać w trybie AR, mogą zostać pobrane z Katalogu Produktów, bądź z galerii Urządzenia Mobilnego. W tym celu Katalog Produktów udostępnia odpowiedni interfejs programistyczny umożliwiający Aplikacji Klienckiej przeglądanie i wyszukiwanie obiektów z Katalogu. 20
Aplikacja Kliencka ma możliwość prezentacji podstawowych informacji o produktach, przy czym szczególnie wyeksponowany jest zestaw produktów specjalnych (na przykład objętych promocją) - wyróżnionych przez Katalog, na jednym z ekranów. Każdy obiekt może zostać zakupiony w powiązanym z nim sklepie internetowym - Aplikacja Kliencka pozwala na wyświetlenie strony wybranego przedmiotu w zewnętrznej przeglądarce Urządzenia Mobilnego oraz dokonanie zakupu. 1.5.2. Obsługa i własności Katalogu Produktów Katalog Produktów pełni rolę bazy danych obiektów, które mogą zostać użyte w Aplikacji Klienckiej w trybie AR. Katalog za pośrednictwem interfejsu programistycznego pozwala Aplikacji Klienckiej na wyszukiwanie obiektów przy użyciu określonych filtrów i kategorii, przeglądanie dostępnych obiektów oraz pobranie wybranych obiektów w celu wyświetlenia ich w trybie AR. Ponadto udostępnia Aplikacji Klienckiej zbiór kilku produktów określonych jako wyszczególnione (na przykład w ramach promocji). Katalog Produktów za pośrednictwem interfejsu webowego pozwala upoważnionemu użytkownikowi na wykonywanie czynności administracyjnych takich jak dodawanie lub edycja przechowywanych produktów. Dodatkowo administrator katalogu może definiować własne kategorie, filtry wyszukiwania oraz grupy produktów wyszczególnionych. Dzięki interfejsowi dostarczanemu przez Moduł Integracyjny, Katalog może importować dane o przedmiotach z dowolnego sklepu, który taki moduł posiada. Może również aktualizować informacje o zaimportowanych produktach. 1.5.3. Integracja ze sklepem internetowym - cechy Modułu Integracyjnego Moduł Integracyjny umożliwia integrację sklepu internetowego opartego na jednym z najpopularniejszych zrębów z Systemem. W szczególności Moduł Integracyjny zrealizowany jest tak, aby upoważniony administrator sklepu mógł w łatwy sposób dołączyć go do swojego sklepu i dodać wybrane przedmioty do Katalogu Produktów za pośrednictwem interfejsu dostarczanego przez sklep. Moduł Integracyjny w nieznaczny sposób zmienia interfejs sklepu, tak aby umożliwić administratorowi wykonanie stosownych czynności. Administrator sklepu wybierając produkty, które chciałby umieścić w Katalogu, powinien dostarczyć dodatkowe informacje takie jak tekstura, która wystąpi w widoku AR. 1.6. Ograniczenia Aplikacja działa tylko na urządzeniach z systemem Android w wersji 2.2 lub wyższej posiadających aparat o matrycy co najmniej 5 Mpix. 21
Aplikacja umożliwia wyświetlanie jednocześnie maksymalnie pięciu obiektów. Aplikacja nie obsługuje procesu kupowania produktów, tylko udostępnia odsyłacz do sklepu z wybranym przedmiotem. Aplikacja obsługuje wyłącznie zarejestrowane znaczniki. 1.7. Założenia jakościowe Docelowa dostępność katalogu produktów: 99% w skali roku. Docelowy maksymalny średni (z danego dnia) czas odpowiedzi API katalogu produktów: 40 ms (czas przez który serwer będzie przetwarzał zadanie; nie obejmuje czasów transmisji danych). Aplikacja mobilna jest w stanie rozpoznać znacznik, wydrukowany na kartce rozmiaru A4, w zakresie odległości 40 cm do 3 m. Interfejs aplikacji mobilnej jest intuicyjny w takim stopniu, że korzystający z niego przeciętny użytkownik nie potrzebuje instrukcji obsługi. 1.8. Priorytety Najważniejszym priorytetem dla aplikacji na Androida jest jak najefektywniejsze przetwarzanie obrazu z kamery i wyświetlanie jak najpłynniej na nim obserwowanych obiektów, ponieważ ma to wpływ na komfort użytkowania aplikacji i liczba klientów z niej aktywnie korzystających, co jest najważniejszym czynnikiem sukcesu tego projektu. Drugim równorzędnym priorytetem jest szybkie pobieranie i przetwarzanie informacji z katalogu, co pozwoli skrócić czas oczekiwania użytkownika na załadowanie produktów, co będzie znów skutkowało lepszym komfortem użytkowania aplikacji. Mniej ważnym, ale nadal istotnym celem, jest możliwość jak najbardziej elastycznego dopasowywania filtrów oraz kategorii umożliwiających zawężenie listy produktów do tylko tych poszukiwanych przez użytkownika. Najważniejszym priorytetem dla katalogu jest jak najbardziej elastyczne zarządzanie produktami, tak aby sklep mógł jak najszerzej zaprezentować swoją ofertę, a zarazem musiał poświęcić jak najmniej czasu na jej przygotowanie, co jest bardzo ważnym argumentem za skorzystaniem z naszych usług dla właściciela sklepu. Drugim bardzo ważnym priorytetem jest zapewnienie jak największego bezpieczeństwa poufnych danych przechowywanych przez klienta w naszym serwisie. Najważniejszym priorytetem dla modułu sklepowego jest zapewnienie bezproblemowej integracji sklepu z katalogiem produktów. Moduł Integracyjny powinien umożliwiać prosty eksport wybranych produktów do katalogu, aktualizację informacji o przedmiotach i skuteczne zarządzanie obiektami przeznaczonymi do podglądu w trybie rozszerzonej rzeczywistości. Ponadto dużym priorytetem jest przeźroczystość wtyczki integracyjnej. Powinna ona w możliwie najmniejszym stopniu ingerować w domyślny interfejs użytkownika i nie wychodzić poza standardy narzucone przez zrąb. 22
1.9. Inne wymagania 1.9.1. Standardy Aplikacja kliencka jest zgodna ze standardem projektowania interfejsu obowiązującym na platformie Android. Katalog Produktów został zrealizowany zgodnie ze wzorcem model - view - controller (MVC), w technologii ASP.NET. Moduł Integracyjny został napisany zgodnie ze standardem tworzenia wtyczek do zrębu Magento. Komunikacja z Katalogiem Produktów opiera się na wymianie obiektów typu JSON przez protokół HTTP. 1.9.2. Wymagania systemowe Katalog Produktów jest utrzymywany na środowisku Microsoft Azure. Wymagana jest płatna subskrybcja w programie. Moduł Integracyjny, jako wtyczka do istniejącego systemu, dzieli wymagania systemowe z aplikacją Magento - uruchomiona jest w tym samym środowisku co sklep. 1.9.3. Wymagania środowiska Korzystanie z trybu Rozszerzonej Rzeczywistości wymaga odpowiedniego oświetlenia oraz kolorowych znaczników w formacie A4 umieszczonych na ścianie, w odległości nie większej niż 3 metry od urządzenia mobilnego z Aplikacją Kliencką. Moduł Integracyjny dzieli wymagania środowiska razem z systemem działającym ze zrębem Magento. Program przygotowany dla systemu operacyjnego M$ Windows uruchamia się energicznym dwumlaskiem na jego ikonce w folderze \\FIDO\FOO\BLABA. Następnie kolistym ruchem ręki należy naprowadzić kursor na menu Blabaliza i uaktywnić pozycję Otwórz plik. Po wybraniu pliku i zatwierdzeniu wyboru przyciskiem OK rozpocznie się proces blabalizy. Wyniki zostaną zapisane w pliku o nazwie 99-1a.tx.43 w bieżącym folderze. 23
Rozdział 2 Architektura 2.1. Wprowadzenie 2.1.1. Cel W tym rozdziale przestawiono kompleksowy przegląd architektury, ukazując ją z różnych perspektyw w celu unaocznienia wielu odmiennych aspektów branych pod uwagę przy konstruowaniu systemu. Celem tego przeglądu jest wskazanie i wyjaśnienie najważniejszych decyzji dotyczących architektury, które zostały podjęte w fazie projektowania. 2.1.2. Zakres Rozdział ten opisuje podstawowe założenia, idee i pomysły, którymi kierowano się podczas realizacji systemu i wszystkich jego elementów: Aplikacji Klienckiej, Katalogu Produktów oraz Modułu Zewnętrznego. 2.1.3. Omówienie reszty rozdziału Podrozdział 2 - Ukazuje, względem jakich perspektyw przedstawiana jest architektura systemu. Podrozdział 3 - Opisuje kluczowe względem architektury wymagania i zależności dotyczące oprogramowania, technologii, narzędzi i sposobu wytwarzania oprogramowania. Podrozdział 4 - Ilustruje najbardziej kluczowe przypadki użycia systemu ze szczególnym zwróceniem uwagi na role poszczególnych elementów architektury systemu. Podrozdział 5 - Dokonuje logicznej dekompozycji systemu. Podrozdział 6 - Przedstawia rolę i komunikację procesów działających w obrębie systemu. Podrozdział 7 - Przedstawia sposób wdrożenia systemu i instalacji poszczególnych elementów. Podrozdział 8 - Ukazuje sposób, w jaki zaimplementowano omawiany system. Podrozdział 9 - Wyjaśnia logiczne zagadnienia związane z przechowywaniem danych w systemie. 25
Podrozdział 10 - Przedstawia architekturę z perspektywy czynników mających znaczny wpływ na wydajność systemu. Podrozdział 11 - Ilustruje, w jaki sposób poszczególne rozwiązania zastosowane przy realizacji systemu, wpływają na kryteria jakości. 2.2. Prezentacja architektury systemu Architektura systemu ukazuje jego budowę i infrastrukturę na wysokim poziomie abstrakcji, aby pojąć działanie poszczególnych elementów oraz decyzje podjęte podczas projektowania i implementacji. Analiza architektury pozwala zrozumieć zagrożenia i trudności, z jakimi spotkano się podczas realizacji systemu, oraz poznać rozwiązania, dzięki którym rozwiązano poszczególne problemy. Model systemu jest przedstawiony poprzez analizę następujących zagadnień: 2.2.1. Przypadki użycia Przedstawia najbardziej kluczowe dla systemu przypadki jego użycia. Opisywane przypadki zostały wybrane tak, aby podczas ich analizy możliwe było ukazanie najistotniejszych aspektów architektury - podziału na moduły i komunikacji pomiędzy nimi. 2.2.2. Dekompozycja logiczna Przedstawia logiczny podział systemu na konkretne moduły, a w obrębie modułów na oddzielne elementy realizujące daną funkcjonalność. Szczegółowo opisuje rolę i zakres danego elementu logicznego. 2.2.3. Dekompozycja na procesy Przedstawia architekturę systemu ze względu na procesy w nim działające. Ukazuje ich rolę, wzajemną komunikację i okoliczności, w jakich działają. 2.2.4. Instalacja systemu Opisuje sprzęt, infrastrukturę i środowisko potrzebne do wdrożenia całości systemu. Każdy z głównych modułów systemu wymaga innego środowiska i innych czynności do wykonania pełnego wdrożenia. 2.2.5. Implementacja systemu Przedstawia podział systemu na warstwy ukazując ich role i zależności między nimi. Zawiera również opis najważniejszych klas i metod. 2.3. Założenia i zależności 2.3.1. Technologia System składa się z trzech odrębnych części. Ten podział ma swoje odzwierciedlenie w doborze narzędzi programistycznych. 26
Aplikacja mobilna została przygotowana z myślą o systemie Android, w związku z tym powstała w Javie. Dodatkowo do zaprogramowania modułu Rozszerzonej Rzeczywistości została wykorzystana zewnętrzna biblioteka, Vuforia, która jest napisana w C++. Cześć związana z katalogiem produktów powstała przy wykorzystaniu technologii.net. Wykorzystany został język Visual Basic, Azure Cloud oraz wzorzec MVC. Ostatnia warstwa systemu jest wtyczką dedykowaną do Magento, stąd z konieczności została przygotowana w PHP. 2.3.2. Oprogramowanie Moduł integracyjny powstał jako wtyczka do zrębu Magento. Z tego powodu konieczne było skorzystanie z serwera HTTP Apache 2 oraz bazy danych MySQL, których używa system macierzysty. 2.3.3. Narzędzia Przy pracy nad systemem wykorzystywane były narzędzie wspomagające programowanie: Eclipse (aplikacja mobilna i wtyczka do Magento) oraz Microsoft Visual Studio 2010 (część katalogowa). Powyższe narzędzia są bezpłatnie dostępne dla studentów, co miało kluczowe znaczenie przy ich wyborze. 2.3.4. Transfer danych Ważną cześć systemu stanowi transfer danych pomiędzy warstwami systemu. Przy oprogramowaniu mechanizmów komunikacji został położony duży nacisk na kwestie bezpieczeństwa oraz minimalizację ilości przesyłanych danych. 2.3.5. Zespół Projekt został zrealizowany wyłącznie przez czteroosobowy zespół w ramach rocznego proseminarium licencjackiego Zespołowy projekt programistyczny na Wydziale Matematyki, Informatki i Mechaniki Uniwersytetu Warszawskiego. 2.3.6. Harmonogram Przed rozpoczęciem prac nad wykonaniem systemu, wspólnie z zamawiającym został przygotowany harmonogram. Realizacja projektu następowała zgodnie z przyjętymi terminami. Szczegółowy harmonogram jest zawarty w załączniku. 2.3.7. Dokumentacja techniczna Niezbędnym składnikiem projektu jest udokumentowanie techniczne pracy umożliwiające rozwijanie systemu. Dokumentacja została przygotowana przy użyciu narzędzia Doxygen oraz phpdocumentor. 27
2.4. Przegląd przypadków użycia 2.4.1. Wyeksportowanie wybranych produktów do Katalogu Krótki opis Administrator Sklepu (Aktor) może zażądać umieszczenia wybranych produktów ze Sklepu w Katalogu Produktów, skąd będą one mogły zostać pobrane przez Aplikację Kliencką i zaprezentowane w trybie AR. Dokonuje tego przez wybranie odpowiednich przedmiotów z listy i potwierdzenie wyboru przyciskiem. Jest to kluczowy przypadek użycia, w którym największą rolę odgrywa Moduł Integracyjny. Cele Umieszczenie wybranego produktu ze Sklepu w Katalogu Produktów, bądź aktualizacja danych o wybranym przedmiocie, jeśli już znajdują się one w Katalogu. Warunki wstępne Sklep internetowy oparty na zrębie Magento z Modułem Integracyjnym, Nowoczesna przeglądarka internetowa z dostępem do Internetu, Prawa dostępu do panelu administracyjnego Sklepu, Sklep internetowy zarejestrowany w Katalogu Produktów, Co najmniej jeden produkt przystosowany do prezentacji w trybie AR.. Czynności wraz z prezentacją architektury 1. Aktor wchodzi na stronę internetową swojego Sklepu. (*) 2. Aktor loguje się do panelu administratora. (*) 3. Aktor przechodzi do widoku Modułu Integracyjnego wybierając odpowiednią pozycję z menu. (*) Kontroler Widoków Modułu Integracyjnego odpowiada za przekazanie odpowiedniej treści do przeglądarki Użytkownika. 4. Aktor znajduje na liście przedmiotów ten, który chce wyeksportować do Katalogu. Za realizację tego etapu odpowiada Interfejs Webowy Modułu Integracyjnego, który przekazuje Użytkownikowi listę przedmiotów pobranych z bazy przy pomocy Kontrolera Bazy Danych. 5. Na końcu za pomocą przycisku Export eksportuje wybrany produkt do Katalogu. Ten etap przypadku użycia jest realizowany przez Moduł Komunikacji z Katalogiem. 6. Po pomyślnym dodaniu obiektów do Katalogu, System wyświetla Aktorowi informację o powodzeniu operacji. Za wyświetlenie komunikatu odpowiada ponownie Interfejs Webowy, a samą treść komunikatu dostarcza Moduł Komunikacji z Katalogiem. (*) - czynności, których przebieg zależy od używanego zrębu 28
2.4.2. Importowanie produktów do katalogu Krótki opis Cele Administrator Sklepu chce automatycznie dodać przygotowane produkty do Katalogu. Zaimportowanie produktów poprzez Moduł Integracyjny w celu dodania ich do bazy danych Katalogu. Warunki wstępne Po stronie modułu integracyjnego sklepu, produkty muszą wcześniej zostać poprawnie przygotowane. Czynności podstawowe 1. Administrator sklepu loguje się do katalogu produktów (interfejs www Katalogu). 2. Wchodzi do zakładki zarządzania produktami, gdzie klika na przycisk Importuj produkty. 3. Produkty są automatycznie importowane, po czym wyświetla się informacja o pomyślnie zakończonym zadaniu. W tym punkcie aplikacja korzysta z API do komunikacji z Modułem Integracyjnym i zapisuje dane używając kontrolera bazy danych. 2.4.3. Wyszukiwanie obiektów Krótki opis Użytkownik Aplikacji Klienckiej (Aktor) korzystając z wyszukiwarki chce wyszukać wszystkie produkty znajdujące się w Katalogu Produktów, które są powiązane z frazą przez niego wpisaną. Zapytanie o wyszukanie produktów zostanie wysłane z Aplikacji Klienckiej do Katalogu Produktów, a następnie w odpowiedzi zostaną pobrane wyniki wyszukiwania i zaprezentowane użytkownikowi w Aplikacji Klienckiej. Następnie użytkownik będzie mógł wybrać interesujące go produkty i wyświetlić ja w widoku AR. Cele Aktor korzystając z Aplikacji Klienckiej chce znaleźć wszystkie dostępne produkty w Katalogu Produktów powiązane z jakąś konkretną frazą. Warunki wstępne Aplikacja Kliencka posiada dostęp do Internetu. Czynności wraz z prezentacją architektury 1. Aktor naciska przycisk Q, co powoduje pojawienie się w Aplikacji Klienckiej pola tekstowego na frazę wyszukiwania. 2. Aktor wpisuje w pole, które się pojawiło, frazę według, której chce wyszukać obiekty. 29