Imagine that you are part of the team that is working on a brand new e-commerce business intelligence product. The goal of the product is to estimate the traffic volume on the e-shop in the following days to suggest how many items should be prepared on the stock.
One of the many inputs for such a solution is – believe it or not – weather. Because in case the weather is bad people tend to sit at home and shop more. When the weather is good, people are outside having picnics, drinking beer, and spending a minimum of their money online.
Your task is to create a micro-service that will provide simplified information about the weather forecast as one of many inputs for the business intelligence system.
Your microservice should fulfill the following requirements:
0) It’s based on [Django](https://www.djangoproject.com/). You are allowed to use any additional libraries that will help you to finish the task.
1) It should provide information about the weather on the following API endpoint
" GET /weather-forecast/?date=(YYYY-MM-DD)&country_code=(ISO_CODE_2) "
– date is the date of the weather forecast
– country_code is the code of the country for which we want to get the forecast. See 3) for more info.
The response should be in JSON format:
" ("forecast": "good")2) It should provide info about weather forecast also via Django management command, eg. python manage.pyweather_forecast 2021-26-05 CZ "
It should provide info about weather forecasts also via Django management command, eg. python manage.pyweather_forecast 2021-26-05 CZ
3) Use the following simplifications:
– assume that the country_code in exposed interfaces (API, management command) can have only the following values: `CZ`, `UK`, `SK`. That means that you’re permitted to hard-code eg country_code to GPS coordinates mapping for internal purposes.
The output of your interfaces will be:
– `good` – in case average temperature on given day is bigger 20 celsius degrees
– `soso` – in case average temperature on given dat is between 20 and 10 Celsius degrees
– `bad` – in other cases
4) It’s recommended to use [weatherapi.com](https://www.weatherapi.com/) (they provide a free plan that is fully sufficient for purpose of this task) to retrieve info about weather. You can use any other weather provider. But it’s mandatory to communicate with some real third-party API.
5) Our service should be fast and efficient. That means that we don’t want to delegate repeated requests to weatherapi.com. It’s recommended to use some internal storage (database).
The second part of the test (Only if you have time and passion)
Write chat application by using Django as the main service and GraphQL as a tool of API implementation.
It could be a separate module in the project of the previous technical test application.
Posted On: January 15, 2022 08:05 UTC
Category: Back-End Development
Skills:Python, Django, API, PostgreSQL, RESTful API
Country: United States
click to apply
All jobs | upwork.com