This project contains a Full Stack JavaScript application that consumes data from an external API and presents it in an organized manner on the frontend. The API and the frontend are containerized using Docker and can be run together using Docker Compose.
Make sure you have the following installed on your system:
- Docker: Install Docker
- Docker Compose: Install Docker Compose
- Clone this repository to your local machine:
git clone <repository_url>
cd <repository_name>
- Build the Docker images:
docker-compose build
- Run the application using Docker Compose:
docker-compose up
This will start both the API server and the frontend client.
The API serves data at the following endpoint:
GET http://localhost:3000/files/data
The API requires an API Key to access the external API. The API Key is "Bearer aSuperSecretKey".
For detailed API documentation, refer to the Swagger UI provided by the external API: API Externo - Swagger
- To get a list of available files: GET http://localhost:3000/files/list
- To filter data for a specific file: GET http://localhost:3000/files/data?fileName=
Access the frontend client at: http://localhost:3000
The frontend client displays the data obtained from the API in an organized layout.
- Redux is used for state management in the frontend.
- Jest is used for unit testing the API.
- Filtering by "fileName" is implemented using the optional API endpoint and query parameter.
- The API runs on Node.js 14, and the frontend client runs on Node.js 16.
- The API and frontend do not depend on globally installed libraries or OS-specific configurations.
- The API is written in JavaScript (ES6+), and no transpilers like Babel or TypeScript are used.
- The frontend is written using React, React Bootstrap, and functional programming with Hook Effects.
- Docker is used for containerizing the application, making it easy to deploy and run in different environments.
This project is licensed under the MIT License.