Biblioteka Internetowa

1. Projekt konceptualny

1.1 Sformułowanie zadania projektowego

System biblioteki publicznej ma na celu ułatwienie dostępu do informacji na temat posiadanych przez bibliotekę zasobów jakimi są książki. Za pośrednictwem strony internetowej czytelnik nie będzie mógł wypożyczyć książki, cały czas będzie musiał zgłosić się po nią osobiście. Zarejestrowany czytelnik dzięki takiemu systemowi dowie się czy egzemplarz danej książki jest aktualnie na stanie czy został wypożyczony i kiedy najwcześniej będzie z powrotem w bibliotece. Czytelnik otrzymuje również możliwość terminowej rezerwacji książki, tak aby w swoim wolnym czasie bez obaw udać się tylko po odbiór i nie zostać odesłanym z kwitkiem. Internetowy dostęp do biblioteki umożliwia dodatkowo użytkownikom wgląd w dokonane rezerwacje i wypożyczenia, oraz w archiwum wypożyczeń. Ułatwia to kontrolę nad terminami zwrotów wypożyczonych pozycji. Aby uzyskać dostęp do wszystkich udogodnień czytelnik musi przejść proces rejestracji. Tym sposobem biblioteka gromadzi potrzebne dane osobowe oraz kontaktowe w celu kontaktowania się z czytelnikami nie dotrzymującymi terminów zwrotu książek. Udzielenie ostrzeżenie użytkownikowi zwracającemu książkę po terminie, blokady po przekroczeniu maksymalnej liczby rezerwacji/wypożyczeń, oraz system informujący czytelników o mijających terminach poprzez kontakt na podany podczas rejestracji adres email to operacje wykonywane automatycznie w ramach pracy systemu. System taki nie zastąpi jednak człowieka w pracy. Cały czas w bibliotece potrzebna będzie osoba która wyda czytelnikowi książkę. Same książki również muszą być do bazy wprowadzane gdyż zbiory biblioteki nieustannie ulegają zmianom. Pracownik biblioteki kontroluje poprawność danych za pomocą możliwości ich edycji, zarówno w przypadku książek jak i czytelników. Fizycznie oceniając stan książki ma możliwość wycofania jej z ogólnodostępnych danych tak aby nie były zwracane jako wynik wyszukiwania żądanej pozycji.

1.2 Analiza stanu wyjściowego

Oprogramowanie biblioteki jest popularnym tematem. Na rynku istnieje wiele rozwiązań, umożliwiających przeglądanie w trybie online zbiorów bibliotek, natomiast zbiory elektroniczne są jeszcze bardzo ograniczone. Niewiele bibliotek posiadających znaczne zbiory, posiada możliwość zarezerwowania książki poprzez stronę internetową. Nasza biblioteka internetowa ma za zadanie ułatwić czytelnikowi rezerwację książki oraz kontrolę swoich wypożyczeń z dowolnego miejsca z dostępem do internetu.

1.3 Analiza wymagań użytkownika

1. Gość

  • przeszukiwanie zbiorów bibliotecznych
  • możliwość rejestracji

2. Konto zarejestrowanego użytkownika (czytelnika)

  • rejestracja użytkownika poprzez stronę internetową (wypełnienie danych teleadresowych)
  • możliwość zalogowania się do systemu
  • możliwośc rezerwacji książek
  • przeglądanie własnego konta w bibliotece, w tym dokonanych wypożyczeń oraz rezerwacji
  • możliwość aktualizacji danych
  • powiadomienie o mijającym terminie oddania książki
  • przeszukiwanie zbiorów bibliotecznych

3. Konto pracownika biblioteki

  • administracja zasobami (dodawanie, usuwanie, edycja pozycji)
  • administracja kontami użytkowników (blokada kont, rezerwacje , wypożyczenia)
  • nakładanie kar pieniężnych

4. Konto administratora

  • administracja zasobami
  • administracja kontami użytkowników
  • administracja kontami pracowników

1.4 Określenie scenariuszy użycia

1. Rejestracja użytkownika w systemie

