A tárgy célja, hogy a hallgatók megismerkedjenek a full-stack fejlesztéshez kapcsolódó témakörökkel, módszerekkel, nyelvekkel és eszközökkel. Ezeken keresztül megismerik a webfejlesztés útját, a kezdetektől egészen napjainkig. Megismerik az ok-okozati összefüggéseket, ezáltal pedig az egyes módszerek közötti különbségeket fel tudják ismerni, előnyök és hátrányok szempontjából. Megismernek dedikált szerveroldali és kliensoldali módszereket és nyelveket, valamint a két oldal közötti kapcsolatot.
A hallgatĂłk ezeken keresztĂĽl a kurzus sikeres teljesĂtĂ©se esetĂ©n a webfejlesztĂ©s rĂ©szenkĂ©nti (backend / frontend) valamint egĂ©szĂ©t (full-stack) átlátják, a terĂĽletekre vonatkozĂł szĂĽksĂ©ges alapismeretekkel rendelkezni fognak.
A hallgatók a következő témakörökkel ismerkednek meg tartalmilag összefüggő egységek (modulok) formájában:
- a webfejlesztés alapjai, történelme
- backend, frontend és fullstack szeparáció
- HTTP protokoll
- a HTML és a CSS nyelv (class, id, selector-ok, grid, flexbox stb.)
- az ECMAScript és a JavaScript nyelv (DOM manipuláció, eseményvezérelt programozás, keretrendszerek)
- szerveroldali programozás PHP-ban és ASP.NET-ben
- MVC tervezési minta (klasszikus webfejlesztés)
- CRUD alkalmazás kĂ©szĂtĂ©se MVC tervezĂ©si mintával
- REST API alapú fejlesztés (moden webfejlesztés)
- CRUD alkalmazás kĂ©szĂtĂ©se REST API alapon
https://nik.uni-obuda.hu/targyleirasok/tantargyak/full-stack-szoftverfejlesztes/
A tárgy bevezetőjében röviden megismerjük a szoftverfejlesztés történetét, amely kapcsán aztán kitérünk a webfejelsztés, frontend- és backend-, valamint fullstack alapú fejlesztések közötti különbségekre, hasonlóságokra. Szintén alapfogalomként a HTTP protokollt megismerjük, valamint az internet és hálózat fogalmát is megvizsgáljuk a webfejlesztés vonatkozásában.
01 - A szoftverfejlesztés rövid története
02 - Webfejlesztés
03 - Frontend fejlesztés
04 - Backend fejlesztés
05 - Fullstack fejlesztés
06 - HTTP protokoll
07 - Internet és hálózat
MegismerjĂĽk a HTML nyelv törtĂ©netĂ©t, kialakulásának körĂĽlmĂ©nyeit, valamint az alapvetĹ‘ HTML elemeket. MegismerjĂĽk a speciális jelentĹ‘sĂ©ggel bĂrĂł head elemet ahol a metaadatok tárolandĂłk, majd további HTML elemekkel ismerkedĂĽnk meg, kiemelve ezek közĂĽl az űrlapmezĹ‘ket.
01 - A HTML nyelv története
02 - A HTML nyelv alapjai
03 - A head elem (metaadatok)
04 - További HTML elemek
05 - Feladatmegoldás: FejlesztĹ‘környezet beállĂtása, HTML oldalak lĂ©trehozása
MegismerjĂĽk a CSS nyelv törtĂ©netĂ©t, kialakulásának körĂĽlmĂ©nyeit, valamint kapcsolatát a HTML nyelvvel. MegismerjĂĽk az alapvetĹ‘bb CSS beállĂtásokat, stĂlusokat, ennek következtĂ©ben pedig a CSS selector-okat is, amelyekkel class-ok Ă©s id-k kĂ©rdezhetĹ‘k le a HTML dokumentum alapján.
01 - A CSS nyelv története
02 - CSS használatának módjai
03 - Gyakori CSS stĂlusbeállĂtások
04 - Feladatmegoldás: CSS alkalmazása a korábban létrehozott HTML oldalakra
05 - CSS selector-ok
06 - Feladatmegoldás: CSS selector-ok használata
07 - Class és ID használata
08 - Feladatmegoldás: Class-ok és ID-k használata
CSS ismereteinket tovább mĂ©lyĂtjĂĽk, amelynek fontos lĂ©pĂ©se a nyelv fejlĹ‘dĂ©sĂ©nek megismerĂ©se, megĂ©rtĂ©se hiszen ebbĹ‘l prediktálhatĂł a nyelv jövĹ‘je is. MegismerjĂĽk a reszponzivitás fogalmát, Ă©s, hogy hogyan alakĂthatĂł ki reszponzĂvra egy weboldal. MegismerkedĂĽnk oldalstruktĂşra kialakĂtási mĂłdszerekkel (flexbox, grid) amelyek a mai modern CSS keretrendszerekben is megtalálhatĂłk, mint pl. a Bootstrap amelyet rĂ©szletesebben is megismerĂĽnk.
01 - A CSS fejlődése és jövője, böngésző támogatottság
02 - Reszponzivitás
03 - Feladatmegoldás: media-query-k használata reszponzĂv kialakĂtáshoz
04 - OldalstruktĂşra kialakĂtása (grid, flexbox)
05 - Feladatmegoldás: grid-alapĂş oldal kialakĂtása
06 - CSS keretrendszerek
07 - Feladatmegoldás: Bootstrap felhasználása
MegismerjĂĽk a JavaScript nyelv törtĂ©netĂ©t, kialakulásának körĂĽlmĂ©nyeit valamint kapcsolĂłdását az akkori kor egyĂ©b nyelveihez Ă©s a HTML-hez. ÉrintjĂĽk az ECMAScript fogalmát, valamint a JavaScript alapvetĹ‘ nyelvi tulajdonságait Ă©s jellemzĹ‘it felhasználva megnĂ©zzĂĽk, hogy hogyan tudunk alapvetĹ‘ programozási szerkezeteket ebben a nyelvben kĂ©szĂteni.
01 - A JavaScript nyelv története
02 - A JavaScript nyelv jellemzői, tulajdonságai
03 - ECMAScript
04 - JavaScript tĂpusok, változĂłk, vezĂ©rlĂ©si szerkezetek
05 - Feladatmegoldás: JavaScript programozási alapok megismerése
A JavaScript nyelvet rĂ©szletesebben megismerjĂĽk, fĂłkuszálva a DOM-ra Ă©s az azon keresztĂĽl elĂ©rhetĹ‘ adatmanipuláciĂłhoz. A DOM manipuláciĂłján keresztĂĽl egtanuljuk, hogy hogyan működik a kliensoldali dinamizmus (dinamikus tartalommĂłdosĂtás).
01 - DOM
02 - DOM manipuláció (lekérdezés)
03 - Feladatmegoldás: DOM manipuláció (lekérdezés + létrehozás)
04 - DOM manipuláciĂł (mĂłdosĂtás, lĂ©trehozás)
05 - DOM manipuláció (CSS attribútumok)
JavaScript ismereteinket tovább mĂ©lyĂtve megismerjĂĽk, hogy pontosan mik (Ă©s mik nem) a JS keretrendszerek, valamint, hogy milyen elĹ‘nnyel/hátránnyal rendelkeznek ezek. MegismerjĂĽk továbbá az esemĂ©nykezelĂ©st, amely a kliensoldali dinamikának egy Ăşjabb (Ă©s talán a legfontosabb) eleme.
01 - JavaScript keretrendszerek
02 - Eseménykezelés
03 - Feladatmegoldás: click esemény a gyakorlatban
04 - Feladatmegoldás: eseményobjektum használata
05 - Feladatmegoldás: esemény programozott létrehozása
06 - BÓNUSZ Feladatmegoldás: TO DO alkalmazás localstorage tárolással
Kliensoldali tudásunkhoz hozzáépĂtve, a szerveroldali programozás alapjait ismerjĂĽk meg amelyhez egy tökĂ©letes kezdeti lĂ©pcsĹ‘fok a PHP nyelv megismerĂ©se. Ezen keresztĂĽl szemlĂ©ltetve a szerver-kliens kommunikáciĂłt megvizsgáljuk (miben másabb mint a sima kliensoldali programozás). Megvizsgáljuk a HTTP státuszkĂłdokat is, mint a szerverrĹ‘l kapott válasz egy fontos jellemzĹ‘jĂ©t.
01 - Szerveroldali programozás alapjai
02 - A PHP nyelv
03 - Szerver-kliens kommunikáció
04 - Feladatmegoldás: XAMPP fejlesztőkörnyezet, PHP gyakorlati alapok
04 - Feladatmegoldás: JS használata PHP-val
06 - HTTP státuszkódok
07 - Feladatmegoldás: HTTP státuszkódok a gyakorlatban
08 - Feladatmegoldás: Form kezelés PHP-val (GET request)
Szerveroldali programozással kapcsolatos tudásunk további mĂ©lyĂtĂ©sre kerĂĽl, azonban ehhez már nem PHP-t, hanem ASP.NET keretrendszert fogunk használni, Ăgy ezt ismerjĂĽk meg. A keretrendszer MVC tervezĂ©si mintát használ, Ăgy a tervezĂ©si mintákat, azok csoportosĂtását Ă©s lĂ©tjogosultságukat is feldolgozzuk.
01 - Tervezési minták elmélete
02 - Az MVC tervezési minta
03 - ASP.NET MVC
04 - Feladatmegoldás: ASP.NET Core Empty alap projekt
05 - Feladatmegoldás: ASP.NET Core MVC projekt felĂ©pĂtĂ©se (felhasználĂł ĂĽdvözlĹ‘)
06 - Feladatmegoldás: Model réteg hozzáadása (Person osztály)
07 - Feladatmegoldás: Model rĂ©teg bĹ‘vĂtĂ©se
Egy konkrĂ©t komplex feladat megvalĂłsĂtása ASP.NET keretrendszerben, felhasználva a meglĂ©vĹ‘ ismereteinket.
01 - Feladatmegoldás: Singleton tervezési minta bemutatása
02 - Feladatmegoldás: Data réteg létrehozása (repository)
03 - Feladatmegoldás: Controller rĂ©teg elkĂ©szĂtĂ©se
04 - Feladatmegoldás: View rĂ©teg elkĂ©szĂtĂ©se 1. - CREATE, READ
05 - Feladatmegoldás: View rĂ©teg elkĂ©szĂtĂ©se 2. - Bootstrap, feltĂ©teles megjelenĂtĂ©s
06 - Feladatmegoldás: View rĂ©teg elkĂ©szĂtĂ©se 3. - DELETE
07 - Feladatmegoldás: View rĂ©teg elkĂ©szĂtĂ©se 4. - UPDATE
08 - Feladatmegoldás: View rĂ©teg elkĂ©szĂtĂ©se (bĂłnusz reflexiĂł, aprĂł simĂtások)
09 - Feladatmegoldás: View rĂ©teg elkĂ©szĂtĂ©se (JS hozzáadása)
Szerveroldalon maradva megismerkedĂĽnk egy másik fajta fejlesztĂ©si mĂłdszerrel, ami az API-alapĂş fejlesztĂ©st jelenti. MegismerjĂĽk, hogy mi az API jelentĂ©se, milyen tĂpusai vannak (REST, SOAP, Win stb.) Ă©s, hogy miĂ©rt fontos ez a megközelĂtĂ©s a modern világban. MegismerjĂĽk a CRUD fogalmát.
01 - Az API jelentése
02 - REST API
03 - API vs MVC
04 - API vĂ©gpont kĂ©szĂtĂ©s
05 - CORS
06 - API tesztelés (Swagger, Postman)
Egy konkrĂ©t komplex feladat megvalĂłsĂtása API-alapĂş fejlesztĂ©ssel, felhasználva a meglĂ©vĹ‘ ismereteinket.
01 - Feladatmegoldás: API vĂ©gpont kĂ©szĂtĂ©s - Perzisztens adattárolás bevezetĂ©se (adatbázis)
02 - Feladatmegoldás: API vĂ©gpont kĂ©szĂtĂ©s - Swagger hozzáadása az API projekthez
03 - Feladatmegoldás: API vĂ©gpont kĂ©szĂtĂ©s - CRUD API vĂ©gpontok elkĂ©szĂtĂ©se
04 - Feladatmegoldás: Swagger tesztelés
05 - Feladatmegoldás: Postman tesztelés
06 - Feladatmegoldás: Postman + Swagger integrálás
07 - Feladatmegoldás: API kliens kĂ©szĂtĂ©s - Fetch API hĂvás, CORS problĂ©ma
08 - Feladatmegoldás: API kliens kĂ©szĂtĂ©s - a kĂ©szĂtendĹ‘ teljes rendszer áttekintĂ©se
09 - Feladatmegoldás: API kliens kĂ©szĂtĂ©s - A HTML elkĂ©szĂtĂ©se
10 - Feladatmegoldás: API kliens kĂ©szĂtĂ©s - A JS elkĂ©szĂtĂ©se