272 lines
15 KiB
TeX
272 lines
15 KiB
TeX
\chapter{Dokumentacja}
|
|
|
|
\section{Zakres projektu}
|
|
\enlargethispage{3\baselineskip}
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{zakres_projektu.png}
|
|
%\caption{Wykres z Google Trends}
|
|
\label{fig:zakres_title}
|
|
\end{figure}
|
|
|
|
\subsection{Cele projektu}
|
|
|
|
Celem projektu jest zbudowanie aplikacji na telefon, która z jednej strony pozwala opiekunom na przydzielanie zadań dzieciom, a z drugiej wykorzystując elementy gamifikacji motywuje dzieci do ich wykonania. Dzieci tworzą i rozwijają swoje awatary.
|
|
|
|
\subsection{Wyszczególnione produkty projektu}
|
|
|
|
Aplikacja mobilna z pełniąca dwie funkcje - dla dziecka i opiekuna, serwer, baza danych, dokumentacja biznesowa (zasady korzystania), wymagania, zakres projektu, prace dyplomowe, dokumentacja REST API, co najmniej 50 obrazków ekwipunku, raport z przeprowadzonych testów.
|
|
|
|
\subsection{Opis zakresu produktów oczekiwanych przez klienta}
|
|
|
|
Załącznik nr 1: Wymagania projektu w podrozdziale \ref{wymagania_projektu}
|
|
|
|
\subsection{Wymagania projektowe}
|
|
|
|
Z uwagi na specyfikę grupy docelowej, którą są dzieci w wieku wczesnoszkolnym i najczęściej ich rodzice, priorytetami w projekcie są łatwość użycia, interesująca treść i estetyczny wygląd aplikacji. Należy przeprowadzić testy użyteczności. Trzeba zapewnić odporność na błędy i spójność prezentowanych danych pomiędzy instancjami aplikacji, ponieważ mają decydujący wpływ na jakość produktu niezależnie od charakterystyki użytkownika.
|
|
|
|
\subsection{Wymagania niefunkcjonalne}
|
|
|
|
Urządzenie mobilne (smartfony, tablety) z systemem Android w wersji 4.1+, dostęp do internetu, email.
|
|
|
|
\subsection{Granice projektu}
|
|
|
|
Aplikacja umożliwia nawiązywanie relacji opiekun dziecko, w ramach której delegować można zadania. Aplikacja nie dostarcza narzędzi do realizacji tych zadań, tj. gier edukacyjnych, przypomnień, edytora tekstu itp. W wersji 1.0 użytkownik nie będzie miał możliwości zakupu dodatkowych przedmiotów; aplikacja nie będzie miała elementów płatnych. Na razie nie ma w planach wersji aplikacji na iOS.
|
|
|
|
\subsection{Kryteria akceptacji produktu}
|
|
|
|
Kryterium akceptacji produktu to jego publiczne udostępnienie w sklepie z aplikacjami (Google Play lub podobne). Poza tym do akceptacji projektu konieczne jest zakończenie testów w grupie dzieci i w miarę możliwości wdrożenie odkrytych niedociągnięć, pozytywna opinia pedagoga i dydaktyka.
|
|
|
|
\subsection{Ograniczenia projektowe}
|
|
|
|
Docelową platformą jest Android. Prace nad pierwszą pełną wersją produktu powinny zakończyć się z początkiem 2017 roku. Na dostarczenie projektu może mieć wpływ przebieg testów z dziećmi, sprawność w ich przeprowadzaniu, liczba chętnych dzieci. Dodatkową trudnością może być brak doświadczenia w projektach informatycznych zespołu i mało czasu.
|
|
|
|
\subsection{Organizacja projektu}
|
|
|
|
Zespół projektowy składa się z 4 osób.
|
|
Zofia Drozd - projekt interfejsu i implementacja części aplikacji związanej z widokiem.
|
|
Anna Gabler - implementacja części aplikacji związanej z widokiem, testy UX.
|
|
Dawid Jurkiewicz - serwer, baza danych, restowe API, autoryzacja
|
|
Eliza Nowacka - projekt interfejsu i implementacja części aplikacji związanej z widokiem.
|
|
|
|
Joanna Wetesko - członek zespołu projektowego na przedmiocie Architektura oraz projektowanie aplikacji webowych; komunikacja między warstwami aplikacji, implementacja elementów interfejsu.
|
|
|
|
Opiekunem projektu w ramach przedmiotu Projekt Inżynierski jest dr Jacek Marciniak.
|
|
Dodatkowo część projektu stanowi zaliczenie na zajęciach Architektura oraz projektowanie aplikacji webowych prowadzonego przez GFT Polska.
|
|
|
|
Docelowi użytkownicy to mikrospołeczności skupione wokół różnorakich kursów, przedmiotów szkolnych, grup koleżeńskich, życia rodzinnego. Nauczyciele, pedagodzy, rodzice, dzieci w wieku wczesnoszkolnym.
|
|
|
|
\subsection{Zidentyfikowane ryzyka}
|
|
|
|
Brak zrozumienia rynku, nietrafienie z pomysłem, bądź niedopasowanie treści do odbiorcy. Pojawienie się nieoczekiwanej konkurencji. Niemożność osiągnięcia założeń projektu z powodu niedostatecznych umiejętności członków zespołu. Brak czasu.
|
|
|
|
\newpage
|
|
\subsection{Struktura systemu}
|
|
\enlargethispage{6\baselineskip}
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=0.75\textwidth]{diagram_wdrozeniowy.png}
|
|
\caption{Diagram wdrożeniowy}
|
|
\label{diagram_wdrozeniowy}
|
|
\end{figure}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=0.92\textwidth]{diagram_komponentow.png}
|
|
\caption{Diagram komponentów}
|
|
\label{diagram_komponentow}
|
|
\end{figure}
|
|
|
|
\subsection{Schemat bazy danych}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\makebox[\textwidth][c]{\includegraphics[width=1.2\textwidth]{baza_danych.png}}
|
|
\caption{Schemat bazy danych}
|
|
\label{diagram_komponentow}
|
|
\end{figure}
|
|
|
|
\newpage
|
|
\subsection{Projekt graficzny aplikacji - struktura informacji}
|
|
|
|
\noindent {\Large Część dziecka:\par}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{czesc_dziecka.png}
|
|
\caption{Część dziecka}
|
|
\label{czesc_dziecka}
|
|
\end{figure}
|
|
|
|
\noindent {\Large Część opiekuna:\par}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{czesc_opiekuna.png}
|
|
\caption{Część opiekuna}
|
|
\label{czesc_opiekuna}
|
|
\end{figure}
|
|
|
|
|
|
\subsection{Zestawienie wykonanych składowych systemu z podziałem na wykonawców}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{skladowe_systemu.png}
|
|
\label{skladowe_systemu}
|
|
\end{figure}
|
|
|
|
\subsection{Dokumentacja web serwisu}
|
|
|
|
Załącznik nr 2: Dokumentacja web serwisu w podrozdziale \ref{dokumentacja_api}
|
|
|
|
\subsection{Raporty z testów aplikacji}
|
|
|
|
\textbf{Raport 1}
|
|
|
|
\noindent Dzieci (klasa III) w Szkole Podstawowej nr 3 w Luboniu zostały zapytane o:
|
|
\begin{itemize}
|
|
\item Z jakich telefonów korzystają;
|
|
\item Jakie aplikacje im się podobają i co im się w nich podoba;
|
|
\item Czy instalują samodzielnie czy pomagają im rodzice;
|
|
\end{itemize}
|
|
|
|
\noindent\textbf{Wynik:}
|
|
|
|
Większość korzysta z telefonu z systemem Android wersje systemu 4+; aplikacje które się podobają to zazwyczaj gry zręcznościowe. Dzieci instalują aplikacje samodzielnie.
|
|
Test ten miał na celu rozeznanie się czy warto robić aplikację na Androida i czy dzieci samodzielnie korzystają z telefonów komórkowych oraz z jakich aplikacji korzystają najczęściej.
|
|
|
|
\noindent\textbf{Raport 2}
|
|
|
|
Ta sama grupa badanych w pomniejszonym składzie (5 osób, wiek 7-9 lat, różny stopień rozwoju intelektualnego) testowały aplikację. Przełączali ekrany, byli pytani czy używa im się wygodnie aplikacji, czy podoba się kolorystycznie. Nie zgłaszali żadnych uwag, podobały im się bardzo obrazki. Każde z dzieci nie miał problemów z logowaniem i nawigacją po aplikacji.
|
|
|
|
\noindent\textbf{Raport 3}
|
|
|
|
Grupa badanych - opiekunowie, rodzice (3 osoby).
|
|
Nie mieli kłopotów z dodawaniem zadań, nawigacją po aplikacji - była intuicyjna. Z relacji wynikało, że aplikacja jest podobna w obsłudze do innych stąd też nie mieli problemu z nawigacją. Została pozytywnie zrecenzowana przez rodziców - chcieliby aby ich dzieci były zmotywowane do codziennych obowiązków.
|
|
|
|
\noindent\textbf{Raport 4}
|
|
|
|
Dzieci były zapytane czy “gra” się podoba oraz czy ubrania są wystarczająco zachęcające do robienia zadań nadanych przez rodziców. Zapytano czy potrzebny byłby samouczek do obsługi aplikacji - okazuje się, że nie, ponieważ niektóre z badanych dzieci nie potrafią czytać a aplikacja jest na tyle intuicyjna i łatwa w obsłudze (nie ma zbyt wielu funkcji), że nie potrzeby wprowadzenia “samouczka”.
|
|
|
|
\chapter{Załączniki}
|
|
|
|
\section{Załącznik nr 1: Wymagania projektu} \label{wymagania_projektu}
|
|
\enlargethispage{4\baselineskip}
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=1\textwidth]{wymagania_projektu.png}
|
|
%\caption{Wykres z Google Trends}
|
|
\label{fig:wymagania_projektu}
|
|
\end{figure}
|
|
|
|
\newpage
|
|
\noindent {\LARGE \textbf{Słownik pojęć:}\par}
|
|
|
|
\begin{description}
|
|
\item [Opiekun] - rodzic, nauczyciel, wychowawca, który może dodać / odjąć punkty dziecku za wykonanie lub niewykonanie zadań przez niego wyznaczonych. Każdemu opiekunowi może podlegać więcej niż jedno dziecko.
|
|
|
|
\item [Dziecko] - podopieczny opiekuna. Każde dziecko może podlegać więcej niż jednemu opiekunowi.
|
|
|
|
\item [Pieniądze] - wirtualna waluta, którą dziecko otrzymuje za oceny, pochwały i wykonane wyzwania. Może je później wymienić na ekwipunek.
|
|
\item [Punkty doświadczenia] - wyznacznik aktywności dziecka. Po przekroczeniu określonej liczby punktów następuje awans na kolejny poziom.
|
|
\item [Punkty zdrowia] - wyznacznik sumienności w wykonywaniu zadań przez dziecko. Dziecko traci punkty, jeśli nie wykona wyzwania. Wyczerpanie punktów zdrowia prowadzi do utraty poziomu i jednego przedmiotu z ekwipunku (z wyłączeniem przedmiotów dodatkowych). Punkty uzupełniają się po zdobyciu nowego poziomu.
|
|
|
|
\item [Poziom] - jednostka wyrażająca postęp dziecka zależna od punktów doświadczenia. Kolejne poziomy dziecko zdobywa poprzez przekraczanie progów punktowych.
|
|
\item [Awatar] - postać reprezentująca dziecko i jego osiągnięcia. Dziecko ma możliwość jego rozwoju poprzez dostosowanie wyglądu i zakup nowych części ekwipunku.
|
|
\item [Ekwipunek] - przedmioty, które dziecko może kupić za pieniądze. Części ekwipunku, które wybierze pojawiają się na obrazku awatara.
|
|
\item [Przedmiot] - element ekwipunku.
|
|
\item [Wyzwanie] - zadanie do wykonania powierzone przez opiekuna.
|
|
\item [Powiadomienie] - wiadomość informująca o ostatnich zmianach w koncie użytkownika.
|
|
\item [Zaproszenie] - oferta połączenia kont opiekuna i dziecka, która skutkuje utworzeniem awatara
|
|
\end{description}
|
|
|
|
\noindent {\LARGE \textbf{Funkcjonalnośći wersja 1.0}\par}
|
|
|
|
\begin{enumerate}[label=\textbf{\arabic*})]
|
|
\item \textbf{UC1: Łączenie kont dzieci z kontami opiekunów}\newline
|
|
Opiekun/dziecko wysyła zaproszenie do dziecka/opiekuna po czym strona przeciwna akceptuje lub odrzuca prośbę.
|
|
|
|
\item \textbf{UC2: Tworzenie awatara}\newline
|
|
Po połączeniu konta dziecka z kontem opiekuna tworzony jest nowy awatar.
|
|
Dziecko po wejściu do aplikacji jest przeniesione do kreatora postaci.
|
|
|
|
\item \textbf{UC3: Dodanie wyzwania dla awatara przez opiekuna}\newline
|
|
Opiekun tworzy nowe wyzwanie dla awatara. Wpisuje jego opis, przyznane pieniądze, punkty doświadczenia i poziom trudności. Nowe wyzwanie jest widoczne dla wybranego awatara.
|
|
|
|
\item \textbf{UC4: Usunięcie wyzwania dla awatara przez opiekuna}\newline
|
|
Opiekun usuwa wyzwanie. System aktualizuje listę wyzwań awatara. Wyzwanie przestaje być widoczne dla awatara.
|
|
|
|
\item \textbf{UC5: Zarządzanie punktami na koncie awatara przez system}\newline
|
|
Po tym jak opiekun oznaczy wyzwanie jako wykonane lub niewykonane, system dodaje lub odejmuje punkty awatarowi.
|
|
|
|
\item \textbf{UC6: Zarządzanie punktami awatara przez opiekuna}
|
|
\begin{enumerate}[label=\textbf{\alph*})]
|
|
\item \textbf{UC6a: Dodanie punktów}\newline
|
|
Opiekun wybiera z listy awatar. Z listy jego wyzwań wybiera jedno, po czym oznacza je jako wykonane.
|
|
\item \textbf{UC6b: Odjęcie punktów}\newline
|
|
Opiekun wybiera z listy awatar. Z listy zadań tego awatara wybiera wyzwanie, po czym oznacza je jako niewykonane.
|
|
\end{enumerate}
|
|
|
|
\item \textbf{UC7: Kupowanie ekwipunku dla awatara}\newline
|
|
Dziecko chcąc kupić nowy element ekwipunku, przechodzi do odpowiedniej sekcji aplikacji i wybiera przedmiot z listy dostępnego wyposażenia. Jeżeli dziecko posiada wystarczającą ilość pieniędzy, system automatycznie uaktualnia wygląd awatara nanosząc nowo zakupiony przedmiot. W przeciwnym razie nie dochodzi do zakupu.
|
|
|
|
\item \textbf{UC8: Edytowanie awatara przez dziecko}\newline
|
|
Dziecko chcąc spersonalizować swój awatar, edytuje jego podstawowe cechy fizyczne (włosy, kolor skóry, oczu). Jeżeli wymieniło wcześniej punkty na dodatkowy ekwipunek, może także go dodać. Wybrany wygląd jest widoczny w głównym widoku aplikacji.
|
|
|
|
\item \textbf{UC9: Edytowanie wyzwania przez opiekuna}\newline
|
|
Opiekun wybiera wyzwanie i dokonuje zmian w jego nazwie lub poziomie trudności. System aktualizuje dane na liście wyzwań. Dziecko jest powiadamiane o zmianie.
|
|
|
|
\item \textbf{UC10: Podgląd postępów awatara dziecka przez opiekuna}\newline
|
|
Opiekun wybiera awatar, którego stan chce sprawdzić. Opiekun otrzymuje informacje o obecnym stanie punktów, rozpoczętych zadaniach oraz poziomie danego awatara.
|
|
|
|
\item \textbf{UC11: Rozłączenie konta dziecka i opiekuna}\newline
|
|
Dziecko nadal ma dostęp do awatara, który był podłączony do
|
|
Dziecko lub opiekun wybierają użytkownika, z którym chcą się rozłączyć i tego opiekuna, ale bez możliwości edycji.
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
\noindent {\LARGE \textbf{Wymagania wersja 2.0}\par}
|
|
|
|
\begin{enumerate}[label=\textbf{\arabic*})]
|
|
\item \textbf{UC12: Zarządzanie grupami awatarów}
|
|
\begin{enumerate}[label=\textbf{\alph*})]
|
|
\item \textbf{UC12a: Dodanie grupy}\newline
|
|
Opiekun tworzy nową grupę, nadając jej nazwę.
|
|
\item \textbf{UC12b: Dodanie awatara do grupy}\newline
|
|
Opiekun wchodzi w ustawienia wybranej grupy. Po wybraniu odpowiedniej opcji wybiera z listy awatary, które chce dodać.
|
|
\item \textbf{UC12c: Usunięcie awatara z grupy}\newline
|
|
Opiekun wchodzi w wybraną grupę. Z listy awatarów, które się w niej znajdują wybiera awatar i go usuwa.
|
|
\item \textbf{UC12d: Usunięcie grupy}\newline
|
|
Opiekun wchodzi w wybraną grupę i ją usuwa.
|
|
\end{enumerate}
|
|
|
|
\item \textbf{UC13: Archiwizowanie wyzwań}\newline
|
|
Zarówno dziecko jak i opiekun mają wgląd w ukończone zadania.
|
|
\item \textbf{UC14: Przyznanie kluczyka awatarowi przez opiekuna}\newline
|
|
Opiekun wybiera z listy awatar dziecka, które według niego zasługuje na wyróżnienie i przyznaje mu kluczyk.
|
|
|
|
\item \textbf{UC15: Odblokowanie przedmiotu-niespodzianki przez awatara}\newline
|
|
Dziecko nagrodzone kluczykiem odblokowuje jeden ze specjalnych przedmiotów. Może dodać go do awatara bez dodatkowych płatności.
|
|
|
|
\item \textbf{Dodatkowe płatne funkcjonalności}\newline
|
|
Na przykład kupowanie specjalnych przedmiotów, wyjątkowych klas itd.
|
|
\item \textbf{Samouczek dziecka}\newline
|
|
Przy pierwszym uruchomieniu dziecko ma możliwość poznania działania aplikacji za pośrednictwem interaktywnego tutoriala. Jest on dostępny także później.
|
|
\item \textbf{Dynamiczne podpowiedzi w wyszukiwaniu opiekuna/awatara do podpięcia}\newline
|
|
Szukanie znajomego awatara/opiekuna może odbywać się przez podanie nicku, maila albo nazwy użytkownika. W trakcie pisania generowane są podpowiedzi z puli zarejestrowanych użytkowników.
|
|
\item \textbf{Rozszerzenie funkcji wyszukiwanie (nie tylko po mailu)}\newline
|
|
Dodatkowe opcje po których można wyszukiwać awatary i opiekunów.
|
|
\end{enumerate}
|
|
|
|
\newpage
|
|
\section{Załącznik nr 2: Dokumentacja web serwisu} \label{dokumentacja_api}
|
|
|
|
\newpage\null\thispagestyle{empty}\newpage
|
|
|
|
\title{Little Hero REST API Documentation}
|
|
\author{Dawid Jurkiewicz}
|
|
\date{30 January 2017}
|
|
\maketitle |