Helló, a nevem

Fabók Árpád

Web fejlesztő, mérnök informatikus és 3D akolita

Talán fúrcsának tűnhet hogy rögtön egy gyenge ponttal kezdem a bemutatkozást, de ha van valamilyen hiányosságom hát akkor az hogy mindenhez érteni akarok. Ha elkap a lendület és már egy kicsit is jó vagyok valamiben akkor a következő lépés az szokott lenni, hogy nagyon jó akarok lenni benne. Így volt ez már a középiskolában is amikor Turbo Pascalon tanították nekünk a programozást és ez azóta sincs nagyon másként.

Weboldalak fejlesztésével 2023 óta kezdtem el foglalkozni, előtte inkább a „hagyományos” asztali alkalmazások jellemezték a munkámat. De ezeken túl érdekel még a 3D animáció és a játékfejlesztés is, úgyhogy a szabadidőmben beleástam magam a Blender és Unreal Engine tanulmányozásába is. (Már amikor nem könyveket olvasok, játékokat játszok, a városban túrázok naphosszat vagy valamilyen más hobbival veszek el magamtól még több szabad időt. Én mondom, 24 óra egész egyszerűen nem elég semmire.)

2003-2007
Középiskola
Neumann János Számítás-technikai Szakközépiskola

Érettségi

2007-2008
Középiskola
Neumann János Számítás-technikai Szakközépiskola

Programozói OKJ végzettség

2008-1013
Egyetem
Budapesti Műszaki Egyetem

Villamos Informatikai Kar (VIK) Bsc diploma

2014-2016
Egyetem
Budapesti Műszaki Egyetem

Villamos Informatikai Kar (VIK) Msc diploma

2003-2007
Középiskola
Neumann János Számítás-technikai Szakközépiskola

Érettségi

2007-2008
Középiskola
Neumann János Számítás-technikai Szakközépiskola

Programozói OKJ végzettség

2008-1013
Egyetem
Budapesti Műszaki Egyetem

Villamos Informatikai Kar (VIK) Bsc diploma

2014-2016
Egyetem
Budapesti Műszaki Egyetem

Villamos Informatikai Kar (VIK) Msc diploma

02.

Képesítéseim

Az informatika egy olyan hegycsúcs ami nem csak magas és nehezen mászható de még folyamatosan új emeleteket is építenek rá, hogy még véletlenül se érezd magad a világ tetején. De az informatikus ezt nem bánja mert minden mérföldnél akad valami érdekes. Itt azon határkövek közül találhatsz néhányat, amelyek körül már magabiztosan mozgok.

HTML 5

CSS 3

TypeScript

React

Next.js

Angular

Nest.js

Spring Boot

Django

Node.js

Vitest / Jest

Jasmine

Cypress

Tailwind CSS

Sass / SCSS

MongoDB

PostgreSQL

WordPress

Docker

Blender

03.

Korábbi Projektek

Solibrarium

Egy könyvesbolt mockup oldal ami a Google Books tartalmát használja mint a bolt "készletét", de ezen felül a legtöbb olyan funkció megtalálható benne ami egy e-commerce oldalnál előfordul, beleértve a regisztrált vásárlók magángyűjteményének értékelését és az elfelejtett jelszó visszaállítását is.   WEBOLDAL MEGNYITÁSA

Solibrarium

Ami a kezdetekben egy egyszerű e-commerce gyakorló feladatként indult végül abban a gondolatban tetőzött, hogy „mi lenne ha a Bookline.hu oldalt Solarpunk motívumokkal tematizálnánk?” Természetesen nincs saját könyvesbolti adatbázisom, legalább is nem a tízezres méretekben, így a bolt inventory-ját a Google Books nyílvános API hívásokkal lekérdezhető adatbázisa helyettesíti, ezt leszámítva azonban ugyanúgy meg lehet mindent „venni” mint egy igazi boltban. (Megjegyezendő azonban, hogy a Google Books fenntart egy napi 1000 lekérdezési limitet API kulcsonként, és bár igyekeztem Redis cache-elést bevezetni az applikációba a nap végén ez egy példa oldal ami nem fog több száz felhasználót kiszolgálni.)

