Projekt

Obecné

Profil

Akce

Dokument specifikace požadavků

1. Úvod

1.1 Předmět specifikace

Specifikace se zabývá popisem webové aplikace vyvíjené pro Uměleckoprůmyslové museum v Praze (UPM). Webová aplikace je vyvíjena týmem MERLOT na předmětu KIV/ASWI na KIV FAV ZČU za účelem zatraktivnění a zpřístupnění knižního fondu z pozůstalosti architekta Jana Kaplického.

1.2 Rozdělení specifikace

Specifikace je rozdělena do pěti částí. V první části je uveden předmět specifikace a rozsah projektu, ve druhé je uveden obecný popis softwaru, hlavní požadavky na software, provozní prostředí a možná omezení aplikace. Třetí část je věnována podrobnému popisu požadavků na systém. Požadavky zde jsou chápany jako případy užití (dále jen PU). Popis těchto PU je dále podložen UML diagramem. Ve čtvrté části jsou uvedeny požadavky na vnější rozhraní a v poslední, páté části dokumentu, jsou charakterizovány mimofunkční požadavky aplikace. Příloha dokumentu obsahuje glosář a popis aktérů vyskytujících se v PU.

1.3 Rozsah projektu

Rozsah projektu je specifikován v Dokumentu vize a rozsahu projektu, který se nachází zde: Vize_projektu

2. Obecný popis

2.1 Kontext systému

Cílem tohoto projektu je vyvinout zcela nový produkt. Muzeum UPM dosud žádnou aplikaci nepoužívalo. Svým návštěvníkům poskytovalo základní informace o výstavách pouze prostřednictvím svých webových stránek.

2.2 Funkce produktu

Hlavní funkce produktu se dají popsat v šesti případech užití:
  • PU001: Vybrat kategorii
  • PU002: Uložit knihu do oblíbených
  • PU003: Odebrat knihu ze seznamu oblíbených
  • PU004: Zobrazit si detail knihy
  • PU005: Zobrazit statistiky oblíbenosti
  • PU006: Registrovat se do aplikace
  • PU007: Potvrdit registraci přes aktivační odkaz

Tyto funkce mají všechny stejnou prioritu a společně tvoří MVP (Minimum Viable Product).

2.3 Třídy uživatelů

Cílovou skupinou, která bude aplikaci používat, jsou návštěvníci výstavy muzea UPM, kterým bude aplikace sloužit jako podpůrný materiál během výstavy. Používání aplikace ale není návštěvou muzea podmíněno. Aplikace bude fungovat každému, kdo se do ní registruje.

2.4 Provozní prostředí, omezení implementace

Provozní prostředí aplikace je blíže specifikováno v Dokumentu architektury, který se nachází zde: Architektura

2.7 Předpoklady a závislosti

Předpoklady a závislosti jsou blíže specifikovány v Dokumentu Vize (viz bod 1.3.).
Největším rizikem se v současné době jeví nedostupnost testovacích dat, která by měla být dodána přímo muzeem UPM a na která se čeká téměř od začátku vývoje aplikace. Pokud dataset nebude dodán, vývojový tým nebude moci zaručit bezproblémové nasazení, které je jedním z kvalitativních požadavků na aplikaci.

3. Funkce systému

Tato kapitola tvoří podstatnou část Dokumentu specifikace požadavků. Jednotlivé požadavky uvedené v seznamu PU v bodě 2.2. jsou zde zobrazeny v UML diagramu případů užití (viz obr. č. 1: Diagram případů užití). PU jsou následně detailně rozebrány.

Obr. č. 1: Diagram případů užití

3.1 PU001 Filtrovat obsah dle kategorií

Umožňuje uživateli vybrat 1-N kategorií, podle kterých se mu následně filtruje výběr knih.

3.1.1 Standardní průběh

  • Uživatel zvolí v menu položku "topics".
  • Systém zobrazí uživateli seznam kategorií knih.
  • Uživatel označí 1-N kategorií, které ho zajímají.
    <alt: uživatel si vybere 0 kategorií>
  • Uživatel potvrdí svůj výběr tlačítkem Potvrdit.
  • Systém uživateli zobrazí souhrn vybraných témat, podle kterých bude filtrovaný výběr knih.

3.1.2 Alternativní průběh

<alt: uživatel si vybere 0 kategorií>: Systém uživateli neaktivuje tlačítko Potvrdit, dokud si uživatel nevybere alespoň jednu kategorii.

3.1.3 Vstupní podmínky

Uživatel má na výběr alespoň 2 kategorie.

3.1.4 Výstupní podmínky

Uživateli se zobrazují pouze knihy, které spadají do vybraných kategorií.

