Opis Przedmiotu Zamówienia – utworzenie, prowadzenie

Transkrypt

Opis Przedmiotu Zamówienia – utworzenie, prowadzenie
Załącznik 3B do SIWZ
Opis Przedmiotu Zamówienia – utworzenie, prowadzenie
i administrowanie aplikacją „TRASA CZERWONEJ NITKI”
Przedmiot zamówienia: utworzenie, prowadzenie i administrowanie aplikacją „TRASA
CZERWONEJ NITKI” - aplikacja na portalu do głosowania na miasta.
1. O akcji
Na platformie www.twojakrew.pl zostanie udostępniona interaktywna aplikacja z mapą Polski.
Dzięki tej aplikacji użytkownik będzie mógł kliknąć miejsce, w którym chce, aby odbył się event
krwiodawstwa. Planowane jest zorganizowanie „bitwy miast” w której będą walczyć miasta
podobne do siebie (główne kryterium to liczba mieszkańców).
Internauci stworzą mapę miejsc, w których odbędą się te eventy. W trakcie klikania internautów
na mapie Polski tworzyć się będzie na bieżąco sieć czerwonych linii, które nawiążą do głównej
idei kampanii i czerwonej linii, która łączy wszystkich Polaków.
2. Ogólny opis aplikacji
Na stronie internetowej www.twojakrew.pl ma być dostępny system głosowania, pozwalający
za pomocą mechanizmu „GŁOSUJ” na oddanie głosu na jedno wybrane miasto z pary
dwóch miast, z uwzględnieniem mechanizmu geolokalizacji internauty w danym regionie (po
wyrażeniu zgody).
Internauta może:

oddać głos na wybraną lokalizację raz dziennie,

śledzić aktualną liczbę głosów oddaną na wybrany region,

zobaczyć ranking miast

zaprosić znajomych do głosowania

