nvbach91 / 4IZ278-2023-2024-LS

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

lean04-sp #153

Open leanhvie opened 2 months ago

leanhvie commented 2 months ago

Pal Pad

Uživatelé budou moci vyhledávat karty Pokemon TCG a procházet decky vytvořené uživateli. Registrovaní uživatelé budou moci vyhledávat karty Pokémon TCG a ukládat je do vlastní sbírky, kde budou moci vyhledávat a filtrovat svou sbírku. Kromě toho mohou v aplikaci také vytvářet decky. Administrátor bude moci spravovat uživatelská data registrovaných uživatelů.

Popis funkcionalit

Funkce pro všechny uživatele:

Funkce pro registrované uživatele:

Funkce pro administrátora:

Architektura

Frontend bude odesílat požadavky na server PHP voláním příslušného endpointu s příslušnými metodami HTTP v rámci serveru Apache.

Wireframe

wireframe drawio

Use case diagram

usecasediagram drawio

Sequence diagram (hlavní funkcionality)

sequencediagram drawio

Database model

Diagram

Untitled (2)

DBML

Table users {
  id string [pk]
  username string
  email string
  password string
  privilege number
}

Table cards {
  id string [pk]
  name string
  supertype string
  type string
  subtype string
  hp number
  set_id string [ref: > card_sets.id]
  image_small_url string
  image_large_url string
}

Table card_sets {
  id string [pk]
  name string
  symbol_url string
  logo_url string
}

Table users_cards {
  Primary Key (user_id, card_id)
  user_id string [ref: > users.id]
  card_id string [ref: > cards.id]
  count number
}

Table decks {
  id string [pk]
  owner_id string
  name string
  created_at datetime
  updated_at datetime
}

Ref: decks.owner_id > users.id [delete: cascade]

Table decks_cards {
  Primary Key (deck_id, card_id)
  deck_id string
  card_id string
  count number
}

Ref: decks_cards.deck_id > decks.id [delete: cascade]
Ref: decks_cards.card_id > cards.id [delete: cascade]

Checklist

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
Serverová validace požadavků x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Psaní kódu Potlačení warningů - nedefinované hodnoty
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
---------------------------- ------------------------------------------------- --------- -------------- ----------
Performance Stránkování x
Indexace databázových tabulek x
Filtrace a organizování zdrojů x
Cache (mezipaměť)
---------------------------- ------------------------------------------------- --------- -------------- ----------
Autentifikace Cookies x
Session x
Lokální strategie pro registraci a přihlášení x
OAuth, access token, login x
Ukládánní 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í
Idempotence
---------------------------- ------------------------------------------------- --------- -------------- ----------
Provoz a údržba Sledovatelnost a logování
SEO URL
Víceuživatelský přístup k datům
---------------------------- ------------------------------------------------- --------- -------------- ----------
Funkcionality Generování souborů PDF
Posílání e-mailů
Oddělení administrační a uživatelské části x
---------------------------- ------------------------------------------------- --------- -------------- ----------
Testování Testovací scénáře pro manuální testování
Dostupnost aplikace na internetu x
nvbach91 commented 2 months ago
leanhvie commented 2 months ago
  • prejmenovat tabulku sets na card_sets
  • proc maji primarni klice (vcetne jejich referenci) vsech tabulek datovy typ string?