Open martinruzekk opened 4 months ago
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.
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
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 |
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
Wireframe
Architektura
Návrh databáze
Checklist požadavků