Skip to content

Commit

Permalink
Male upravy
Browse files Browse the repository at this point in the history
  • Loading branch information
meshosk committed Sep 6, 2021
1 parent 0143d8e commit c9697b0
Show file tree
Hide file tree
Showing 18 changed files with 142 additions and 20 deletions.
17 changes: 16 additions & 1 deletion ajax/chat/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@
**Obťažnosť**: 5/5

**Obsah príkladu**: Objektové programovanie v PHP, spracovanie výnimiek v PHP, *session*, tvorba serverového API rozhrania, PHP Data Objects (PDO), *PDO prepare statements*, databázová vrstva, HTTP stavové kódy, AJAX volania, JSON formát, JavaScript API klient, prísľuby (*promises*), asynchrónne programovanie v JavaScripte, časovače v JavaScripte, kľúčové slová `async`, `await`, použitie *arrow* funkcií, manipulácia s DOM, CSS *flexbox*.

</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__ v "auto-štart móde" (`xdebug.start_with_request=yes`).
> - databázový server s vytvorenou _databázou_ a tabuľkami `messages` a `users` na porte __3306__ a bude dostupný na `localhost:3306`. Prihlasovacie údaje sú:
> - MYSQL_ROOT_PASSWORD: db_user_pass
> - MYSQL_DATABASE: dbchat
> - MYSQL_USER: db_user
> - MYSQL_PASSWORD: db_user_pass
> - phpmyadmin server, ktorý sa automatický nastavený na databázový server na porte __8080__ a bude dostupný na adrese [http://localhost:8080/](http://localhost:8080/)
</div>

## Zadanie
Expand All @@ -31,4 +45,5 @@ Vytvorte chatovaciu aplikáciu, ktorá budem mať nasledovné funkcie:
Technické spracovanie:

1. Vytvorte samostatného klienta, ktorý bude komunikovať zo serverom pomocou API rozhrania asynchrónne.
1. Komunikáciu realizujte výlučne volaním API servera, s použitím JSON formátu a odpoveďami s HTTP stavovými kódmi.
1. Komunikáciu realizujte výlučne volaním API servera, s použitím JSON formátu a odpoveďami s HTTP stavovými kódmi.

2 changes: 1 addition & 1 deletion css/dropdownmenu/riesenie.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ## Rozcestník
> - [Späť na úvod](../../README.md)
> - Repo: [Štartér](/../../tree/main/css/dropdownmenu), [Riešenie](/../../tree/solution/css/dropdownmenu).
> - Repo: [Štartér](/../../tree/main/css/dropdownmenu), [Riešenie](/../../tree/solution/css/dropdownmenu)
> - [Zobraziť riešenie](riesenie.md)
# DropDown a DropUp menu - CSS
Expand Down
2 changes: 1 addition & 1 deletion css/dropdownmenu/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> ## Rozcestník
> - [Späť na úvod](../../README.md)
> - Repo: [Štartér](/../../tree/main/css/dropdownmenu), [Riešenie](/../../tree/solution/css/dropdownmenu).
> - Repo: [Štartér](/../../tree/main/css/dropdownmenu), [Riešenie](/../../tree/solution/css/dropdownmenu)
> - [Zobraziť riešenie](riesenie.md)
</div>
Expand Down
14 changes: 10 additions & 4 deletions php/contact-form/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,16 @@
**Obťažnosť**: 2/5

**Obsah príkladu**: Tvorba, spracovanie a validácia formulárov, vkladanie PHP súborov, testovanie a odosielanie emailov v jazyku PHP.

</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy a nastaví php mail funkciu tak, aby odosielala maily do pripraveného MailHog servera. Port __80__ bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
> - MailHog server, ktorý sa automaticky prepojí s PHP na porte __8025__ a bude dostupný na adrese [http://localhost:8025/](http://localhost:8025/)
> - V prípade potreby priamého prístupu na SMTP server je tento dostupný na adrese __mailhog:1025__
</div>

## Zadanie
Expand All @@ -33,7 +43,3 @@ Formulár by mohol vyzerať nasledovne:

![Navrhovaný vzhľad kontaktného formulára](images_contact-form/zadanie.png)

<div class="hidden">

[Zobraziť riešenie](riesenie.md).
</div>
14 changes: 14 additions & 0 deletions php/crud/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@
**Obťažnosť**: 5/5

**Obsah príkladu**: Štruktúra aplikácie vo viacerých súboroch, operácie čítania, pridávanie, zmeny a mazanie dát v DB, PHP Data Objects (PDO), *PDO prepare statements*, ochrana voči XSS útoku.

</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
> - databázový server s vytvorenou _databázou_ a tabuľkou `users` s dátami na porte __3306__ a bude dostupný na `localhost:3306`. Prihlasovacie údaje sú:
> - MYSQL_ROOT_PASSWORD: db_user_pass
> - MYSQL_DATABASE: crud
> - MYSQL_USER: db_user
> - MYSQL_PASSWORD: db_user_pass
> - phpmyadmin server, ktorý sa automatický nastavený na databázový server na porte __8080__ a bude dostupný na adrese [http://localhost:8080/](http://localhost:8080/)
</div>

## Zadanie
Expand Down
19 changes: 18 additions & 1 deletion php/data-table/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,22 @@
**Obťažnosť**: 5/5

**Obsah príkladu**: Objektová architektúra aplikácie, triedy a rozhrania, PHP Data Objects (PDO), *PDO prepared statements*, GET parametre, zoraďovanie, filtrovanie a stránkovanie dát, príkaz `switch`, ochrana voči *SQL injection* útoku, ochrana voči *Cross Site Scripting* útoku.

</div>

<div class="hidden">

Predpokladáme, že databázový server je spustený a obsahuje tabuľku s dátami, ktoré sú v súbore `data.sql`.

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
> - databázový server s vytvorenou _databázou_ a tabuľkou `users` s dátami na porte __3306__ a bude dostupný na `localhost:3306`. Prihlasovacie údaje sú:
> - MYSQL_ROOT_PASSWORD: heslo
> - MYSQL_DATABASE: dbtable
> - MYSQL_USER: db_user
> - MYSQL_PASSWORD: db_user_pass
> - phpmyadmin server, ktorý sa automatický nastevený na databázový server na porte __8080__ a bude dostupný na adrese [http://localhost:8080/](http://localhost:8080/)
</div>

## Zadanie
Expand All @@ -24,4 +40,5 @@ Vytvorte aplikáciu v jazyku PHP, ktorá bude schopná zobraziť obsah ľubovoľ

1. načítanie a zobrazenie všetkých dát vo forme HTML tabuľky,
1. zoradenie dát vzostupne a zostupne kliknutím na záhlavie tabuľky,
1. stránkovanie zobrazených dát (zobrazenie napr. len 10 záznamov na jednej stránke).
1. stránkovanie zobrazených dát (zobrazenie napr. len 10 záznamov na jednej stránke).

7 changes: 7 additions & 0 deletions php/factorial/riesenie.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@

## Riešenie

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

Ako prvé je potrebné zistiť, ako sa počíta faktoriál. Na webe, napr. na stránkach [Wikipédie](https://sk.wikipedia.org/wiki/Faktori%C3%A1l), je možné nájsť tento vzorec pre výpočet faktoriálu čísla 5:

<div class="end">
Expand Down
9 changes: 9 additions & 0 deletions php/factorial/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@
**Obťažnosť**: 1/5

**Obsah príkladu**: Základná syntax jazyka PHP, mixovanie HTML a PHP, premenné, cyklus `while`, tvorba a volanie funkcií, návratová hodnota funkcie.

</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

## Zadanie
Expand All @@ -35,3 +43,4 @@ Vytvorte skript v jazyku PHP, ktorý bude schopný zobraziť a vypočítať [fak
<li>9! = 362880</li>
</ul>
```

7 changes: 7 additions & 0 deletions php/form/riesenie.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@

## Riešenie

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

### Analýza a návrh riešenia

Na riešenie tejto úlohy bude potrebné navrhnúť objektovú štruktúru. Zo zadania vyplýva, že budeme potrebovať triedu `Form`. Táto trieda bude mať metódy na pridávanie formulárových prvkov pomocou metód `addXXX()` (kde `XXX` je názov formulárového poľa). Okrem iného táto trieda bude schopná vrátiť vyplnené hodnoty v asociatívnom poli pomocou metódy `getData()`. Ďalšou funkcionalitou bude detekcia odoslania formulára `isSubmitted()` a kontrola správnosti vyplnených údajov metódou `isValid()`.
Expand Down
7 changes: 7 additions & 0 deletions php/form/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
**Obsah príkladu**: Objektové programovanie v PHP, abstraktné triedy, viditeľnosť metód, dynamické generovanie HTML formulárov, validácia formulárových polí, spracovanie formulárov v PHP.
</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

## Zadanie
Vytvorte PHP triedu, ktorá umožní programovo (z PHP) deklarovať ľubovoľný HTML formulár. Formulár sa bude vedieť zobraziť, automaticky spracovať a vykonať validáciu.

Expand Down
8 changes: 8 additions & 0 deletions php/hangman-game/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM php:8.0-apache

#Install xdebug and specify sendmail path
RUN pecl install xdebug && docker-php-ext-enable xdebug \
&& echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo "xdebug.client_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
7 changes: 2 additions & 5 deletions php/hangman-game/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
version: '3'
services:
web:
image: php:8.0-apache
container_name: hangman
build: .
volumes:
- ./:/var/www/html/
ports:
- "80:80"
stdin_open: true
tty: true
- "80:80"
7 changes: 7 additions & 0 deletions php/hangman-game/riesenie.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@

Riešenie si rozdelíme do niekoľkých častí a a použijeme objektový prístup.

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

### HTML dokument

Ak vytvárame celú hru od úplného začiatku, vytvoríme si adresár `img` a nakopírujeme si do neho obrázky `0.png``10.png`.
Expand Down
8 changes: 8 additions & 0 deletions php/hangman-game/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@
**Obťažnosť**: 3/5

**Obsah príkladu**: Objektové programovanie v PHP, generovanie HTML kódu pomocou PHP, vkladanie PHP súborov pomocou `include` a `require`, *session*, polia, práca s&nbsp;reťazcami.

</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

## Zadanie
Expand Down
7 changes: 7 additions & 0 deletions php/squares/riesenie.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@

## Riešenie

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

### HTML dokument

Hlavným cieľom tejto úlohy je generovanie veľkého množstva štvorčekov rovnakej veľkosti a následné umiestnenie týchto štvorčekov náhodne do okna prehliadača. Na to, aby sme mohli umiestniť štvorčeky na ľubovoľné miesto na stránke, potrebujeme:
Expand Down
7 changes: 7 additions & 0 deletions php/squares/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
**Obsah príkladu**: Generovanie HTML a CSS kódu pomocou PHP, vytváranie a volanie funkcií, cyklus `for`, náhodné čísla, polia v PHP.
</div>

<div class="hidden">

> Všetky potrebné služby sú v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktorý do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

## Zadanie
Vytvorte skript v jazyku PHP, ktorý v kombinácii s CSS vyplní celú stránku štvorčekami o veľkosti `50px` x `50px`. Každý štvorček bude mať náhodnú pozíciu a farbu. Štvorčekov na jednej stránke zobrazte 2000.

Expand Down
7 changes: 7 additions & 0 deletions php/zipper/riesenie.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@

Riešenie si rozdelíme do dvoch častí. Prvá časť, ktorá bude vstupným bodom do aplikácie, bude obsahovať HTML formulár, cez ktorý je možné poslať súbor. Keď bude súbor odoslaný, činnosť prevezme trieda `Uploader`, ktorá sa postará o to, aby sa súbor dostal do správneho adresára a bol pripravený na neskoršiu komprimáciu.

<div class="hidden">

> Toto riešenie obsahuje všetky potrebné služby v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktory do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>

### HTML formulár

Formulár bude obsahovať dva vstupné prvky: prvý typu `file` a druhý typu `submit`. Keďže je formulár bude použitý na odosielanie súborov, musí používať metódu `POST` a je nutné, aby mal nastavený atribút `enctype="multipart/form-data"`, inak prehliadač súbor neodošle. Atribút `action` nenastavíme, pretože formulár bude odoslaný tomu istému skriptu, v ktorom sa nachádza.
Expand Down
13 changes: 6 additions & 7 deletions php/zipper/zadanie.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,16 @@
**Obťažnosť**: 3/5

**Obsah príkladu**: Objektové programovanie v PHP, nahrávanie (*upload*) súborov na server a ich spracovanie, práca so súbormi a adresármi, komprimácia súborov, posielanie súborov na klienta, externé rozšírenia jazyka PHP, identifikáciu používateľa, práca s&nbsp;*cookies* V PHP, pokročilejšia práca s poliami, výnimky.
</div>

## Zadanie

Vytvorte PHP skript, ktorý umožní postupne používateľovi pridávať súbory zo svojho počítača na server, tieto súbory skomprimuje a umožní stiahnuť. Aplikáciu najskôr implementujte tak, že komprimovať sa budú všetky súbory naraz bez ohľadu na to, kto súbor nahral. Neskôr implementujte funkciu aplikácie, aby výsledný komprimovaný súbor obsahoval len súbory, ktoré nahral daný používateľ.
</div>

<div class="hidden">

[Zobraziť riešenie](riesenie.md).

> Toto riešenie obsahuje všetky potrebné služby v `docker-compose.yml`. Po ich spustení sa vytvorí:
> - webový server, ktory do __document root__ namapuje adresár tejto úlohy s modulom __PDO__. Port __80__ a bude dostupný na adrese [http://localhost/](http://localhost/). Server má pridaný modul pre ladenie [__Xdebug 3__](https://xdebug.org/) nastavený na port __9000__.
</div>
</div>

## Zadanie

Vytvorte PHP skript, ktorý umožní postupne používateľovi pridávať súbory zo svojho počítača na server, tieto súbory skomprimuje a umožní stiahnuť. Aplikáciu najskôr implementujte tak, že komprimovať sa budú všetky súbory naraz bez ohľadu na to, kto súbor nahral. Neskôr implementujte funkciu aplikácie, aby výsledný komprimovaný súbor obsahoval len súbory, ktoré nahral daný používateľ.

0 comments on commit c9697b0

Please sign in to comment.