a. Użytkownik na głównej stronie wybiera link „zarejestruj się”

b. Następuje przekierowanie do strony z formularzem rejestracyjnym

c. Użytkownik wypełnia formularz danymi, adres e-mail, hasło, imię, nazwisko, adres zamieszkania, telefon oraz pesel

d. Następuje walidacja formularza

i. W przypadku kiedy któreś z pól jest puste, bądź telefon lub pesel są za długie lub krótkie następuje wyświetlenie informacji o błędzie

ii. W przypadku kiedy formularz został poprawnie wypełniony następuje przejście dalej

e. Konto użytkownika zostaje założone

2. Logowanie użytkownika do systemu

a. Niezalogowany użytkownik na dowolnej stronie do której ma dostęp posiada wyświetlony formularz logowania

b. Użytkownik wypełnia formularz adresem e-mail oraz hasłem

c. Następuje weryfikacja danych

i. W przypadku kiedy podano błędny e-mail lub hasło następuje wyświetlenie informacji o błędzie autentykacji i przekierowanie na stronę z formularzem do logowania

ii. W przypadku kiedy dane są poprawne następuje zalogowanie użytkownika do systemu i przekierowanie na stronę główną

3. Przeglądanie konta użytkownika

a. Zalogowany użytkownik znajduje się na stronie głównej i wybiera link „zobacz swój profil”

b. Użytkownik zostaje przekierowany na stronę wyświetlającą jego aktualne dane

c. Wyświetlone zostają również rezerwację użytkownika oraz aktualne wypożyczenia

4. Edycja konta użytkownika

a. Zalogowany użytkownik znajduje się na stronie głównej i wybiera link „zobacz swój profil”

b. Następuje przekierowanie na stronę wyświetlająca dane użytkownika

c. Użytkownik klika na przycisk „edytuj”

d. Następuje przekierowanie do strony z formularzem

e. Użytkownik zmienia dane, adres, numer telefonu, imię lub nazwisko

f. Następuje walidacja formularza

i. W przypadku gdy któreś z pól jest puste zostaje wyświetlony komunikat o błędnym wypełnieniu formularza

ii. W przypadku gdy dane są poprawne następuje aktualizacja danych i przekierowanie do strony wyświetlającej profil użytkownika

5. Powiadomienie o mijającej dacie zwrotu książki

a. System codziennie o godzinie 3.00 sprawdza czy istnieją wypożyczenia, których data zwrotu kończy się za 2 dni.

i. W przypadku braku takich wypożyczeń nic się nie dzieje

ii. W przypadku gdy istnieją takie wypożyczenia, zostaje wysłana informacja do danych użytkownikó poprzez wiadomość e-mail

6. Dodanie nowej pozycji do zbiorów biblioteki

a. Zalogowany pracownik biblioteki znajduje się na stronie głównej i wybiera link „administracja książkami”

b. Następuje przekierowanie do strony z panelem administracyjnym, gdzie znajduje się m. in. formularz do dodawania nowych książek

c. Pracownik biblioteki wypełnia dane, tytuł książki, autorów, ISBN, ilość kopii oraz rok publikacji

d. Następuje walidacja formularza

i. W przypadku gdy któreś z pól jest puste bądź podano ujemną ilość kopii lub ISBN nie składający się z cyfr zostaje wyświetlony komunikat o błędzie

ii. W przypadku gdy dane są poprawne następuje przejście dalej

e. Książka zostaje dodana do zbiorów biblioteki

f. Pracownik biblioteki zostaje przekierowany z powrotem do panelu administracji książkami

7. Edycja/Usunięcie pozycji ze zbiorów biblioteki

a. Zalogowany pracownik biblioteki znajduje się na stronie administracji książkami

b. Wpisuje do formularza (wyszukującego książki) dane poszukiwanej książki

c. Następuje przekierowanie do strony z wynikami wyszukiwania

i. Pracownik biblioteki klika na przycisk „usuń” obok pozycji

1. Książka zostaje usunięta z bazy danych

2. Następuje przekierowanie do strony administracji książkami