3.2 PU002 Uložit knihu do oblíbených

Umožňuje uživateli přidat knihu do oblíbených.

3.2.1 Standardní průběh (I. možnost - like)

  • Uživatel klikne v menu na položku "books".
  • Systém uživateli zobrazí seznam knih.
  • Uživatel si ze seznamu kliknutím vybere jednu knihu.
  • Systém zobrazí uživateli titulní stranu vybrané knihy.
  • Uživatel dá kliknutím na ikonu srdíčka knize "like".
  • Systém přidá knihu do seznamu oblíbených.
    <alt: neexistující seznam oblíbených položek>

3.2.2 Standardní průběh (II. možnost - kód)

Tato část je rozšířením Základních požadavků (není součástí MVP).

  • Uživatel skrze systém aktivuje kameru ve svém zařízení.
  • Uživatel nasnímá QR kód artefaktu, který ho zaujme.
  • <alt: QR kód nelze nasnímat>
  • Systém podle kódu rozpozná, o který artefakt se jedná, a uloží ho do seznamu oblíbených.
  • <alt: neexistující seznam oblíbených položek>

3.2.3 Alternativní průběhy

<alt: neexistující seznam oblíbených položek>: Pokud seznam neexistuje, systém seznam založí a následně do něj vloží označenou knihu.
<alt: QR nelze nasnímat>: Uživatel vloží identifikační kód artefaktu do aplikace ručně.

3.2.4 Vstupní podmínky

Uživatel je přihlášený v aplikaci.
Uživatelovo zařízení má k dispozici funkční kameru.

3.2.5 Výstupní podmínky

Nasnímaný artefakt je uložen v uživatelově seznamu oblíbených.

3.3 PU003 Odebrat knihu ze seznamu oblíbených

Umožňuje uživateli odebrat knihu ze seznamu oblíbených.

3.3.1 Standardní průběh

  • Uživatel klikne v menu na položku "likes".
  • Systém zobrazí uživateli seznam oblíbených knih.
  • Uživatel si ze seznamu kliknutím vybere jednu knihu.
  • Systém zobrazí uživateli titulní stranu oblíbené knihy.
  • Uživatel klikne na ikonu srdíčka u knihy.
  • Systém odebere knihu ze seznamu oblíbených.

3.3.2 Vstupní podmínky

Uživatel má v seznamu oblíbených uloženou alespoň 1 knihu.

3.3.3 Výstupní podmínky

Odoznačená kniha se již nenachází v seznamu oblíbených.

3.4 PU004 Zobrazit detail knihy

Umožňuje uživateli zobrazit detail knihy.

3.4.1 Standardní průběh

  • Uživatel klikne v menu na položku "books", popř. "likes".
  • Systém zobrazí uživateli seznam knih, popř. seznam oblíbených knih.
  • Uživatel si ze seznamu kliknutím vybere jednu knihu.
  • Systém zobrazí uživateli titulní stranu knihy, která obsahuje název knihy, autora a ikonu srdíčka ("like").
  • Uživatel klikne na název knihy, popř. autora knihy.
  • Systém uživateli zobrazí detail knihy. V detailu knihy si může zobrazit seznam poznámek v knize, přečíst vybranou detail poznámky, prozkoumat další informace o knize, odkazy.

3.5 PU005 Zobrazit statistiku oblíbenosti

Umožňuje uživateli zobrazit statistiku oblíbenosti knih.

3.5.1 Standardní průběh

  • Uživatel klikne na položku v menu "charts".
  • Systém uživateli zobrazí aktuální žebříčky oblíbenosti knih. Uživatel má na výběr žebříček oblíbenosti všech knih na výstavě nebo žebříček oblíbenosti jeho oblíbených knih.
  • Uživatel může přepínat mezi jednotlivými statistikami pomocí ovládacího tlačítka.

3.5.2 Vstupní podmínky

Seznamy, ze kterých se vytvářejí statistiky, nejsou prázdné.

3.6 PU006 Registrovat se do aplikace

Umožňuje uživateli registrovat se do aplikace.

3.6.1 Standardní průběh

  • Uživatel vyplní a odešle registrační formulář, který se nachází na landing page aplikace.
  • Systém uživateli udělí dočasně přístup do zbytku aplikace a odešle mu email s aktivačním odkazem.

3.6.2 Vstupní podmínky

Bez registrace je aplikace přístupná pouze částečně (landing page).

3.6.3 Výstupní podmínky

Uživatel musí svůj účet do 48 hodin prostřednictvím odkazu aktivovat, jinak bude jeho účet smazán (vč. dat s ním spojených).

3.7 PU007 Potvrdit registraci přes aktivační odkaz

