====== Projekt konceptualny ====== =====-. Sformułowanie zadania projektowego ===== Celem projektu jest stworzenie serwisu internetowego umożliwiającego użytkownikom tworzenie i importowanie kalendarzy oraz porównywanie ich pod względem wspólnego „czasu wolnego”. Każdy z użytkowników mógłby stworzyć własny kalendarz stanowiący plan zadań o ściśle określonych ramach czasowych (na przykład plan zajęć na uczelni, lekcji w szkole,…). Zadania te mogłyby być jednorazowe jak i cykliczne. Dodatkową usługę stanowiłaby możliwość importu kalendarzy z innych serwisów tego typu, oferujących podobne usługi (np. z kalendarza google). Jednak główną funkcjonalnością oferowaną przez serwis byłaby możliwość porównywania kilku kalendarzy w celu wyszukania terminów, w których żaden z użytkowników nie ma zaplanowanych żadnych zadań lub zaplanowane zadania posiadają niski priorytet (nie są one koniecznie do wykonania dla użytkownika w wybranym czasie). Rozwiązanie to pozwoliłoby ustalać terminy spotkań dwóch lub więcej osób uwzględniając ich plan zadań. Dzięki temu każdy użytkownik mógłby w sposób szybki i łatwy wyszukać wolne terminy i umówić się na spotkanie bez konieczności ręcznego porównywania planów pozostałych osób i bezpośredniej komunikacji z nimi. =====-. Analiza stanu wyjściowego ===== Jednym z istniejących rozwiązań tego typu jest kalendarz oferowany przez firmę google. Kalendarz ten stanowi internetowa aplikację pozwalającą na tworzenie zadań w danych ramach czasowych, z możliwością ustawienia ich powtarzania co określony czas. Tworzone plany można udostępniać innym użytkownikom usługi oraz publikować w Internecie. Rozwiązanie to jest dość popularne ze względu na prostotę obsługi i darmowy dostęp. Funkcjonalnością wyróżniającą proponowane rozwiązanie od przedstawionych wcześniej aplikacji byłaby możliwość porównywania kalendarzy. Każdy użytkownik miałby możliwość porównania swojego kalendarza z kalendarzami innych użytkowników, czego wynikiem byłby plan prezentujący w jakim czasie wszyscy użytkownicy uwzględniani w porównaniu nie mają zaplanowanych żadnych zadań lub zaplanowane zadania oznaczyli jako mało istotne (i mogą z nich zrezygnować). =====-. Analiza wymagań użytkownika (wstępna) ===== * Rejestracja w serwisie * Wydarzenia * Tworzenie wydarzeń * Edycja wydarzeń * Usuwanie wydarzeń * Import wydarzeń * Znajomi * Wyszukiwanie znajomych * Dodawanie znajomych * Usuwanie znajomych * Udostępnianie kalendarza znajomym * Porównywanie kalendarzy * Wybór kalendarzy do porównania * Porównanie kalendarzy * Wydarzenia współdzielone * Tworzenie wydarzeń współdzielonych * Odrzucenie/akceptacja wydarzeń współdzielonych * Import klendarzy =====-. Określenie scenariuszy użycia ===== ====-. Rejestracja użytkownika ==== - Użytkownik klika link //Rejestracja// - Pojawia się okienko z formularzem rejestracji - Użytkownik wprowadza login, hasło i nazwę - Użytkownik klika przycisk //Rejestruj// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły * Wyświetlany jest komunika o sukcesie rejestracji - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem rejestracji ====-. Logowanie do systemu ==== - Użytkownik wpisuje login i hasło - Użytkownik klika przycisk //Zaloguj// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły - Pozytywna weryfikacja danych * Przeniesienie do strony z kalendarzem użytkownika ====-. Dodawanie wydarzenia ==== - Na stronie głównej kalendarza - Użytkownik klika link //Dodaj wydarzenie// - Pojawia się okienko z formularzem dodawania wydarzenia - Użytkownik wypełnia pola: //Nazwa, Data, Godzina rozpoczęcia, Godzina zakończenia, Opis, Etykieta// - Użytkownik klika przycisk //Dodaj// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie wystąpiły * Wyświetlany jest komunikat o dodaniu wydarzenia - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem dodawania wydarzenia ====-. Edycja wydarzenia ==== - Użytkownik klika ikonę edycji przy danym wydarzeniu - Pojawia się okienko z formularzem edycji wydarzenia - Użytkownik Edytuje pola: //Nazwa, Data, Godzina rozpoczęcia, Godzina zakończenia, Opis, Etykieta// - Użytkownik klika przycisk //Zapisz// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie wystąpiły * Wyświetlany jest komunikat o pomyślnym przeprowadzeniu edycji - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem edycji wydarzenia ====-. Usuwanie wydarzenia ==== - Użytkownik klika ikonę "X" przy danym wydarzeniu - Pojawia się okienko z prośbą o potwierdzenie wyrarzenia - Użytkownik klika przycisk //Usuń// - Wydarzenie zostaje usunięte - Znika okienko potwierdzenia ====-. Dodawanie znajomych ==== - Na karcie //Dodaj znajomych// w ustawieniach - Użytkownik wypełnia pole //Login znajomego// - Użytkownik klika przycisk //Szukaj// - Wyświetla się lista użytkowników, których login spełnia kryteria wyszukiwania - Użytkownik klika link //dodaj// obok loginu znajomego - Wyświetla się informacja o wysłaniu prośby o potwierdzenie - W zakładce //Zaproszenia// pojawia się wpis o wysłaniu prośby - Znajomy dostaje informację z prośbą o dodanie do znajomych - Znajomy podejmuje decyzje * W zakładce //Zaproszenia// przy zaproszeniu pojawia się komunikat o odrzuceniu zaproszenia, jeśli znajomy odrzucił zaproszenia * Znajomy zostaje dodany do znajomych, jeśli potwierdził zaproszenie ====-. Usuwanie znajomych ==== - Na karcie //Znajomi// w ustawieniach - Użytkownik klika link //Usuń// obok loginu znajomego - Wyświetla się okienko z prośbą o potwierdzenie usunięcia - Użytkownik klika przycisk //Usuń// - Znika okienko potwierdzenia ====-. Akceptacja zaproszeń ==== - Na karcie //Zaproszenia// w ustawieniach - Użytkownik klika link //Akceptuję// obok zaproszenia - Znajomy zostaje dodany do znajomych użytkownika - Użytkownik zostaje dodany do znajomych znajomego - Komunikat o dodaniu do znajomych ====-. Odrzucanie zaproszeń ==== - Na karcie //Zaproszenia// w ustawieniach - Użytkownik klika link //Odrzucam// obok zaproszenia - Pojawia się okienko z prośbą o potwierdzenie odrzucenia - Użytkownik klika przycisk //Odrzuć// - Znika okienko potwierdzenia - Znajomy dostaje informację o odrzuceniu zaproszenia ====-. Dodawanie etykiet ==== - Na karcie //Etykiety// w ustawieniach - Użytkownik klika link //Dodaj etykietę// - Wyświetla się okienko z formularzem dodawania etykiety - Użytkownik wprowadza nazwę etykiety oraz wybiera jej kolor - Użytkownik klika przycisk //Dodaj// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły * Wyświetlany jest komunikat o dodaniu etykiety - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem dodawania etykiety ====-. Edycja etykiet ==== - Na karcie //Etykiety// w ustawieniach - Użytkownik klika link //Edytuj// obok etykiety - Wyświetla się okienko z formularzem edycji etykiety - Użytkownik wprowadza nazwę etykiety oraz wybiera jej kolor - Użytkownik klika przycisk //Zapisz// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły * Wyświetlany jest komunikat o sukcesie edycji etykiety - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem edycji etykiety ====-. Usuwanie etykiet ==== - Na karcie //Etykiety// w ustawieniach - Użytkownik klika link //Usuń// obok etykiety - Wyświetla się okienko z prośbą o potwierdzenie usunięcia - Użytkownik klika przycisk //Usuń// - Znika okienko potwierdzenia ====-. Zmiana nazwy użytkownika ==== - Na karcie //Dane użytkownika// w ustawieniach - Użytkownika klika link //Zmień nazwę// - Wyświetla się okienko z formularzem zmiany nazwy - Użytkownik wprowadza nową nazwę - Użytkownik klika przycisk //Zapisz// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły * Wyświetlany jest komunikat o sukcesie edycji nazwy użytkownika - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem edycji nazwy ====-. Zmiana hasła użytkownika ==== - Na karcie //Dane użytkownika// w ustawieniach - Użytkownika klika link //Zmień hasło// - Wyświetla się okienko z formularzem zmiany hasła - Użytkownik wypełnia pola: //Stare hasło//, //Nowe hasło//, //Powtórz nowe hasło// - Użytkownik klika przycisk //Zmień// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły * Wyświetlany jest komunikat o sukcesie zmiany hasła - Użytkownik klika przycisk //Zamknij// - Znika okienko z formularzem zmiany hasła ====-. Porównanie kalendarzy ==== - Na karcie //Porównywanie kalendarzy// - Wyświetlona jest lista znajomych - Użytkownik zaznacza użytkowników do porównania kalendarzy - Użytkownik klika przycisk //Dalej// - Wyświetlony zostaje formularz porównania - Użytkownik wypełnia pola: //Porównaj od// i //Porównaj do// - Użytkownik klika przycisk //Dalej// - Weryfikacja danych * Wyświetlane są informacje o błędach, jeśli takie nastąpiły - Wyświetlany jest kalendarz stanowiący wynik porównania =====-. Identyfikacja funkcji ===== - Przechowywanie informacji o użytkownikach - Przechowywanie i udostępnianie informacji wydarzeniach danego użytkownika - Przechowywanie i udostępnianie informacji o etykietach danego użytkownika - Przechowywanie informacji o znajomych =====-. Analiza hierarchii funkcji projektowanej aplikacji ===== [[diagram_FHD|Diagram FHD]] =====-. Budowa i analiza diagramu przepływu danych ===== [[diagram_dfd|Diagram DFD]] =====-. Wybór encji (obiektów) i ich atrybutów. ===== W systemie istnieć będą następujące encje: - Uzytkownicy - Wydarzenia - Etykiety - Znajomi - Zaproszenia =====-. Projektowanie powiązań (relacji) pomiędzy encjami ===== [[diagram_erd|Diagram ERD]] =====-. Projekt diagramów STD (State Transition Diagram – diagramy przejść pomiędzy stanami) ===== [[diagram_std|Diagram STD]]