Aplikace pro evidenci úkolů pro mobilní telefony s operačním systémem Android.
- Uživatelé se do aplikace přihlašují přes uživatelské jméno a heslo.
- Data budou ukládána do databáze.
- Vytvářet, editovat, mazat a dokončovat úkoly.
- Vytvářet, editovat, mazat kategorie úkolů.
- Je možné založit úkol pro jiného uživatele.
- Notifikace (notifikace na liště doprovázená zvukem a vibrací) uživatele, po přihlášení do aplikace, že mu byl založen nový úkol.
###Úkol
- Každý úkol patří právě do jedné kategorie.
- Obsahuje: název, popis, datum do kdy má být splněn, datum kdy byl splněn, uživatele který ho založil a uživatele který ho splnil.
- Název úkolu je povinný parametr.
- Datum do kdy má být úkol splněn je nepovinný parametr.
###Kategorie
- Je definována pouze názvem.
- Může obsahovat 0-N úkolů.
- Kategorie, které neobsahují úkoly, je možné upravovat/mazat.
- Upravovat úkol lze pouze tehdy, pokud není uzavřen.
- Odstranit úkol lze pouze tehdy, jedná-li se o úkol mnou založený.
- Úkoly delegované na mne nemohu odstranit a ani jim nemohu změnit datum, do kdy mají být dokončeny.
- Seznam všech uživatelů a kategorií je dostupný všem.
- Přihlášený uživatel vidí jen úkoly: své vlastní (založil je pro sebe), delegované na něj (někdo úkol založil pro mě), delegované někomu jinému (založil jsem úkol někomu jinému).
- Na straně databáze jsem použil SQL Server 2005 Express.
- Pro administraci databáze Microsoft SQL Server Management Studio Express.
- Aplikační server je JBoss 7.1.1.
- Vývojové IDE: Eclipse Kepler Service Release 1.
- Objektově relační mapování: Hibernate.
- Rozhraní pro komunikaci s klientem: RestEasy.
- Autentifikace/Autorizace: JBoss JAAS, metoda BASIC.
- Parsování JSON objektů na klientu: Jackson.
- Klient: Android.
- Stáhnout a nainstalovat SQL Server 2005 Express.
- Pro správu databáze používám Microsoft SQL Server Management Studio Express dostupný zde.
- Na disku C:\ si založte adresář TaskManager a v něm adresář db. Do tohoto adresáře bude založena databáze (soubor TaskManager.mdf).
- Skript pro založení databáze je zde.
- Skript založí databázi s názvem TaskManager do připraveného adresáře z bodu 3.
- Založí aplikačního uživatele taskManager_app (heslo: taskManager_app) pomocí kterého se bude JBoss připojovat k databázi.
- Do databáze založí tabulky LOGIN (tabulka uživatelů), TSK (tabulka úkolů) a TSK_CATEG (tabulka kategorií).
- Založí dvě kategorie: Pracovni a Domaci.
- Založí tři uživatele:
- Petr (uživatelské jméno: petr, heslo: taskmanager).
- Martin (uživatelské jméno: martin, heslo: taskmanager).
- Tomas (uživatelské jméno: tomas, heslo: taskmanager).
- Po instalaci překontrolovat:
- Zda je SQL server spuštěný.
- Zda je zapnutá služba SQL Server Browser.
- Zda je povoleno TCP/IP spojení na portu 1433.
- Zda je uživatel taskManager_app platný a povolený.
- Databáze je připravena.
- Stáhnout a rozbalit JBoss 7.1.1 dostupný zde.
- Do adresáře *%JBOSS_HOME%\jboss-as-7.1.1.Final* nakopírovat veškerý obsah z task-manager-jboss. Adresář obsahuje potřebnou knihovnu pro připojení do databáze a konfigurační XML (standalone-taskManager.xml).
- Přidat server do Eclipse. Návod je zde. Důležité je, aby server měl nastavený Configuration file na standalone-taskManager.xml získaný z bodu 2.
- Přidat výsledný ear do JBossu.
- Spustit JBoss. Pokud je vše v pořádku, výsledkem by měla být zpráva v logu Deployed "task-manager-ear.ear".
Nyní již lze testovat RESTové služby pomocí nichž klient komunikuje se serverem. K testování používám RESTClient doplněk ve Firefoxu. URL na služby je http://localhost:8080/task-manager-war/rest/.
Implementace RESTových služeb je zde.
Do Eclipse jsem instaloval pomocí tohoto návodu.
- task-manager-android: Obsahuje implementaci klientské části pro Android.
- task-manager-ejb: Osahuje business logiku na straně serveru. Obsahuje DAO, Entity a servisní EJB pro tyto entity.
- task-manager-war: Zajišťuje komunikaci klienta a serveru pomocí RESTových služeb. Komunikace je implementována pomocí JSON formátu.
- task-manager-parent-pom: Obsahuje pouze definice závislostí pro Maven.
- task-manager-ear: Zabaluje předešlé projekty (krom androidu) do jednoho balíku, který se nasazuje do JBossu.
- task-manager-db: Obsahuje pouze script pro založení databáze.
- task-manager-jboss: Obsahuje pouze knihovnu pro spojeni do databáze a descriptor pro JBoss.
- task-manager-printScreen: Obsahuje pouze náhledy aplikace.
- Osobní: úkoly jsem založil sám pro sebe.
- Pro mě: úkoly, které někdo delegoval na mě.
- Pro ostatní: úkoly, které jsem delegoval na někoho jiného.
- Název úkolu.
- Příznak, že je úkol uzavřen.
- Kategorie úkolu.
- Datum, do kdy má být úkol splněn.
- Založení nového úkolu do právě otevřené záložky.
- Zobrazení seznamu kategorií úkolů.
- Příznak, že jsem úkol ještě nečetl (nezobrazil jsem si detail).
- Notifikace, že byl pro mě založen nový úkol.
- Notifikace o nově založeném úkolu, který mám splnit.
- Název nově založeného úkolu. Pokud je úkolů více, pak jsou názvy oddělené čárkou.
- Editace úkolu.
- Ukončení úkolu.
- Odstranění úkolu (POZOR! Nezobrazuje potvrzovací dialog).
- Uložení změn.
- Storno.
- Editace kategorie.
- Odstranění kategorie (POZOR! Nezobrazuje potvrzovací dialog).
- Založení nového úkolu.
- Pokud si chcete hrát s delegováním úkolů na jednom zařízení, tak pro přihlášení se do aplikace jako jiný uživatel, je nejprve potřeba změnit uživatelské jméno/heslo v nastavení aplikace. Pak je potřeba aplikaci zavřít a opět spustit.
- Aplikace nijak neinformuje uživatele, že byl překročen datum, do kdy měl být úkol splněn.
- Neobsahuje optimalizace pro "Landscape" (zobrazení na šířku).
- Delegovaný úkol může zakladatel lehce přehodit na někoho jiného. Původní uživatel, který měl úkol splnit, o tom není nijak informován.
V případě nejasností, otázek či jakýchkoli připomínek mě můžete kontaktovat na lukber@seznam.cz.