Vítěz říjnové úlohy Online dílny GUG.CZ: Adam Hořčica

Vítězem říjnové online díly se stává Adam Hořčica. Jeho aplikace Todoizer má velmi jednoduchý elegantní design, snadno se používá, a přidává navíc dvě velmi zajímavé funkcionality - přidávání úkolů přes e-mail a Google Talk. V těchto funkcích byly rozpoznány jasné "killer features" a o vítězi bylo rozhodnuto. Na druhém místě skončila aplikace, kterou napsal Václav Bartáček. Nemá sice žádné funkce navíc, ale je zase zajímavá po technologické stránce použitím knihoven GWT v  prezentační a AUDAO v databázové vrstvě. Všem soutěžícím bych rád pochválil programátorský styl - u všech došlých aplikací byl kód jednoduchý a přehledný. Gratulujeme vítězi, a přejeme všem hodně úspěchů s jejich projekty.


Říjnová úloha Online dílny GUG.CZ: Todo list na Google App Engine

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.
Comments