ii. Pracownik biblioteki klika na przycisk „edytuj” obok pozycji

1. Następuje przekierowanie do strony z formularzem

2. Pracownik biblioteki wprowadza dane aktualizacji książki, tytuł, ISBN, rok publikacji oraz ilość kopii

3. Następuje walidacja formularza

a. W przypadku gdy któreś z pól jest puste lub ISBN nie składa się z samych cyfr lub ilość kopii jest mniejsza niż ilość wypożyczeń danej książki następuje wyświetlenie informacji o błednych danych

b. W przypadku gdy dane są poprawne następuje aktualizacja danych i przekierowanie do strony administracji książkami

8. Blokowanie konta użytkownika

a. Zalogowany pracownik biblioteki znajduje się na stronie głównej i wybiera link „administracja czytelnikami”

b. Zostaje przekierowany do strony z formularzem wyszukiwania użytkowników

c. Wypełnia formularz

d. Następuje przekierowanie do strony z wynikami wyszukiwania

e. Pracownik biblioteki klika na przycisk „zablokuj konto” obok konta użytkownika

f. Konto użytkownika zostaje zablokowane

g. Do użytkownika zostaje wysłana wiadomość e-mail informująca o zablokowaniu konta

9. Przeszukiwanie zbiorów bibliotecznych

a. Niezalogowany użytkownik znajduje się na głównej stronie i wybiera link „wyszukaj książkę”

b. Następuje przekierowanie do formularza wyszukiwania

c. Użytkownik wpisuje dane wg. których ma nastąpić wyszukiwanie, może to być tytuł lub jego fragment, autor, rok wydania lub ISBN

d. Następuje walidacja formularza

i. W przypadku gdy żadne pole nie jest wypełnione następuję wyświetlenie informacji o konieczności wypełnienia przynajmniej jednego pola

ii. W przypadku gdy wypełniono chociaż jedno pole następuję przekierowanie do strony z wynikami wyszukiwania

10. Zarezerwowanie książki

a. Zalogowany użytkownik znajduje się na stronie z wynikami wyszukiwania książki i klika przycisk „zarezerwuj”

b. Następuje przekierowanie do strony wyświetlającej dane książki oraz formularz do wpisania daty zgłoszenia się po odbiór książki

i. W przypadku gdy aktualnie nie ma żadnego wolnego egzemplarza, zostaje wyświetlona informacja kiedy powinny pojawić się oddane egzemplarze

1. Użytkownik przekierowany jest do strony wyszukiwania książek

ii. W przypadku gdy istnieją wolne egzemplarze użytkownik wypełnia formularz

iii. Następuje walidacja formularza

1. W przypadku gdy data odbioru jest pusta lub użytkownik wyznaczył ją dalej niż za 7 dni zostaje wyświetlona informacja o błędzie podczas rezerwacji lub niemożliwości rezerwacji książki na dłużej niż tydzień

2. W przypadku gdy dane się zgadzają następuje przejście dalej

iv. Rezerwacja zostaje zapisana w systemie

v. Użytkownik przekierowywany jest do strony wyszukiwania książek

11. Unieważnienie niesfinalizowanej rezerwacji

a. System codziennie o godzinie 3.00 sprawdza czy istnieją rezerwacje na dzień wcześniej

b. W przypadku gdy istnieją takie rezerwacje zostają one anulowane

c. Do użytkownika któremu anulowano rezerwację zostaje wysłana wiadomość e-mail

1.5 Identyfikacja funkcji

Podstawowe funkcje realizowane w bazie danych, to przechowywanie informacji o:

  • kontach użytkowników zarejestrowanych w bibliotece
  • kontach pracowników biblioteki
  • książkach znajdujących się w zbiorach biblioteki, powiązanych z autorami
  • autorach, powiązanych z książkami
  • egzemplarzach książek, powiązanych z konkretnymi pozycjami
  • wypożyczeniach książki, powiązanych z konkretnym egzemplarzem oraz z użytkownikiem, który wypożyczył daną książkę
  • rezerwacjach książki, powiązanych z egzemplarzem oraz użytkownikiem

