Zadanie 1


Termin wykonania: 28 października


A. Zlecenie

HASŁO
System obsługi dla biura podróży


Zastanowić się jak powinien wyglądać taki system.
Co powinien umożliwiać? Dla samego biura i jego klientów.
Przejrzeć dostępne w Internecie klienckie  "front-endy" biur podróży (dużych - np. TUI.de i małych).
Zobaczyć jak to robią. Nie wzorować się. Raczej postawić się na miejscu klienta i zastanowić się czego im brakuje - pod względem zakresu oraz wygody użytkowania.
Sformułować pomysły na funkcjonalność "od strony klienta" (to łatwe i przyjemne).
Następnie postawić się na miejscu właściciela, pracownika małego - średniego biura podróży. Co jest nam wtedy potrzebne?  Zastanowić się jak "front-end" powinien integrować się, być spójny z "back-endem" (systemami obsługującymi funkcjonowanie samej firmy). Co to za systemy? Uwaga: nie bedziemy robić księgowości - potraktujmy ją jako czarną skrzynkę, atrapę.Ale są i inne, o których możemy coś więcej powiedzieć nie wdając się w reguły księgowania.
Oczekuję tutaj wstępnego projektu w formie słownego opisu (dokument tekstowy, np. doc).
To na początek.

B. Zadanie - wprawka

Polskie biuro podróży otrzymuje od kontrahentów pliki (na razie zwykłe, nie XML!) z ofertami wyjazdów-wycieczek. Każda oferta zawiera: datę  wyjazdu, datę powrotu , kraj docelowy, umiejscowienie, cenę (w jednym wierszu zaczynającym się ciągiem znaków ###) oraz następujący słowny opis oferty w dowolnej liczbie wierszy.
Pliki przychodzą od różnych kontrahentów: polskich, angielskich, niemieckich, hiszpańskich i zawierają treść w odpowiedniej lokalizacji (format daty, ceny, waluta, nazwa kraju, język opisu). Umiejscowienie, występujące w ofercie po kraju docelowym, dotyczy tego czy to jest nad morzem, czy w górach, czy nad jeziorami. Jest podane jako jedno słowo w języku kontrahenta.
 Lokalizacja kontrahenta jest zaznaczona w pierwszym wierszu pliku (np. pl_PL)
Oferty są  dodawane do pełnego zestawu ofert, prowadzonego jako swoista baza danych "w pamięci" ( wykorzystać kolekcje, jeszcze nie zajmujemy się JDBC!). W tej bazie ofert opis każdej oferty zawiera (oprócz dat wyjazdu i powrotu, kraju i ceny) symbole określające czy oferta dotyczy gór, morza czy jezior (ew. żadnej z tych rzeczy) oraz przetłumaczony opis oferty.

Napisać aplikację, która:
  1. dodaje zawartość plików ofert do zestawu wszystkich ofert, pomijając opisy (ale opisy będą tłumaczone i następnie opisy po polsku mają być dodawane do bazy),
  2. jest zinternacjonalizowana - prezentuje klientowi pełny zestaw ofert w jego języku (przy czym umiejscowienie (morze, góry) ma być również podawane jako słowo w tym języku,
  3. pokazuje oferty posortowane wg nazw krajów,
  4. pozwala zapamiętywać i odtwarzać zestaw ofert,
  5. dostarcza interfejsu zmian dat i zmian cen ofert,
  6. dostarcza interfejsu tłumaczenia ofert - wygodnego w użyciu dla tłumaczy,
  7. zmiany cen i zmiany dat są zapisywane do logu,
  8. ustalone niedopuszczalne zmiany cen i zmiany dat są odrzucane.

Wybrać dwie - trzy lokalizacje do testowania aplikacji.
Wykorzystać w kolejnych punktach:
  1. JavaBeans, kolekcje,  klasy lokalizacyjnie czułe, regularne wyrażenia
  2. klasy lokalizacyjnie czułe i internacjonalizację za pomocą ResourceBundle,
  3. zlokalizowane Collatory,
  4. XMLEncoder/Decoder,
  5. Swing GUI (z użyciem zaawansowanych komponentów tekstowych),
  6. nasluch zmian właściwości JavaBeans,
  7. wetowanie zmian właściwości JavaBeans.