Az oldalra bárki képes regisztrálni és bejelentkezni akár saját email cím / jelszó kombinációval, akár a Google bejelentkezési felületen keresztül (és minta oldal lévén akár törölheted is a fiókodat ha úgy gondolod). Ha egy bejelentkezett felhasználó megvásárol egy vagy több könyvet akkor azokat egy Magángyűjteménybe szervezve fogja megtalálni a saját felhasználói fiókjában ahol akár személyes értékeléseket is írhat róluk és azok véletlenszerűen megjelenhetnek a főoldal könyvajánlói szakaszában. Sőt, aki elfelejtette a jelszavát annak az email címére levélben megküld egy kriptografikusan generált URL-t amin keresztül csak az adott felhasználó tud újraregisztrálni (jelszót változtatni) egy adott idősávon belül.

Az applikáció Next.js 15 keretrendszerben lett megírva és egyszerű Javascriptet és CSS-t használ, valamint jó sok Tailwind osztályt. A felhasználói autentikációt és munkamenet kezelést a NextAuth csomag végzi, az ezekhez szükséges adatbázis műveletekhez pedig egy külső MongoDB Atlas adatbázist használ. Egy ennél kicsit részletesebb beszámolóhoz azt javasolnám hogy látogass el az oldalra és próbálj meg minél több lábléc üzenetet összevadászni.

GitHub forráskód: https://github.com/FarpadGit/Solibrarium


Wayfarer

Egy online fórum ami egy felhasználó oldali frontend és egy szerver oldali backend komponensből áll ahol bárki írhat hozzászólásokat meglévő posztokhoz vagy hozhat létre saját bejegyzéseket, de a Google fiókkal bejelentkezett felhasználók védettek a többiek tevékenységei elől.   WEBOLDAL MEGNYITÁSA

Wayfarer

Egy Angular 19+-ban írt közösségi fórum oldal ami egy Reddithez hasonló beágyazott komment struktúrával teszi lehetővé, hogy a felhasználók megjegyzéseket hagyjanak egymás posztjai alatt, amiket „járásokba” (kategóriákba) szervezve jelenít meg a főoldal. Minden felhasználó írhat saját kommentet akár az eredeti posztra akár mások válaszaira, lájkolhatják mások kommentjeit vagy létrehozhatnak új posztot a főoldalon, a posztjaikhoz pedig csatolhatnak maximum 9 kép csatolmányt. Mindezt akár bejelentkezés nélkül is megtehetik, ugyanis az oldal felkeresésekor alapvetően mindenki egy megosztott „vendég” fiókba van bejelentkezve és minden alap funkció mindenkinek egyformán elérhető, csak ezzel együtt ez azt is jelenti, hogy bárki könnyedén felülírhatja amit itt csináltál. Bejelentkezett felhasználók írásait azonban csak ők maguk változtathatják meg és a lájkjaikat is csak ők vonhatják vissza. Bejelentkezni Google-os email címmel lehet a jobb felső lebegő gombra kattintva. (Aki bejelentkezik az bekerül az app adatbázisába.)

Ez a projekt valójában két együttműködő projekt egyben (három, hogyha a kép csatolmány szervert is külön beszámoljuk), egy felhasználó oldali frontend ami egy Angular SPA (Single Page Application), és egy szerver oldali backend ami egy Fastify alapú Nest.js keretrendszerben íródott. Ez a két kód két különböző címen került hosztolásra, és a projekt fő kihívása az volt hogy a két oldal sikeresen tudjon sütiken keresztül kommunikálni egymással, nemcsak a CORS védelem ellenében hanem a Vercel sajátos implementációs megoldásait is körbejárva.

A frontend oldal Typescriptet és SCSS stíluslapokat használ, az adatbázis pedig egy helyben tárolt PostgeSQL adatbázis amit a Vercel biztosít.

A kép csatolmányok kezeléséért egy saját Medea nevű projekt a felelős, ami API hívásokon keresztül kommunikál a Wayfarer backend oldalával és a felhasználó által feltöltött képeket egy saját adatbázisban tartja nyílván. (Egész pontosan a workflow úgy néz ki, hogy a Wayfarer frontend oldala feltölti a csatolmányokat a Vercel Blob adattárházba ami pont ilyen adatfájlokra specializálódott, majd szól a Medea-nak hogy másolja fel azokat az ImageKit.io médiakezelő platformra és tartsa számon őket egy saját Postgres adatbázisban, majd az megküldi a feltöltött képek URL-jét a Wayfarer-nek. Vendég felhasználók csatolmányait 30 nap után törli a rendszer és a posztokban csak egy placeholder kép fog megjelenni.)

Github forráskód: https://github.com/FarpadGit/Wayfarer


