====== Általános követelmények ====== * Mindenképpen többnyelvűre kell tervezni, lehet a siteból magyar, angol német stb. * http://www.javaworld.com/javaworld/jw-12-2002/jw-1227-jsf2-p3.html#i18n * A hibaüzenetek is többnyelvűek * http://www.jsf-faq.com/faqs/faces-messages.html#126 * Cserélhető legyen a kinézet css segítségével ====== Felhasználók ====== * Felhasználók saját magukat regisztrálják * Felhasználók megadják: * Családnév, Utónév, emailcim, felhasználói név, jelszó 2x (mindegyik kötelező mező) * számlázási információ: cégnév, cimsor1, cimsor2, város, irányítószám * a rendszerben a felhasználói név unique. * A rendszer generál egy azonosítót a usernév hash kódja alapján. Amit ki is ír a rendszer, ezzel a számmal lehet majd hivatkozni a felhasználóra, pl egyenleg feltöltésekor. (lehet ez csak majd belsőleg kell, attól függ hogyan lehet kredit kártyával fizetni, de lehet az user név is azonosít, ha pl. SMS-ben akar feltölteni.) * Felhasználónként van 1 számlája ami krediteket tartalmaz * Felhasználó számláját időközönként feltölti (prepaid jelleggel) * ezt a feltöltést Gábor API-jával lehet majd elvégezni az user azonosítója alapján. * A programok felhasználása kredit alapon történik, minden program használata időegységenként (pl. percenként) meghatározott kreditbe kerül. * a kreditek csökkenését a számlázó szervlet fogja számolni. * Alap esetben (bejelentkezés nélkül) a felhasználó böngészhet az elérhető programok között, de letölteni nem tud. * jelezni kell, hogy a letöltéshez regisztrálni kell, és valamennyi minimum kredittel is kell rendelkezni. * Regisztráció/adatok módosítása/számla feltöltés/Programhasználat megtekintése (tranzakciós lista) ====== Keresés ====== * Programok között lehet szabadszavasan keresni név/leírás alapon * egy keresősáv elég ====== Kategóriák ====== Minden elérhető programhoz az alábbi információk elérhetőek: * Név * rövid leírás * hosszú leírás * kategória - alkategória kiválasztása * thumbnail kép * ár (kredit/időegység) * gyártó link * letöltési link (útvonal) (valószínűleg ftp cím lesz) * kulcs adatbázis (lehet végén csak egy byte[]) (ez nyílván nem látszik a honlapon) ====== Képek kiszolgálása ====== * picture servlet (Gábor küld példát) (például: config/prefix/name) * ha nincs feltöltve thumbnail, akkor egy default kép jön le ====== Adminisztráció ====== * A program adatbázis feltöltése/módosítása/törlés (HTML formokkal) * itt ugyanazt a formot lehet újrahasználni amit a kategóriáknál használtunk ====== Kliens oldali kommunikáció ====== A kliens programmal egy servlet fog kommunikálni. **A kliens program csak egy példányban futhat a kliens gépén!** HTTP feletti SSL csatornán keresztül. Minden termék eredeti indító .exe fájlja le lesz kódolva amit a kliensek a szofvercsomaggal együtt letöltenek. Az indító csomag ezen felül tartalmaz egy indító exe-t, ami úgy lesz le-generálva, hogy minden szofvercsomaghoz lesz benne egy azonsító. A kódolt exe.t nem lehet elindítani, csak az indító-t. (az 'input' jelenti a szerver felé kommunikációs irányt) Kommunikáció a kliens futtató programmal (servlet) == Bejelentkezés == * Input: userName, passwd, szoftver azonosító * Output: * első eset: az azonosítás sikeres: - tranzakció azonosító * második eset: az azonosítás sikertelen: - sikertelenséget jelentő string (a sikertelen azonosítás lehet, kredit érték elfogyása, stb. a kliens csak megjeleníti) == Időközönként kapcsolódás (ping jellegű művelet x = 1 min) == * input: a kliens a tranzakció azonosítóval jelez a szervernek a program használatát jelezve. * output: * első eset: OK - mehet minden tovább * második eset: hibaüzenet - ekkor a kliensnek van egy maghatározott ideje menteni. == Kapcsolat lezárása (program használat befejezése) == * input: a kliens a tranzakció azonosítóval jelez. * output: OK. A szerver oldalon a nyitott tranzakciókat kezelni kell: * Ha 2x idő alatt nem jelentkezett be a kliens akkor automatikus zárás