Należy napisać aplikację, której zadaniem będzie

Transkrypt

Należy napisać aplikację, której zadaniem będzie
Należy napisać aplikację, której zadaniem będzie przyjmowanie na wejściu danych w formacie XML i
zaprezentowanie ich w formie graficznej w postaci aplikacji rezydującej w trayu, z wyświetlanym co
pewien czas popupem.
Cześć obowiązkowa:
1. Wejściowy format danych będzie zawsze w postaci XML i będzie zawierał zawsze taki sam
schemat (patrz załącznik):
a. Należy obsłużyć sytuację, w której aplikacja na wejściu będzie przyjmowała dowolną
liczbę plików XML i na ich podstawie będzie generowała widok z wielu źródeł danych
b. Z każdego pliku XML należy zliczyć liczbę elementów <ROW> i zaprezentować w
popupie rezydującym w zasobniku systemowym. Warstwa widoku powinna wyglądać
w następujący sposób:
XML_Input_1: 10 (0)
XML_Input_2: 20 (0)
XML_Input_3: 30 (0)
<nazwa_xml>: <liczba_elementow_row> (zmiana_od_poprzedniego_odczytu)
c. Format wejściowy docelowo generowany będzie poprzez WS, w związku z tym liczba
elementów typu <ROW> ulegać będzie dynamicznie zmianie. Aplikacja powinna
zapamiętywać liczbę zliczonych elementów i w przypadku jakiejkolwiek zmiany w
jakimkolwiek źródle wyświetlać monit, w którym zaznaczona będzie aktualna liczba
zliczonych elementów wraz z informacją o ile uległa ona zmianie. Warstwa widoku
powinna wyglądać wtedy następująco:
XML_Input_1: 7 (-3)
XML_Input_2: 25 (+5)
XML_Input_3: 30 (0)
<nazwa_xml>: <liczba_elementow_row> (zmiana_od_poprzedniego_odczytu)
d. Aplikacja powinna mieć możliwość definiowania prostych ustawień w menu
kontekstowym (ppm) z poziomu zasobnika systemowego:
i. Czas (s), co jaki odpytywany będzie WS/plik w oczekiwaniu na zwrotkę XML
ii. Możliwość definiowania nowego źródła danych (URL do WS zwracającego
XML lub ścieżka do pliku – można obsłużyć obie sytuacje)
iii. Opcję wyświetlania popupa tylko w momencie, kiedy w zwrotce XML
pojawiła się jakakolwiek zmiana [patrz podpunkt c] (ON/OFF)
iv. Autostart aplikacji (ON/OFF)
v. Ustawienia należy zapisać lokalnie w pliku konfiguracyjnym lub bazie
(preferowany SQLite)
Część opcjonalna:
1. Do gotowej aplikacji z poziomu menu kontekstowego należy dodać niewielki moduł, który
umożliwi nawiązanie połączenia z dowolną maszyną po SSH (adres, login, hasło) i po
autoryzacji wykona na niej dowolne polecenie (command), np.: /etc/init.d/networking restart
2. Ustawienia należy zapisać lokalnie w pliku konfiguracyjnym lub bazie (preferowany SQLite)
Aspekty technologiczne:
1. Język programowania preferowany: Python (3.x)
a. W przypadku braku znajomości Pythona inny język obiektowy
b. Aplikacja powinna być kompatybilna z systemami Win7 i Win8
2. Proszę napisać jakie biblioteki/frameworki (oraz ich wersje) niezbędne są do poprawnego
uruchomienia aplikacji
Oczekiwany wygląd aplikacji:
Formularze wywoływane w ramach punktu 1d części obowiązkowej oraz punktu 1 części opcjonalnej
wg uznania.