Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:sbd:2012:projekty:catch:start:konceptualny [2012/11/15 21:28]
sbd12
pl:dydaktyka:sbd:2012:projekty:catch:start:konceptualny [2019/06/27 15:50]
Linia 1: Linia 1:
-**1. Sformułowanie zadania projektowego** 
  
-Celem projektu jest stworzenie aplikacji stacjonarnej uzupełniającej funkcjonalność serwisu Catch.com. Aplikacja ta będzie umożliwiać przeglądanie,​ tworzenie, edycję, usuwanie oraz wspóldzielenie notatek, list zadań i przypomnień. Utworzone w ten sposób dane będa mogły być synchronizowane z treściami umieszczonymi na serwerach serwisu Catch.com. Aplikacja pozwoli na logowanie się przy pomocy konta utworzonego wcześniej w serwisie Catch.com. Synchronizacja treści z serwerem będzie dokonywana na żądanie użytkownika. Kluczowymi cechami aplikacji powinna być prosta obsługa i przyjazny interfejs. Nawigacja powinna być zbliżona do tej znanej z aplikacji mobilnej udostępnianej przez twórców serwisu Catch.com. Istotna jest także wieloplatformowość dostarczonego rozwiązania. 
- 
-**2. Analiza stanu wyjściowego** 
- 
-W chwili obecnej na rynku obecna jest aplikacja stacjonarna wspierająca konkurencyjny system zarządzania notatkami, uzupełniająca funkcjonalności serwisu Evernote. Warto przeanalizować funkcjonalność tego produktu i postarać się wykorzystać trafne rozwiązania,​ nie powielając przy tym błędów autorów. 
-Jako istotny element stanu wyjściowego należy uznać samą obecność serwisu Catch.com, która determinuje funkcjonalności,​ jakie mogą być zaimplementowane w aplikacji stacjonarnej. Serwis Catch.com udostępnia oparte na REST API, które słuzyć będzie do komunikacji z jego serwerem. 
-Dane użytkowników nie będę gromadzone przez twórców projektu, natomiast po synchronizacji treści z serwerem będą one przechowywane przez Catch.com zgodnie z polityką prywatności,​ która jest akceptowana przez każdego użytkownika w momencie zakładania konta. 
- 
-**3. Analiza wymagań użytkownika** 
- 
-Gromadzenie notatek powinno być czynności intuicyjną i mało absorbującą ze strony użytkownika. Użytkownikami projektu będą użytkownicy serwisu i aplikacji Catch.com, dlatego pełna zgodność funkcjonalności z tymi źródłami jest kluczowa.  ​ 
-  * Tworzenie nowych “obiektów” : notatek, list zadań, alarmów, notatek dźwiekowych i graficznych 
-  * Edycja, usuwanie, zarządzanie obiektami 
-  * Tworzenie i zarządzanie strumieniami - przestrzeniami,​ w której znajdują się obiekty 
-  * Definiowanie znaczników dla obiektów 
-  * Dodawanie komentarzy pod notatkami 
-  * Udostępnianie notatek innym użytkownikom 
-  * Oznaczenia obiektów gwiazdką, dodawanie lokalizacji 
- 
-Z aplikacji korzystać będzie można tylko po zalogowaniu,​ występuję więc w systemie tylko jeden rodzaj roli. 
-Pobieranie notatek z serwera i wysyłanie nowych danych na serwer powinno odbywać się na żądanie. Sensownym wydaje się jednak umożliwienie także synchronizacji automatycznej,​ aby użytkownik nie zapomniał wysłać na serwer notatek, z których chciałby potem skorzystać w aplikacji mobilnej. 
- 
-**4. Określenie scenariuszy użycia** 
- 
-a) Pierwsze logowanie do aplikacji 
-  * Pusta przestrzeń robocza - informacja o tym, że treści pojawią się po synchronizacji 
-  * Kliknięcie przycisku synchronizuj:​ następuje szereg różnych zapytań na serwer Catch.com : 
-      * GET /v3/streams : w odpowiedzi lista streamow danego uzytkownika. Ich ID i nazwy, ilosc kontrybutorów,​ daty modyfikacji,​ kolor w jakim wyswietlany jest w aplikacji webowej. Wszystkie te dane beda wykorzystane do dalszych zapytan oraz do graficznego przedstawienia przestrzeni roboczej 
-      * GET /​v3/​streams///​stream_id//:​ takie zapytanie będzie wysłane ​ dla każdego stream_id z poprzedniego requestu. W odpowiedzi otrzymuje się ID i typy wszystkich obiektow w tym streamie: notatek, chechlist, komentarzy, plików. ​ Nadrzednym typem jest notatka, i to wlasnie ich ID bedzie zapamietane po tej operacji. Komentarze, checklisty etc pojawia sie jako “dzieci” danej notatki po zapytaniu o jej szczegóły. 
-      *GET /​v3/​streams///​stream_id///​contributors : takie zapytanie dla każdego stream_id. Otrzymujemy nazwy i id wszystkich kontrybutorów danego streama 
-      *GET /​v3/​streams///​stream_id///​tags - lista tagów użytych w danym streamie 
-      *GET /​v3/​streams///​stream_id///​$object -  zapytanie o szczegóły notatki. Zwraca daty utworzenia, edycji i usuniecia na serwerze, tresc, tagi, wlasciciel, oraz sekcje “children”,​ gdzie znajduja sie ID wszystkich powiazanych obiektów. Wazne - po usunieciu notatki na serwerze ten request dalej dziala, lecz ma niezerowa date usuniecia z serwera - jest to istotne do obsługi usuwania notatek przez użytkownika lokalnie. 
-       *GET /​v3/​streams///​stream_id/////​object_id///​raw -  pozwala na pobranie notatki dzwiekowej, obazu, badz zalacznika 
- 
- 
- 
-b) Tworzenie nowego obiektu: 
-     *Menu podobne do znanego z aplikacji mobilnej - przyciski odpowiadajace poszczególnym typom obiektów 
-     *Po wybraniu typu - okno edycji obiektu: treść, tagi, stream, lokalizacja,​ załączniki. ​ 
-     *Po zakonczeniu edycji - obiekt widoczny w przestrzeni roboczej ​  jako lokalny, oznaczenie to zniknie po synchronizacji 
-     ​*Elementy API konieczne do przeniesienia stworzonej notatki na serwer: 
-         *POST /​v3/​streams///​stream_id//​ - tutaj tworzymy notatke, w strumieniu o zadanym ID a po otrzymaniu jej ID wysylamy tym samym rodzajem zapytanie wszystkie dodatkowe elementy (checklisty,​ zalaczniki),​ które maja w zapytaniu ustawiony parametr child_of z wartoscia ID tworzonej notatki 
- 
-c) Tworzenie nowego strumienia 
-    *kliknięcie przycisku “New ​ space”, ​ 
-    *wpisanie nazwy  
-    *Elementy API konieczne do wykonania zapytania: 
-        *POST /v3/streams - wystarczy podac nazwe strumienia i zostanie on utworzony 
- 
-d) Edycja notatki: 
-    *Podczas przeglądania treści notatki kliknięcie przycisku Edit i modyfikacja treści 
-    *Notatka edytowana lokalnie oznaczona jako wymagająca synchronizacji 
-    *API: 
-        *PUT /​v3/​streams/​sync///​object_id//​ 
- 
-e) Zapraszanie użytkowników do współdzielenia strumienia 
-    *Przycisk “Invite People” na poziomie strumienia 
-    *Koniecnej podanie adresów email użytkowników 
-    *API: 
-        *POST /v3/invites konieczne podanie emaila i ID strumienia 
- 
-f) Dodawanie tagów, komentarzy, zalacznikow,​ checklist 
-    *notatki będą tagowane tak samo jak w gotowych produktach rodziny Catch -  poprzez dopisanie znaku #przed nazwa tagu.  
-    *Po klinięciu w nazwę tagu powinny pojawić się wszystkie notatki z otagowane. 
-    *API: takie samo jak przy tworzeniu notatek lub ich modyfikacji. 
-  
-g) Usuwania strumienia / notatki 
-   * przy kazdym strumieniu oraz kazdej notatce będzie ikonka do jego usuwania 
-   * Po kliknięciu takiej ikonki powinno pojawić się ostrzeżenie o usuwaniu treści lokalnie i zaleceniu natychmiastowej synchronizacji 
-   * w API zrealizowane jest to poprzez odpowiednie zapytania typu DELETE 
- 
- 
-**5. Identyfikacja funkcji** ​ 
-Patrz punkty 3 i 4 
- 
-[[http://​ai.ia.agh.edu.pl/​wiki/​pl:​dydaktyka:​sbd:​2012:​projekty:​catch:​start:​konceptualny:​fhd|Analiza hierarchii funkcji projektowanej aplikacji]] 
pl/dydaktyka/sbd/2012/projekty/catch/start/konceptualny.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0