Étrendkészítő webalkalmazás OO PHP és MySQL alapon 2/4 Tóth Tamás, EWYXK4 BME-VIK AUT önálló labor Konzulens: Dávid Zoltán Étrendkészítő webalkalmazás OO PHP és MySQL alapon 2/4 Budapest, 2010. őszi félév
Célok Tudástár létrehozása és fejlesztése a felhasználók bevonásával Étrendkészítésben automatizált segítségnyújtás szakmai alapokra támaszkodva Diéta tervezés gyorsan és hatékonyan a modern, rohanó életmódú ember számára Baráti közösség kialakítása a jó kedv és az akaraterő erősítésére
Az előző félév során.. Elkészült az alkalmazás vázlatos terve az adatbázisra és keretrendszerre vonatkozóan Üzembe lett helyezve a kiszolgáló- és a fejlesztői környezet Létre lett hozva az adatbázis séma Implementálva lettek a keretrendszer szerveroldali alapjai A rendszer működőképesnek bizonyult
Előző félév – Adatbázis
Előző félév - Alkalmazás Kliens kérés beérkezése Alkalmazás inicializálás Kérés feldolgozás Komponens példányosítás Kért művelet elvégzése Tartalom generálása Szerver válasz küldése Több rétegű Alkalmazás logika Adatbázis API Sablonrendszer Moduláris Komponensek Modulok Pluginok Életciklus
Az előző félév végén Megfelelően funkcionál az oldal, a Profil komponens regisztrációs és bejelentkezési lehetősége az elvárt módon működik
Újítások ebben a félévben Az alkalmazás alapjainak felülvizsgálata, biztonsági megfontolások, rendszerezés Automatizálás Optimalizálás Új webcím, egyelőre tájékoztató oldalként Adminisztrációs felület bevezetése Új technológiák bevezetése Kliens oldali keretrendszer kialakítása Éles üzem tervezése, problémák feltárása
Újítás - Felülvizsgálat Futás során a keretrendszer automatikus jogosultság ellenőrzést végez a komponens (műveletének (és tárgyának)) elérése előtt Sablon fájlok rendszerezése logikai csoportosítások mentén külön mappába, a kiszolgált mappából biztonságos helyre áthelyezése, a sablon rendszer és a komponensek módosítása az új felállás támogatásához Beállítások adatbázis alapúvá tétele
Újítás - Automatizálás Az alkalmazás futásának szétválasztása 4 esetre: karbantartás, normál és ezeken belül is ajax hívás vagy normál kérés Karbantartás: ajax esetben hiba, normál esetben egyedi karbantartás oldal Normál futás: a teljes oldalt generáljuk a kért komponens által készített tartalommal Ajax futás: JSON adatot fogad, elvégzi a kért műveletet és JSON-t küld vissza
Újítás - Optimalizálás Probléma: A sablonrendszer sok nyelvi fordítás esetén belassult – például: ha táblázat generálásában soronként fordítandó szöveg van Megoldás: 1-1 sablonfájl nyelvenként kerül elő feldolgozásra, így a köztes kódok már a lefordított szöveget tartalmazzák, az első oldallekérés után a köztes kód futtatása lényegesen gyorsabb
Újítás – Új webcím A projekt túlnőtt a múltbéli bővített kalóriatábla elképzelésen, így szükséges volt számára egy új cím: étrendkészítő.hu Egyelőre ötletgyűjtő és tájékoztató funkciót lát el
Újítás - Adminisztráció Specializált eszköz az adatbázis kezelésére a szemantika ismeretében
Újítás – Új technológiák JSON avagy JavaScript Object Notation Szöveg alapú pehelysúlyú adatátviteli formátum Könnyű olvasni, írni, értelmezni, generálni Az XML-hez hasonlóan kényelmesen kezelhető, de kisebb méretű adathalmazt eredményez LESS avagy Leaner CSS A CSS kiegészítve változókkal, függvényekkel, műveletekkel, egymásba ágyazással A .less fájlokból fordító segítségével állnak elő a .css források. JSON példa: { "cím": "Praktikus", "tömb": [1,2,3], "gyors": true } LESS példa: @w: 960px; // width @r: 4/3; // ratio #content { width: @w; height: @w / @r; h2 { color:blue; }
Újítás – Kliens oldal Kliens oldali keretrendszer feladatai: AJAX támogatás Szinkron kérés, Egyszeri kérés, Periodikus kérés Kérések sorrendezése, tárolása, futtatása Válaszok kezelése, adat rész továbbadása a hívónak Nyelvi támogatás Fordítások beszerzése szerver oldalról és tárolásuk Fordítási lehetőség paraméterekkel UI támogatás
Újítás – Élesítés tervezése Problémák feltérképezése: Idő – minden fájlnak egyszerre kell frissülnie Gyorstár – a statikus fájlokat a böngésző tárolja Teljesítmény – sok külön fájl Munkamenetek – szükséges lehet az újraindításuk Megoldások: Verziószám alapú könyvtárak Statikus fájlok összevonása, minimalizálása, lehetőség szerint csomagolása (1 css, 1 js) Speciális AJAX válaszra az oldal újratöltése
A közeli jövő A felhasználói felület teljes áttervezése Komponensek fejlesztése a meglévő adatbázis kihasználására Modulok fejlesztése hírek, kategóriák, címkék, listák megjelenítésére Tudástár feltöltése minél több információval Étrendkészítés manuálisan Közösségi részek: csevegő, üzenetek, profilok, adatvédelem, kapcsolatok
A távolabbi jövő Automatikus étrendkészítés és -ajánlás adatbányászati módszerekkel Aktív diéta folytatása az alkalmazás segítségével – SMS értesítés Bolti adatok gyűjtése – az étrendhez szükséges napi bevásárló lista összeállítása, árbecslés, bolt ajánlás Mobil kliens a saját étrend és bevásárló lista követéséhez Egy egészségesebben élő közösség kialakítása
Köszönöm a figyelmet!