1.6 Analiza hierarchii funkcji projektowanej aplikacji

Rys 1. Diagram FHD

1.7 Budowa i analiza diagramu przepływu danych

Rys 2. Diagram kontekstowy

Rys 3. Diagram główny

Rys 4. Diagram DFD dla użytkownika niezarejestrowanego

Rys 5. Diagram DFD dla użytkownika zarejestrowanego

Rys 6. Diagram DFD dla pracownika

1.8 Wybór encji(obiektów) i ich atrybutów

1. Czytelnik

  • e-mail
  • hasło
  • imię
  • nazwisko
  • telefon
  • pesel
  • adres
  • zarezerwowane książki
  • wypożyczone książki

2. Pracownik biblioteki

  • e-mail
  • hasło
  • imię
  • nazwisko

3. Książka

  • tytuł
  • autorzy
  • ISBN
  • rok wydania
  • egzemplarze

4. Autor

  • nazwa
  • napisane książki

5. Egzemplarz książki

  • status wypożyczenia
  • książka

6. Rezerwacja książki

  • data rezerwacji
  • data odbioru książki
  • czytelnik

książka 7. Wypożyczenie książki

  • czytelnik
  • data wypożyczenia
  • data planowanego zwrotu

1.9 Projektowanie powiązań(relacji) pomiędzy encjami

Rys 7. Diagram ERD

1.10 Projekt diagramów STD (State transition Diagram – diagram przejść między stanami)

Rys 8. Diagram STD dla użytkownika niezalogowanego

Rys 9. Diagram dla użytkownika zalogowanego

Rys 10. Diagram STD dla pracownika

2. PROJEKT LOGICZNY

2.1. Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów, etc. W oparciu o zdefiniowany diagram ERD;

2.1.1 Utworzenie bazy danych.

create database if not exists Library default character set = utf8;

2.1.2 Utworzenie tabel.

use Library;
create table book
 (
book_id int8 not null,
isbn varchar(255),
book_title varchar(255),
year_of_publication int8,
primary key (book_id)
 );
 create table authors
 (
 author_id int8 not null,
 author_name varchar(255),
 author_last_name varchar(255),
 primary key (author_id)
 );
 create table reader
 (
 reader_id int8 not null,
 address_apartment int4,
 address_building int4, 
 address_city varchar(255),
 address_street varchar(255), 
 email varchar(255) unique,
 first_name varchar(255), 
 last_name varchar(255), 
 password varchar(255),
 pesel varchar(255), 
 phone_number varchar(255),
 role varchar(255), 
 primary key (reader_id)
 );
 create table library_worker
(
worker_id int8 not null,
email varchar(255) unique, 
first_name varchar(255),
last_name varchar(255),
password varchar(255),
role varchar(255),
primary key (worker_id)
);
create table book_authors
(
book_id int8 not null, 
author_id int8 not null
);
create table reservedBook
(
reservation_id int8 not null,
book_copy_id int8, 
planned_reception_date timestamp, 
reader_id int8,
reservation_date timestamp, 
primary key(reservation_id)
);
create table BorrowedBook
(
borrow_id int8 not null, 
book_copy_id int8, 
borrow_date timestamp, 
reader_id int8, 
return_date timestamp, 
primary key (borrow_id)
);
create table BookCopy 
(
book_copy_id int8 not null, 
book_id int8, 
is_avaiable bool, 
primary key (book_copy_id)
);

2.1.3 Utworzenie kluczy obcych

 
  alter table   BookAuthors
 
      add constraint FK_Book_Author 
 
      foreign key (Book_id) 
 
      references  Book
 
  alter table BookAuthors 
 
      add constraint FK_Author_Book 
 
      foreign key (Autho_id) 
 
      references  Author
 
  alter table ReservedBook
 
      add constraint FK_ReservedBook_BookCopy 
 
      foreign key (Book_copy_id) 
 
      references  BookCopy
 
  alter table ReservedBook
 
      add constraint FK_ReservedBook _Reader
 
      foreign key (Reader_id) 
 
      references  Reader
 
  alter table BorrowedBooks 
 
      add constraint FK_BorrowedBook_BookCopy 
 
      foreign key (Book_copy_id) 
 
      references  BookCopy
 
  alter table BorrowedBooks
 
      add constraint FK_BorrowedBook _Reader
 
      foreign key (Reader_id) 
 
      references  Reader
 
  alter table BookCopy 
 
      add constraint FK_BookCopy_Book 
 
      foreign key (Book_id) 
 
      references  Book

