nvbach91 / 4IZ278-2023-2024-LS

4IZ278-2023-2024-LS
MIT License
3 stars 0 forks source link

ruzm12-sp #163

Open martinruzekk opened 4 months ago

martinruzekk commented 4 months ago

Buldok vstupenky

Popis aplikace

Aplikace bude sloužit pro zaznamenávání prodaných vstupenek na fotbalové zápasy fotbalového klubu TJ Karlovy Vary-Dvory. V současné době se na hřišti tohoto týmu nachází dva vstupy, kde se dají pořídit vstupenky, a to plné a dětské. Jako vstupenka pak slouží lístek ze šatnového bloku. Prodané vstupné pak na vrátnici zaznamenávají brigádníci na papír, což je značně neefektivní, zejména pak po ukončení prodeje, kdy se musí vstupné počítat. Po osobní zkušenosti jsem došel k závěru, že by jednoduchá webová aplikace značně celý proces usnadnila.

Uživateli aplikace by tedy byli zejména brigádnici, kteří by pomoci ní zaznamenávali prodané vstupné. Po konci prodeje by pak aplikace vytvořila zprávu o prodaných vstupenkách.

Popis funkcionalit

Funkcionality pro neregistrovaného uživatele

Funkcionality pro pokladní

Funkcionality pro administrátora

Use case diagram

Web app use case

Wireframe

screenshot

Architektura

Návrh databáze

Buldok vstupné


Table user {
  id integer [primary key]
  username varchar
  email varchar
  firstame varchar
  lastname varchar
  password varchar
  role varchar
  created_at timestamp
}

Table match {
  id integer [primary key]
  title varchar
  status varchar
  created_at timestamp
  created_by integer
}

Table entrance {
  id integer [primary key]
  name varchar
  created_at timestamp
  created_by integer
}

Table ticket_type {
  id integer [primary key]
  name varchar
  price float
}

Table sale {
  id integer [primary key]
  ticket_type_id integer
  entrance_id integer
  sold_at timestamp
}

Ref: user.id < match.created_by

Ref: user.id < entrance.created_by

Ref: match.id <> entrance.id

Ref: sale.ticket_type_id > ticket_type.id

Ref: sale.entrance_id > entrance.id

Checklist požadavků

Kategorie Požadavek splnění spolehlivost komentář
Databáze M:N vztahy x
1:N vztahy x
SQL joins x
Integritní omezení x
Testovací data x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Validace a sanitace vstupů Formuláře x
Datové typy x
Regulární výrazy x
Serverová validace požadavků x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Psaní kódu Potlačení warningů - nedefinované hodnoty x
Formátování kódu x
DRY princip - minimalizace opakování kódu x
SRP princip - single responsibility x
Pojmenování proměnných x
Konzistence stylu psaní kódu x
Verzování kódu (Git) x
HTML5 validní + sémantické značky x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Objektové programování Zapouzdření x
Dědičnost x
Abstrakce x
Rozhraní x
Polymorfismus x
Magické metody x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Připojení k databázi PDO x
Prepared statement x
SQL injection x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Performance Stránkování
Indexace databázových tabulek
Filtrace a organizování zdrojů
Cache (mezipaměť)
---------------------------- ------------------------------------------------- --------- -------------- ----------
Autentifikace Cookies x
Session x
Lokální strategie pro registraci a přihlášení x
OAuth, access token, login
Ukládání hesel x
Uživatelská oprávnění x
Uživatelské role x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Datum a čas Časové pásmo x
Formátování časových hodnot x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Návrhové vzory Model x
View x
Controller x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Bezpečnost XSS x
CSRF x
SQL injection x
---------------------------- ------------------------------------------------- --------- -------------- ----------
API CRUD operace x
HTTP metody x
Sémantické pojmenování zdrojů x
Verzování x
Idempotence x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Provoz a údržba Sledovatelnost a logování
SEO URL
Víceuživatelský přístup k datům
---------------------------- ------------------------------------------------- --------- -------------- ----------
Funkcionality Generování souborů PDF x
Posílání e-mailů x
Oddělení ddministrační a uživatelské části
---------------------------- ------------------------------------------------- --------- -------------- ----------
Testování Testovací scénáře pro manuální testování
Dostupnost aplikace na internetu
nvbach91 commented 4 months ago
martinruzekk commented 3 months ago

