Projekt końcowy
Implementacja bazy danych
Implementacja bazy danych nastąpiła w oparciu o skrypt SQL przygotowany w ramach części projektowej zadania.
Skrypt SQL
Do stworzenia skryptu wykorzystano przygotowany schemat ERD znajdujący się również w projekcie logicznym modułu aplikacji do zarządzania Ośrodkiem Szkolenia Kierowców.
Schemat
Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych
Dodawanie nowej kategorii
Dodawanie nowego miejsca
Wyszukaj miejsce na mapie
Zdefiniowanie dokumentów do przetwarzania i prezentacji danych
Projektowany moduł aplikacji dotyczy możliwości zaznaczania na mapie danego miasta ciekawych pod względem komunikacyjnym miejsc i ich komentowania oraz oceniania. Z tego względu moduł nie będzie posiadał funkcjonalności prezentacji i tworzenia dokumentów oraz raportów, gdyż zakres modułu nie dotyczy bezpośrednio dokumentacji ośrodka szkolenia kierowców.
Istnieje ewentualnie możliwość generowania informacji o dodanych miejscach (wszystkich lub wybranych wg odpowiedniego kryterium) np.:
Wyszukanie wszystkich miejsc:
select * from interesting_places
Wyszukanie miejsc w intersującym nas obszarze:
select * from interesting_places where latitude between 50.05 and 52.10 and longitute beetwen 19.95 and 23.10
Zdefiniowanie panelu sterowania aplikacji
Zdefiniowanie makropoleceń dla realizacji typowych operacji
Uruchamianie i testowanie aplikacji
Aplikacja została stworzona przy wykorzystaniu narzędzia Eclipse w języku Java EE. Baza danych została zaimplementowana na koncie hostingowym umożliwiającym korzystanie z PostgreSQL. Aplikacja uruchamia się poprzez przeglądarkę i jest dostosowana do dwóch popularnych przeglądarek internetowych: Firefox oraz Opera.
Wprowadzanie danych
Dane można wprowadzać za pomocą stworzonych formularzy. Są one narzędziem wystarczającym, jednak w przypadku konieczności wprowadzenia dużej ilości danych, można stworzyć odpowiednie skrypty zapisujące je bezpośrednio do bazy danych.
Wdrażanie systemu do użytkowania
Wdrożenie będzie obejmować następujące czynności:
skonfigurowanie serwera aplikacji JBossAS w wersji 6
uruchomienie serwera bazy danych PostgreSQL oraz stworzenie odpowiednich jej struktur
deploy aplikacji na serwerze i uruchomienie serwera
Przeprowadzenie szkolenia użytkowników
Klientowi zostanie dostarczona dokumentacja aplikacji wraz z jej instrukcją obsługi. Aplikacja jest na tyle intuicyjna, że inne rodzaje szkoleń nie będą konieczne.
Zapewnienie obsługiwania systemu po wdrożeniu
System będzie wymagał zatrudnienia administratora obsługującego panel administracyjny, kontrolującego poprawność danych w bazie i zgłaszającego ewentualnie znalezione błędy w działaniu systemu.
Rozwijanie i modyfikowanie aplikacji
Aplikacja będzie poprawiana na podstawie zgłaszanych przez klienta błędów. Jest również możliwe podpisanie nowego kontraktu obejmującego dodanie nowych funkcjonalności na które klient zgłasza zapotrzebowanie.
Opracowanie doświadczeń wynikających z realizacji projektu
Ważnym doświadczeniem wyniesionym z realizacji projektu są podstawy konfigurowania serwera aplikacji JBoss. Poprawne skonfigurowanie go, tak żeby działał wydajnie, stabilnie i zawierał wszystkie potrzebne funkcje jest trudną i wymagającą dużej wiedzy czynnością.
Dowiedzieliśmy się też, że na poprawne zaprojektowanie bazy danych dla tak dużej aplikacji potrzeba dużo czasu i bardzo gruntownego jej przemyślenia. Trzeba rozwiązać problemy związane z jednoznacznością i spójnością danych, szybkością bazy oraz jej rozmiarem.
Z wykorzystaniem bazy danych w aplikacji wiążą się mapowania obiektowo-relacyjne. Do ich realizacji użyliśmy biblioteki Hibernate. Sprawiła nam ona nieco problemów, gdyż ciężko było stworzyć kod który nie pobierałby połowy bazy danych niepotrzebnie. Trudnym do zlokalizowania błędem okazała się nazwa kolumny zawierająca słowo kluczowe języka wykorzystywanego przez Hibernate do komunikacji z serwerem bazodanowym.
Inną istotne umiejętności nabyte podczas pracy nad projektem, to poprawne planowanie czasu potrzebnego na wykonanie projektu, zwłaszcza w sytuacji mocnego obłożenia innymi projektami i wykorzystanie biblioteki RichFaces. Zwłaszcza tą ostatnią poznaliśmy bardzo dokładnie, z uwzględnieniem występujących w niej błędów.