1. Projekt Konceptualny
Aplikacja internetowa utworzona w ramach tego projektu pozwalać będzie za pomocą zdjęć umieszczanych przez użytkowników obserwować jak różnego rodzaju “rzeczy” (np. ludzie, budynki, krajobrazy) zmieniały się wraz z upływem czasu. Każdy użytkownik będzie mógł zakładać albumy będące kolekcjami zdjęć zgodnych tematycznie robionych w różnych odstępach czasu, np. codziennie, cotygodniowo, bądź corocznie.
Aplikacja będzie mocno nakierowana “społecznościowo”, tj. zawierać elementy pozwalające na tworzenie wokół serwisu społeczności użytkowników aktywnie uczestniczących w jego rozwoju, np. ocenianie i komentowanie albumów.
Przykłady zastosowań:
codziennie robione zdjęcia rozwoju naszego dziecka
cotygodniowo robione zdjęcia stanu budowy pewnego obiektu, np. stadionu piłkarskiego
corocznie robione zdjęcia rynku w naszym mieście
1.2. Analiza stanu wyjściowego
Na rynku istnieje już wiele różnego rodzaju portali społecznościowych oraz hostingów zdjęć. Portale społecznościowe koncentrują się zwykle wokół osób posiadających te same zainteresowania lub obracających się w tych samych kręgach znajomych, oraz równocześnie umożliwiają wstawianie zdjęć oraz ich komentowanie (np. Facebook, nk.pl). Hostingi obrazów z drugiej strony służą głównie do łatwego i szybkiego udostępniania ich poprzez przekazywanie bezpośredniego hiperłącza konkretnym osobom (np. ImageShack, Imgur). Pewną hybrydą tych dwóch rozwiązań są serwisy typu Picasa, pozwalające na tworzenie albumów zdjęć oraz interakcję społeczności poprzez dzielenie się tymi zdjęciami oraz ich komentowanie.
Naszej aplikacji najbliżej jest do ostatniego przykładu, jednak istnieje sporo różnic, które czynią nasze rozwiązanie interesującym. Przede wszystkim serwis nakierowany będzie na albumy zdjęć ukazujące przemiany pewnych rzeczy wraz z upływem czasu (Time-lapse photography). Wiązało się to będzie przede wszystkim z interfejsem użytkownika przystosowanym do wygodnego i intuicyjnego eksplorowania zdjęć rozłożonych na „osi czasu”. Ponadto serwis udostępniał będzie mechanizm automatycznych powiadomień o konieczności zrobienia nowego zdjęcia do albumu w regularnych odstępach czasu określonych przez użytkownika. Wreszcie jednym z celów tego projektu jest również wytworzenie prostej aplikacji mobilnej zintegrowanej z serwisem, pozwalającej na robienie nowych zdjęć w oparciu o ostatnie (ułatwione kadrowanie) oraz ich bezpośrednie dodawanie do albumu.
1.3. Analiza wymagań użytkownika (wstępna)
Wymagania funkcjonalne
Profile użytkowników
rejestracja konta, aktywacja przez e-mail
logowanie
widok szczegółowy profilu, przeglądanie profilów innych użytkowników
ustawienia konta/profilu
Albumy zdjęć
Przeglądarka albumów
Elementy społecznościowe
Administracja
Wymagania względem bazy danych
Zachowanie spójności pomiędzy albumami w bazie danych i zdjęciami należącymi do tych albumów, przechowywanymi oddzielnie w systemie plików
Przechowywanie danych potrzebnych do funkcjonowania serwisu w spójnej formie (np. unikanie istnienia zdjęć nieprzypisanych do albumu)
W przypadku zdecydowania się na implementacją aplikacji mobilnej - zarządzanie danymi geograficznymi dla zdjęć/albumów (PostGIS)
1.4. Określenie scenariuszy użycia
1.4.1. Rejestracja nowego użytkownika
Użytkownik wchodzi na stronę główną i wybiera hiperłącze „Register”
Następuje przekierowanie do formularza rejestracyjnego
Użytkownik podaje swój pseudonim, adres e-mail, hasło (dwa razy - potwierdzenie)
Weryfikacja wprowadzonych danych:
nazwa użytkownika zajęta, adres e-mail istnieje w bazie lub jest nieprawidłowy, hasło jest za krótkie lub za długie lub niezgodne z potwierdzającym - nieprawidłowo wypełnione pola zostają podświetlone na czerwono i wyświetlany jest przyczyna odrzucenia danej wartości (np. „Password is too short”)
wszystkie dane są prawidłowe - przejście dalej
Wyświetlany jest komunikat o poprawnie utworzonym koncie i konieczności jego aktywacji poprzez kliknięcie w hiperłącze w e-mailu aktywacyjnym
Użytkownik przechodzi pod adres podany w e-mailu aktywacyjnym
Wyświetlany jest komunikat o pomyślnie aktywowanym koncie, użytkownik zostaje automatycznie zalogowany
Użytkownik zostaje przekierowany na stronę ustawień swojego konta, gdzie może określić dodatkowe, opcjonalne dane oraz zmienić domyślne ustawienia powiadomień
1.4.2. Logowanie użytkownika
Użytkownik wchodzi na stronę główną i wybiera hiperłącze „Sign in”
Następuje przekierowanie do formularza logowania
Użytkownik wpisuje do odpowiednich pól swój pseudonim (login) oraz hasło
Weryfikacja wprowadzonych danych:
Użytkownik o podanej nazwie nie istnieje lub podane hasło jest nieprawidłowe - wyświetlenie komunikatu o błędnym loginie lub/i haśle
Użytkownik o podanej nazwie i haśle istnieje, ale nie został aktywowany - wyświetlenie komunikatu o konieczności aktywacji konta poprzez przejście pod adres podany w e-mailu aktywacyjnym
Użytkownik o podanej nazwie i haśle istnieje i został aktywowany - przejście dalej
Użytkownik zostaje zalogowany i przekierowany na stronę główną
1.4.3. Zmiana hasła użytkownika
Następuje przekierowanie do formularza zmiany hasła
Użytkownik podaje nowe hasło dwa razy (potwierdzenie)
Weryfikacja zgodności hasła i jego potwierdzenia:
Hasła są różne - komunikat błędu i wyczyszczenie obu pól
Hasła są takie same - przejście dalej
Weryfikacja nowego hasła:
Hasło nie spełnia wymogów (za krótkie, za długie, niewystarczająco bezpieczne) - informacja o niespełnieniu konkretnego wyboru i powrót do formularza zmiany hasła
Hasła spełnia wymogi - przejście dalej
Komunikat o zmianie hasła zakończonej sukcesem; hasło użytkownika zostaje zmienione w bazie danych
1.4.4. Odzyskiwanie zapomnianego hasła
Użytkownik zapomniał hasła do swojego konta, w formularzu logowania wybiera hiperłącze „Forgot my password”
Następuje przekierowanie do formularza odzyskiwania hasła
Użytkownik podaje adres e-mail powiązany z kontem, do którego hasła zapomniał
Weryfikacja podanego adresu e-mail:
Adres nie jest związany z żadnym kontem w serwisem - wyświetlenie komunikatu informującego o tym
Adres jest związany z kontem w serwisie - na wskazany adres przesyłany jest e-mail z hiperłączem do formularza zmiany hasła
Użytkownik przechodzi pod adres podany w e-mailu
Przejście do scenariusza Zmiana hasła użytkownika
Przekierowanie do formularza logowania
1.4.5. Tworzenie albumu
Użytkownik jest zalogowany i wybiera opcję „Manage albums” z rozwijanego menu użytkownika
Następuje przekierowanie do panelu zarządzania albumami użytkownika
Użytkownik naciska przycisk „Create new album”
Następuje przekierowanie do formularza tworzenia nowego albumu
Użytkownik podaje dane podstawowe odnośnie tworzonego albumu: nazwę, opis oraz kategorię (z listy dostępnych)
Użytkownik określa poziom prywatności albumu
Publiczny - domyślnie zaznaczony
Prywatny - wyświetlone zostają trzy opcje:
Tylko ja (domyślnie zaznaczone)
Lista użytkowników - wyświetlone zostaje pole tekstowe, w którym użytkownik podaje pseudonimy innych użytkowników serwisu
Hasło - wyświetlone zostało pole tekstowe, w którym użytkownik podaje hasło dostępu do albumu
Użytkownik określa ustawienia powiadomień e-mail
Brak powiadomień - domyślnie zaznaczone
Wysyłaj powiadomienia - po wybraniu tej opcji użytkownik określa co jaki czas chce otrzymywać powiadomienia oraz ma możliwość włączenia ponagleń
Użytkownik określa prawa do komentowania albumu
automatycznie zezwalaj (domyślnie), wymagaj autoryzacji, zablokuj komentarze
Użytkownik potwierdza wprowadzone dane naciskając przycisk „Create”
Weryfikacja wprowadzonych danych, w przypadku problemów z jakimkolwiek polem jest ono podświetlane na czerwono oraz wyświetlany jest przy nim krótki powód odrzucenia:
nazwa albumu - nie może być pusta ani zbyt długa
opis albumu - nie może być zbyt długi
kategoria albumu - musi zostać określona
hasło dostępu do prywatnego albumu - nie może być puste
lista użytkowników mających dostęp do prywatnego albumu - wszystkie podane identyfikatory użytkowników muszą rzeczywiście istnieć w serwisie
Jeśli wszystkie dane albumu są poprawne, zostaje on utworzony i wyświetlony zostaje komunikat informujący o tym
Użytkownik zostaje przekierowany do panelu zarządzania nowo-utworzonym albumem
1.4.6. Zarządzanie albumami
Użytkownik wybiera opcję „Manage albums” z rozwijanego menu użytkownika
Następuje przekierowanie do strony z listą albumów użytkownika
Użytkownik wybiera z listy konkretny album, którym chce zarządzać
Przejście do scenariusza Zarządzanie albumem
1.4.7. Zarządzanie albumem
Użytkownik przechodzi do panelu zarządzania konkretnym albumem poprzez:
Wybranie tego albumu w panelu zarządzania albumami (scenariusz Zarządzanie albumami)
Naciśnięcie przycisku „Manage this album” w normalnym widoku albumu (przycisk ten widoczny jest tylko dla właściciela albumu)
W widoku zarządzania albumem widoczne są:
Ustawienia albumu określone na etapie jego tworzenia (nazwa, opis, kategoria, poziom prywatności, itp.)
Lista wszystkich zdjęć w albumie (miniaturka, komentarz, data, itp.) podzielona w razie potrzeby na strony
Użytkownik zarządza albumem podejmując odpowiednie akcje; następuje przejście do odpowiednich scenariuszy:
Dodawanie zdjęcia do albumu
Usunięcie zdjęć z albumu
Zmiana ustawień albumu
Usunięcie albumu
1.4.8. Dodawanie zdjęcia do albumu
Użytkownik naciska przycisk „Add photo” w panelu zarządzania albumem
Następuje przekierowanie do formularza dodawania nowego zdjęcia do albumu
Użytkownik wybiera album, do którego ma trafić zdjęcie (lista albumów); jeśli album został wcześniej wybrany poprzez naciśnięcie „Add photo” w jego panelu, to wybranie tego albumu następuje automatycznie
Użytkownik określa źródło, z którego ma nastąpić pobranie zdjęcia:
„Local file” (domyślnie zaznaczone) - użytkownik podaje ścieżkę do zdjęcia znajdującego się lokalnie na jego komputerze (ręcznie lub poprzez naciśnięcie przycisku „Przeglądaj”)
„Remote file” - użytkownik podaje adres
URL zdjęcia znajdującego się na innym serwerze, np. na dowolnym hostingu zdjęć/plików (ImageShack, Dropbox)
Użytkownik określa datę (widok kalendarza) oraz opcjonalnie godzinę zrobienia zdjęcia; domyślnie zaznaczoną datą jest aktualna
Użytkownik dodaje opcjonalny komentarz do zdjęcia (domyślnie pusty), który potem będzie wyświetlany wraz z tym konkretnym zdjęciem
Użytkownik naciska przycisk „Upload”
Weryfikacja danych wprowadzonych przez użytkownika dla zdjęcia; jeśli z którymś polem wystąpi problem, pokazana zostaje odpowiednia informacja oraz użytkownik proszony jest o poprawienie tych danych:
album, do którego trafi zdjęcie musi zostać wybrany i musi jeszcze istnieć
data zrobienia zdjęcia musi zostać podana, oraz nie może wypadać w przyszłości
Ponieważ wszystkie dane zdjęcia zostały podane prawidłowo, rozpoczyna się jego wysyłanie:
Sprawdzana jest wielkość i format pliku wskazanego przez użytkownika
jeśli odczytanie pliku nie jest możliwe (np. ponieważ nie istnieje) wyświetlony zostaje komunikat o błędzie i wysyłanie zostaje wstrzymane
jeśli plik jest za duży, lub nie jest plikiem graficznym, wyświetlony zostaje komunikat o błędzie i wysyłanie zostaje wstrzymane
Następuje wysłanie pliku na serwer; postęp wysyłania wizualizowany jest poprzez pasek postępu
Kiedy wysyłanie zdjęcia zostaje zakończone, użytkownik zostaje o tym poinformowany komunikatem
Następuje przekierowanie do panelu zarządzania albumem, do którego dodane zostało zdjęcie
1.4.9. Usunięcie zdjęć z albumu
Użytkownik znajduje się w panelu zarządzania konkretnym albumem
Użytkownik zaznacza na liście zdjęć te, które chce usunąć (checkbox), lub naciska przycisk „Select all” aby zaznaczyć wszystkie
Użytkownik naciska przycisk „Delete photos”
Jeśli żadne zdjęcie nie zostało zaznaczone:
Komunikat o braku zaznaczonych zdjęć
Anulowanie usuwania
Wyświetlenie modalnego okna dialogowego z prośbą o potwierdzenie chęci usunięcia zaznaczonych zdjęć: „Are you sure you want to delete selected photos (11)?”:
Użytkownik anuluje usuwanie wybierając przycisk „No” - zakończenie
Użytkownik potwierdza - przejście dalej
Usunięte zaznaczonych zdjęć, lista pozostałych zdjęć w albumie zostaje zaktualizowana
1.4.10. Zmiana ustawień albumu
Użytkownik znajduje się w panelu zarządzania konkretnym albumem
Użytkownik naciska przycisk „Change settings”
Następuje przekierowanie do panelu edycji ustawień albumu, identycznego jak w przypadku scenariusza Tworzenie albumu
Użytkownik edytuje dowolne ustawienia albumu, po czym następuje walidacja wprowadzonych zmian zgodnie ze scenariuszem Tworzenie albumu
W przypadku gdy zablokowana zostanie możliwość komentowania albumu, wcześniej dodane komentarze nie są usuwane i wciąż wyświetlane są w widoku albumu
Następuje przekierowanie do panelu zarządzanie edytowanym albumem
1.4.11. Usunięcie albumu
Użytkownik znajduje się w panelu zarządzania konkretnym albumem
Użytkownik naciska przycisk „Delete album”
Wyświetlone zostaje modalne okno dialogowe z prośbą o potwierdzenie chęci usunięcia całego albumu: „Are you sure you want to delete the entire album? All photos, comments and settings will be lost!”
Użytkownik anuluje usuwanie wybierając przycisk „No” - zakończenie
Użytkownik potwierdza - przejście dalej
Usunięcie całego albumu wraz ze wszystkimi zdjęciami
Następuje przekierowanie do panelu zarządzania albumami (lista albumów zostaje zaktualizowana i nie zawiera już usuniętego albumu)
1.4.12. Komentowanie albumu
Użytkownik przechodzi na stronę albumu, który chce skomentować
W odpowiednim polu użytkownik wpisuje treść swojego komentarza i naciska przycisk „Comment”
Wprowadzony komentarz jest weryfikowany:
Jeśli komentarz jest pusty lub za długi - wyświetlana jest odpowiednia informacja i użytkownik proszony jest o modyfikację treści komentarza
W przeciwnym wypadku - przejście dalej
Komentarz zostaje zapisany oraz dodany do listy komentarzy do albumu widocznej dla użytkownika
1.4.13. Subskrypcja (śledzenie) albumu
Użytkownik wchodzi na stronę albumu, który chce śledzić
Użytkownik naciska przycisk „Follow”; w bazie danych zapisywana jest informacja o śledzeniu wskazanego albumu
Przycisk „Follow” zastąpiony zostaje przyciskiem „Stop following”
Od tej chwili użytkownik śledzi wskazany album:
Na stronie głównej serwisu w osobnej sekcji „Followed” wyświetlane są skróty (miniaturki) ostatnio zaktualizowanych, śledzonych albumów
Jeśli użytkownik w swoich ustawieniach aktywował powiadomienia dla śledzonych albumów, otrzymywał on będzie wiadomości o pojawieniu się nowego zdjęcia w wybranym albumie
1.4.14. Anulowanie śledzenia albumu
Użytkownik przechodzi do albumu, którego śledzenie chce anulować:
Naciska na skrót tego albumu na stronie głównej w sekcji „Followed”, lub
Przechodzi do albumu korzystając z hiperłącza w otrzymanym powiadomieniu, lub
Ręcznie znajduje ten album
Użytkownik naciska przycisk „Stop following”; w bazie danych zapisywana jest informacja o zakończeniu śledzenia albumu
Przycisk „Stop following” zastąpiony zostaje przyciskiem „Follow”
1.5. Identyfikacja funkcji
Funkcje realizowane przez bazę danych:
Przechowywanie informacji o kontach użytkowników istniejących w serwisie wraz z ich ustawieniami (pseudonim, adres e-mail, ustawienia powiadomień, itp.)
Przechowywanie informacji o albumach istniejących w serwisie oraz przyporządkowanie ich do właścicieli (użytkowników)
Przechowywanie informacji o zdjęciach wysłanych przez użytkowników oraz przyporządkowanie ich od odpowiednich albumów, a także zapewnienie spójności z fizycznymi plikami graficznymi przechowywanymi w systemie plików
Przechowywanie listy dostępnych kategorii albumów
W przypadku implementacji aplikacji mobilnej - przechowywanie danych geograficznych dla zdjęć oraz obsługa zapytań w oparciu o nie (np. wyszukanie tylko lokalizacji z wybranego obszaru)
1.6. Analiza hierarchii funkcji projektowanej aplikacji
1.7. Budowa i analiza diagramu przepływu danych (DFD)
1.8. Wybór encji (obiektów) i ich atrybutów
Użytkownik
login
hasło
adres e-mail
aktywny (czy została dokonana aktywacja)
data urodzenia
opis „o mnie”
czy powiadamiać o komentarzach
czy powiadamiać o subskrypcjach
czy przypominać o zdjęciach
Album
autor
nazwa
opis
kategoria
ocena
data następnego powiadomienia
poziom dostępu (czy publiczny)
hasło dostępu (jeśli prywatny)
czy komentowanie jest dozwolone
czy komentarze wymagają autoryzacji
Zdjęcie
Kategoria
Komentarz
Subskrypcja
ZaufanyUżytkownik (użytkownik, który może oglądać prywatny album)
1.9. Projektowanie powiązań (relacji) pomiędzy encjami. Konstrukcja diagramu ERD (Entity-Relationship Diagram)
17.05.2012: zaktualizowany diagram encji do stanu aktualnego
1.10. Projekt diagramów STD (przejść pomiędzy stanami)