https://github.com/bpawluk/weather-forecast-assignment
https://github.com/bpawluk/weather-forecast-assignment
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bpawluk/weather-forecast-assignment
- Owner: bpawluk
- Created: 2025-03-05T16:31:56.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-11T09:47:24.000Z (7 months ago)
- Last Synced: 2025-03-11T10:41:07.247Z (7 months ago)
- Language: C#
- Homepage:
- Size: 66.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# weather-forecast-assignment
## Run
```
docker build -t weatherassignment:latest .
```
```
docker run -p 80:8080 --name weather-api weatherassignment:latest
```
Open Swagger
```
http://localhost/
```
Open Hangfire
```
http://localhost/hangfire
```
## Summary
### Requirements
- Build a simple RESTful API backed by any kind of database.
- It should store weather forecasts based on provided geographic location (latitude and longitude).
- It should allow you to
- Add a new forecast location;
- Delete an existing forecast location;
- List all locations;
- Get the latest weather forecast for a given location.
- It should operate using JSON for both input and output.
- The solution should include base specs/tests coverage.
- The solution should provide a quick and easy way to get the system up and running.
- The solution should be robust and handle unexpected issues well.### Suggestions
- You can use https://open-meteo.com to get a weather forecast.
- You can use IPStack API for the geolocation of IP addresses and URLs.### Assumptions
#### Weather Forecast
For the purpose of the assignment, a weather forecast will include temperature, precipitation probability, and surface pressure. Its duration will be equal to three days and the data will be provided in hourly intervals.
#### Geographic Location
For the purpose of the assignment, a geographic location will consist of a latitude and longitude. The values will be rounded up to two decimal places, resulting in a precision of approximately 1.1 kilometers.