Buldok vstupenky

Popis aplikace

Aplikace bude sloužit pro zaznamenávání prodaných vstupenek na fotbalové zápasy fotbalového klubu TJ Karlovy Vary-Dvory. V současné době se na hřišti tohoto týmu nachází dva vstupy (entrance), kde se dají pořídit vstupenky, a to plné a dětské. Jako vstupenka pak slouží lístek ze šatnového bloku. Prodané vstupné pak na vrátnici zaznamenávají brigádníci na papír, což je značně neefektivní, zejména pak po ukončení prodeje, kdy se musí vstupné počítat. Po osobní zkušenosti jsem došel k závěru, že by jednoduchá webová aplikace značně celý proces usnadnila.

Uživateli aplikace by tedy byli zejména brigádnici, kteří by pomoci ní zaznamenávali prodané vstupné. Po konci prodeje by pak aplikace vytvořila zprávu o prodaných vstupenkách.

Diváci budou mít také možnost vstupenky koupit online v aplikaci.

Popis funkcionalit

Funkcionality pro neregistrovaného uživatele

Funkcionality pro pokladní

Funkcionality pro administrátora

Funkcionality pro zákazníka

Use case diagram

buldok drawio

Wireframe

Screenshot 2024-05-12 221702

Architektura

Návrh databáze

Buldok


Table user {
  id integer [primary key]
  username varchar
  email varchar
  firstame varchar
  lastname varchar
  password varchar
  role varchar
  created_at timestamp
}

Table match {
  id integer [primary key]
  title varchar
  status varchar
  played_at timestamp
  created_by integer
  full_price float
  child_price float
}

Table entrance {
  id integer [primary key]
  name varchar
  created_at timestamp
}

Table ticket {
  id integer [primary key]
  ticket_type_id integer
  entrance_id integer
  sold_at timestamp
  match_id integer
}

Table customer {
  id integer [primary key]
  username varchar
  email varchar
  firstame varchar
  lastname varchar
  password varchar
  registered_at timestamp
}

Ref: user.id < match.created_by

Ref: ticket.entrance_id > entrance.id

Ref: ticket.match_id > match.id

Ref: ticket.id <> customer.id

Checklist požadavků

Kategorie Požadavek splnění spolehlivost komentář
Databáze M:N vztahy x
1:N vztahy x
SQL joins x
Integritní omezení x
Testovací data x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Validace a sanitace vstupů Formuláře x
Datové typy x
Regulární výrazy x
Serverová validace požadavků x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Psaní kódu Potlačení warningů - nedefinované hodnoty x
Formátování kódu x
DRY princip - minimalizace opakování kódu x
SRP princip - single responsibility x
Pojmenování proměnných x
Konzistence stylu psaní kódu x
Verzování kódu (Git) x
HTML5 validní + sémantické značky x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Objektové programování Zapouzdření x
Dědičnost x
Abstrakce x
Rozhraní x
Polymorfismus x
Magické metody x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Připojení k databázi PDO x
Prepared statement x
SQL injection x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Performance Stránkování
Indexace databázových tabulek
Filtrace a organizování zdrojů
Cache (mezipaměť)
---------------------------- ------------------------------------------------- --------- -------------- ----------
Autentifikace Cookies x
Session x
Lokální strategie pro registraci a přihlášení x
OAuth, access token, login
Ukládání hesel x
Uživatelská oprávnění x
Uživatelské role x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Datum a čas Časové pásmo x
Formátování časových hodnot x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Návrhové vzory Model x
View x
Controller x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Bezpečnost XSS x
CSRF x
SQL injection x
---------------------------- ------------------------------------------------- --------- -------------- ----------
API CRUD operace x
HTTP metody x
Sémantické pojmenování zdrojů x
Verzování x
Idempotence x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Provoz a údržba Sledovatelnost a logování
SEO URL
Víceuživatelský přístup k datům
---------------------------- ------------------------------------------------- --------- -------------- ----------
Funkcionality Generování souborů PDF x
Posílání e-mailů x
Oddělení ddministrační a uživatelské části
---------------------------- ------------------------------------------------- --------- -------------- ----------
Testování Testovací scénáře pro manuální testování
Dostupnost aplikace na internetu