From 2642c20cc69e03d143c3ace97b16b68a0bbac381 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrycja=20=C5=81a=C5=BAna?= <patlaz@st.amu.edu.pl>
Date: Fri, 20 Nov 2020 19:17:05 +0100
Subject: [PATCH 1/2] dokument wymagan projektowych

---
 .../dokument-wymagan-projektowych-2a.md       | 290 ++++++++++++++++++
 1 file changed, 290 insertions(+)
 create mode 100644 Witkowski/conference-page/dokument-wymagan-projektowych-2a.md

diff --git a/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md b/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md
new file mode 100644
index 0000000..66c132c
--- /dev/null
+++ b/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md
@@ -0,0 +1,290 @@
+# Dokument wymagań projektowych
+
+## Dokument wizji dla projektu Conference Web
+
+### Autorzy: Konrad Pierzyński, Michał Starski, Maciej Więcek, Patrycja Łaźna
+
+### Data: 14.11.2020r
+
+-----
+
+#### **0. Wersje dokumentu**
+
+14.11.2020r - stworzenie dokumentu
+
+18.11.2020r - poprawki według zaleceń prowadzącego
+
+19.11.2020r - uzupełnienie dokumentu o elementy związane z wtyczką
+
+-----
+
+#### **1. Elementy składowe projektu**
+
+* aplikacja webowa w języku JavaScript oparta o framework React;
+
+* aplikacja serwerowa w języku Java oparta o framework Spring;
+
+* instancja serwera bazy danych oparta o silnik PostgreSQL;
+
+* wtyczka do edycji wyglądu strony działająca w przeglądarce;
+
+* prototyp wtyczki wykonany w Adobe XD;
+
+* dokumenty: "wizja projektu", "kryteria akceptacji", "dokumentacja techniczna", "dokument wymagań projektowych"
+
+-----
+
+#### **2. Granice projektu**
+
+Z uwagi na uproszczenia, które stosujemy, aby aplikacja była przystępna dla osób nietechnicznych, jak i skupienie na jednym typie generowanych stron, produkt nie będzie tak rozwinięty, jak obecne na rynku inne rozbudowane i komercyjne CMS’y.
+Do funkcjonalności, które nie znajdą się w aplikacji, należą między innymi:
+
+- tworzenie treści wykraczających poza schemat strony konferencyjnej,
+- obsługa płatności.
+
+Dodatkowo, ze względu na podział prac w grupie, stworzony jest oddzielny moduł do edycji wyglądu stron, działający jedynie w przeglądarkach opartych o silnik chromium.
+
+-----
+
+#### **3. Lista wymagań funkcjonalnych**
+
+Na panel administratora składają się następujące sekcje:
+
+1. Strona główna   
+   
+   a) z tego poziomu można przejść na pozostałe sekcje,
+   
+   b) służy jako ekran powitalny panelu administratora,
+   
+   c) wyświetla stworzone przez użytkownika podstrony,
+   
+   d) pozwala na pobranie stron;
+
+2. Sekcja 'generowania strony'
+   
+   a) pozwala użytkownikowi wygenerować pojedynczą podstronę o podanej nazwie,
+   
+   b) umożliwia wybranie odpowiedniego szablonu,
+   
+   c) pozwala wypełnić szablon komponentami;
+
+3. Sekcja 'szablony'
+   
+   a) umożliwia stworzenie niestandardowego szablonu (układu komponentów na stronie), nadanie mu nazwy i zapisanie w systemie;
+
+4. Sekcja 'ustawienia'
+   
+   a) pozwala na uzupełnienie danych o konferencji na podstawie których wypełniane będą komponenty;
+
+5. Sekcja 'uczestnicy'
+   
+   a) zawiera listę uczestników z możliwym poglądem, edycją i usunięciem
+   
+   b) pozwala na manualne utworzenie uczestników
+   
+   c) pozwala na powiadomienie uczestnika o zaakceptowaniu płatności (bez jej obsługi)
+
+Oprócz tego, dążymy do tego, aby produkt końcowy umożliwiał wygenerowanie strony zawierającej:
+
+* lista uczestników
+* informacje o opłacie konferencyjnej
+* informacje na temat miejsca organizacji konferencji
+* zaproszeni mówcy
+* plan konferencji
+* dofinansowanie
+* lista uczestników
+* komitet ( programowy / naukowy )
+* kontakt
+* aktualności
+* dojazd
+* zakwaterowanie
+* poprzednie konferencje
+* zdjęcia
+* publikacja
+* konfigurowalna strona
+* konfigurowalne pole menu
+
+
+Na wtyczkę składają się dwa główne moduły:
+1. Menu, z którego można wybrać elementy do edycji oraz własności elementów:
+    - kolor,
+    - krój czcionki i jej wielkość,
+    - marginesy i przestrzeń wokół elementu,
+    - wymiary,
+    - obramowanie,
+    - położenie elementu,
+    - widoczność elementu;
+2. Podstrona wtyczki
+    - znajduje się tutaj edytor CSS, w którym dynamicznie jest generowany kod wynikowy oraz krótka instrukcja użytkowania wtyczki;
+    - pozwala na pobranie pliku CSS;
+
+-----
+
+#### **4. Lista wymagań niefunkcjonalnych**
+
+Aplikacja jest przystosowana do pracy i działania z najpopularniejszymi przeglądarkami - tj. Mozilla Firefox i tymi opartymi o silnik chromium. Wynika to z niemożności obsługi przez przestarzałe przeglądarki elementów HTML, CSS i JS powszechnie uważanych za standard.
+
+Zdecydowaliśmy się na wykonanie aplikacji webowej, ponieważ ważnym aspektem jest, aby produkt był dostępny w łatwy sposób na szerokiej gamie urządzeń.
+
+Ze względów prostoty budowy aplikacji i prywatności nie zdecydowaliśmy się na wdrożenie żadnych zewnętrznych sposobów autoryzacji.
+
+Interfejs użytkownika panelu administratora aplikacji został stworzony przy pomocy biblioteki gotowych elementów Bootstrap. Wynika to z ograniczonego czasu i chęci zbudowania szybkiego prototypu przez zespół.
+
+Wtyczka powinna działać niezawodnie również offline, łącznie z opcją zapisywania pliku wynikowego, jednak strona, na której zachodzą zmiany musi być w pełni załadowana.
+
+Niektóre funkcjonalności nie zostaną wdrożone z uwagi na zmiany w podziale zadań w grupie w trakcie trwania projektu.
+
+
+
+-----
+
+#### **5. Mierzalne wskaźniki wdrożeniowe**
+
+Na koniec drugiego semestru klient otrzyma wersję beta systemu. W przypadku braku zastrzeżeń aplikacja zostanie udostępniona na potrzeby klienta i jego zakładu, a wtyczka udostępniona w Chrome Web Store.
+
+-----
+
+#### **6. Kryteria akceptacji projektu dla I semestru prac**
+
+* wymagane
+  
+  * generator szablonów
+    * sekcja panelu administratora umożliwiająca użytkownikowi wygenerowanie szablonu (tj. siatki na komponenty)
+    * opcjonalna możliwość dodania własnych styli i skryptów
+  * generator pojedynczej strony
+    * umożliwia wybranie szablonu (jednego z domyślnych lub stworzonych przez użytkownika) i uzupełnienia go o komponenty
+    * pozwala na finalne wygenerowanie strony do plików.
+    * zabezpieczenie panelu administratora przed nieautoryzowanym dostępem
+  * edytor wyglądu stron z naciskiem na edycję wyglądu całych znaczników, a nie poszczególnych elementów
+
+* oczekiwane
+  
+  * wygenerowanie responsywnego prototypu strony przy użyciu aplikacji
+
+* planowane
+  
+  * ukierunkowanie przygotowanych komponentów ściśle pod stronę konferencyjną
+
+-----
+
+#### **7. Kryteria akceptacji projektu dla II semestru prac**
+
+* wymagane
+  
+  * rozbudowanie panelu administratora o kolejne zakładki umożliwiające konfigurację danych na temat konferencji
+  
+  * uzupełnienie bazy komponentów o te, które zostały opisane w wizji projektu
+  
+  * dodanie możliwości tworzenia więcej niż jednej podstrony
+  
+  * rozszerzenie działania wtyczki o edycję pojedynczych elementów i zapisanie stanu strony
+
+* oczekiwane
+  
+  * dodanie zakładki do zarządzania uczestnikami konferencji
+  
+  * dodanie możliwości podglądu podstrony na różnych rozdzielczościach ekranu
+  
+  * przygotowanie wygenerowanej strony do publikacji
+  
+  * rozbudowanie edytora CSS, np. o możliwość wskazywania literówek
+
+* planowane
+  
+  * rozbudowanie procesu generowania strony o optymalizację plików wynikowych
+
+-----
+
+#### **8. Organizacja pracy zespołu**
+
+Nasz zespół został podzielone na trzy podgrupy:
+
+* część frontendowa
+  
+  * Konrad Pierzyński
+    
+    * sekcja generatora szablonów
+    * generator responsywnych szablonów
+    * funkcjonalność dodawania styli i skryptów
+    * szablony i komponenty
+    * UX/UI aplikacji
+  
+  * Michał Starski
+    
+    * konfiguracja środowiska frontendu
+    * sekcja tworzenia strony
+    * system ładowania komponentów i szablonów
+    * sekcja podglądu wygenerowanej strony
+    * autoryzacja użytkownika
+    * zarządzanie flow pracy GIT/JIRA
+
+* część backendowa
+  
+  * Maciej Więcek
+    * baza danych i logika aplikacji
+    * generowanie stron
+    * zabezpieczenie API
+    * autoryzacja użytkownika
+    * deployment usługi
+
+* wtyczka
+    * Patrycja Łaźna
+        * wszystkie działania związane ze stworzeniem wtyczki
+        * UX/UI
+        * testowanie wtyczki
+        * deployment 
+
+Komunikacją z klientem zajmuje się cały zespół z wykorzystaniem MS Teams.
+
+Zespół przyjął metodykę kanban. Rozważany był również scrum, ale z uwagi na zbyt dużą asynchroniczność prac spowodowaną czynnikami zewnętrznymi finalnie został odrzucony.
+
+Do zarządzania pracą i kodem, zespół korzysta z dwóch narzędzi:
+
+* JIRA - organizacja zadań
+* GIT - kontrola kodu
+* Trello - organizacja zadań (zadania dot. wtyczki, tylko w I semestrze)
+
+#### *Cykl życia zadania w projekcie*
+
+Zadanie powstaje podczas cotygodniowego spotkania, podczas którego członkowie zespołu omawiają kolejne kroki budowy aplikacji i ustalają ich priorytety. W momencie gdy zadanie jest gotowe do realizacji, trafia ono do puli zadań do zrobienia w Jirze.
+
+| Nazwa etapu zadania | Do zrobienia                                                            | W trakcie                                                                                            | Zrobione                              |
+| ------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------- |
+| Opis etapu          | Po uzgodnieniu z zespołym nowo zaplanowane zadanie trafia w to miejsce. | Deklaracja członka zespołu, że pracuje nad zadaniem. Ewentualnie zadanie jest w trakcie sprawdzania. | Zadanie zostaje uznane za zakończone. |
+
+-----
+
+#### **9.  Ryzyka projektowe**
+
+Ze względu na mały zespół i ograniczony czas, funkcjonalności mogą okazać się niedopracowane. Ponadto jednorodny wygląd komponentów może odpychać niektórych klientów.
+Podzielenie systemu na aplikację i wtyczkę może wydawać się nieintuicyjne.
+
+-----
+
+#### **10. Kamienie milowe**
+
+* koniec marca
+  * Przygotowanie infrastruktury projektu, rozmowa z klientem
+* początek kwietnia
+  * Stworzenie podstawowego panelu administratora z możliwością wyboru szablonu i umieszczenie w nim komponentów
+* środek kwietnia
+  * Komunikacja prototypu panelu adminstratora z serwerem
+* koniec kwietnia
+  * Stworzenie minimalnej wersji aplikacji
+* początek maja
+  * Dodanie autoryzacji administratorów, przerobienie interfejsu tworzenia i umieszczania komponentów
+* czerwiec
+  * Mechanizm generowania pojedynczej strony
+  * Dodanie modułów do edycji elementów we wtyczce i mechanizmu generowania kodu CSS
+* lipiec - sierpień
+  * Dodanie prostego edytora CSS
+  * Stworzenie działającego prototypu wtyczki
+* październik - listopad
+  * Konfiguracja danych odnoście konferencji i umożliwienie komponentom korzystanie z nich
+* listopad - grudzień
+  * Łączenie wielu podstron w jedną całość
+  * Rozbudowanie działania pickera o pojedyncze elementy
+* styczeń - luty
+  * Rozszerzenie możliwości edytora CSS
+  * Optymalizacja procesu budowania strony wynikowej
+  * Przygotowanie produkcyjnych komponentów
\ No newline at end of file