Umožňuje uživateli potvrdit svou registraci a aktivovat si tím svůj uživatelský účet v aplikaci.

3.7.1 Standardní průběh

  • Uživatel klikne na aktivační odkaz, který mu přijde emailem po vytvoření registrace.
  • Systém změní stav účtu z "dočasný" na trvalý".

3.7.2 Vstupní podmínky

Uživatel musí zadat v rámci registrace platný email, na který mu přijde aktivační odkaz.

3.7.3 Výstupní podmínky

Uživatel může naplno využívat funkcí aplikace.

4. Požadavky na vnější rozhraní

4.1 Uživatelská rozhraní

  • Responsivní zobrazení webu
  • Uživatelská přívětivost a intuitivní použití

4.2 Hardwarová rozhraní

Nejsou nadefinovány žádné požadavky na hardwarová rozhraní.

4.3 Softwarová rozhraní

  • PHP 7.2.5
  • Framework Laravel 7.1.2

4.4 Komunikační rozhraní

  • Protokol HTTP

5. Další parametrické (mimofunkční) požadavky

5.1 Výkonnostní požadavky

  • Standardizovaná odpověď: zatím neupřesněno
  • Objem požadavků: 1000 uživatelů /den, max 200 rqs/s
  • Spolehlivost: dána výkonem serveru muzea

5.2 Bezpečnostní požadavky

  • Robustnost aplikace, tj. odolnost vůči nevalidním vstupům od uživatele
  • Zabezpečení aplikace proti běžným typům útoků (XSS, CSRF, SQL injection, …)

5.3 Kvalitativní parametry

  • Bezproblémová funkčnost na běžně používaných prohlížečích, tj. Firefox (renderovací jádro Gecko), Chrome (renderovací jádro Blink), Safari (renderovací jádro Webkit), Internet Explorer (renderovací jádro Trident), Opera (renderovací jádro Blink), Edge (renderovací jádro Chromium)
  • Bezproblémová funkčnost na mobilních zařízeních

6. Ostatní požadavky - zákony, normy, licence, kvalita

6.1 GDPR

  • Cookie lišta
  • Prohlášení o využívání cookies
  • Souhlas se zpracováním osobních údajů u kontaktního formuláře
  • Prohlášení o zpracování osobních údajů

6.2. Licence

Veškeré použité technologie jsou pod MIT licencí. Otázka licence výsledného produktu je otevřená.

6.3. Kvalita

Ze strany architektury nejsou kladeny žádné zvláštní požadavky na kvalitu aplikace. Aplikace není infrastrukturně kritická, nejsou tedy požadavky ani z hlediska "high availability".

Dostupnost je požadována hlavně v návštěvních hodinách: úterý-neděle 10-20 hodin.

Upgrade aplikace by měl probíhat pokud možno automaticky pomocí Gitlab CI/CD.

Příloha A: Glosář

  • Artefakt = umělecké dílo vystavované muzeem. V případě výstavy Kaplického knihovny jde primárně o knihy z této knihovny.
  • Webová aplikace = aplikace, která je spuštěná ve webovém prohlížeči (např. Google Chrome)
  • Databáze kontaktů = seznam kontaktů
  • Dataset artefaktů = kolekce dat; datový soubor, ve kterém jsou uvedeny všechny potřebné informace o artefaktech v určitém formátu
  • Google Analytics = nástroj na získávání statistických dat o uživatelích webu (návštěvnost, chování uživatelů, jejich vlastnosti, atd.
  • Responzivní, user-friendly aplikace = aplikace, která je uživatelsky přívětivá a její vzhled je přizpůsobivý různým velikostem zařízení.
  • Release = vydání nové verze aplikace
  • Kategorie knihy = oblast, které se kniha věnuje

Příloha B: Popis aktérů

Uživatel = Koncový uživatel aplikace je návštěvník muzea, který během / po výstavě využívá aplikaci.
Další úrovně práv zatím nebyly identifikovány.

Příloha C: Seznam zkratek
  • ASWI - Pokročilé softwarové inženýrství
  • FAV - Fakulta aplikovaných věd
  • KIV - Katedra informatiky a výpočetní techniky
  • PU - případ užití
  • UPM - Uměleckoprůmyslové muzeum v Praze
  • CI - Continuous Integration
  • CD - Continuos Development
  • CSRF - Cross-site Request Forgery
  • GDPR - General Data Protection Regulation
  • HTTP - Hypertext Transfer Protocol
  • SQL - Structured Query Language
  • XSS - Cross-site scripting

Aktualizováno uživatelem Lucie Tauchenová před asi 4 roky(ů) · 16 revizí