2.2 Słownik danych

Book – tabela przechowująca dane o książkach

  • Book_id – PK , INTEGER - id ksiazki
  • Book_title - VARCHAR(255) , NOT NULL – tytuł książki
  • Isbn – VARCHAR(255) , NOT NULL – numer ISBN
  • Year_of_publication – INTEGER, NOT NULL – data publikacji

Author – tabela przechowywujące dane o autorach

  • Author_id – PK ,INTEGER – id autora
  • Author_name – VARCHAR(255) , NOT NULL – Imie
  • Author_last_name – VARCHAR(255) , NOT NULL - Nazwisko

Reader – tabela przechowujaca dane o użytkownikach

  • Reader_id – PK , INTEGER – id czytelnika
  • Email – VARCHAR(255) , NOT NULL , UNIQUE–unikalny adres email
  • Password – VARCHAR(255) , NOT NULL - hasło
  • First_name – VARCHAR(255) , NOT NULL - imie
  • Last_name – VARCHAR(255) , NOT NULL - nazwisko
  • Pesel - – VARCHAR(255) , NOT NULL –numer pesel
  • Phone_number – VARCHAR(255) – numer telefonu
  • Address_apartment – INTEGER – numer mieszkania
  • Addres_building – INTEGER , NOT NULL – numer budynku
  • Address_city - – VARCHAR(255) , NOT NULL - miasto
  • Adress_street – VARCHAR(255)– nazwa ulicy

LibraryWorker – tabela przechowująca dane o pracownikach

  • Worker_id – PK INTEGER – id pracownika
  • First_name – VARCHAR(255) , NOT NULL - imie
  • Last_name – VARCHAR(255) , NOT NULL - nazwisko
  • Email – VARCHAR(255) , NOT NULL , UNIQUE - unikalny adres email
  • Password – VARCHAR(255) , NOT NULL - hasło

BookAuthors - tabela dla relacji wiele do wielu

  • Author_id – FK , INTEGER - id autora
  • Book_id – FK, INTEGER – klucz obcy do id ksiazki

ReservedBook – tabela przechowująca dane o rezerwacjach

  • Reserved_book_id – PK , INTEGER - id rezerwacj
  • Book_copy_id – FK , INTEGER - klucz obcy do id ksiazki
  • Reader_id – FK , INTEGER – klucz obcy do id czytelnika
  • Reservation_date – DATE , NOT NULL - data rezerwacji
  • Planned_reception_date – DATE , NOT NULL – data konca rezerwacji

BorrowedBook – tabela przechowująca dane o wypożyczeniach

  • Borrowed_book_id – PK , INTEGER – id wypozyczenia
  • Book_copy_id – FK ,INTEGER – klucz obcy do id ksiazki
  • Borrow_date – DATE , NOT NULL – data wypożyczenia
  • Return_date – DATE , NOT NULL – data zwrotu
  • Reader_id – FK , INTEGER – klucz obcy do Id czytelnika

BookCopy – tabela przechowująca dane o egzemplarzach

  • Book_copy_id – PK , INTEGER – id egzemplarza
  • Book_id – FK , INTEGER – klucz obcy do opisu ksiazki
  • Borrow status – VARCHAR(255),NOT NULL – status egzemplarza

2.3. Analiza zależności funkcyjnych i normalizacja tabel

1NF

Relacja jest w pierwszej postaci normalnej (1NF) wtedy i tylko wtedy gdy wszystkie atrybuty przyjmują wartości elementarne (atomiczne). Atomowość danych jest ściśle powiązana z ich typem (nazwanym i skończonym zbiorem wartości). Pierwsza postać normalna jest konieczna, aby tabelę można było nazwać relacją.

