MoviesApp
Celem programu MoviesApp jest umożliwienie użytkownikowi dodawania filmów, wyświetlania ich w postaci listy oraz wyświetlania szczegółów jednego z filmów.
Aby uruchomić program należy - używając kodu umieszczonego w repozytorium - zbudować plik WAR. Następnie utworzony plik umieszczamy w odpowiednim folderze naszego serwera - w przypadku serwera Apache Tomcat jest to folder webapps - a następnie uruchomić serwer. Po uruchomieniu serwera będziemy mieli możliwość dostania się do strony internetowej podając odpowiedni adres w oknie naszej przeglądarki.
Strona powitalnia http://localhost:8080/MoviesApp/
Strona wyświetlająca listę filmów http://localhost:8080/MoviesApp/movies - można się do niej dostać po kliknięciu przycisku SHOW LIST znajdującego się w menu po lewej stronie
Strona wyświetlająca właściwości danego filmu http://localhost:8080/MoviesApp/movies/2 - można się do niej dostać po kliknięciu na dany element listy
Strona umożliwiająca dodanie nowego filmu http://localhost:8080/MoviesApp/add_movie - można się do niej dostać po kliknięciu przycisku ADD MOVIE znajdującego się w menu po lewej stronie
Po dodaniu filmu wyświetla się następująca strona
Po dodaniu nowego filmu zostanie on umieszczony na stałe w folderze /uploads na komputerze, a następnie będzie mógł on być wyświetlany na liście filmów.
Ponadto strona została zaprojektowana w sposób responsywny, dzięki czemu może być bez problemu wygodnie wyświetlana na urządzeniach moblinych.
Dodając nowy film należy podać nazwę filmu, nazwę autora, wybrać z listy gatunek filmu, wpisać rok produkcji oraz wybrać plik zawierający film który chcemy dodać. Nazwa filmu i autor powinny być ciągami znaków, natomiast rok produkcji powinien być liczbą. Podane dane są umieszczane w bazie danych MySQL movies_db , w tabeli Movies . Do mapowania danych z realzcyjnej bazy danych na świat obiektowy - klasy - wykorzystywany jest framework Hibernate. Dodany plik jest zapisywany w folderze /uploads znajdującym się na komputerze. Jeżeli taki folder nie istnieje, zostaje on utworzony automatycznie podczas dodawania pierwszego filmu.
Diagram modułów
Diagram pakietów
Klasa ta jest kontolerem odpowiedzialnym za dodawanie filmów. Jest ona również odpowiedzialna za wyświetlanie formularza
służącego do dodawania filmów oraz wyświetlanie potwierdzenia dodania nowego filmu.
Metody:
– public String showForm(Model model) - metoda ta wyświetla formularz służący do dodawania filmów,
– public String uploadMovie(@RequestParam("videofile") MultipartFile file, @RequestParam("name") String name,
@RequestParam("author") String author, @RequestParam("genre") String genre,@RequestParam("year") int productionYear) -
metoda ta służy do dodawania filmów, dodaje ona film do folderu /uploads oraz wywołuje metodę klasy MoviesList która dodaje
właściwości filmu do pliku movie_db.xml
Klasa ta jest kontrolerem odpowiedzialnym za wyświetlanie właściwości danego filmu.
Metody:
– public String getMovie(@PathVariable("movie_id") String movie_id, Model model) - metoda ta służy do wyświetlania podstrony z
własnościami filmu
Klasa ta jest kontrolerem odpowiedzialnym za wyświetlanie listy filmów.
Metody:
– public String getMovie(Model model) - metoda ta służy do wyświetlenia listy filmów
Klasa ta zawiera pola opisujące dodawany film oraz metody dostępowe. Jest ona encją - reprezentacją tabeli Movies znajdującej się w bazie danych.
Metody:
Klasa ta zawiera wyłącznie metody dostępowe.
Interfejs ten zawiera metody jakie powinna posiadać klasa wykorzystywana do komunikacji z bazą danych z tabelą Movies.
Metody:
– public void addMovie(Movie movie) - dodaje do bazy danych nowy film,
– public List getAllMovies() - pobiera wszystkie filmy z bazy danych i zwraca je w formie listy filmów,
– public Movie getMovieById(String id) - pobiera jeden film na podstawie podanego nr ID
Klasa ta jest encją, reprezentującą tabelę Movies z bazy danych movies_db.
MVC - ModelViewController, wzorzec projektowy organizujący strukturę aplikacji posiadających graficzny interfejs użytkownika. Wzorzec MVC zakłada podział aplikacji na 3 części: model - reprezentacja problemu/logiki aplikacji, view - opisuje jak wyświetlić część modelu w ramach interfejsu użytkownika ,controller- przyjmuje od użytkownika dane wejściowe, aktualizuje model, odświeża widok. Klasy realizujące część modelu zawarte są w programie w katalogu models, a realizujące część kontrolerów w katalogu controllers. Widok jest reprezentowany przez pliki *.jsp znajdujące się w katalogu jsp. W celu wykorzystanie tego wzorca w programie został wykorzystany framework Spring-a o nazwie Spring Web MVC.
Program w poprawny sposób spełnia początkowe założenia i umożliwia dodawanie filmów, wyświetlanie ich listy oraz wyświetlanie ich właściwości.