Vaším úkolem pro tuto online dílnu bude napsat jednoduchou webovou aplikaci na platformě Google App Engine. Aplikace se bude jmenovat Todoizer, a bude umožňovat přihlášenému uživateli zapisování úkolů včetně tagování a vyhledávání.
Základní požadavky Celá aplikace má pouze jednu stránku, na kterou se uživatel přihlásí pomocí svého Google Account. Na této stránce budou 2 ovládací prvky. Jeden pro zakládání nových úkolů, který bude mít formulářová pole pro text úkolu a tagy oddělené čárkou, a dále tlačítko "vytvořit". Další prvek bude určen pro vyhledávání, a bude obsahovat formulářové pole pro zadání tagu a tlačítko "filtrovat". Seznam všech úkolů (případně filtrovaný) se bude vypisovat pod těmito prvky, a každý úkol u sebe bude mít odkaz "smazat".
Lite Verze Je možné, že vám tyto požadavky připadají příliš rozsáhlé. Pokud se necítíte na plnou verzi aplikace, který vyžaduje pokročilejší práci s Datastore, tak můžete zkusit implementovat lite verzi, která nebude mít tagy ani vyhledávání. Tím by se měla aplikace výrazně zjednodušit.
Požadavky na implementaci Úlohu implementujte na platformě Google App Engine v jazyce Java. Html stránky napište v JSP, a pro perzistenci použijte JDO. Data se budou ukládat do Datastore. Všechny tyto technologie jsou součástí AppEngine SDK.
Tipy k implementaci Vytvořte si účet na Google App Engine:
http://appengine.google.com Stáhněte si SDK:
http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Java a prohlédněte si ukázkové programy, které jsou součástí SDK. Všechno, co budete potřebovat k implementaci této aplikace, se minimálně v jednom z těchto příkladů nalézá.
Pro snadný vývoj na platformě GAE použijte plugin do Eclipse:
http://code.google.com/eclipse/ Tento plugin umí vygenerovat základní kostru aplikace, je tam také tlačítko na one-click-deployment na App Engine.
App Engine obsahuje jednoduché API pro práci s Google Accounts, se kterým je řešení přihlašování do aplikace zcela triviální záležitost:
http://code.google.com/appengine/docs/java/gettingstarted/usingusers.html K Datastore se v Google App Engine přistupuje zcela standardně pomocí JDO, dotazuje se pomocí JDOQL. Datastore ale není relační databáze, takže implementace tagů bude trochu odlišná od klasické SQL databáze. Dobrá zpráva je, že tato implementace bude jednodušší - Datastore totiž umí do jednoho políčka v databázi uložit i kolekci (např. List), nad kterou je následně možné se přímo dotazovat.
http://code.google.com/appengine/docs/java/datastore/relationships.html Pro odevzdání musí být dodány zazipované zdrojové kódy a aplikace musí běžet na veřejné adrese.
Hodnotí se kvalita kódu, krása a funkčnost výsledné aplikace.
Termín odevzdání: 21.10.2009, posílejte na dan@gug.cz.
Výsledky vyhlásíme 26.10.2009.