Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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:
- Host: GitHub
- URL: https://github.com/thiagomartins367/trybe-project-job-insights
- Owner: thiagomartins367
- Created: 2023-03-07T21:38:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-07T22:29:18.000Z (almost 2 years ago)
- Last Synced: 2024-04-23T20:33:14.064Z (9 months ago)
- Topics: docker, flask, pytest, python, python-black, python-flake8
- Language: Python
- Homepage:
- Size: 3.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
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).
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`.