Primeiros passos - BACKEND
Antes de começar a contribuir de fato, veja o guia Ambiente de Desenvolvimento para configurá-lo corretamente.
Guia para o Repositório backend.
Você pode contribuir com o EducaMinas de duas formas: Relatando um problema e Implementando uma funcionalidade.
Relatando um problema
- Para relatar poblemas no código, abra uma nova issue em nosso repositório backend no GitHub, com o template Bug report e com o label de
bug
. - Verifique se já existe alguma issue que reporte o problema encontrado.
- Preencha as informações solicitadas pelo template.
- Para relatar problemas na documentação, siga os mesmos passos acima, adicionando o label de
docs
.
Implementando uma funcionalidade
Verifique as issues do backend abertas para encontrar alguma tarefa a ser realizada.
Clonar o Repositório
Para clonar o repositório em um diretório de sua máquina, abra o terminal e execute:
git clone https://github.com/unb-mds/2024-1-EducaMinas-backend.git
Instalar dependências
Express/API
Navegue até o diretório raiz do repositório clonado:
cd 2024-1-EducaMinas-backend
Em seguida instale as dependências do EducaMinas:
npm install
Scraper
Navegue até o diretório WebScrapper
:
cd WebScrapper
Crie um ambiente virtual com conda:
conda create --name <my-env>
Ative o ambiente criado:
conda activate <my-env>
Instale as dependências e bibliotecas dentro do ambiente virtual:
conda install --yes --file requirements.txt
O script ETL acessa o banco de dados por meio de um .env
encontrado no caminho
WebScrapper/DataETL/.env
. A sua estrutura está escrita abaixo:
DATABASE_USERNAME=<INSERIR AQUI>
DATABASE_PASSWORD=<INSERIR AQUI>
DATABASE_NAME=<INSERIR AQUI>
DATABASE_PORT=<INSERIR AQUI>
DATABASE_HOST=<INSERIR AQUI>
Criar uma nova Branch
A partir da branch padrão develop, crie uma nova branch para trabalhar nas modificações, executando:
git checkout -b feature/nome-da-issue
Faça as alterações para implementar a tarefa.
Executando
Express/API
Para executar a aplicação Express em sua máquina, execute no diretório raiz:
npm run start
O servidor será inicializado e estará disponível na porta 3001 do localhost:
http://localhost:3001/
Demais comandos para execução de testes, builds e linter podem ser encontrados na guia scripts do arquivo package.json
na pasta raiz.
Com a api rodando localmente é possível acessar sua documentação e testá-la no Swagger, basta acessar:
http://localhost:3001/api-docs
Scraper
Com o ambiente ativado como instruído acima, para extrair os dados do Oracle Data com o selenium execute:
DataScraper/InepScrapper.py
ETL
Para tratar e carregar os dados extraídos, em modo debugger, acesse WebScrapper/DataETL
, lembre-se de selecionar o ambiente conda que foi criado, e então para rodar o programa por partes, execute:
ETLDebugger.ipynb
Se preferir, e não precisar/quiser rodar em modo debugger(por partes), execute o código para produção:
python3 WebSrapper/DataETL/main.py
Commitar mudanças
Adicione as alterações feitas:
git add nome-dos-arquivos-alterados
Commite as alterações seguindo o padrão das Conventional Commits, com a seguinte estrutura:
git commit -m "tipo(#idIssue): descrição"
Abrir um Pull Request
Após fazer seus commits, empurre a branch para o repositório remoto:
git push origin nome-da-sua-branch
No GitHub, abra um Pull Request, e preencha o template disponível para descrever suas implementações.
Revisão e Merge
O EducaMinas conta com três validações padrão para os Pull Requests. Assim, é necessário atendê-las para que sua solicitação seja considerada:
- Qualidade: São executados os testes, linter e build para validação básica da qualidade do código.
- Cobertura: A cobertura dos testes é comparada com a cobertura atual, e não deve ser menor.
- Review: Para aprovação, é necessário que ao menos um desenvolvedor faça o code review.
Após a aprovação, o Pull Request será mergeado e suas implementações serão incorporadas ao EducaMinas!