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.