publikować w mediach społecznościowych link do głosowania.
Głosowanie na każdą z par miast trwa 1 miesiąc, natomiast na 3 miasta, które uzyskały
największą liczbę głosów 2 tygodnie.
3. Product Backlog aplikacji Trasa Czerwonej Nitki
I. Definicje
Aplikacja - w rozumieniu niniejszego dokumentu jest to portal internetowy dostępny pod
adresem www.twojakrew.pl/event;
1
User - każdy zalogowany, zarejestrowany Użytkownik aplikacji internetowej, zwany dalej User;
Profil - profil dostępny na portalu, w którym dostępne są dane Usera podlegające edycji;
Region - miasto, zdefiniowane i przypisane do Usera na podstawie jego geolokalizacji. Do miasta
przypisana jest także ilość punktów. Miasto będzie wyświetlane na interaktywnej mapie Polski;
Geolokalizacja - funkcjonalność przeglądarki internetowej pozwalająca na zlokalizowanie Usera
za jego wyraźną zgodą w celu udostępnienia kontentu połączonego z lokalizacją danego Usera;
Ranking - ranking miast dostępnych w aplikacji internetowej biorących udział w głosowaniu.
Ranking miast ulega dynamnicznej zmianie w związku z głosami Userów;
Wydarzenie - zdefiniowane dla danego regionu wydarzenie o różnej tematyce, często tematyce
odpowiadającej regionowi;
Facebook - serwis społecznościowy, umożliwiający za pomocą konta zarejestrowanego
w serwisie rejestrację w aplikacji internetowej opisanej w niniejszej dokumentacji;
Admin - administrator aplikacji www, zarządza panelem CMS, zwany dalej ADM;
Głos/Punkt- głos oddany przez Usera na region, w głosowaniu dostępnym na interaktywnej
Mapie Polski pozwalający na przypisanie do wybranego miasta +1 punkt;
Przeglądarka - narzędzie pozwalające na pobranie i wyświetlanie wybranej aplikacji internetowej
(strony www) na dowolnym urządzeniu, w tym urządzeniach mobilnych;
CKiK - Centra Krwiodawstwa i Krwiolecznictwa, zwane dalej CKiK;
II. Analiza funkcjonalna:
1. User ma mieć możliwość wywołać stronę pod adresem www.twojakrew.pl/event;
2. User ma mieć możliwość wyświetlić komunikat o wykorzystywanych na stronie plikach
cookies;
2.1. User ma mieć możliwość akceptacji komunikatu o wykorzystywanych na stronie plikach
cookies;
2.2. User ma mieć możliwość nieakceptowania komunikatu o wykorzystywanych na stronie
plikach cookies;
Uwaga: User zostanie przekierowany na stronę informacji o plikach cookies wykorzystywanych
w aplikacji internetowej wraz z dokładnym wyjaśnieniem konieczności akceptacji plików cookies;
III. Geolokalizacja
1. User ma mieć możliwość otrzymać informację o wykorzystaniu geolokalizacji;
1.1. User ma mieć możliwość wyrazić zgodę;
1.2. User ma mieć możliwość nie wyrazić zgody;
2
1.2.1. User ma mieć możliwość otrzymać informację o korzyściach wynikających
z udostępnienia swojej lokalizacji;
IV. Rejestracja
1. User ma mieć możliwość rejestracji;
1.1. User ma mieć możliwość dokonać rejestracji na stronie;
1.2. User ma mieć możliwość dokonać rejestracji za pomocą swojego konta Facebook;
1.2.1. User ma mieć możliwość otrzymać ekran logowania Facebook;
1.2.1.1.
User ma mieć możliwość podać swój adres e-mail powiązany z kontem
Facebook;
1.2.1.2.
User ma mieć możliwość podać swoje hasło do konta powiązanego z
kontem Facebook;
1.2.1.3.
User ma mieć możliwość wyświetlić ekran udzielania zgody aplikacji
Facebook do logowania w aplikacji internetowej;
1.2.1.3.1.
User ma mieć możliwość nie udzielić zgody na logowanie za
pomocą aplikacji Facebook;
1.2.1.4.
User ma mieć możliwość akceptacji regulaminu aplikacji internetowej;
1.2.1.5.
User ma mieć możliwość udzielić zgody i przejść do aplikacji internetowej;
1.3. User ma mieć możliwość skorzystać z rejestracji manualnej w aplikacji internetowej;
1.3.1. User ma mieć możliwość otrzymać formularz rejestracji;
1.3.1.1.
User ma mieć możliwość podać swój adres e-mail;
1.3.1.1.1.
Uwaga: Dana obligatoryjna;
1.3.1.2.
User ma mieć możliwość podać swoje imię;
1.3.1.3.
User ma mieć możliwość podać swoje nazwisko;
1.3.1.4.
User ma mieć możliwość podać swoje miasto;
1.3.1.4.1.
User ma mieć możliwość wybrać swoje miasto z predefiniowanej
listy;
1.3.1.4.2.
Uwaga: Dana obligatoryjna, dana nieedytowalna w Profilu po
rejestracji;
1.3.1.5.
User ma mieć możliwość podać swoje hasło;
1.3.1.6.
User ma mieć możliwość powtórzyć swoje hasło;
1.3.2. User ma mieć możliwość otrzymać informację o ewentualnych błędach;
1.3.2.1.
User ma mieć możliwość poprawić błędy;
1.3.3. User ma mieć możliwość otrzymać potwierdzenie rejestracji;
3
1.3.3.1.
User ma mieć możliwość otrzymać potwierdzenie rejestracji na podany
adres e-mail;
1.3.3.2.
User ma mieć możliwość aktywacji konta poprzez kliknięcie w link
przesłany w potwierdzeniu rejestracji na podany adres e-mail;
1.3.4. User ma mieć możliwość przejść do aplikacji internetowej;
V. Logowanie
1. User ma mieć możliwość skorzystania z logowania do aplikacji internetowej;
1.1. User ma mieć możliwość otrzymać formularz logowania;
1.1.1. User ma mieć możliwość podać swój adres e-mail;
1.1.2. User ma mieć możliwość podać swoje hasło;
1.1.2.1.
User ma mieć możliwość przypomnienia swojego hasła;
1.1.2.1.1.
User ma mieć możliwość podać swój adres e-mail w celu
przypomnienia hasła;
1.1.2.1.1.1. User ma mieć możliwość otrzymać informację o braku adresu email w bazie;
1.1.2.2.
User ma mieć możliwość otrzymać potwierdzenie wysłania linku do resetu
hasła na podany adres e-mail;
1.1.2.3.
User ma mieć możliwość resetu hasła i zalogowania się do aplikacji
internetowej;
VI. Profil
1. User ma mieć możliwość wyświetlić swój profil;
1.1. User ma mieć możliwość wyświetlić profil swojego konta;
1.2. User ma mieć możliwość edycji swoich danych;
1.2.1. User ma mieć możliwość edycji swojego imienia;
1.2.2. User ma mieć możliwość edycji swojego nazwiska;
1.2.3. User ma mieć możliwość edycji swojego hasła;
1.2.3.1.
User ma mieć możliwość podać nowe hasło;
1.2.3.2.
User ma mieć możliwość otrzymać potwierdzenie zmiany hasła na nowe;
1.2.4. User ma mieć możliwość edycji swojego zdjęcia;
1.2.4.1.
User ma mieć możliwość dodania nowego zdjęcia;
1.2.4.2.
User ma mieć możliwość wybrania zdjęcia;
1.2.4.3.
User ma mieć możliwość zapisania nowego zdjęcia;
4
1.2.4.3.1.
User ma mieć możliwość otrzymania informacji o błędnym
formacie zdjęcia;
1.2.4.3.2.
User ma mieć możliwość otrzymania informacji o błędnym
rozmiarze zdjęcia;
1.2.4.4.
User ma mieć możliwość otrzymać potwierdzenie zapisania nowego
zdjęcia;
1.3. User ma mieć możliwość wyświetlić swoje wydarzenia;
1.3.1. User ma mieć możliwość wyświetlić swoje wydarzenia przeszłe w których brał
udział;
1.3.2. User ma mieć możliwość wyświetlić swoje wydarzenia przeszłe w których nie brał
udziału;
Wyświtlanie
VII.
1. User ma mieć możliwość wyświetlić znajomych;
1.1. User ma mieć możliwość wyświetlić znajomych w aplikacji internetowej;
VIII.
Mapa Polski
1. User ma mieć możliwość wyświetlić interaktywną mapę Polski;
1.1. User ma mieć możliwość wyświetlić interaktywną mapę Polski zdefiniowanej na swojej
lokalizacji;
1.2. User ma mieć możliwość doprecyzować swoją lokalizację;
1.2.1. User ma mieć możliwość wybrać swoje miasto z predefiniowanej listy miast;
1.2.2. User ma mieć możliwość potwierdzić wybór miasta;
1.2.2.1.
User ma mieć możliwość otrzymać potwierdzenie wyboru miasta;
1.3. User ma mieć możliwość wyświetlić ilość punktów dla danego miasta;
1.4. User ma mieć możliwość zapoznać się z wydarzeniami
IX. Ranking miast
1. User ma mieć możliwość wyświetlić aktualny ranking miast;
1.1. User ma mieć możliwość wyświetlić ranking miast w postaci tabeli;
1.1.1. User ma mieć możliwość wyświetlić ranking miast od miasta, które ma najwięcej
głosów do miasta, które ma najmniej głosów;
1.1.2. User ma mieć możliwość wybrać miasto do wyświetlenia;
1.1.3. User ma mieć możliwość wyświetlić wydarzenia w wybranym mieście;
5
X. Centra Krwiodawstwa i Krwiolecznictwa
1. User ma mieć możliwość wyświetlić Centra Krwiodawstwa dedykowane dla danego regionu;
1.1. User ma mieć możliwość wyświetlić podstawowe informacje nt. centrum pobrań krwi
dla danego regionu (CKiK);
1.1.1. User ma mieć możliwość wyświetlić ulicę;
1.1.2. User ma mieć możliwość wyświetlić kod pocztowy;
1.1.3. User ma mieć możliwość wyświetlić numer telefonu;
1.1.4. User ma mieć możliwość wyświetlić adres strony internetowej;
1.1.5. User ma mieć możliwość wyświetlić krótki opis placówki;
XI. Wydarzenia
1. User ma mieć możliwość wyświetlić wydarzenia zdefiniowane dla danego regionu;
1.1. User ma mieć możliwość wyświetlić wydarzenie promowane dla danego regionu;
1.2. User ma mieć możliwość wyświetlić wszystkie wydarzenia pozostałe;
1.3. User ma mieć możliwość wyświetlić informacje zawarte w wydarzeniu;
1.3.1. User ma mieć możliwość wyświetlić informację czy wydarzenie jest promowane;
1.3.2. User ma mieć możliwość wyświetlić temat wydarzenia;
1.3.3. User ma mieć możliwość wyświetlić opis wydarzenia;
1.3.4. User ma mieć możliwość wyświetlić ilość głosów oddanych na wydarzenie;
1.3.5. User ma mieć możliwość wyświetlić osoby biorące udział w wydarzeniu;
1.3.6. User ma mieć możliwość wyświetlić datę wydarzenia;
1.3.7. User ma mieć możliwość wyświetlić godzinę wydarzenia;
1.4. User ma mieć możliwość wziąć udział w wydarzeniu;
1.4.1. User ma mieć możliwość otrzymać potwierdzenie wzięcia w wydarzeniu;
1.5. User ma mieć możliwość zaproszenia znajomych na wydarzenie;
1.5.1. User ma mieć możliwość zaproszenia znajomych do wydarzenia;
1.6. User
ma
mieć
możliwość
udostępnienia
wydarzenia
na
wybranym
portalu
społecznościowym;
1.6.1. User ma mieć możliwość udostępnić wydarzenie na Facebook;
1.6.1.1.
User ma mieć możliwość otrzymać dedykowany link do udostępnienia
wydarzenia na Facebook;
1.6.2. User ma mieć możliwość udostępnić wydarzenie na Twitter;
6
1.6.2.1.
User ma mieć możliwość otrzymać dedykowany link do udostępnienia
wydarzenia na Twitter;
1.6.3. User ma mieć możliwość udostępnić wydarzenie na Google+ (TBC);
1.6.3.1.
User ma mieć możliwość otrzymać dedykowany link do udostępnienia
wydarzenia na Google+;
1.6.4. TBC;
1.7. User ma mieć możliwość oddać głos na wydarzenie;
1.7.1. User ma mieć możliwość oddania jednego głosu na wybrane wydarzenie w regionie;
XII.
Strony statyczne i formularz kontaktowy
1. User ma mieć możliwość wyświetlić strony statyczne aplikacji;
1.1. User ma mieć możliwość wyświetlić stronę z regulaminem aplikacji;
1.2. User ma mieć możliwość wyświetlić stronę z polityką prywatności aplikacji;
1.3. User ma mieć możliwość wyświetlić stronę z formularzem kontaktowym w aplikacji;
1.3.1. Dla Userów niezalogowanych;
1.3.1.1.
User ma mieć możliwość podać swoje imię;
1.3.1.2.
User ma mieć możliwość podać swoje nazwisko;
1.3.1.3.
User ma mieć możliwość podać swój adres e-mail;
1.3.1.3.1.
1.3.1.4.
Uwaga: Dana obligatoryjna;
User ma mieć możliwość podać swoje miasto;
1.3.1.4.1.
Uwaga: Dana obligatoryjna;
1.3.1.5.
User ma mieć możliwość wybrać temat kontaktu;
1.3.1.6.
User ma mieć możliwość wpisać treść kontaktu;
1.3.1.7.
User ma mieć możliwość wysłać formularz;
1.3.1.7.1.
User ma mieć możliwość otrzymać informację o ewentualnych
błędach;
1.3.1.8.
User ma mieć możliwość poprawić błędy i wysłać formularz;
1.3.1.9.
User ma mieć możliwość otrzymać potwierdzenie wysłania formularza;
1.3.1.9.1.
User ma mieć możliwość otrzymać potwierdzenie wysłania
formularza na adres e-mail podany w formularzu kontaktowym;
1.3.2. Dla Userów zalogowanych;
1.3.2.1.
User ma mieć możliwość wyświetlić pobrane do formularza imię;
1.3.2.2.
User ma mieć możliwość wyświetlić pobrane do formularza nazwisko;
1.3.2.3.
User ma mieć możliwość wyświetlić pobrany do formularza adres e-mail;
7
1.3.2.4.
User ma mieć możliwość wyświetlić pobrane do formularza miasto;
1.3.2.5.
User ma mieć możliwość wybrać temat kontaktu;
1.3.2.6.
User ma mieć możliwość wpisać treść kontaktu;
1.3.2.7.
User ma mieć możliwość wysłać formularz;
1.3.2.7.1.
User ma mieć możliwość otrzymać informację o ewentualnych
błędach;
1.3.2.8.
User ma mieć możliwość poprawić błędy i wysłać formularz;
1.3.2.9.
User ma mieć możliwość otrzymać potwierdzenie wysłania formularza;
1.3.2.9.1.
User ma mieć możliwość otrzymać potwierdzenie wysłania
formularza na adres e-mail podany w formularzu kontaktowym;
XIII.
Strony błędów
1. User ma mieć możliwość wyświetlić strony błędów aplikacji;
1.1. User ma mieć możliwość wyświetlić stronę 404;
1.2. User ma mieć możliwość wyświetlić stornę 500;
1.3. User ma mieć możliwość wyświetlić stornę 503;
XIV.
Wylogowywanie
1. User ma mieć możliwość się wylogować z aplikacji;
XV.
Zarządzanie (CMS)
1. ADM ma mieć możliwość wywołać panel pod adresem www.admin.twojakrew.pl;
2. ADM ma mieć możliwość otrzymać ekran logowania;
2.1. ADM ma mieć możliwość zalogowania swoją nazwą użytkownika u hasłem;
2.1.1. ADM ma mieć możliwość podania swojego adresu e-mail;
2.1.2. ADM ma mieć możliwość podania swojego hasła;
3. ADM ma mieć możliwość wyświetlić aktualną listę rankingową;
4. ADM ma mieć możliwość wyświetlić listę wydarzeń;
4.1. ADM ma mieć możliwość dodać nowe wydarzenie do regionu;
4.1.1. ADM ma mieć możliwość dodać tytuł do wydarzenia;
4.1.1.1.
Uwaga: Pole obligatoryjne;
4.1.2. ADM ma mieć możliwość dodać opis do wydarzenia;
4.1.2.1.
Uwaga: Pole obligatoryjne;
4.1.3. ADM ma mieć możliwość dodać datę wydarzenia;
8
4.1.3.1.
Uwaga: Pole obligatoryjne;
4.1.4. ADM ma mieć możliwość dodać godzinę wydarzenia;
4.1.4.1.
Uwaga: Pole obligatoryjne;
4.1.5. ADM ma mieć możliwość wybrać miejsce wydarzenia;
4.1.5.1.
Uwaga: Pole obligatoryjne;
4.1.6. ADM ma mieć możliwość utworzyć nowe wydarzenie;
4.1.6.1.
ADM
ma
mieć
możliwość
otrzymać
potwierdzenie
utworzenia
wydarzenia;
4.1.6.2.
ADM ma mieć możliwość otrzymać informację o ewentualnych błędach;
4.1.6.3.
ADM ma mieć możliwość poprawić błędy i zapisać zmiany tworząc
wydarzenie;
4.2. ADM ma mieć możliwość edytować aktualne wydarzenie regionu;
4.2.1. ADM ma mieć możliwość wybrać wydarzenie do edytowania;
4.2.2. ADM ma mieć możliwość edytować tytuł wydarzenia;
4.2.3. ADM ma mieć możliwość edytować opis wydarzenia;
4.2.4. ADM ma mieć możliwość edytować datę wydarzenia;
4.2.5. ADM ma mieć możliwość edytować godzinę wydarzenia;
4.2.6. ADM ma mieć możliwość edytować miejsce wydarzenia;
4.2.7. ADM ma mieć możliwość edytować ilość głosów wydarzenia;
4.2.7.1.
TBC;
4.2.8. ADM ma mieć możliwość zapisać zmiany;
4.2.8.1.
ADM ma mieć możliwość otrzymać potwierdzenie zapisania zmian;
4.2.8.2.
ADM ma mieć możliwość otrzymać informację o ewentualnych błędach;
4.2.8.3.
ADM ma mieć możliwość poprawić błędy i zapisać zmiany;
4.3. ADM ma mieć możliwość usunąć przeszłe wydarzenie regionu;
4.3.1. ADM ma mieć możliwość wyświetlić listę przeszłych wydarzeń;
4.3.1.1.
ADM ma mieć możliwość wybrać wydarzenie do usunięcia;
4.3.1.2.
ADM ma mieć możliwość otrzymać informację potwierdzającą usunięcie
wydarzenia;
4.3.1.3.
ADM ma mieć możliwość usunąć wydarzenie;
4.3.1.4.
ADM ma mieć możliwość otrzymać potwierdzenie usunięcia wydarzenia;
5. ADM ma mieć możliwość wyświetlić zarejestrowanych Userów aplikacji;
5.1. ADM ma mieć możliwość wyświetlić adresy e-mail zarejestrowanych Userów aplikacji;
5.2. ADM ma mieć możliwość wyświetlić imię i nazwisko zarejestrowanych Userów aplikacji;
9
5.3. ADM ma mieć możliwość wyświetlić miasto przypisane do zarejestrowanych Userów
aplikacji;
6. ADM ma mieć możliwość dodawania nowych Userów aplikacji;
6.1. ADM ma mieć możliwość podać adres e-mail;
6.1.1. Uwaga: Pole obligatoryjne;
6.2. ADM ma mieć możliwość podać imię;
6.2.1. Uwaga: Pole obligatoryjne;
6.3. ADM ma mieć możliwość podać nazwisko;
6.3.1. Uwaga: Pole obligatoryjne;
6.4. ADM ma mieć możliwość podać miasto;
6.4.1. Uwaga: Pole obligatoryjne;
6.5. ADM ma mieć możliwość wygenerować hasło jednorazowe dla nowego Usera;
6.5.1. User ma mieć możliwość otrzymać powiadomienie mailowe o założeniu konta w
systemie;
6.5.2. User ma mieć możliwość zmiany hasła przy pierwszym logowaniu;
7. ADM ma mieć możliwość edytowania istniejących Userow aplikacji;
7.1. ADM ma mieć możliwość wybrać Usera aplikacji internetowej do edycji;
7.2. ADM ma mieć możliwość edytować adres e-mail;
7.3. ADM ma mieć możliwość edytować imię;
7.4. ADM ma mieć możliwość edytować nazwisko;
7.5. ADM ma mieć możliwość edytować miasto;
7.6. ADM ma mieć możliwość otrzymać potwierdzenie zapisania zmian w koncie Usera;
7.7. ADM ma mieć możliwość otrzymać informację o ewentualnych błędach;
7.8. ADM ma mieć możliwość poprawić błędy i zapisać zmiany na koncie Usera;
8. ADM ma mieć możliwość usunięcia Userów aplikacji;
8.1. ADM ma mieć możliwość wybrać Usera do usunięcia;
8.2. ADM ma mieć możliwość usunąć Usera;
8.2.1. ADM ma mieć możliwość otrzymać informację potwierdzającą usunięcie Usera;
8.2.2. ADM ma mieć możliwość usunąć Usera;
8.2.3. ADM ma mieć możliwość otrzymać potwierdzenie usunięcie Usera z aplikacji
internetowej;
9. ADM ma mieć możliwość wyświetlić historię akcji w panelu;
9.1. ADM ma mieć możliwość przejść do sekcji historii akcji;
9.2. ADM ma mieć możliwość wybrać akcję do wyświetlenia;
10
9.2.1. ADM ma mieć możliwość wyświetlić wszystkie konta dodane w panelu;
9.2.1.1.
ADM ma mieć możliwość wyświetlić datę dodania Usera;
9.2.1.2.
ADM ma mieć możliwość wyświetlić godzinę dodania Usera;
9.2.2. ADM ma mieć możliwość wyświetlić wszystkie konta usunięte w panelu;
9.2.2.1.
ADM ma mieć możliwość wyświetlić datę usunięcia Usera;
9.2.2.2.
ADM ma mieć możliwość wyświetlić godzinę usunięcia Usera;
9.2.3. ADM ma mieć możliwość wyświetlić wszystkie edycje głosów w panelu;
9.2.3.1.
ADM ma mieć możliwość wyświetlić ilość głosów zmienionych;
9.2.3.2.
ADM ma mieć możliwość wyświetlić datę edycji głosów w panelu;
9.2.3.3.
ADM ma mieć możliwość wyświetlić godzinę edycji głosów w panelu;
10. ADM ma mieć możliwość wylogować się z panelu;
11
XVI.
Analiza niefunkcjonalna
1. Backend/Architektura fizyczna i logiczna;
1.1. Wykorzystanie oprogramowania typu opensource dedykowanego do budowania aplikacji
internetowych o wysokiej skalowalności;
1.1.1. Node.js;
1.1.1.1.
Framework wykorzystywany do budowania szeroko skalowalnych aplikacji
internetowych;
1.1.2. Express.js;
1.1.2.1.
Framework dedykowany środowisku node.js dedykowany do budowania
aplikacji internetowych typu „multi-page”. Jest standardowym frameworkiem
node.js;
1.1.3. Angular.js (https://angularjs.org);
1.1.3.1.
Framework JavaScript stworzony przez inżynierów Google. W połączeniu
z node.js i express.js służy do szybkiego i łatwego budowania aplikacji
internetowych opartych o MWW;
1.1.4. MongoDB (https://www.mongodb.org);
1.1.4.1.
Wysokoskalowalny system zarządzania bazą danych charakteryzujący się
dużą wydajnością oraz brakiem ściśle zdefiniowanej struktury obsługiwanych
baz danych (NoSQL). Obsługuje m.in. indeksowanie, oraz zapytania typu adhoc;
1.1.5. Frontend;
1.1.5.1.
CSS/HTML5;
1.1.5.1.1.
media_queries;
1.1.5.1.2.
namespaces;
1.1.5.1.3.
selectors;
1.1.5.2.
Wykorzystane frameworki;
1.1.5.2.1.
Bootstrap;
1.1.5.2.2.
jQuery;
1.1.5.2.3.
jQuery mobile;
2. System plików
2.1. Aplikacja do poprawnego działania wymaga dostępu do plików;
2.2. Zasoby zlokalizowane w systemie plików pozwalają na wprowadzenie zmian w
konfiguracji systemu bez konieczności jego restartowania, do zasobów tych należą
odpowiednio;
12
2.2.1. Reguły służące do walidacji i konfiguracji;
2.2.2. Przepływy definicujące proces walidacji;
2.2.3. Komunikaty błędów walidacji;
3. Serwery i system operacyjny
3.1. Dedykowana infrastruktura serwerowa;
3.1.1. Serwer stagingowy;
3.1.2. Serwer developerski;
3.1.3. Serwer produkcyjny;
3.1.3.1.
Do wszystkich serwerów dedykowany system operacyjny Debian
dystrybuowany jako oprogramowanie typu opensource jako system cieszący się
opinią stabilnego, o wysokiej jakości i łatwego do aktualizacji.
3.1.3.2.
System operacyjny do pobrania z dedykowanej witryny w zależnosci od
dostarczonej na środowiskach developerskich i produkcyjnych architekturze:
https://www.debian.org/distrib/netinst
4. Środowisko uruchomieniowe
4.1. Środowisko uruchomieniowe zostanie opisane na etapie realizacji aplikacji.
5. Serwer aplikacyjny.
5.1. Wykorzystanie serwera www działającego na serwerze internetowym, obsługującego
żądania protokołu HTTP i HTTPS;
5.1.1. Nginx (http://nginx.org);
5.1.1.1.Serwer www wysokiej dostępności zaprojektowany z myślą o silnie
obciążonych serwisach;
Po stronie Wykonawcy pozostaje obowiązek zapewnienia środowiska serwerowego (wybór
hostingu, Datacenter) na czas życia aplikacji.
13
6. Repozytorium
6.1. Wykorzystanie zdalnego repozytorium plików do współpracy pomiędzy programistami.
6.1.1. Dedykowany serwer git na serwerze zamawiającego, co pozwoli na bezpieczną i
bieżącą kontrolę nad zdalnym repozytorium (https://git-scm.com/book/it/v2/Giton-the-Server-Setting-Up-the-Server);
6.1.2. Dedykowane repozytorium dla aplikacji frontendowej;
6.1.2.1.
Dedykowane branche;
6.1.2.1.1.
master;
6.1.2.1.2.
development;
6.1.2.1.3.
feature;
6.1.3. Dedykowane repozytorium dla aplikacji backendowej;
6.1.3.1.
Dedykowane branche;
6.1.3.1.1.
master;
6.1.3.1.2.
development;
6.1.3.1.3.
feature;
7. Testy
7.1. Testy jednostkowe;
7.1.1. Jako metody testowania tworzonego oprogramowania poprzez wykonywanie testów
weryfikujących poprawność działania pojedynczych elementów (jednostek) aplikacji
wraz z oczekiwanymi wynikami (zarówno pozytywnymi jak i negatywnymi). Podczas
wykonywania testów jednostkowych ważna jest kolejność wykonywania realizacji
testów ze szczególnym uwzlgędnieniem analizy ścieżek, testowanie wartości
brzegowych, oraz testowanie składniowe;
7.2. Testy integracyjne;
7.2.1. Jako metody testowania wykonywanej w celu wykrycia błędów w interfejsach i
interakcjach pomiędzy dedykowanymi modułami oprogramowania, w szczególności
testy integracyjne mają za zadanie zweryfikować poprawną komunikację pomiędzy
przygotowanymi modułami i sekcjami;
7.3. Testy systemowe;
7.3.1. Jako metody testowania przeprowadzanej na aplikacji internetowej w celu
stwierdzenia czy zintegrowany już system spełnia jako całość wymagania zawarte w
specyfikacji. Testu powinny być przeprowadzane na środowisku developerskim
(środowisko najbardziej zbliżone do środowiska produkcyjnego) aby odwzorować
rzeczywiste warunki w których będzie działał system jako całość oprogramowania;
14
7.4. Testy akceptacyjne;
7.4.1. Jako metody testowania odpowiedzialnej za sprawdzenie jakości wykonanego
oprogramowania, z wystąpieniem klasycznych testów akceptacyjnych, które
stanowią podzbiór powyższych testów systemowych;
7.5. Testy penetracyjne;
7.5.1. Jako metody testowania polegającej na przeprowadzeniu kontrolowanego ataku na
aplikację internetową mający na celu praktyczną ocenę bieżącego stanu
bezpiecześntwa tej aplikacji i systemu, w szczególności obecności znanych
podatności i odporności na próby przełamania zabezpieczeń. W przeciwieństwie do
audytu, test penetracyjny nie musi odbywać się według sformalizowanej
metodologii.
7.5.2. Sugerowany rodzaj testu w przypadku niniejszej aplikacji to test typu black box
(stara się odzwierciedlić rzeczywistą wiedzę potencjalnego włamywacza);
8. Moduł analityczny.
8.1. Mapa analityczna;
8.1.1. Konwersje;
8.1.1.1.
Cele;
8.1.1.1.1.
Wejście na stronę;
8.1.1.1.1.1. Wejście organiczne;
8.1.1.1.1.1.1. Wejście z bannera;
8.1.1.1.1.2. Wejście z kampanii;
8.1.1.1.1.2.1. Nazwa kampanii + dedykowany adres URL;
8.1.1.1.2.
Rejestracja Usera (Facebook);
8.1.1.1.3.
Rejestracja User (manualna);
8.1.1.1.4.
Logowanie Usera;
8.1.1.1.5.
Wyświetlenie interaktywnej mapy Polski;
8.1.1.1.6.
Wyświetlenie głosów na mapie Polski;
8.1.1.1.7.
Wyświetlenie wydarzenia;
8.1.1.1.8.
Wyświetlenie znajomych w wydarzeniu;
8.1.1.1.9.
Oddanie głosu na wybrane wydarzenie;
8.1.1.1.10.
Wzięcie udziału w wydarzeniu;
8.1.1.1.11.
Udostępnienie wydarzenia;
8.1.1.1.11.1.
Udostępnienie na Facebook;
8.1.1.1.11.2.
Udostępnienie na Twitter;
15
8.1.1.1.11.3.
8.1.1.1.12.
Udostępnienie na Google+;
Wejścia na strony statyczne;
8.1.1.1.12.1.
Formularz kontaktowy;
8.1.1.1.13.
Wejścia na strony błędów;
8.1.1.1.14.
Wylogowanie Usera;
9. Instalacja i konfiguracja.
9.1. Instalacja i konfiguracja zostanie opisana na etapie końcowym realizacji projektu wraz z
dokumentacją po projektową.
10. Aktualizacja.
10.1.
Aktualizacja zostanie opisana na etapie końcowym realizacji projektu wraz z
dokumentacją po projektową.
11. Backup.
11.1.
Backup systemu plików;
11.1.1. Zostanie opisany na etapie końcowym realizacji projektu wraz z dokumentacją
po projektową;
11.2.
Backup bazy danych;
11.2.1. Zostanie opisany na etapie końcowym realizacji projektu wraz z dokumentacją
po projektową;
XVII.
Panel do głosowania - makieta:
XVIII.
Miasta włączone do akcji w roku 2016:
16
1. Warszawa
pary miast - rekomendowane:
w 2017 roku
1. Kraków i Łódź
2. Wrocław i Poznań
3. Gdańsk i Szczecin
w 2018 roku
1. Bydgoszcz i Lublin
2. Katowice i Białystok
3. Radom i Kielce
w 2019 roku
1. Rzeszów i Olsztyn
2. Opole i Wałbrzych
3. Kalisz i Zielona Góra
4. Słupsk i Racibórz
XIX.
Kolejne lata 2017 - 2020:
Planowane jest do akcji dołączyć 3 miasta, czyli głosowanie powinno się odbyć na kolejne 3 pary
miast.
XX.
Wielkie odliczanie na stronie www
Aplikacja dodatkowo posiada licznik, pokazujący ile dni pozostało do kolejnego
zakończenia głosowania / kolejnego eventu
17
18