Clandescent Moon

Egy lejátszási lista szerkesztő és videó lejátszó oldal amivel nemcsak a Youtube-ról hanem 9 másik videó megosztó oldalról is összeválogathatunk zenét a saját ízléseink szerint.   WEBOLDAL MEGNYITÁSA

Clandescent Moon

Ennek a projektnek egy viszonylag célratörő és határozott motivációja volt: szeretek zenét hallgatni munka közben, azt viszont annál kevésbé hogy feleslegesen fiókokat nyissak különféle zenei szolgáltató oldalakon. A végeredmény egy olyan oldal lett, amivel bárki képes lejátszási listákba szervezve online videókat lejátszani akár több különféle videó megosztó oldalról is egyszerre (bár én főleg a Youtube-ot használom).

Az oldal semmilyen szerver oldali komponenst nem használ, egyszerűen a böngésző Hely Tárolóját (Local Storage) használja mint „adatbázist”, ide írja és olvassa az összes információt szöveges adatként. (Illetve a felhasználó kérésére ki tudja írni ezeket egy szöveges CSV fájlba és be is tud importálni onnan.) És még bónuszként kipróbáltam a nemzetközisítést is az i18next csomaggal, így az egész app használható angol illetve magyar nyelven.

Az oldal React 18-ban íródott Typescriptben és LESS stíluslapokkal.

Github forráskód: https://github.com/FarpadGit/Clandescent-Moon


Drip Dynasty

Egy e-commerce weboldal tartalom kezeléssel ahol be tudsz jelentkezni egy admin dashboard felületre, feltölthetsz vagy szerkesztheted az adatbázisában szereplő eladásra kínált termékeket, kezelheted a vásárlóktól beérkező rendeléseket illetve megveheted őket online PayPal fizetéssel.   WEBOLDAL MEGNYITÁSA

Drip Dynasty

Egy viszonylag nagyobb volumenű projekt, a Drip Dynasty egy e-commerce weboldal admin kezelőfelülettel ellátva. Ha az oldal látogatója sajátkezűleg elnavigál a /admin oldalra (vagy a /login oldalra ahová automatikusan át fogja irányítani az alkalmazás) akkor jelszóval be tud lépni és szerkesztheti az adatbázisban szereplő termékeket, akciós árakat hirdethet meg, feltölthet újabbakat, kezelheti a vásárlóktól beérkező rendeléseket illetve összesítő statisztikákat láthat róluk a főoldalon. A kezelőfelületre a DripAdmin / DripPass felhasználónévvvel és jelszóval lehet belépni. Ezeken túl még meg is „vásárolhatjuk” a felkínált termékeket az integrált PayPal gombok segítségével, ami nem fog igazi pénzt átmozgatni mert a fiókot fejlesztői sandbox módban hagytam. A pontos utasítások a „what is this?” gomb alatt találhatók közvetlen a PayPal gomb alatt. Sikeres tranzakció után a vásárló egy emailt fog kapni az email címére a vétel sikeréről, illetve kérhet még rendelési összesítő levelet is ugyanarra a címre.

A frontend oldal Angular 19-ben íródott főleg Tailwind osztályokkal, amíg a backend Java Spring Boot 3.3.4-et használ Java 17-tel. Ez a backend funkcionál egyszerre az API végpont szolgálóként, adatbázis kezelőként (egy publikus MongoDB Atlas clustert használ tárhelyként) illetve az emailek összeállításáért és elküldéséért is ő felel, valamint minden PayPal tranzakciós kérést külön ellenőriz és hitelesít a szerver oldalon.

FONTOS: Mivel a backend oldali kódot a Render platform Free Tier-jén hosztoltam és a kikötésükben szerepel, hogy hoszabb inaktivitás esetén vissza hibernálhatják a projektemet így nagy lehet az esélye, hogy az első felkeresésnél akár egy egész percig is látni fogod a betöltési indikátort. De esküszöm be fog majd töltődni amint újra felpörgeti a szervert, csak mindketten smucigok vagyunk.

Github forráskód: https://github.com/FarpadGit/Drip-Dynasty-Server

https://github.com/FarpadGit/Drip-Dynasty-Client


04.

Lépjünk kapcsolatba

Ha szeretnéd hogy közösen tető alá hozzunk valami nagyszerűt, vagy csak kérdésed van valamivel kapcsolatban az itt látottak közül akkor írj bátran egy levelet vagy hívjál fel a 0630-823-5776-os számon.