Java EE: JSF, EJB, JPA, CDI - Projekt
Opis projektu
Celem projektu jest implementacja fragmentu systemu dla sklepu sprzedającego filmy przez Internet.
W ramach projektu powinna zostać zaimplementowana część systemu obejmująca (szczegółowe zadania
wypunktowane poniżej):
- Przeglądanie katalogu filmów z możliwością zawężenia listy do konkretnej kategorii
- Wyświetlanie szczegółowego opisu filmu
- Obsługę koszyka zakupów klienta
- Usługę konwertera walut (PLN -> EUR, EUR -> PLN)
NIE podlegają implementacji fragmenty systemu odpowiedzialne za ewidencję klientów, autoryzację klientów,
składanie zamówienia, uaktualnianie katalogu filmów.
Skrypt SQL dla serwera Java DB (Derby), tworzący tabelę MOVIES z z informacjami o filmach: moviesderby.sql.
Skrypt SQL dla serwera Oracle, tworzący tabelę MOVIES z z informacjami o filmach: movies.sql.
Struktura tabeli MOVIES:
create table MOVIES
(id number(12) primary key, -- identyfikator filmu
title varchar2(400) not null, -- tytul filmu
category varchar2(50), -- gatunek filmu
year char(4), -- rok produkcji
cast varchar2(4000), -- nazwiska aktorow
director varchar2(4000), -- nazwisko rezysera
story varchar2(4000), -- krotki opis fabuly
price number(5,2), -- cena
check (category in ('DRAMA','COMEDY','FAMILY','ACTION','SCI-FI', 'CLASSICS')));
Wymagania w zakresie wykorzystywanych w projekcie technologii
- Interfejs użytkownika: JSF 2.0 (Facelets)
- Koszyk zakupów: sesyjny stanowy komponent EJB 3.x
- Dostęp do bazy danych: Java Persistence API + sesyjna fasada (komponent(y) EJB 3.x sesyjne bezstanowe)
- Usługa konwertera walut: komponent EJB 3.x typu singleton (przelicznik EUR/PLN może być zaszyty na stałe w kodzie komponentu)
- Konwersja wartości koszyka na euro: poprzez wspomniany wyżej singleton EJB
- Wykorzystanie Contexts and Dependency Injection (CDI) do zarządzania komponentami (beans) aplikacji (Warunkiem uzyskania maksimum punktów jest nieużywanie
adnotacji @ManagedBean, @EJB i adnotacji zasięgu z pakietu javax.faces.bean. W zamian należy stosować adnotacje @Named, @Inject i adnotacje zasięgu z pakietu javax.enterprise.context.)
Przykładowa strona graficzna aplikacji
Zasady oceny projektu
- warstwa dostępu do danych (JPA + sesyjna fasada): 20%
- lista filmów: 10%
- wyszukiwanie filmów wg kategorii: 10%
- możliwość podejrzenia szczegółów o filmie: 10%
- koszyk zakupów jako sesyjny stanowy EJB: 30%
- usługa konwersji walut jako singleton EJB: 10%
- konwersja wartości koszyka na euro: 10%
- użycie "starych" adnotacji zamiast adnotacji związanych z CDI: -25%
Uproszczona wersja projektu (na max 50% punktów)
- brak koszyka zakupów
- brak wyszukiwania filmów wg kategorii
- konwerter walut wykorzystany do przeliczenia na euro ceny pojedynczego filmu (w ramach podglądu szczegółów o filmie)
- użycie "starych" adnotacji zamiast adnotacji związanych z CDI: -25%