Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thiagomartins367/trybe-project-job-insights

Projeto de desenvolvimento de análises a partir de um conjunto de dados sobre empregos utilizando Python e Flask. :mag: :briefcase:
https://github.com/thiagomartins367/trybe-project-job-insights

docker flask pytest python python-black python-flake8

Last synced: about 2 months ago
JSON representation

Projeto de desenvolvimento de análises a partir de um conjunto de dados sobre empregos utilizando Python e Flask. :mag: :briefcase:

Awesome Lists containing this project

README

        

# 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](https://www.glassdoor.com.br/) e obtidos através do [Kaggle](https://www.kaggle.com/atharvap329/glassdoor-data-science-job-data), 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:

```bash
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**

```bash
$ python3 -m venv .venv
```

2. **ativar o ambiente virtual**

```bash
$ source .venv/bin/activate
```

3. **instalar as dependências no ambiente virtual**

```bash
$ 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

```bash
$ 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 é:

```bash
python3 -m pytest -s -vv
```

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

```bash
python3 -m pytest tests/nomedoarquivo.py
```

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

```bash
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`

```bash
python3 -m pytest -x tests/test_jobs.py
```

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

```bash
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](https://medium.com/python-pandemonium/better-python-dependency-and-package-management-b5d8ea29dff1).


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