Skip to content

Projeto de desenvolvimento de análises a partir de um conjunto de dados sobre empregos utilizando Python e Flask. 🔍 💼

Notifications You must be signed in to change notification settings

thiagomartins367/Trybe-project-job-insights

Repository files navigation

Boas-vindas ao repositório do Job Insights!

Este projeto foi desenvolvido durante o período de Curso da Trybe 🚀

O projeto tem por objetivo a avaliação e prática dos conhecimentos adquiridos na Trybe visando o cumprimento dos requisitos solicitados.


Descrição

Logo Aplicação

Neste projeto foi implementado análises a partir de um conjunto de dados sobre empregos. As implementações foram incorporadas a um aplicativo Web desenvolvido com Flask (um framework web muito popular na comunidade Python). Foram desenvolvido testes para a implementação de uma análise de dados.

E, por fim, foi implemetado uma rota e view para um recurso novo na aplicação Web!

Os dados foram extraídos do site Glassdoor e obtidos através do Kaggle, uma plataforma disponiblizando conjuntos de dados para cientistas de dados.

🚵 Habilidades desenvolvidas:

  • Utilizar terminal interativo do Python.
  • Utilizar estruturas condicionais e de repetição.
  • Utilizar funções built-in do Python.
  • Utilizar tratamento de exceções.
  • Realizar a manipulação de arquivos.
  • Escrever funções no Python.
  • Escrever testes com Pytest.
  • Escrever módulos próprios e importá-los em outros códigos.

Orientações

🧱 Estrutura do Projeto
Este repositório já contém um template com a estrutura de diretórios e arquivos, tanto de código quanto de teste criados. Veja abaixo:
Legenda:
🔸Arquivos que não podem ser alterados
🔹Arquivos alterados para cumprir com os requisitos propostos no desenvolvimento.
.
├──🔸README.md
├──🔸Dockerfile
├──🔸docker-compose.yml
├──🔸dev-requirements.txt
├──🔸requirements.txt
├── src
│   ├──🔸app.py
│   ├──🔸brazilian_jobs.py
│   ├──🔸counter.py
│   ├──🔹insights.py
│   ├──🔸jobs.csv
│   ├──🔹jobs.py
│   ├──🔸more_insights.py
│   ├──🔹routes_and_views.py
│   ├──🔸sorting.py
│   └── templates
│       ├──🔸base.jinja2
│       ├── includes
│       │   └──🔸nav.jinja2
│       ├──🔸index.jinja2
│       ├──🔸job.jinja2
│       └──🔸list_jobs.jinja2
├── tests
│   ├──🔸__init__.py
│   ├──🔸conftest.py
│   ├──🔸marker.py
│   ├── brazilian
│   │   ├──🔸__init__.py
│   │   ├──🔸conftest.py
│   │   ├──🔸mocks.py
│   │   ├──🔹test_brazilian_jobs.py
│   ├── counter
│   │   ├──🔸__init__.py
│   │   ├──🔸conftest.py
│   │   ├──🔸mocks.py
│   │   ├──🔹test_counter.py
│   ├── mocks
│   │   ├──🔸job_1.html
│   │   ├──🔸jobs.csv
│   │   ├──🔸jobs_with_industries.csv
│   │   ├──🔸jobs_with_salaries.csv
│   │   └──🔸jobs_with_types.csv
│   ├── sorting
│   │   ├──🔸__init__.py
│   │   ├──🔸conftest.py
│   │   ├──🔸mocks.py
│   │   └──🔹test_sorting.py
│   ├──🔸test_flask_app.py
│   ├──🔸test_insights.py
│   ├──🔸test_jobs.py
│   ├──🔸test_more_insights.py
│   └──🔸test_routes_and_views.py
🎛 Linter

Para garantir a qualidade do código, foi utilizado neste projeto o linter Flake8. Assim o código estará alinhado com as boas práticas de desenvolvimento, sendo mais legível e de fácil manutenção! Para rodá-lo localmente no projeto, execute o comandos abaixo:

python3 -m flake8
🏕️ Ambiente Virtual
O Python oferece um recurso chamado de ambiente virtual, onde permite sua máquina rodar sem conflitos, diferentes tipos de projetos com diferentes versões de bibliotecas.
  1. criar o ambiente virtual
$ python3 -m venv .venv
  1. ativar o ambiente virtual
$ source .venv/bin/activate
  1. instalar as dependências no ambiente virtual
$ python3 -m pip install -r dev-requirements.txt

Com o seu ambiente virtual ativo, as dependências serão instaladas neste ambiente. Quando precisar desativar o ambiente virtual, execute o comando "deactivate". Lembre-se de ativar novamente quando voltar a desenvolver no projeto.

O arquivo dev-requirements.txt contém todas as dependências que são utilizadas no projeto.

🛠 Testes

Para executar os testes certifique-se de que você está com o ambiente virtual ativado.

Executar os testes

$ python3 -m pytest

O arquivo pyproject.toml já configura corretamente o pytest. Entretanto, caso você tenha problemas com isso e queira explicitamente uma saída completa, o comando é:

python3 -m pytest -s -vv

Caso precise executar apenas um arquivo de testes basta executar o comando:

python3 -m pytest tests/nomedoarquivo.py

Caso precise executar apenas uma função de testes basta executar o comando:

python3 -m pytest -k nome_da_func_de_tests

Se desejar que os testes parem de ser executados quando acontecer o primeiro erro, use o parâmetro -x

python3 -m pytest -x tests/test_jobs.py

Para executar um teste específico de um arquivo, basta executar o comando:

python3 -m pytest tests/nomedoarquivo.py::test_nome_do_teste

Se quiser saber mais sobre a instalação de dependências com pip, veja esse artigo.

Logo Flask

Além dos testes com o Pytest, é possível rodar a aplicação flask para visualizar no navegador o resultado do desenvolvimento das funções. Para isso, digite o comando flask run, e acesse o site gerado pelo Flask em http://localhost:5000.

Tela Aplicação

About

Projeto de desenvolvimento de análises a partir de um conjunto de dados sobre empregos utilizando Python e Flask. 🔍 💼

Topics

Resources

Stars

Watchers

Forks