A feladat dokumentálása és tapasztalatok a fejlesztés során
A webprogramozási feladat elkészítése során a cél nem csupán egy működő weboldal létrehozása volt, hanem egy olyan átlátható, logikusan felépített rendszeré, ahol a PHP, SQL (MySQL), HTML és CSS egymásra épülve alkotnak egy egységes webalkalmazást. A fejlesztés közben világossá vált, hogy a webprogramozás egy többrétegű folyamat, ahol az egyes technológiák szoros kapcsolatban állnak egymással.
A rendszer réteges felépítése
A webalkalmazás működése több, jól elkülöníthető rétegre bontható:
- SQL (MySQL) – az adatok tartós tárolása
- PHP – üzleti logika, adatfeldolgozás, jogosultságkezelés
- HTML – a tartalom strukturált megjelenítése
- CSS – megjelenés, reszponzivitás és felhasználói élmény
Egy tipikus oldalbetöltés során a felhasználó egy PHP fájlt ér el, amely SQL lekérdezésekkel adatot kér le az adatbázisból, majd a kapott adatokat HTML formában állítja elő. A böngésző ezt a HTML-t jeleníti meg a CSS szabályai alapján.
Az alkalmazás PHP állományainak szerepe
A projekt során több különálló PHP állomány készült, amelyek mindegyike konkrét feladatot lát el. Ez a felépítés segíti az átláthatóságot és a karbantarthatóságot.
Alap és közös állományok
-
config.php
Az adatbázis-kapcsolat (PDO) létrehozásáért felelős fájl. Minden olyan PHP állomány betölti, amely adatbázist használ. -
auth.php
A felhasználói azonosítással és jogosultságkezeléssel kapcsolatos függvényeket tartalmazza. Itt történik a session kezelés, acurrent_user(),require_login()ésrequire_admin()logika megvalósítása. -
header.php
Az oldal egységes fejlécét tartalmazza. Dinamikusan jeleníti meg a kategóriákat, valamint a bejelentkezett felhasználóhoz tartozó menüpontokat. -
footer.php
Az oldal láblécét biztosítja, egységes megjelenéssel minden oldalon.
Publikus oldalak
-
index.php
A főoldal, amely a legfrissebb publikált cikkeket listázza. Az adatokat SQL lekérdezéssel tölti be, és kivonat formájában jeleníti meg. -
post.php
Egy konkrét cikk részletes megjelenítéséért felel. A cikket slug alapján tölti be az adatbázisból. -
category.php
Egy adott kategóriához tartozó cikkeket listázza.
Felhasználói azonosításhoz kapcsolódó állományok
-
login.php
A felhasználók bejelentkezését valósítja meg. Ellenőrzi a megadott hitelesítő adatokat, majd session-ben eltárolja a bejelentkezett felhasználót. -
register.php
Új felhasználók regisztrációját kezeli. Validálja a bevitt adatokat, majd biztonságos jelszó-hash-sel eltárolja azokat az adatbázisban. -
logout.php
A kijelentkezésért felelős fájl, amely megszünteti a session-t, majd visszairányítja a felhasználót a főoldalra.
Admin felülethez kapcsolódó állományok
-
admin_posts.php
Az adminisztrátori cikklista, ahol a cikkek megtekinthetők, szerkeszthetők és törölhetők. -
admin_new_post.php
Új cikk létrehozására szolgáló admin oldal. -
admin_edit_post.php
Meglévő cikkek szerkesztésére szolgál. -
admin_delete_post.php
Egy cikk törlését végzi el admin jogosultság ellenőrzése után. -
admin_categories.php
A kategóriák létrehozását, szerkesztését, törlését és sorrendezését kezeli. -
users.php
Az adminisztrátori felhasználókezelő felület. Itt lehet admin jogot adni vagy elvenni, valamint felhasználókat törölni, a saját fiók védelmével.
Backend fókusz és személyes tapasztalat
A fejlesztés során egyértelművé vált számomra, hogy a backend fejlesztés az a terület, amely a leginkább magával ragadott. Az adatbázis-kezelés, a jogosultsági rendszer és a CRUD műveletek logikája sokkal nagyobb szakmai élményt adott, mint a kizárólag vizuális elemekkel való munka.
A PHP állományok közötti logikus feladatmegosztás segített abban, hogy a rendszer átlátható maradjon, és egy-egy hiba esetén gyorsan lokalizálható legyen a probléma. Ez a tapasztalat megerősítette bennem, hogy a backend jellegű gondolkodás közelebb áll hozzám a webfejlesztésen belül.
Összegzés
A feladat elkészítése során létrejött egy komplex, mégis jól strukturált webalkalmazás, ahol minden PHP állomány konkrét szerepet tölt be. A PHP, SQL, HTML és CSS egymásra épülő használata biztosítja a rendszer stabil működését és bővíthetőségét.
Továbbfejlesztési lehetőségek és záró gondolatok
A fejlesztés során nyilvánvalóvá vált, hogy az elkészült webalkalmazás működőképes, stabil alapokra épül, ugyanakkor számos olyan terület van, amely tovább finomítható vagy bővíthető. Ide tartozhat például a felhasználói felület további csiszolása, új admin funkciók bevezetése, teljesítményoptimalizálás, illetve a biztonsági mechanizmusok további erősítése.
A webfejlesztést azonban nem tekintem egy végleges állapotot elérő folyamatnak. Inkább hasonlítható egy házépítéshez: elkészül az alap, felépül a szerkezet, beköltözhetővé válik, de a finomítás, átalakítás és fejlesztés valójában soha nem ér véget. Mindig van egy új igény, egy jobb megoldás vagy egy hatékonyabb módszer, amely tovább javíthatja a rendszert.
Ezt a projektet ezért nem lezárt munkaként, hanem egy olyan alapként kezelem, amelyre később további funkciók és fejlesztések építhetők. A feladat teljesítette a kitűzött követelményeket, ugyanakkor megfelelő kiindulópontot biztosít a további szakmai fejlődéshez is.
-
Fontos megemlíteni, hogy a projekt nem kizárólag a tantárgyi követelmények teljesítése miatt készült. Régóta foglalkoztatott egy saját weboldal létrehozásának gondolata, azonban a mindennapi elfoglaltságok miatt korábban nem jutott elegendő idő a megvalósításra. A féléves feladat ebben az értelemben egyfajta külső motivációt adott: a határidők és elvárások „rákényszerítettek” arra, hogy valóban elkezdjem és végigvigyem a fejlesztést.
Ez a körülmény azonban pozitív hatással volt a munkára, mivel a kötelező jelleg mellett megjelent a személyes érdeklődés is. A fejlesztés során így nem csupán egy beadandó készült el, hanem egy olyan rendszer alapjai is, amelyhez személyes kötődés alakult ki.
A félév lezárását követően a weboldalt saját céljaimnak megfelelően tervezem továbbfejleszteni és átalakítani. A projekt a későbbiekben a rádióamatőr hobbim részeként fog tovább élni, ahol technikai napló, dokumentációs felület vagy kísérleti platform szerepét töltheti be. Ez a jövőbeli irány tovább erősíti azt a szemléletet, hogy a most elkészült megoldás nem egy végleges állapot, hanem egy stabil kiindulópont.
Gréczi László
D214WZ
3. féléves rendszergazda FOSZK hallgató