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
d) Edycja notatki:
e) Zapraszanie użytkowników do współdzielenia strumienia
f) Dodawanie tagów, komentarzy, zalacznikow, checklist
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