Skip to content

Repositório destinado ao backend do EducaMinas, uma plataforma que reúne dados da educação do estado de Minas Gerais. https://educaminas.vercel.app/

License

Notifications You must be signed in to change notification settings

unb-mds/2024-1-EducaMinas-backend

Repository files navigation

codecov License: MIT GitHub issues GitHub contributors



Para melhor divisão e organização, o EducaMinas está dividido em dois repositórios.

Você está no Backend. Acesse também:


O EducaMinas é um projeto desenvolvido na disciplina Métodos de Desenvolvimento de Software (MDS) ofertada no curso de Engenharia de Software na Universidade de Brasília (UnB), que visa reunir em um único local dados sobre a educação no estado de Minas Gerais, utilizando informações extraídas da pesquisa educacional realizada pelo INEP. A plataforma permite diferentes interpretações dos dados, com ênfase no aspecto social do ensino mineiro.

O projeto é um software livre e está sob a licença MIT.


🗒️ Sumário


🏁 Início

Siga os passos abaixo para executar o backend do EducaMinas:

🏞️ Ambiente e Pré-requisitos

Para rodar o projeto é fundamental ter algumas dependências globais:

  • Node
  • Miniconda/Python

Para visualizar versões, links e as instruções completas de configuração do ambiente: Ambiente e Pré-requisitos

📲 Instalação

Após configurar o Ambiente e Pré-requisitos, 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

Com o repositório do backend devidamente clonado, você terá acesso à aplicação Express e ao Scraper:

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>

⚙️ Execução

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

🛠️ Guia de contribuição

Para acessar o guia completo de contribuição: Guia de Contribuição

Nele, você encontra as respostas para as seguintes questões:


📒 Documentação e muito mais!

Para acessar a documentação completa: Documentação EducaMinas

Nela, você encontra os seguintes tópicos:


🏛️ Arquitetura

Confira a visualização geral da arquitetura do EducaMinas:


📆 Board

Acesse nosso Board no GitHub e acompanhe o desenvolvimento dos dois repositórios simultâneamente: Board EducaMinas


🖼️ Protótipo

Visualize nosso protótipo diretamente no FIGMA: Protótipo EducaMinas


🧑🏽‍💻 Desenvolvedores