a production ready application that exposes an API endpoint for retrieving the current temperature in a city specified by the user. The temperature should be returned in the following three formats: Celsius, Fahrenheit, and Kelvin. You should retrieve the temperature from a public weather service, e.g. OpenWeather API.
src/
├── api/
│ └── weatherApi.ts
├── components/
│ └── WeatherCard.tsx
├── pages/
│ └── Home.tsx
├── App.tsx
└── main.tsx
src/
├── domain/
│ ├── entities/
│ │ └── Weather.ts
│ └── repository/
│
├── application/
│ ├── ports/
│ │ └── WeatherProvider.ts
│ └── use-cases/
│ └── GetCityTemperatureUseCase.ts
│
├── infrastructure/
│ ├── external/
│ │ └── OpenWeatherService.ts
│ └── repositories/
│
├── interface-adapters/
│ └── controllers/
│ └── WeatherController.ts
│
├── main/
│ ├── routes.ts
│ ├── server.ts
│ └── factory/
│ └── makeWeatherController.ts
│
└── config/