##### Open and read the `README.md` file provided by the student.
###### Does the `README.md` file contain all the required information to run and manage the solution (prerequisites, configuration, setup, usage, etc)?
#### Check the student infrastructure:
The student must implement this architecture:
![architecture](../pictures/architecture.png)
##### Run the student infrastructure:
```console
user:~$ docker-compose up
<...>
inventory-database ... done
billing-database ... done
inventory-app ... done
billing-app ... done
RabbitMQ ... done
api-gateway-app ... done
<...>
user:~$
```
###### Does the student architecture reflect the infrastructure enforced by the subject?
###### Does the infrastructure start correctly?
##### Ask the following questions to the group or student
-`inventory-db container` is a SQL database server that contains your inventory database, it must be accessible via port `5432`.
-`billing-db container` is a SQL database server that contains your billing database, it must be accessible via port `5432`.
-`inventory-app container` is a Node.js server that contains your inventory-app. It will be connected to the inventory database and accessible via port `8080`.
-`billing-app container` is a Node.js server that contains your billing-app. It will be connected to the billing database and consuming the messages from the RabbitMQ queue. It will be accessible via port `8080`.
-`rabbit-queue` is a RabbitMQ server that contains the queue.
-`api-gateway-app container` is a Node.js server that contains your api-gateway-app. It will forward the requests to the other services and it's accessible via port `3000`.
##### Open Postman and make a `POST` request to `http://[GATEWAY_IP]:[GATEWAY_PORT]/api/movies/` address with the following body as `Content-Type: application/json`:
```json
{
"title": "A new movie",
"description": "Very short description"
}
```
###### Can you confirm the response was the success code `200`?
##### In Postman make a `GET` request to `http://[GATEWAY_IP]:[GATEWAY_PORT]/api/movies/` address.
###### Can you confirm the response was success code `200` and the body of the response is in `json` with the information of the last added movie?
#### Billing API Endpoints
##### Open Postman and make a `POST` request to `http://[GATEWAY_IP]:[GATEWAY_PORT]/api/billing/` address with the following body as `Content-Type: application/json`:
```json
{
"user_id": "20",
"number_of_items": "99",
"total_amount": "250"
}
```
###### Can you confirm the response was success code `200`?
##### Stop the billing-app container
###### Can you confirm the `billing-app` container was correctly stopped?
##### Open Postman and make a `POST` request to `http://[GATEWAY_IP]:[GATEWAY_PORT]/api/billing/` address with the following body as `Content-Type: application/json`:
```json
{
"user_id": "22",
"number_of_items": "10",
"total_amount": "50"
}
```
###### Can you confirm the response was success code `200` even if the `billing_app` is not working?