Skip to content

Latest commit

 

History

History
119 lines (76 loc) · 2.98 KB

README.md

File metadata and controls

119 lines (76 loc) · 2.98 KB

Teste de Conhecimentos Técnicos

Teste para análise de conhecimentos técnicos.

Objetivo

Construir uma aplicação que efetue chamadas para a API OpenWeatherMap e apresentar seus dados meteorológicos de forma compreensível para o usuário.

Requisitos

  • As informações devem ser armazenadas em um banco de dados;

  • Histórico de consultas;

  • Campo de pesquisa;

  • Área de apresentação dos dados;

  • Visualizar previsão detalhada de mais dias;

  • Aplicação publicada no GitHub; e

  • README detalhado e didático.

Requisitos de Tecnologia

  • Interface React;

  • Servidor Web em Python, podendo utilizar framework;

  • Banco de Dados PostgreSQL, podendo utilizar ORM; e

  • Permitida a utilização de quaisquer dependências devidamente justificadas.

Projeto Desenvolvido

Tecnologias utilizadas e guia de instalação.

Tecnologias Utilizadas

Para atuar no back-end optei pelo Flask, um framework web. Devido ao fato de já ter contato com o mesmo em projetos anteriores de estudo.

  • Back-End (Python)

    • Flask -> framework web
    • Flask-SQLAlchemy -> ORM
    • Flask-Migrate -> ferramenta de migração
    • Flask-Cors -> lidar com Cross Origin Resource Sharing
    • flask-marshmallow -> serialização simples de objetos
    • marshmallow-sqlalchemy -> (de)serialização
    • psycopg2 -> adaptador do banco de dados PostgreSQL para Python
    • requests -> requisição para API
    • python-dotenv -> variáveis de ambiente para desenvolvimento
    • virtualenv -> virtualização do ambiente de desenvolvimento
  • Front-End (React)

    • Bootstrap -> estilo
    • material-ui/data-grid -> criação/formatação de tabelas
  • Ambiente de Desenvolvimento

    • Linux
    • VSCode
    • Docker
    • Insomnia

Instalação

Em um ambiente com Python, PIP, NodeJS e Yarn instalados, é possível executar a aplicação. Também é preciso ter um banco de dados PostgreSQL em execução.

  • Iniciando o Servidor Back-End

Altere o arquivo __init.py com o endereço do seu banco de dados:

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://<usuario>:<senha>@<ip>:5432/<bd>'

Com o banco de dados devidamente referenciado, instale as dependências necessárias para o back-end:

cd backend
python -m pip install -r requirements.txt

Após instalação das dependências, execute a migração do banco de dados:

flask db migrate
flask db upgrade

Em um terminal execute o servidor web:

chmod +x run.sh
sh run.sh
  • Iniciando o Servidor Front-End

Em outro terminal instale as dependências necessárias para execução do front-end e inicie o servidor front-end.

Instalar dependências:

cd frontend
yarn install # ou npm install. Recomendo yarn

Iniciar servidor front-end:

yarn start
  • Iniciando a Aplicação

print da aplicação

Com ambos os servidores e o banco de dados em execução, acesse a aplicação: http://127.0.0.1:3000