Brief

Projekt ten wykonałem dla Moonbite.pl. Jest to to aplikacja mająca na celu ułatwienie zapisywania danych podczas spotkań dotyczących projektów, które będą wykonywane w obrębie firmy. Program umozliwia wypełnienie ankiety dotyczącej planowanego projektu. Formularz/Wizard podzielony jest na klika etapów / zakładek.

Ze względu na dużą ilość zbieranych informacji - istotne było podzielenie formularza na przejrzyście oznaczone sekcje. Aby ułatwić nawigację, stworzyłem komponent Flex 4 umożliwiający zwijanie i rozwijanie paneli zawierających widgety do wprowadzania danych. Możliwe jest również wprowadzanie dowolnej ilości niektórych typów danych (dynamiczne dodawanie sekcji) . Przykładem tu może być dodawanie kolejnych adresów na liście kontaktów czy tytułów i opisów stron, które są planowane.

Dane zapisywane są w lokalnej bazie danych SQLite, dzięki czemu program do działania nie wymaga połączenia z internetem (było to jedno z wymagań zlecenidawców). W przypadku gdy połączenie internetowe jest dostępne zalogowany użytkownik ma możliwość zsynchronizowania danych z centralna bazą danych (MySQL). Dane wysyłane są w formacie JSON poprzez REST'owe API, które dostarcza aplikacja serwerowa, którą zrobilem z wykorzystaniem frameworka Symfony2.

Najtrudniejszym do wykonania elementem było opracowanie sposobu sychronizacji danych - z możliwością rozwiązywania konfilktów między danymi zawartymi w lokalnej bazie danych klienta oraz centralna bazą danych umieszczoną na serwerze. Konfilkty rozwiązywane są po stronie klienta - w przypadku wykrycia konfilktu użytkownik przy pomocy specjalnego ekranu ma możliwość zaakceptowania wersji z serwera lub wersji lokalnej.

Aplikacja umożliwia również eksport zapisanych danych do pliku PDF, dzięki czemu każda osoba uczestnicząca w danym spotkaniu ma możliwość natychmiastowo uzyskać raport podsumowujący spotkanie. Generowanie plików PDF zrealizowałem za pomocą biblioteki purePDF.