Cine App is a web application to search information about movies.
It's based on Quarkus (Java) and Nuxt (VueJS) frameworks.
The data is from The Movie Database (TMDb) API.
- See a list of upcoming movies - including the movies' name, poster or backdrop image, genre and release date.
- Select a specific movie to see its details (name, poster image, genre, overview and release date)
- Search for movies by entering a partial or full movie name.
Backend:
Frontend:
To generate production version
Folder: cine-api-q
To run the application, use:
mvn compile quarkus:dev
Once started, it runs on:
Folder: cine-ui
Install dependencies:
$ npm install
Serve with hot reload:
$ npm run dev
Once started, you can access the UI:
This project uses the Open API standards and publishes the API docs with Swagger UI.
http://localhost:8080/swagger-ui
To see the API Specs in Json format, access:
To build a production version, we need 3 steps :
- Build the frontend
- Build the backend
- Generate the Docker image
To do that, it's necessary:
Go to backend folder:
cine-api-q
Run the build script:
./build-with-docker-image.sh
This script generates the frontend application, copy the generated files to backend resources folder and make the build of the backend module with the static files of frontend working as a SPA (Single Page Application).
After that, you can run the application with:
docker run -i --rm -p 8080:8080 quarkus/api-jvm:latest
In the production version, the web application runs inside a Docker image only as a Java application based on Quarkus.
Avaiable on http://localhost:8080/
Frontend
- Refactoring to make more reusable components
- Improvements in the page flows to use Vuex (State) to not loose the information about selected page and search results when change from a page to other
- Show traillers in Youtube and other informations about the movies.
- Allow to share a link of a movie
- Better UI
Backend
- Tunning and improvements of cache strategy
- Improvements to run as a native docker image
You can contact me by e-mail in this address