Giter VIP home page Giter VIP logo

williamguilhermesouza / weatherforecast Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 20.08 MB

Sistema contendo frontend e backend capaz de mostrar o clima atual e a previsão do tempo a partir do input de um cidade e/ou localização do usuário.

Python 99.35% C 0.08% JavaScript 0.09% CSS 0.06% PowerShell 0.15% Batchfile 0.01% TypeScript 0.10% HTML 0.01% Roff 0.15% Dockerfile 0.01%
backend frontend weather tempo previsao forecast node python flask angular

weatherforecast's Introduction

Sistema de Previsão de Tempo

Repo-size Last-commit

Este projeto é parte do teste técnico proposto pela ADDE sistemas, no qual o objetivo era desenvolver um sistema contendo frontend e backend capaz de mostrar o clima atual e a previsão do tempo a partir do input de um cidade e/ou localização do usuário.

Exemplo de uso

Sample frontend

Backend

No backend foi utilizada a tecnologia Python, na versão 3.9 com o framework Flask para:

  • Comunicação com a api externa OpenWeatherMap para pegar os dados de clima filtrado por cidade/região.
  • Persistência dos dados recuperados da API por 15 minutos através de cache
  • Filtragem dos dados moldando o objeto desejado a ser fornecido para o frontend
  • Uso de uma rota exclusiva para recuperar os dados usando localização (latitude e longitude)
  • Uso de rota exclusiva para recuperar os dados de previsão de 7 dias, utilizando o nome da Cidade desejada e Região.

O backend da aplicação pode ser testado em funcionamento através do endpoint:

http://18.224.25.40/

ou:

http://addeweatherback.tk

Frontend

No Frontend foi utilizado Typescript junto ao framework Angular 11, com o objetivo de capturar entrada do usuário através de um input, e exibir dados recuperados do backend com base nessa entrada. Por padrão a previsão utilizada a localização atual do usuário, fornecida pelo navegador.

  • Foi criado um serviço weather que consome as informações do backend e é usado na aplicação para entregar a informação
  • Foi utilizada a tipagem de dados do typescript, onde é recebido um objeto do tipo Weather do backend, que devve estar em conformidade com os atributos esperados
  • Após a consulta pelo backend é exibido para o usuário os dados através da temperatura atual, cidade, clima, e de um indicativo visual.

O frontend da aplicação integrado ao backend pode ser testado em funcionamento através do endereço:

``http://addeweather.tk`

ou pelo dns da AWS:

http://ec2co-ecsel-1w7gp4r1ox5yt-1559785772.us-east-1.elb.amazonaws.com/get-weather

Como utilizar

Backend (Windows)

Ativar o ambiente virtual venv com as bibliotecas necessárias:

venv\Scripts\activate

Exportar a variável FLASK_APP, para ser usada pelo flask

set FLASK_APP=APIController.py

Iniciar o Flask

flask run

Frontend (Windows)

Entrar na pasta de frontend e iniciar o angular (deve estar instalado) com o comando:

ng serve -o

Testes

Backend

Como biblioteca para os testes do backend foi usado o unittest (para mock da API externa) e o nose para os testes propriamente ditos Para rodar os testes feitos para o APIService use:

nosetests backend

Os testes devem retornar "OK"

weatherforecast's People

Contributors

williamguilhermesouza avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.