Pokyny SP2 - nvbach91/4IZ268-2021-2022-ZS GitHub Wiki
Zadání
Návrh SP2
- Návrh SP2 se odevzdává přes https://forms.gle/MmDer74JNoo8LEdT7 do 10.12.2020 23:59:59
- Návrh ukládejte i u sebe v PC pro případ, že se neodešle správně.
- Návrh musí být schválený před zahájením prací s SP2, stav schválení najdete v sekci Issues.
Způsob odevzdání
- SP2 se odevzdává přímo do tohoto repozitáře buď pomocí příkazů Gitu, nebo pomocí drag'n'drop v rozhraní GitHubu. Žádný jiný způsob odevzdání prací nebude akceptován. Právo na zápis do repozitáře byste měli mít už od začátku semestru po přijetí pozvánky do repozitáře. V případě nejasností neváhejte se zeptat vyučijícího zde.
Postup pro odevzdání pomocí Gitu
- https://github.com/nvbach91/4IZ268-2021-2022-ZS/wiki/Postup-odevd%C3%A1n%C3%AD-SP2-p%C5%99es-Git
- Doporučeno pokročilějším studentům
Postup pro odevzdání pomocí drag'n'drop na GitHubu
- https://github.com/nvbach91/4IZ268-2021-2022-ZS/wiki/Postup-odevd%C3%A1n%C3%AD-SP2-na-GitHubu
- Doporučeno méně pokročilým studentům
Termín pro odevzdání pilotní verze SP2 na GitHub
- 24.12.2020 23:59:59
- tato verze by měla mít hovotou alespoň strukturu souborů a složek a nějaký zárodek kódu
- další verze se nahrávají přímo do stávajícího Pull Requestu
- při nesplnění tohoto požadavku bude stržena značná část bodového hodnocení
Termín pro odevzdání finální verze SP2 na GitHub
- po odevzdání pilotní verze mají studenti čas k doladění projektu až do 24h před začátkem termínu obhajoby, tj. hotový projekt musíte odevzdat alespoň 1 den před zahájením obhajoby.
Pozn. Obhajoby projektů budou probíhat ve zkouškovém období. Na konkrétní termíny obhajob se studenti přihlašují skrze studijní informační systém. V případě, že autor projektu při obhajobě nebude schopen adekvátně reagovat na otázky vyučujícího, má vyučující právo dle svého uvážení snížit počet bodů z jednotlivých kategorií až na 0, a to i v případě, že se bude jednat o kvalitní projekt.
Časté chyby (navíc k hlavním požadavkům)
- nepoužití sémantických tagů, kde to dává smysl
- nepoužití angličtiny při psaní kódu
- neoddělené CSS, JS od HTML (inline CSS, inline JS)
- aktualizace DOMu v cyklu
- formátování kódu (HTML, CSS, JS)
- nekonzistentní používání uvozovek pro string
- nekonzistentní způsob deklarace promenných a funkcí
- nepoužívání string interpolation, kde to dává smysl
- nevhodné pojmenování proměnných a funkcí (nevhodný case, nevhodné názvy)
- opakovaný výběr DOM elementů pomocí selektoru
- nevalidní HTML (i dynamicky generovaný obsah)
- nekonzistentní pojmenování CSS tříd a id
- nepoužívání Promise nebo async/await pro práci s asynchronním kódem
- stránka aplikace se refreshuje
- aplikace nepoužívá AJAX pro asynchronní stahování dat z externí API
- aplikace nepoužívá žádnou Browser API funkcionalitu (localStorage, geolocation, camera, atd...)
- chybí validace uživatelského vstupu (form attributes, trim, regex, ...)
- používání funkce
alert
- neroztřídění souborů do jejich složek (js, css, img)
- chybí loader/spinner při načítání dat z serveru
- znečištění globálního objektu
window
- pro globální proměnné a funkce vytvoříte tzv.namespace
v podobě jednoho globálního objektu např.const App = {}
do kterého pak umístíte všechny globální proměnné a funkce, které budete přepoužívat v kódu, viz poslední domácí úkol. Nebo všechen kód pište do jednoho closure
$(document).ready(() => { /*...*/ });
- atd.
P.S.: Příklady REST API
- https://www.themoviedb.org/
- https://developers.pipedrive.com/
- http://www.omdbapi.com/
- https://www.mediawiki.org/wiki/Wikimedia_REST_API
- https://en.wikipedia.org/api/rest_v1/
- https://docs.opendota.com/
- https://restdb.io/docs/javascript-api
- https://docs.thedogapi.com/
- https://verify-email.org/
- https://www.thecocktaildb.com/
- https://openweathermap.org/api
- https://sportdataapi.com/football-soccer-api/
- https://kitsu.io/
- https://newsapi.org/docs
- https://spoonacular.com/food-api/docs
- https://skyscanner.github.io/slate/#api-documentation
- https://developer.spotify.com/documentation/web-api/
- https://developers.facebook.com/docs/graph-api/
- https://developers.google.com/sheets/api/guides/concepts
- https://developers.google.com/calendar/overview
- https://developers.facebook.com/docs/instagram-api/
- https://developers.google.com/places/web-service/overview
- https://developers.google.com/books/docs/v1/getting_started
- https://www.programmableweb.com/api/cocktails-rest-api-v1
- https://api.rawg.io/docs/
- https://docs.kiwi.com/
- https://developers.google.com/youtube/v3
- https://developers.giphy.com/docs/api
- http://open-notify.org/
- https://svatky.adresa.info/
- https://free.currencyconverterapi.com/
- https://developer.edamam.com/edamam-docs-recipe-api
- https://developer.twitter.com/en/docs/twitter-api
- https://developers.google.com/gmail/api/