Nasza baza spełnia te warunki. Wszystkie wartości w tabelach są atomowe.

2NF

Relacja R jest w drugiej postaci normalnej (2NF) wtedy i tylko wtedy, gdy nie zawiera zależności częściowych, tzn. żadna zależność częściowa nie wynika logicznie ze zbioru F.

Wszystkie tabele w naszej bazie posiadają klucz prosty, więc ich atrybuty zależą w całości od klucza głównego. Baza jest w 2NF.

3NF

Relacja jest w trzeciej postaci normalnej tylko wtedy, gdy jest w drugiej postaci normalnej i każdy atrybut wtórny jest tylko bezpośrednio zależny od klucza głównego. Innymi słowy wymaga usunięcia wszelkich pól niezwiązanych z kluczem głównym.

Z powodu, że każda tabela w naszej bazie posiada klucz prosty, jej atrybuty są w całości zależne od klucza głównego. Więc warunek postaci 3NF jest również spełniony.

2.4. Projektowanie operacji na danych

Operacje na bazie danych wykonujemy za pomocą języka HQL. Zapytania HQL reprezentowane są przez obiekty klasy org.hibernate.Query , które należy zawsze tworzyć z użyciem obiektu reprezentującego sesję. Obiekt org.hibernate.Query umożliwia przekazanie parametrów do utworzonego zapytania.

Pobierz dla podanego id użytkownika wszystkie zarezerwowane książki :

      private final static String HQL_GET_RESERVED_BOOKS_FOR_READER = "from ReservedBook where readerId = : readerId";
      Query query = session.createQuery(HQL_GET_RESERVED_BOOKS_FOR_READER);
      
      query.setLong("readerId", readerId);
      
      return query.list();

Znajdź pracownika po wskazanym adresie email :

      private static final String HQL_FIND_LIBRARY_WORKER_BY_EMAIL = "from LibraryWorker where email = :email";
      Query query = session.createQuery(HQL_FIND_LIBRARY_WORKER_BY_EMAIL);
  
      query.setString("email", email);
  
      return (LibraryWorker) query.uniqueResult();

Pobierz egzemplarz książki po wskazanym id:

      private String HQL_GET_BOOK_COPY_FOR_BOOK_ID = "from BookCopy where bookId = :bookId";
      Query query = session.createQuery(HQL_GET_BOOK_COPY_FOR_BOOK_ID);
  
      query.setLong("bookId", bookId);
  
      return (BookCopy) query.uniqueResult();

3. Raport końcowy

3.1 Implementacja bazy danych

Wykorzystano serwer PostgreSQL 8.4. Utworzenie bazy danych zostało zautomatyzowane poprzez wykorzystanie narzędzia maven.

3.2 Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych

Rys 11 Strona główna

Rys 12 Formularz rejestracyjny

Rys 13 Formularz logowania

Rys 14 Podgląd profilu użytkownika

Rys 15 Formularz do edycji profilu użytkownika

Rys 16 Podgląd rezerwacji użytkownika

Rys 17 Podgląd wypożyczeń użytkownika

Rys 18 Wyszukiwanie książek

Rys 19 Podgląd wybranej pozycji

Rys 20 Formularz do dodawania nowej pozycji

Rys 21 Widok książki z poziomu pracownika

Rys 22 Ekran wypożyczenia bądz anulowania rezerwacji

Rys 23 Dokonywanie zwrotu z poziomu pracownika

3.3 Zdefiniowanie panelu sterowania aplikacji