From 946f8999abe102d1d748c534694c3ed805f69c45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrycja=20=C5=81a=C5=BAna?= <patlaz@st.amu.edu.pl>
Date: Sun, 22 Nov 2020 15:11:49 +0100
Subject: [PATCH 2/2] =?UTF-8?q?poprawka=20wg.=20wskaza=C5=84=20dr=20Witkow?=
 =?UTF-8?q?skiego?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../dokument-wymagan-projektowych-2a.md       | 578 +++++++++---------
 1 file changed, 289 insertions(+), 289 deletions(-)

diff --git a/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md b/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md
index 66c132c..93b8098 100644
--- a/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md
+++ b/Witkowski/conference-page/dokument-wymagan-projektowych-2a.md
@@ -1,290 +1,290 @@
-# Dokument wymagań projektowych
-
-## Dokument wizji dla projektu Conference Web
-
-### Autorzy: Konrad Pierzyński, Michał Starski, Maciej Więcek, Patrycja Łaźna
-
-### Data: 14.11.2020r
-
------
-
-#### **0. Wersje dokumentu**
-
-14.11.2020r - stworzenie dokumentu
-
-18.11.2020r - poprawki według zaleceń prowadzącego
-
-19.11.2020r - uzupełnienie dokumentu o elementy związane z wtyczką
-
------
-
-#### **1. Elementy składowe projektu**
-
-* aplikacja webowa w języku JavaScript oparta o framework React;
-
-* aplikacja serwerowa w języku Java oparta o framework Spring;
-
-* instancja serwera bazy danych oparta o silnik PostgreSQL;
-
-* wtyczka do edycji wyglądu strony działająca w przeglądarce;
-
-* prototyp wtyczki wykonany w Adobe XD;
-
-* dokumenty: "wizja projektu", "kryteria akceptacji", "dokumentacja techniczna", "dokument wymagań projektowych"
-
------
-
-#### **2. Granice projektu**
-
-Z uwagi na uproszczenia, które stosujemy, aby aplikacja była przystępna dla osób nietechnicznych, jak i skupienie na jednym typie generowanych stron, produkt nie będzie tak rozwinięty, jak obecne na rynku inne rozbudowane i komercyjne CMS’y.
-Do funkcjonalności, które nie znajdą się w aplikacji, należą między innymi:
-
-- tworzenie treści wykraczających poza schemat strony konferencyjnej,
-- obsługa płatności.
-
-Dodatkowo, ze względu na podział prac w grupie, stworzony jest oddzielny moduł do edycji wyglądu stron, działający jedynie w przeglądarkach opartych o silnik chromium.
-
------
-
-#### **3. Lista wymagań funkcjonalnych**
-
-Na panel administratora składają się następujące sekcje:
-
-1. Strona główna   
-   
-   a) z tego poziomu można przejść na pozostałe sekcje,
-   
-   b) służy jako ekran powitalny panelu administratora,
-   
-   c) wyświetla stworzone przez użytkownika podstrony,
-   
-   d) pozwala na pobranie stron;
-
-2. Sekcja 'generowania strony'
-   
-   a) pozwala użytkownikowi wygenerować pojedynczą podstronę o podanej nazwie,
-   
-   b) umożliwia wybranie odpowiedniego szablonu,
-   
-   c) pozwala wypełnić szablon komponentami;
-
-3. Sekcja 'szablony'
-   
-   a) umożliwia stworzenie niestandardowego szablonu (układu komponentów na stronie), nadanie mu nazwy i zapisanie w systemie;
-
-4. Sekcja 'ustawienia'
-   
-   a) pozwala na uzupełnienie danych o konferencji na podstawie których wypełniane będą komponenty;
-
-5. Sekcja 'uczestnicy'
-   
-   a) zawiera listę uczestników z możliwym poglądem, edycją i usunięciem
-   
-   b) pozwala na manualne utworzenie uczestników
-   
-   c) pozwala na powiadomienie uczestnika o zaakceptowaniu płatności (bez jej obsługi)
-
-Oprócz tego, dążymy do tego, aby produkt końcowy umożliwiał wygenerowanie strony zawierającej:
-
-* lista uczestników
-* informacje o opłacie konferencyjnej
-* informacje na temat miejsca organizacji konferencji
-* zaproszeni mówcy
-* plan konferencji
-* dofinansowanie
-* lista uczestników
-* komitet ( programowy / naukowy )
-* kontakt
-* aktualności
-* dojazd
-* zakwaterowanie
-* poprzednie konferencje
-* zdjęcia
-* publikacja
-* konfigurowalna strona
-* konfigurowalne pole menu
-
-
-Na wtyczkę składają się dwa główne moduły:
-1. Menu, z którego można wybrać elementy do edycji oraz własności elementów:
-    - kolor,
-    - krój czcionki i jej wielkość,
-    - marginesy i przestrzeń wokół elementu,
-    - wymiary,
-    - obramowanie,
-    - położenie elementu,
-    - widoczność elementu;
-2. Podstrona wtyczki
-    - znajduje się tutaj edytor CSS, w którym dynamicznie jest generowany kod wynikowy oraz krótka instrukcja użytkowania wtyczki;
-    - pozwala na pobranie pliku CSS;
-
------
-
-#### **4. Lista wymagań niefunkcjonalnych**
-
-Aplikacja jest przystosowana do pracy i działania z najpopularniejszymi przeglądarkami - tj. Mozilla Firefox i tymi opartymi o silnik chromium. Wynika to z niemożności obsługi przez przestarzałe przeglądarki elementów HTML, CSS i JS powszechnie uważanych za standard.
-
-Zdecydowaliśmy się na wykonanie aplikacji webowej, ponieważ ważnym aspektem jest, aby produkt był dostępny w łatwy sposób na szerokiej gamie urządzeń.
-
-Ze względów prostoty budowy aplikacji i prywatności nie zdecydowaliśmy się na wdrożenie żadnych zewnętrznych sposobów autoryzacji.
-
-Interfejs użytkownika panelu administratora aplikacji został stworzony przy pomocy biblioteki gotowych elementów Bootstrap. Wynika to z ograniczonego czasu i chęci zbudowania szybkiego prototypu przez zespół.
-
-Wtyczka powinna działać niezawodnie również offline, łącznie z opcją zapisywania pliku wynikowego, jednak strona, na której zachodzą zmiany musi być w pełni załadowana.
-
-Niektóre funkcjonalności nie zostaną wdrożone z uwagi na zmiany w podziale zadań w grupie w trakcie trwania projektu.
-
-
-
------
-
-#### **5. Mierzalne wskaźniki wdrożeniowe**
-
-Na koniec drugiego semestru klient otrzyma wersję beta systemu. W przypadku braku zastrzeżeń aplikacja zostanie udostępniona na potrzeby klienta i jego zakładu, a wtyczka udostępniona w Chrome Web Store.
-
------
-
-#### **6. Kryteria akceptacji projektu dla I semestru prac**
-
-* wymagane
-  
-  * generator szablonów
-    * sekcja panelu administratora umożliwiająca użytkownikowi wygenerowanie szablonu (tj. siatki na komponenty)
-    * opcjonalna możliwość dodania własnych styli i skryptów
-  * generator pojedynczej strony
-    * umożliwia wybranie szablonu (jednego z domyślnych lub stworzonych przez użytkownika) i uzupełnienia go o komponenty
-    * pozwala na finalne wygenerowanie strony do plików.
-    * zabezpieczenie panelu administratora przed nieautoryzowanym dostępem
-  * edytor wyglądu stron z naciskiem na edycję wyglądu całych znaczników, a nie poszczególnych elementów
-
-* oczekiwane
-  
-  * wygenerowanie responsywnego prototypu strony przy użyciu aplikacji
-
-* planowane
-  
-  * ukierunkowanie przygotowanych komponentów ściśle pod stronę konferencyjną
-
------
-
-#### **7. Kryteria akceptacji projektu dla II semestru prac**
-
-* wymagane
-  
-  * rozbudowanie panelu administratora o kolejne zakładki umożliwiające konfigurację danych na temat konferencji
-  
-  * uzupełnienie bazy komponentów o te, które zostały opisane w wizji projektu
-  
-  * dodanie możliwości tworzenia więcej niż jednej podstrony
-  
-  * rozszerzenie działania wtyczki o edycję pojedynczych elementów i zapisanie stanu strony
-
-* oczekiwane
-  
-  * dodanie zakładki do zarządzania uczestnikami konferencji
-  
-  * dodanie możliwości podglądu podstrony na różnych rozdzielczościach ekranu
-  
-  * przygotowanie wygenerowanej strony do publikacji
-  
-  * rozbudowanie edytora CSS, np. o możliwość wskazywania literówek
-
-* planowane
-  
-  * rozbudowanie procesu generowania strony o optymalizację plików wynikowych
-
------
-
-#### **8. Organizacja pracy zespołu**
-
-Nasz zespół został podzielone na trzy podgrupy:
-
-* część frontendowa
-  
-  * Konrad Pierzyński
-    
-    * sekcja generatora szablonów
-    * generator responsywnych szablonów
-    * funkcjonalność dodawania styli i skryptów
-    * szablony i komponenty
-    * UX/UI aplikacji
-  
-  * Michał Starski
-    
-    * konfiguracja środowiska frontendu
-    * sekcja tworzenia strony
-    * system ładowania komponentów i szablonów
-    * sekcja podglądu wygenerowanej strony
-    * autoryzacja użytkownika
-    * zarządzanie flow pracy GIT/JIRA
-
-* część backendowa
-  
-  * Maciej Więcek
-    * baza danych i logika aplikacji
-    * generowanie stron
-    * zabezpieczenie API
-    * autoryzacja użytkownika
-    * deployment usługi
-
-* wtyczka
-    * Patrycja Łaźna
-        * wszystkie działania związane ze stworzeniem wtyczki
-        * UX/UI
-        * testowanie wtyczki
-        * deployment 
-
-Komunikacją z klientem zajmuje się cały zespół z wykorzystaniem MS Teams.
-
-Zespół przyjął metodykę kanban. Rozważany był również scrum, ale z uwagi na zbyt dużą asynchroniczność prac spowodowaną czynnikami zewnętrznymi finalnie został odrzucony.
-
-Do zarządzania pracą i kodem, zespół korzysta z dwóch narzędzi:
-
-* JIRA - organizacja zadań
-* GIT - kontrola kodu
-* Trello - organizacja zadań (zadania dot. wtyczki, tylko w I semestrze)
-
-#### *Cykl życia zadania w projekcie*
-
-Zadanie powstaje podczas cotygodniowego spotkania, podczas którego członkowie zespołu omawiają kolejne kroki budowy aplikacji i ustalają ich priorytety. W momencie gdy zadanie jest gotowe do realizacji, trafia ono do puli zadań do zrobienia w Jirze.
-
-| Nazwa etapu zadania | Do zrobienia                                                            | W trakcie                                                                                            | Zrobione                              |
-| ------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------- |
-| Opis etapu          | Po uzgodnieniu z zespołym nowo zaplanowane zadanie trafia w to miejsce. | Deklaracja członka zespołu, że pracuje nad zadaniem. Ewentualnie zadanie jest w trakcie sprawdzania. | Zadanie zostaje uznane za zakończone. |
-
------
-
-#### **9.  Ryzyka projektowe**
-
-Ze względu na mały zespół i ograniczony czas, funkcjonalności mogą okazać się niedopracowane. Ponadto jednorodny wygląd komponentów może odpychać niektórych klientów.
-Podzielenie systemu na aplikację i wtyczkę może wydawać się nieintuicyjne.
-
------
-
-#### **10. Kamienie milowe**
-
-* koniec marca
-  * Przygotowanie infrastruktury projektu, rozmowa z klientem
-* początek kwietnia
-  * Stworzenie podstawowego panelu administratora z możliwością wyboru szablonu i umieszczenie w nim komponentów
-* środek kwietnia
-  * Komunikacja prototypu panelu adminstratora z serwerem
-* koniec kwietnia
-  * Stworzenie minimalnej wersji aplikacji
-* początek maja
-  * Dodanie autoryzacji administratorów, przerobienie interfejsu tworzenia i umieszczania komponentów
-* czerwiec
-  * Mechanizm generowania pojedynczej strony
-  * Dodanie modułów do edycji elementów we wtyczce i mechanizmu generowania kodu CSS
-* lipiec - sierpień
-  * Dodanie prostego edytora CSS
-  * Stworzenie działającego prototypu wtyczki
-* październik - listopad
-  * Konfiguracja danych odnoście konferencji i umożliwienie komponentom korzystanie z nich
-* listopad - grudzień
-  * Łączenie wielu podstron w jedną całość
-  * Rozbudowanie działania pickera o pojedyncze elementy
-* styczeń - luty
-  * Rozszerzenie możliwości edytora CSS
-  * Optymalizacja procesu budowania strony wynikowej
+# Dokument wymagań projektowych
+
+## Dokument wizji dla projektu Conference Web
+
+### Autorzy: Konrad Pierzyński, Michał Starski, Maciej Więcek, Patrycja Łaźna
+
+### Data: 14.11.2020r
+
+-----
+
+#### **0. Wersje dokumentu**
+
+14.11.2020r - stworzenie dokumentu
+
+18.11.2020r - poprawki według zaleceń prowadzącego
+
+19.11.2020r - uzupełnienie dokumentu o elementy związane z wtyczką
+
+-----
+
+#### **1. Elementy składowe projektu**
+
+* aplikacja webowa w języku JavaScript oparta o framework React;
+
+* aplikacja serwerowa w języku Java oparta o framework Spring;
+
+* instancja serwera bazy danych oparta o silnik PostgreSQL;
+
+* wtyczka do edycji wyglądu strony działająca w przeglądarce;
+
+* prototyp wtyczki wykonany w Adobe XD;
+
+* dokumenty: "wizja projektu", "kryteria akceptacji", "dokumentacja techniczna", "dokument wymagań projektowych"
+
+-----
+
+#### **2. Granice projektu**
+
+Z uwagi na uproszczenia, które stosujemy, aby aplikacja była przystępna dla osób nietechnicznych, jak i skupienie na jednym typie generowanych stron, produkt nie będzie tak rozwinięty, jak obecne na rynku inne rozbudowane i komercyjne CMS’y.
+Do funkcjonalności, które nie znajdą się w aplikacji, należą między innymi:
+
+- tworzenie treści wykraczających poza schemat strony konferencyjnej,
+- obsługa płatności.
+
+Dodatkowo, ze względu na podział prac w grupie, stworzony jest oddzielny moduł do edycji wyglądu stron, działający jedynie w przeglądarkach opartych o silnik chromium.
+
+-----
+
+#### **3. Lista wymagań funkcjonalnych**
+
+Na panel administratora składają się następujące sekcje:
+
+1. Strona główna   
+   
+   a) z tego poziomu można przejść na pozostałe sekcje,
+   
+   b) służy jako ekran powitalny panelu administratora,
+   
+   c) wyświetla stworzone przez użytkownika podstrony,
+   
+   d) pozwala na pobranie stron;
+
+2. Sekcja 'generowania strony'
+   
+   a) pozwala użytkownikowi wygenerować pojedynczą podstronę o podanej nazwie,
+   
+   b) umożliwia wybranie odpowiedniego szablonu,
+   
+   c) pozwala wypełnić szablon komponentami;
+
+3. Sekcja 'szablony'
+   
+   a) umożliwia stworzenie niestandardowego szablonu (układu komponentów na stronie), nadanie mu nazwy i zapisanie w systemie;
+
+4. Sekcja 'ustawienia'
+   
+   a) pozwala na uzupełnienie danych o konferencji na podstawie których wypełniane będą komponenty;
+
+5. Sekcja 'uczestnicy'
+   
+   a) zawiera listę uczestników z możliwym poglądem, edycją i usunięciem
+   
+   b) pozwala na manualne utworzenie uczestników
+   
+   c) pozwala na powiadomienie uczestnika o zaakceptowaniu płatności (bez jej obsługi)
+
+Oprócz tego, dążymy do tego, aby produkt końcowy umożliwiał wygenerowanie strony zawierającej:
+
+* lista uczestników
+* informacje o opłacie konferencyjnej
+* informacje na temat miejsca organizacji konferencji
+* zaproszeni mówcy
+* plan konferencji
+* dofinansowanie
+* lista uczestników
+* komitet ( programowy / naukowy )
+* kontakt
+* aktualności
+* dojazd
+* zakwaterowanie
+* poprzednie konferencje
+* zdjęcia
+* publikacja
+* konfigurowalna strona
+* konfigurowalne pole menu
+
+
+Na wtyczkę składają się dwa główne moduły:
+1. Menu, z którego można wybrać elementy do edycji oraz własności elementów:
+    - kolor,
+    - krój czcionki i jej wielkość,
+    - marginesy i przestrzeń wokół elementu,
+    - wymiary,
+    - obramowanie,
+    - położenie elementu,
+    - widoczność elementu;
+2. Podstrona wtyczki
+    - znajduje się tutaj edytor CSS, w którym dynamicznie jest generowany kod wynikowy oraz krótka instrukcja użytkowania wtyczki;
+    - pozwala na pobranie pliku CSS;
+
+-----
+
+#### **4. Lista wymagań niefunkcjonalnych**
+
+Aplikacja jest przystosowana do pracy i działania z najpopularniejszymi przeglądarkami - tj. Mozilla Firefox i tymi opartymi o silnik chromium. Wynika to z niemożności obsługi przez przestarzałe przeglądarki elementów HTML, CSS i JS powszechnie uważanych za standard.
+
+Zdecydowaliśmy się na wykonanie aplikacji webowej, ponieważ ważnym aspektem jest, aby produkt był dostępny w łatwy sposób na szerokiej gamie urządzeń.
+
+Ze względów prostoty budowy aplikacji i prywatności nie zdecydowaliśmy się na wdrożenie żadnych zewnętrznych sposobów autoryzacji.
+
+Interfejs użytkownika panelu administratora aplikacji został stworzony przy pomocy biblioteki gotowych elementów Bootstrap. Wynika to z ograniczonego czasu i chęci zbudowania szybkiego prototypu przez zespół.
+
+Wtyczka powinna działać niezawodnie również offline, łącznie z opcją zapisywania pliku wynikowego, jednak strona, na której zachodzą zmiany musi być w pełni załadowana. Dodatkowo, pozwala na edytowanie stron, w taki sposób, że zmiany będą działać również na urządzeniach mobilnych.
+
+Niektóre funkcjonalności nie zostaną wdrożone z uwagi na zmiany w podziale zadań w grupie w trakcie trwania projektu.
+
+
+
+-----
+
+#### **5. Mierzalne wskaźniki wdrożeniowe**
+
+Na koniec drugiego semestru klient otrzyma wersję beta systemu. W przypadku braku zastrzeżeń aplikacja zostanie udostępniona na potrzeby klienta i jego zakładu, a wtyczka udostępniona w Chrome Web Store.
+
+-----
+
+#### **6. Kryteria akceptacji projektu dla I semestru prac**
+
+* wymagane
+  
+  * generator szablonów
+    * sekcja panelu administratora umożliwiająca użytkownikowi wygenerowanie szablonu (tj. siatki na komponenty)
+    * opcjonalna możliwość dodania własnych styli i skryptów
+  * generator pojedynczej strony
+    * umożliwia wybranie szablonu (jednego z domyślnych lub stworzonych przez użytkownika) i uzupełnienia go o komponenty
+    * pozwala na finalne wygenerowanie strony do plików.
+    * zabezpieczenie panelu administratora przed nieautoryzowanym dostępem
+  * edytor wyglądu stron z naciskiem na edycję wyglądu całych znaczników, a nie poszczególnych elementów
+
+* oczekiwane
+  
+  * wygenerowanie responsywnego prototypu strony przy użyciu aplikacji
+
+* planowane
+  
+  * ukierunkowanie przygotowanych komponentów ściśle pod stronę konferencyjną
+
+-----
+
+#### **7. Kryteria akceptacji projektu dla II semestru prac**
+
+* wymagane
+  
+  * rozbudowanie panelu administratora o kolejne zakładki umożliwiające konfigurację danych na temat konferencji
+  
+  * uzupełnienie bazy komponentów o te, które zostały opisane w wizji projektu
+  
+  * dodanie możliwości tworzenia więcej niż jednej podstrony
+  
+  * rozszerzenie działania wtyczki o edycję pojedynczych elementów i zapisanie stanu strony
+
+* oczekiwane
+  
+  * dodanie zakładki do zarządzania uczestnikami konferencji
+  
+  * dodanie możliwości podglądu podstrony na różnych rozdzielczościach ekranu
+  
+  * przygotowanie wygenerowanej strony do publikacji
+  
+  * rozbudowanie edytora CSS, np. o możliwość wskazywania literówek
+
+* planowane
+  
+  * rozbudowanie procesu generowania strony o optymalizację plików wynikowych
+
+-----
+
+#### **8. Organizacja pracy zespołu**
+
+Nasz zespół został podzielone na trzy podgrupy:
+
+* część frontendowa
+  
+  * Konrad Pierzyński
+    
+    * sekcja generatora szablonów
+    * generator responsywnych szablonów
+    * funkcjonalność dodawania styli i skryptów
+    * szablony i komponenty
+    * UX/UI aplikacji
+  
+  * Michał Starski
+    
+    * konfiguracja środowiska frontendu
+    * sekcja tworzenia strony
+    * system ładowania komponentów i szablonów
+    * sekcja podglądu wygenerowanej strony
+    * autoryzacja użytkownika
+    * zarządzanie flow pracy GIT/JIRA
+
+* część backendowa
+  
+  * Maciej Więcek
+    * baza danych i logika aplikacji
+    * generowanie stron
+    * zabezpieczenie API
+    * autoryzacja użytkownika
+    * deployment usługi
+
+* wtyczka
+    * Patrycja Łaźna
+        * wszystkie działania związane ze stworzeniem wtyczki
+        * UX/UI
+        * testowanie wtyczki
+        * deployment 
+
+Komunikacją z klientem zajmuje się cały zespół z wykorzystaniem MS Teams.
+
+Zespół przyjął metodykę kanban. Rozważany był również scrum, ale z uwagi na zbyt dużą asynchroniczność prac spowodowaną czynnikami zewnętrznymi finalnie został odrzucony.
+
+Do zarządzania pracą i kodem, zespół korzysta z dwóch narzędzi:
+
+* JIRA - organizacja zadań
+* GIT - kontrola kodu
+* Trello - organizacja zadań (zadania dot. wtyczki, tylko w I semestrze)
+
+#### *Cykl życia zadania w projekcie*
+
+Zadanie powstaje podczas cotygodniowego spotkania, podczas którego członkowie zespołu omawiają kolejne kroki budowy aplikacji i ustalają ich priorytety. W momencie gdy zadanie jest gotowe do realizacji, trafia ono do puli zadań do zrobienia w Jirze.
+
+| Nazwa etapu zadania | Do zrobienia                                                            | W trakcie                                                                                            | Zrobione                              |
+| ------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------- |
+| Opis etapu          | Po uzgodnieniu z zespołym nowo zaplanowane zadanie trafia w to miejsce. | Deklaracja członka zespołu, że pracuje nad zadaniem. Ewentualnie zadanie jest w trakcie sprawdzania. | Zadanie zostaje uznane za zakończone. |
+
+-----
+
+#### **9.  Ryzyka projektowe**
+
+Ze względu na mały zespół i ograniczony czas, funkcjonalności mogą okazać się niedopracowane. Ponadto jednorodny wygląd komponentów może odpychać niektórych klientów.
+Podzielenie systemu na aplikację i wtyczkę może wydawać się nieintuicyjne.
+
+-----
+
+#### **10. Kamienie milowe**
+
+* koniec marca
+  * Przygotowanie infrastruktury projektu, rozmowa z klientem
+* początek kwietnia
+  * Stworzenie podstawowego panelu administratora z możliwością wyboru szablonu i umieszczenie w nim komponentów
+* środek kwietnia
+  * Komunikacja prototypu panelu adminstratora z serwerem
+* koniec kwietnia
+  * Stworzenie minimalnej wersji aplikacji
+* początek maja
+  * Dodanie autoryzacji administratorów, przerobienie interfejsu tworzenia i umieszczania komponentów
+* czerwiec
+  * Mechanizm generowania pojedynczej strony
+  * Dodanie modułów do edycji elementów we wtyczce i mechanizmu generowania kodu CSS
+* lipiec - sierpień
+  * Dodanie prostego edytora CSS
+  * Stworzenie działającego prototypu wtyczki
+* październik - listopad
+  * Konfiguracja danych odnoście konferencji i umożliwienie komponentom korzystanie z nich
+* listopad - grudzień
+  * Łączenie wielu podstron w jedną całość
+  * Rozbudowanie działania pickera o pojedyncze elementy
+* styczeń - luty
+  * Rozszerzenie możliwości edytora CSS
+  * Optymalizacja procesu budowania strony wynikowej
   * Przygotowanie produkcyjnych komponentów
\ No newline at end of file