====== **Sformułowanie zadania projektowego** ====== Projekt polega na stworzeniu aplikacji webowej implementującej popularną metodę do zarządzania czasem. Celem GTD jest zwolnienie z obowiązku pamiętania o wszystkich zobowiązaniach i planach, a jednocześnie zachowanie wysokiej produktywności w pracy i życiu prywatnym. Metoda ta składa się z pięciu głownych procesów: 1. Kolekcjonowanie – proces zbierania wszystkich zobowiązań,planów,pomysłow,zadań itd 2. Analiza – jest to algorytm, celem którego jest odpowiednie zajęcie się sprawami z poprzeniego kroku. Sprawa może trafić na różne listy zadań,projektów. Może zostań usunięta lub natychmiast wykonana. 3. Porządkowanie – porządkowanie wszystkich spraw i określanie akcji koniecznych do podjęcia aby zbliżyć się do zakończenia danej sprawy. 4. Przegląd – inspekcja list zadań i kalendarza. Przynajmniej raz w tygodniu pełny przegląd spraw + Analiza. 5. Realizacja – pomoc w wyborze zadania do wykonania na podstawie kontekstu, dostępnego czasu , energii oraz priorytetu. Opis istniejących rozwiązań Aplikacje desktopowe: ThinkingRock – aplikacjia napisana w Javie implementujaca w pełni metodę GTD najnowsza wersja kosztuje 40$ /rok Aplikacje webowe: http://www.rememberthemilk.com ====== **Innowacyjność rozwiązania** ====== Moja aplikacja będzie posiadała najlepsze cechy z powyższych aplikacji. Będzie w pełni implementowała metodę gtd tak jak w aplikacji desktopowej TkinkingRock – oznacza to możliwość przeprowadzania analizy,realizacji oraz przeglądu każdego zadania na podstawie proponowanych przez Davida Allana algorytmów . Będzie dostępna z poziomu przeglądarki. Będzię posiadała interfejs również w języku polskim. W obecnej chwili jedynie rememberthemilk.com posiada częściowo polski interfejs. Apikacja zostanie stworzona w najnowszych technologiach J2EE[ PrimeFaces + JSF + EJB3 + Seam2.2] Dzieki temu będzie przyciągała nowoczesnym wyglądem. Możliwość exportu list zadań do różnych formatów ====== **Wstępna analiza wymagań użytkownika** ====== M) Implementacja wszystkich kroków metody gtd: 1. Możliwośc dodawania nowych spraw do skrzynki przychodzącej 2. Wizard umożliwiający analize i kategoryzację każdego zadania ze skrzynki przychodzącej 3. Możliwość przenoszenia zadań pomiędzy poszczególnymi listami, dodawania notatek, usuwania, określanie kontekstu. 4. Proces przeglądu zadań – wizard przechodzący po każdej sprawie w systemie umożliwiający wykonanie szybkich akcji takich jak usunięcie, dodanie notatki, zmiana kategorii. 5. Możliwośc wyszukania zadania którym warto się zając w danej chwili na podstawie określonych kryteriów. Zarządzanie użytkownikami ( Rejestracja,logowanie ). Eskport List zadań do formatów pdf,xml,xls. Interaktywny Kalendarz widok zdefiniowanych zadań na dany dzień, tydzień,rok możliwość przeciągania, rozciągania zadań między poszczególnymi dniami, godzinami S) Przełączanie między językiem polskim / angielskim. Wystawione Webservisy umożliwiające pobrać listy zadań. Integracja ze skrzynką pocztową – przychodzące maila można dodać do skrzynki przychodzącej spraw. C) Integracja z google maps. Możliwośc określenia lokalizacji dla każdego zadania – pomysł z rememberthemilk.com Wersja mobile – możliwość szybkiego dodania zadania z telefonu komórkowego. W) Aplikacja J2ME integrujaca się główym systemem w celu pobierania list spraw oraz dodawania nowych. Powiadomienia sms ====== **Identyfikacja funkcji** ====== rejestracja/usunięcie konta z serwisu logowanie/wylogowywanie z serwisu dodawanie/modyfikacja/usuwanie zadan dodawania/modyfikacja/usuwanie list zadan / tagow dodawanie/usuwanie zadan do list przemieszczanie zadan pomiedzy listami widok kalendarza export do roznych formatow ====== ****Struktura tabel**** ====== CREATE TABLE activity ( id bigint NOT NULL, description character varying(255), name character varying(255), state character varying(255) ); ALTER TABLE public.activity OWNER TO gtd; -- -- Name: hibernate_sequence; Type: SEQUENCE; Schema: public; Owner: gtd -- CREATE SEQUENCE hibernate_sequence START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.hibernate_sequence OWNER TO gtd; -- -- Name: localizations; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE localizations ( id bigint NOT NULL, city character varying(255), country character varying(255), "position" character varying(255), street character varying(255) ); ALTER TABLE public.localizations OWNER TO gtd; -- -- Name: notes; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE notes ( id bigint NOT NULL, content character varying(255), name character varying(255) ); ALTER TABLE public.notes OWNER TO gtd; -- -- Name: schedules; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE schedules ( id bigint NOT NULL, enddate date, remind character varying(255), startdate date ); ALTER TABLE public.schedules OWNER TO gtd; -- -- Name: tags; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE tags ( id bigint NOT NULL, description character varying(255), name character varying(255), type character varying(255), user_id bigint ); ALTER TABLE public.tags OWNER TO gtd; -- -- Name: tasks; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE tasks ( id bigint NOT NULL, cdate date, description character varying(255), name character varying(255), state character varying(255), type character varying(255), schedule_id bigint, user_id bigint ); ALTER TABLE public.tasks OWNER TO gtd; -- -- Name: tasks_activity; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE tasks_activity ( tasks_id bigint NOT NULL, activities_id bigint NOT NULL ); ALTER TABLE public.tasks_activity OWNER TO gtd; -- -- Name: tasks_localizations; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE tasks_localizations ( tasks_id bigint NOT NULL, localizations_id bigint NOT NULL ); ALTER TABLE public.tasks_localizations OWNER TO gtd; -- -- Name: tasks_notes; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE tasks_notes ( tasks_id bigint NOT NULL, notes_id bigint NOT NULL ); ALTER TABLE public.tasks_notes OWNER TO gtd; -- -- Name: tasks_tags; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE tasks_tags ( task_id bigint NOT NULL, tag_id bigint NOT NULL ); ALTER TABLE public.tasks_tags OWNER TO gtd; -- -- Name: user_id_seq; Type: SEQUENCE; Schema: public; Owner: gtd -- CREATE SEQUENCE user_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.user_id_seq OWNER TO gtd; -- -- Name: user_profiles; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE user_profiles ( id bigint NOT NULL, email character varying(255), name character varying(255), phone character varying(255), surname character varying(255) ); ALTER TABLE public.user_profiles OWNER TO gtd; -- -- Name: user_settings; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE user_settings ( id bigint NOT NULL, name character varying(20), version integer ); ALTER TABLE public.user_settings OWNER TO gtd; -- -- Name: users; Type: TABLE; Schema: public; Owner: gtd; Tablespace: -- CREATE TABLE users ( id bigint NOT NULL, cdate date, login character varying(255), password character varying(255), profile bytea, settings bytea ); ====== **Wykorzystane technologie** ====== PrimeFaces 1.1 JSF 1.2 Seam 2.2.0 EJB3 JPA Narzędzia: Eclipse JBOSS 5.1 + Tomcat PostgreSql 8.4