Fejlesztési naplók

Válogatás az általam fejlesztett és karbantartott projektekből, röviden a felépítésükről: platformok között megosztott kód, a rétegek világos szétválasztása, valamint hálózati és tűzjelző rendszerek telepítése.

01 / Multiplatform és mobilalkalmazások

school

MaturiMate

Kotlin Multiplatform • Fejlesztés alatt

KMP Core

A MaturiMate egy érettségi-felkészítő alkalmazás Androidra és asztali gépre (JVM), Kotlin Multiplatform és Compose Multiplatform segítségével írva. Az éles Kotlin kód kb. 95%-a közös a két platform között; a többi platform-belépési pont és kis platformspecifikus adapter.

A képernyők ViewModel-eket használnak, amelyek a változtathatatlan UI-állapotot Kotlin StateFlow-ként teszik közzé. A navigáció a Navigation3 (alpha) könyvtárat használja, a felhasználói beállításokat pedig multiplatform DataStore menti.

Állapot: a bevezető folyamat (onboarding), az érettségi visszaszámlálóval ellátott profilképernyő és az alkalmazkodó navigációs keret működik. A vizsgaadatbázis (SQLDelight) és a vizsgaadatok betöltése külön ágon készül, és még nincs beolvasztva. A vizsgakitöltő képernyő, az értékelés és a próbálkozások előzményei még nincsenek megépítve.

Excerpt (abbreviated): MainFrame.kt, adaptive navigation
BoxWithConstraints {
    // Determine if the device is considered a desktop based on maxWidth
    val isDesktop = maxWidth > LayoutConstants.DesktopThreshold

    if (isDesktop) {
        // Desktop navigation side bar
        Row(Modifier.fillMaxSize()) {
            // ...
        }
    }
    // ...
}

02 / Backend és rendszerszoftverek

layers

Employee Records Database (Java)

Java

Java 21 konzolos alkalmazás alkalmazotti nyilvántartások és a munkatársak közötti együttműködési kapcsolatok kezelésére. Kétfős egyetemi feladatként indult. A kód prezentációs, domain és adatréteg között oszlik meg, a domain pedig csak repository- és tárolási interfészektől függ. Futás közben az adatok egy memóriabeli tárolóban vannak, szöveges fájlos exporttal és egy SQLite-mentéssel, amely indításkor betöltődik, kilépéskor pedig mentésre kerül. A két alkalmazotti funkció egy szabályalapú kockázati pontszám és a közös kollégák elemzése. A legtöbb kapcsolattal rendelkező alkalmazott lekérdezése holtversenynél az alkalmazotti azonosító szerint dönt.

A domain szolgáltatást, a repository-t és a tárolási megvalósításokat JUnit 5 tesztek fedik le; a fájltárolási tesztek ideiglenes @TempDir könyvtárakban futnak. Egy GitHub Actions workflow a master ágra érkező minden push és pull request esetén lefuttatja az egységteszteket.

public

Többdomaines platform és médiafolyamat

Webes ökoszisztéma

Ez a weboldal. Egyetlen repó három független oldalt tartalmaz: egy fotós vállalkozói oldalt, egy központi hubot és ezt a mérnöki portfóliót. Helyi fejlesztéshez egy Alpine-alapú Nginx szerverrel ellátott Docker Compose környezetben futnak együtt, így a domainek közötti irányítás és a tiszta URL-ek élesítés előtt tesztelhetők. Mindegyik oldal külön Cloudflare Pages projektként települ a main ágra érkező push után.

A fotógalériák adatbázis nélkül készülnek. Egy kis Python CLI végignézi a képmappákat és egy JSON manifestet ír, amelyet a böngésző betölt, majd sima JavaScripttel masonry galériát épít belőle.

Secure Communication

Python • Egyetemi kurzusprojekt (BPC-AKR)

Crypto

Egy terminálalapú csoportos csevegő, amely kriptográfiai játszótérként szolgál. A kliensek titkosított üzenetekkel (AES-GCM) kommunikálnak egy Diffie-Hellman kulcscsere révén egyeztetett kulcs segítségével, miközben egy beépített man-in-the-middle (közbeékelődéses) proxy szemlélteti, hogy a védelem mit képes megállítani, és mit nem. Biztonságos módban a kézfogást RSA-val írják alá, és a manipulált kulcscserét a rendszer automatikusan megszakítja; nem biztonságos módban viszont a proxy képes átvenni a munkamenet feletti uralmat.

A projekt négyfős egyetemi feladatként (BPC-AKR) indult; én feleltem a Diffie-Hellman kulcscsere és a HKDF kulcslevezetés megvalósításáért. Később refaktoráltam a kódot, kijavítottam 21 hibát, írtam egy 103 tesztből álló tesztcsomagot, valamint kiegészítettem egy GitHub Actions munkafolyamattal és egy Docker Compose demóval. Ez egy oktatási célú projekt; a részletek és a javított hibák listája a GitHub README-ben találhatók.

03 / Fizikai infrastruktúra és életvédelmi rendszerek

Intézményi Hálózat & L3 Felügyelet

Infrastruktúra

Zöldmezős hálózat egy új oktatási intézményben: 19"-os rack, VLAN szegmentáció (menedzsment, CCTV, irodai LAN), Wi-Fi 6 és 8 IP kamera 250 W-os PoE kerettel, ~80 W tényleges terheléssel.

A rögzítési streamek a PoE switch backplane-jén maradnak. Kétszintű távmenedzsment: Omada felhő a napi ellenőrzéshez, WireGuard split tunnel távoli helyszínről az izolált alhálózatokhoz. Általam tervezve, telepítve és konfigurálva; távolról adminisztrálva.

Tűzjelzés és életvédelem: Bosch AVENAR 2000

Életvédelem

Bosch AVENAR panel 2000 elektronikus tűzjelző rendszer egy oktatási intézményben: zárt LSN hurok, hat funkcionális zóna helyiségnevekkel a kijelzőn, FMC-420RW kézi jelzésadók.

Az RML 0008 A relék vezérlik a fail-safe ajtónyitást, a főelosztó munkaáramú kioldóját és a GSM átjelzést. Telepítés és LSN programozás Bosch AVENAR központon, a projekt terve szerint és egy felhatalmazott felügyelő irányítása alatt. A munka része volt a sínsorrend-ellenőrzés, a T-tap hibakeresés és az EN 54-4 szerinti akkumulátor-autonómia ellenőrzése (24 h + 30 perc).