Loading repository data…
Loading repository data…
harish124 / repository
A containerized full-stack movie search application built using React, Spring Boot, and Elasticsearch. This project allows users to search for movies with real-time fuzzy search capabilities, browse results with pagination and manage movie data through RESTful APIs.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A containerized full-stack movie search application built using React, Spring Boot, and Elasticsearch.
This project allows users to search for movies with real-time fuzzy search capabilities, browse results with pagination and manage movie data through RESTful APIs.
This application enables users to search for and retrieve movie data using Elasticsearch as the search engine for efficient indexing and fuzzy matching. Movie data can be added, updated, and deleted via dedicated backend endpoints, typically accessed using Postman or similar tools.
+-------------------------------+
| React Frontend (Port: 8086) |
+-------------------------------+
|
v
+-------------------------------------------+
| Nginx Server (LoadBalancer) (Port: 8080) |
+-------------------------------------------+
|
v
+----------------------------------+
| Spring Boot Backend (Port: 8085) |
+----------------------------------+
|
v
+-------------------------------+
| Elasticsearch (Search Engine) |
+-------------------------------+
The frontend communicates with the backend via RESTful APIs.
The backend handles all data interactions with Elasticsearch.
I have used Swagger UI to provide interactive API documentation for the Movie API. With Swagger UI, you can easily explore the available endpoints, understand the request/response structure, and try out the API calls directly from the browser.
Once the application is up and running, you can access the Swagger UI by visiting the following URL: http://domain-name:port/swagger-ui.html For ex: http://localhost:8083/swagger-ui.html
This page will display a list of all available API endpoints, including descriptions of each operation, expected responses, request parameters, and response models.
200 OK, 404 Not Found).The API is documented using Springdoc OpenAPI, which automatically generates the Swagger UI from annotations in the code. Here's how it works:
@Operation: Describes the summary and details of each endpoint.@ApiResponse: Specifies the possible HTTP responses for each operation.@ApiResponses: Groups multiple responses for an endpoint, allowing for detailed API documentation.This allows you to easily interact with the API in a user-friendly interface while providing full visibility into the available API features.
git clone https://github.com/harish124/movie-app-react.git
cd movie-app-react/
Ensure Docker and Docker Compose are installed.
Build and run the containers:
docker-compose up -d
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/movies?characters=&page=&pageSize= | Fetch all movies containing given characters (fuzzy search) |
| PUT | /v1/movies/{id} | Update an existing movie by ID |
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/movies | Save a new movie |
| DELETE | /v1/movies | Deletes all movies |
| DELETE | /v1/movies/{id} | Delete a movie by ID |
docker-compose up -d saying app.jar not found. Why does this happen and how can I fix it?Ans. This error occurs because JAR files are not committed to GitHub, so Docker cannot find app.jar when the containers are started. To resolve this, build the Spring Boot application locally by running mvn clean package from your IDE or terminal. This command will generate the JAR file inside the target directory. Next, navigate to /backend/movie, create a directory named jars, move the generated JAR file into this directory, and rename it to app.jar. After completing these steps, run docker-compose up -d again and the application should start successfully.
docker-compose, the changes are not reflected. Why?Ans. This happens because Docker reuses the existing images and does not automatically rebuild them when the source code changes. To apply your updates, you need to remove the existing Docker images and rebuild them. First, stop and remove the running containers by executing docker-compose down. Then, list the available images using docker images and identify the image ID for your application. Remove the image using docker rmi <image-id>. Finally, run docker-compose up --build -d again to rebuild the images and start the containers with the updated code.
This project is licensed under the MIT License — see the LICENSE file for details.