To jest stara wersja strony!


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

6. Analiza hierarchii funkcji projektowanej aplikacji

7. DFD:Budowa i analiza diagramu przepływu danych

pl/dydaktyka/sbd/2012/projekty/catch/start/konceptualny.1353019988.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (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