Nawigacja odbywa się jak w klasycznych stronach internetowych za pomocą linków oraz przycisków. Na stronie została zastosowana technologia AJAX. Strona w zależnośći od tego, kto jest zalogowany umożliwia różne akcje. W przypadku niezalogowanego użytkownika umożliwa logowanie, rejestrację oraz przegląd książek. Zalogowany użytkownik może się wylogować, zobaczyć swoje dane w systemie, część z nich może sam edytować. Ponadto ma możliwość obejrzenia swoich rezerwacji oraz wypożyczeń zapisanych w systemie. Podczas wyszukiwania książek oraz przeglądania konkretnych pozycji użytkownik może zobaczyć ilość dostępnych egzemplarzy i ewentualnie zarezerwować jeden dla siebie. W przypadku zalogowanego pracownika biblioteki ma on możliwość dodawania, edytowania oraz usuwania książek, dokonywania wypożyczeń, przyjmowania zwrotów oraz anulowania rezerwacji.

3.4 Zdefiniowanie makropoleceń dla realizacji typowych operacji W projekcie wykorzystano framework do realizacji mapowania obiektowo-relacyjnego Hibernate z wykorzystaniem adnotacji. Większość operacji CRUD, które zostały użyte w aplikacji, zostały dostarczone poprzez Hibernate.

3.5 Uruchamianie i testowanie aplikacji

Aplikacja jest uruchamiana przy wykorzystaniu narzędzia Maven. Odpowiednio skonfigurowane pluginy uruchamiają serwer www z kontenerem servletów Jetty i uruchamiają plik .war. Strona testowana była ręcznie na środowisku lokalnym.

3.6 Wprowadzanie danych

Wprowadzenie danych testowych zostało zautomatyzowane poprzez plugin dbunit do narzędzia Maven. Przygotowano odpowiedni plik xml z którego zostały wczytane przykładowe dane do bazy danych. Część danych została wprowadzona poprzez formularze aplikacji.

3.7 Wdrażanie systemu do użytkowania

Do wdrożenia systemu potrzebny jest serwer www oraz serwer bazy danych postgres. Należy dostosować plik konfiguracyjny maven'a do adresu serwerów i za pomocą odpowiedniej komendy uruchomić kompilację oraz uruchomienie aplikacji.

3.8 Przeprowadzenie szkolenia użytkowników

Strona nie powinna przysparzać rzadnych problemów zwykłym użytkownikom internetu, dlatego nie przewidziano szkoleń.

3.9 Zapewnienie dokumentacji technicznej i użytkowej

Nie zapewniono dokumentacji ze względu na prostotę strony internetowej

3.10 Zapewnienie obsługiwania systemu po wdrożeniu

Po wdrożeniu potrzebny jest administrator systemu, który będzie dbał o robienie systematycznych backupów bazy danych oraz rozwiązywał nieoczekiwane problemy z serwerem.

3.11 Rozwijanie i modyfikowanie aplikacji

Przede wszystkim aplikacja potrzebuje szaty graficznej, najlepiej przygotowanej przez doświadczonego grafika stron internetowych. Do aplikacji można dodać wiele nowych funkcjonalności, takich jak dostęp do e-booków, bądź bardziej zaawansowane wyszukiwanie książek. Ewentualnie umieszczenie fragmentów książek na stronie i możliwość wyszukiwania pozycji po treści książki.

3.12 Opracowanie doświadczeń wynikających z realizacji projektu

Niestety nie prowadziliśmy notatek odnośnie czasu spędzonego nad poszczególnymi zadaniami. Na pewno projekt pozowlił nam na douczenie się w zakresie technologii związanych z językiem Java. Jeden z nas poznał część bibliotek od nowa, natomiast drugi podszkolił się w bardziej zaawansowanych technologicznie fragmentach kodu. Na pewno tym co nie wyszło nam tak jak planowaliśmy jest organizacja pracy, w tej kwestii potrzebujemy więcej doświadczenia. Aplikacja również nie jest idealnie dopracowana, co widać chociażby po szacie graficznej.

3.13 Wykaz literatury, załączniki

Wykorzystane technologie:

  • Spring
  • Spring MVC
  • Spring-Security
  • Hibernate
  • Maven
  • JSP
  • PostgreSQL
  • Jetty

Wykorzystano dokumentację zamieszczone na stronach:

projekt_library.pdf

2012/04/26 11:48
pl/dydaktyka/ztb/2012/projekty/biblioteka_internetowa.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0