WEB DEVELOPMENT
Absolvuj u nás kurz tvorby webových aplikací pod vedením zkušeného lektora. Naučíš se vytvářet moderní REST API a efektivně propojit funkční databáze s atraktivním front-endem, který nadchne uživatele a zlepší jejich zážitek.
Vladimír Říha
8+ let zkušeností s vývojem webových aplikací
Lead Front-end Developer ve společnosti Oracle
O KURZU
- TIMELINE:
PROSINEC–ÚNOR
- ČEKÁ TĚ:
20 LEKCÍ
- FORMÁT
ŽIVĚ ONLINE
V kurzu tvorby webových aplikací tě čekají praktická cvičení. Naučíš se používat nástroje jako GitHub a Docker, vytvářet REST API a testovat své projekty. Závěrečný projekt ti pomůže získat reálné skills, které využiješ při hledání práce v oblasti web developmentu.
PO ABSOLVOVÁNÍ KURZU BUDEŠ UMĚT:
-
vytvářet dynamické webové aplikace
-
implementovat interaktivní uživatelská rozhraní
-
vyvíjet a nasazovat serverové aplikace pomocí Dockeru
-
propojovat webové stránky s databází s REST API
-
používat Git pro správu verzí kódu a efektivní spolupráci v týmu
kurz je pro tebe, pokud jsi:
Lektor
Vladimír Říha
Lead Front-end Developer, Oracle
-
Působí jako Lead Front-end Developer ve společnosti Oracle, kde vede vývoj uživatelského rozhraní pro Oracle Cloud Infrastructure.
-
Má více než 8 let zkušeností. Kariéru začínal jako Quality Engineer v Oracle, kde pracoval na NetBeans IDE a později na webových aplikacích. Následně působil ve firmách Memsource a MSD.
-
Na pozici full stack developera či front-end developera pracoval s technologiemi jako AngularJS, Vue.js či React a na serveru s Javou a JavaScriptem v podobě Node.js.
-
Neustále rozvíjí své dovednosti v moderním webovém vývoji a pravidelně absolvuje odborná školení.
Program
-
1. lekcePondělí 2. 12. 2024 20:00–21:30
Seznámení s kurzem, architektura webových aplikací
- Představení kurzu a cílů jednotlivých lekcí
- Architektura klient-server
- Komunikace mezi klientem a serverem – REST API, GraphQL, WebSockets, Server Side Events, JSON
- Single Page aplikace
Výstupy z lekce: Pochopíš základní architekturu webové aplikace, budeš mít znalost základů REST API a RESTful služeb a dokážeš commitovat do Git repozitáře.
-
2. lekceStředa 4. 12. 2024 20:00–21:30
Node.js, správa balíčků, ESlint
- Co je Node.js
- Struktura package.json
- Balíčkovací manažer Yarn, NPM, PNPM
- Spouštění a debugovaní JavaScriptu v Node.js
- Seznámení s nástrojem Git
- Využití Husky pro lepší commity
Praktické cvičení: Začni vytvořením nového projektu na GitHubu s pouze souborem README.md. Použij Git flow a vytvoř pull request, kde nainstaluješ ESLint verzi 8 s vlastní nebo lektorskou konfigurací. Nastav Husky pre-commit hook, který spustí ESLint před každým commitem, a přidej soubor index.js, který vypíše aktuální čas pomocí new Date().toLocaleTimeString().
Výstupy z lekce: Budeš rozumět souboru package.json a lock souborům pro správu závislostí a práci s projektem. Naučíš se používat základní příkazy pro práci s Gitem v příkazové řádce i ve vývojovém prostředí. Získáš také znalost statické analýzy kódu a verzovacího systému Git.
-
3. lekcePondělí 9. 12. 2024 20:00–21:30
Seznámení s HTML
- DOM, základní struktura HTML kódu webové stránky
- Formátování textu, nadpisy, odstavce, seznamy a tabulky
- Atributy v HTML
- Seznámení s DevTools v prohlížeči
Výstupy z lekce: Dokážeš pochopit základní strukturu webové stránky, vytvořit statickou stránku s jednoduchou tabulkou a prozkoumat ji v DevTools.
-
4. lekceStředa 11. 12. 2024 20:00–21:30
HTML – speciální charaktery, přístupnost, formuláře
- ARIA atributy a best practices
- Escape charaktery
- Základní formuláře v HTML
Výstupy z lekce: Máš povědomí o přístupnosti webových aplikací a základních pravidlech, umíš napsat registrační formulář s využitím různých formulářových stylů.
Praktické cvičení: Vytvoř pull request ve svém projektu a přidej HTML stránku s tabulkou s ID „data“, která má sloupce jméno, příjmení, e-mail a telefon. Na stránku přidej formulář pro zadání těchto údajů, kde každé pole má ID „first_name“, „last_name“, „e-mail“ a „phone“. Implementuj odeslání formuláře tak, aby po vyplnění a stisknutí tlačítka přidal nový řádek do tabulky.
-
5. lekcePondělí 16. 12. 2024 20:00–21:30
Kaskádové styly
- Stylování webové stránky, selektory
- Rozvržení pomocí flexbox, grid
- Media query
Výstupy z lekce: Umíš použít CSS pro formátování a dokážeš aplikovat různé styly na stránce v závislosti na typu zobrazovacího zařízení a jeho vlastnostech.
Praktické cvičení: Přidej do svého projektu pull request s CSS souborem a styly stránky. Rozliš sudé a liché řádky tabulky různou barvou a přidej hover efekt, který mění barvu řádku při najetí myši. Použij flexbox nebo grid pro formulář a zajisti responzivní rozvržení: na velkých displejích celý formulář na jednu stránku, na středních na dvě řádky a na malých každý prvek na samostatný řádek.
-
6. lekceStředa 18. 12. 2024 20:00–21:30
JavaScript 1
- Event loop
- Datové typy, let vs var vs const, globalní objekt, null vs undefined
- Funkce, čisté (pure) funkce
- Scope, hoisting, callback, this
- Desktruktorování objektů a polí
- Debuggování v DevTools / IDE
Výstupy z lekce: Máš znalost datových typů v JavaScriptu, umíš napsat a debuggovat funkci v JavaScriptu a rozumíš scope pro práci s proměnnými.
-
7. lekcePondělí 6. 1. 2025 20:00–21:30
JavaScript 2
- Řídicí struktury, práce s polem, práce s řetězci
- Regulární výrazy
- Dědičnost, prototypy, třídy
Výstupy z lekce: Ovládáš řídicí struktury, jako jsou if/else, for/while smyčky, switch a with. Umíš provádět základní manipulaci s řetězcem, používat regulární výrazy pro extrakci nebo nahrazení částí řetězce. Máš znalost nejčastějších metod pro práci s polem, jako jsou forEach, map, reduce, filter, some, every, push, pop a concat.
-
8. lekceStředa 8. 1. 2025 20:00–21:30
JavaScript 3
- Asynchronní kód
- Práce s HTML stránkou, zpracování událostí
- Validace formuláře
Výstupy z lekce: Máš znalost práce s asynchronním kódem pomocí callbacků, promises a async/await. Umíš manipulovat s DOM, vybírat elementy a modifikovat je pomocí JavaScriptu. Dokážeš zkontrolovat formulář po jeho odeslání uživatelem a rozumíš rozdílu mezi event capture a event bubbling.
Praktické cvičení: Přidej do projektu pull request s novou HTML stránkou obsahující formulář s textovým polem a tlačítkem pro zadání až tří měst oddělených čárkou nebo středníkem. Po odeslání formuláře načti předpověď počasí na jeden den pro zadaná města pomocí AccuWeather API, ošetři chyby a optimalizuj volání API. Zobraz minimální a maximální teploty pro každé město na stránce a při novém zadání odstraň předchozí výsledky. Vizuální styl řešit nemusíš.
-
9. lekcePondělí 13. 1. 2025 20:00–21:30
Základy TypeScript
- Co je to TypeScript (TS)
- Základní možnosti jak definovat typ proměnných, funkcí
- Práce s generics
- Pomocné typy – Partial, Pick, Record, ReturnType, Omit…
Výstupy z lekce: Umíš správně používat TypeScript pro běžné činnosti a rozumíš jeho výhodám. Dokážeš pracovat s JS kódem v TypeScriptu a máš schopnost efektivně refaktorovat kód v TS.
-
10. lekceStředa 15. 1. 2025 20:00–21:30
React 1
- Co je to React, na co se hodí a proč?
- Vytvoření první aplikace v Reactu
- JSX, práce s komponentami, props
- React Fragment, práce s poli
- Psaní testů pro React komponenty
Výstupy z lekce: Máš znalost principů komponentového frameworku a rozumíš jeho výhodám pro vývoj webových aplikací. Umíš psát HTML kód pomocí JSX, vytvořit jednoduchou komponentu a napsat unit test pro komponentu i aplikační logiku.
Praktické cvičení: Vytvoř React aplikaci pomocí npx create-react-app front-end --template typescript. Napiš komponentu „Event“, která zobrazí místo, název a tabulku hlasování o účasti. Komponenta přijme 3 props: location, title a dates (seznam dat s účastí). V tabulce budou jména účastníků a jejich účast pro jednotlivé dny. Zobraz jen existující data, žádná interakce není potřeba. Ošetři různé scénáře podle TS typů a rozděl je na menší komponenty, pokud to dává smysl.
-
11. lekcePondělí 20. 1. 2025 20:00–21:30
React 2
- State management, prop drilling, React Context
- UseState, useRef, useEffect, useMemo, React.memo
- React Router
- React Dev Tools a optimalizace
Praktické cvičení: Máš znalost různých možností předávání parametrů komponentě, umíš používat základní hooky v Reactu a orientuješ se v React Dev Tools. Dokážeš optimalizovat vykreslování komponent z hlediska výkonu.
-
12. lekceStředa 22. 1. 2025 20:00–21:30
React 3
- Formuláře v React, validace a odeslání
- Řízené a neřízené komponenty
- Volání REST API
- Zpracování asynchronních událostí v Reactu
- Vytváření vlastního React hook
- Mockování v testech
Výstupy z lekce: Umíš napsat formulář pomocí React knihovny, validovat formulář a zobrazovat uživateli chyby. Dokážeš zpracovat data z REST API v React komponentě a vytvořit vlastní React Hook pro znovupoužitelnost kódu. Umíš také testovat komponenty s potřebou mockování REST API.
Praktické cvičení: Přidej do svého projektu formou pull requestu v aplikaci „front-end“ tři stránky pomocí React Routeru: „/events“, „/events/“ a „/events/new“. Na stránce „/events“ zobraz seznam událostí jako list s odkazy na detailní stránku každé události, kde zahrneš komponentu s tabulkou účastníků a dat a komponentu pro aktuální počasí, implementovanou pomocí vlastního hooku.
Na stránce „/events/new“ vytvoř formulář pro přidání nové události s názvem, popiskem, místem a daty pro hlasování, který po odeslání odešle data na endpoint POST /api/events. Nakonec otestuj komponenty včetně chybových stavů. -
13. lekcePondělí 27. 1. 2025 20:00–21:30
Node.js 1
- Seznámení s Express.js a generátorem
- Použití Express.js pro statické soubory
- Routování v Express.js
- Návrh a implementace REST API, query parametry
Výstupy z lekce: Umíš vytvořit aplikaci s Express.js serverem, rozumíš tvorbě REST API v Express.js a dokážeš zpracovat HTTP požadavek.
Praktické cvičení: Přidej do projektu pull request s novou složkou „server“, kde vytvoříš aplikaci pomocí express-generator a nastavíš port na 4000. Přidej endpointy GET /api/events pro seznam událostí, GET /api/events/:id pro detail události a POST /api/events pro přidání nové události. Použij tato API ve svých React komponentách EventsList a detailu události. Ošetři chybové stavy vhodnými HTTP kódy a odpověďmi.
-
14. lekceStředa 29. 1. 2025 20:00–21:30
Node.js, RESTful API, Swagger
- Zpracování binárních dat
- Použití HTTP hlaviček – content negotiation, loggování
- CORS http hlavičky
- Použití Swagger specifikace pro REST API
Výstupy z lekce: Máš znalost práce s URL a jeho částmi, stejně tak rozumíš významu HTTP hlaviček. Umíš implementovat REST endpoint pro nahrávání obrázků a chápeš CORS omezení při volání REST API z jiných domén, včetně toho, jak takové volání správně implementovat.
Praktické cvičení: Přidej do projektu pull request, ve kterém vytvoříš Swagger specifikace pro API událostí a na jejich základě vygeneruj HTML dokumentaci.
-
15. lekcePondělí 3. 2. 2025 20:00–21:30
Node.js 2
- Přihlašování – session – pomocí Express.js
- Základy OAuth, autentizace/autorizace
- Využití Passport.js
- Škálování pomocí PM2
Výstupy z lekce: Umíš používat middleware v Express.js a dokážeš implementovat REST API, které vrací informace o přihlášeném uživateli pomocí Google účtu.
-
16. lekceStředa 5. 2. 2025 20:00–21:30
Web socket a SSE
- WebSocket komunikace pro okamžitou komunikaci; její výhody a nevýhody
- Server Side Event pro jednostrannou komunikaci; jeho výhody a nevýhody
- Možnosti škálování
- Zotavení při problémech
Výstupy z lekce: Umíš implementovat jednoduchý WebSocket endpoint i jednoduchý SSE endpoint. Rozumíš výhodám a nevýhodám WebSocketů a SSE ve srovnání s REST API.
-
17. lekcePondělí 10. 2. 2025 20:00–21:30
Relační databáze
- Základy SQL relačních databází
- Primární klíč, cizí klíč, index
- Relace, normální formy
Výstupy z lekce: Máš znalost základních principů relační databáze a dokážeš navrhnout strukturu základní databáze s propojenými tabulkami.
-
18. lekceStředa 12. 2. 2025 20:00–21:30
Relační databáze 2
- Práce s daty v relační databázi v Node.js
- Práce s SQLite
- Využití REST API pro manipulaci dat
Výstupy z lekce: Umíš zapisovat a číst data z relační databáze v prostředí Node.js a dokážeš implementovat REST API pro manipulaci s daty.
Praktické cvičení: Přidej do svého projektu formou pull requestu použití balíčku better-sqlite3 pro jednoduchou databázi uloženou do souboru. Navrhni databázový model pro svou aplikaci, například tabulky pro události, odpovědi a další potřebné entity. Ve svých REST API endpointech nahraď ukládání a čtení dat z proměnných použitím databáze.
-
19. lekcePondělí 17. 2. 2025 20:00–21:30
Loggování, traceovaní, nasazení aplikace
- Logování/trasování v komplexních systémech
- Práce CI/CD
- Vydávání nových verzí, Docker
Výstupy z lekce: Seznámíš se s GitHub Actions a zvládneš je využít pro vytvoření CI/CD pipeline. Dokážeš také vytvořit Docker image pro naši aplikaci.
-
20. lekceStředa 19. 2. 2025 20:00–21:30
Studentská volba tématu, Q&A session
- Studentská volba tématu
Možnosti:
• End-to-end testování a testování přístupnosti webů
• Návrh uživatelských rozhraní – procesy a základní pravidla
• Dark patterns v UI - Q&A session
- Studentská volba tématu
ZÍSKEJ VÍCE INFORMACÍ O KURZU WEB DEVELOPMENT
Vyplň registrační formulář a připoj se k nám! Náš r_d tým se s tebou spojí co nejdříve, abys získal*a všechny potřebné detaily o obsahu kurzu Web development a jeho ceně.