https://github.com/jjpaulo2/weather-data-consumer
⏰ Job que consome uma API de clima e salva em um banco não relacional
https://github.com/jjpaulo2/weather-data-consumer
cli crontab docker fastapi mongodb python redis shell
Last synced: 3 months ago
JSON representation
⏰ Job que consome uma API de clima e salva em um banco não relacional
- Host: GitHub
- URL: https://github.com/jjpaulo2/weather-data-consumer
- Owner: jjpaulo2
- License: mit
- Created: 2023-01-14T06:16:17.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-17T04:29:05.000Z (over 3 years ago)
- Last Synced: 2025-12-13T09:56:20.619Z (6 months ago)
- Topics: cli, crontab, docker, fastapi, mongodb, python, redis, shell
- Language: Python
- Homepage:
- Size: 189 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Weather Data Consumer
Este projeto utiliza algumas tecnologias, como **Python**, **Docker**, **Redis** e **MongoDB**.
A principal ideia aqui é consumir as APIs de previsão temporal da I4Sea, e salvar em um banco não relacional para fazer algum tratamento posterior. Acompanhe as issues/andamento deste projeto [aqui](https://github.com/jjpaulo2/weather-data-consumer/issues).
### Estrutura
- Um job que roda em intervalos de tempo definidos, que busca informações na API i4cast e salva essas informações.
- Estas informações são salvas no banco de dados, e também são exportadas para arquivos json.
- Veja os detalhes [aqui](https://github.com/jjpaulo2/weather-data-consumer/tree/main/i4cast-consumer).
- Uma API de mock da API original da I4Sea, criada com o objetivo de facilitar os testes de integração da ferramenta.
- Veja os detalhes [aqui](https://github.com/jjpaulo2/weather-data-consumer/tree/main/i4cast-mock-api).
### Executando
Você pode executar facilmente tudo com o auxílio do docker-compose.
```shell
$ docker compose up
```
Isto irá subir alguns containers na sua máquina:
- API de Mock em `http://0.0.0.0:8880/v1/i4cast-api`
- Redis em `redis://0.0.0.0:6379`
- MongoDB em `mongodb://admin:admin@0.0.0.0:27017`
- Cronjob escrevendo arquivos em `./dist`
Verifique a pasta `./dist` para ver os arquivos gerados pela cronjob em execução.
### TODO
Ainda falta implementar alguns itens/features:
- Testes automatizados, [veja #4](https://github.com/jjpaulo2/weather-data-consumer/issues/4)