Licita BSB é um projeto que visa a divulgação das licitações realizadas em Brasília. Através do nosso portal, as licitações publicadas nos diários oficiais são disponibilizadas de maneira acessível ao público.
Acesse o nosso portal aqui para explorar as licitações de forma simples e rápida.
Para aumentar a visibilidade dessas informações, o projeto também inclui um bot na rede social X (antigo Twitter) que compartilha as licitações mais recentes, mantendo a população informada sobre as decisões governamentais.
Acesse o nosso bot no X (antigo Twitter) para acompanhar licitações do DOU diariamente.
Este projeto faz parte da disciplina de Métodos de Desenvolvimento de Software da Universidade de Brasília, no primeiro semestre de 2024.
Clone o repositório do projeto:
git clone https://github.com/unb-mds/LicitaBSB-24.1.git
-
Navegue até o diretório
backend/
e crie um ambiente virtual:Linux
python -m venv venv source venv/bin/activate
Windows
python -m venv venv venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Para rodar o projeto, navegue até o diretório
backend/server
e execute:python manage.py runserver
A API REST estará disponível em http://127.0.0.1:8000/
.
Os endpoints da API REST se encontram no link https://bit.ly/licitabsb_api ou no caso de você está executando o programa em sua máquina ele se encontrará em http://localhost:8000/swagger/
Este bot publica automaticamente as licitações do Diário Oficial do Distrito Federal (DODF) e do Diário Oficial da União (DOU) referentes a Brasília na conta @LicitaBSB.
Para testar o bot, utilizamos a biblioteca unittest
do Python (ela é nativa, portanto, não é necessário nenhum pip). Siga o passo a passo abaixo para executar os testes:
-
Navegue até o diretório raiz do projeto:
cd LicitaBSB-24.1
-
Execute o script de teste:
python -m unittest /backend/twitter/test.py
Isso irá executar todos os testes presentes no diretório
tests
que começam com o prefixotest_
. -
Verifique os resultados dos testes: Após a execução dos testes, você verá os resultados no terminal. Os testes irão verificar se as funcionalidades do bot estão funcionando corretamente e se os dados estão sendo formatados e publicados adequadamente.
Certifique-se de que todas as asserções nos testes passaram sem erros. Caso algum teste falhe, verifique o motivo do erro e faça as correções necessárias no código.
- Autenticação automática na API do Twitter.
- Integração com o sistema de coleta de dados.
- Formatação de dados para postagens legíveis.
- Publicação automática das licitações.
- Testes com dados simulados.
-
Clone o repositório:
git clone https://github.com/unb-mds/LicitaBSB-24.1.git cd LicitaBSB-24.1
-
Instale as dependências:
pip install -r backend/requirements.txt
-
Configure as variáveis de ambiente criando um arquivo
.env
na raiz do projeto com as chaves da API do Twitter:TWITTER_API_KEY=seu_api_key TWITTER_API_KEY_SECRET=seu_api_key_secret TWITTER_ACCESS_TOKEN=seu_access_token TWITTER_ACCESS_TOKEN_SECRET=seu_access_token_secret TWITTER_BEARER_TOKEN=seu_bearer_token
-
Atualize o sistema de coleta de dados para garantir que a database esteja atualizada.
-
Execute o script principal:
python backend/twitter_bot/auto.py
-
O bot publicará as licitações no Twitter. Se não houver licitações no dia, o bot publicará uma mensagem informando.
- Testes Automatizados com Django
O Django oferece um framework robusto para criação e execução de testes automatizados. Abaixo estão as instruções de como rodar os testes.
- Configuração Inicial
Certifique-se de que os pacotes de teste estão instalados. Se estiver utilizando um ambiente virtual, ative-o antes de instalar as dependências:
Clone o repositório
git clone https://github.com/unb-mds/LicitaBSB-24.1.git
cd LicitaBSB-24.1
Instale as dependências
python -m venv venv # Criação do ambiente virtual
source venv/bin/activate # Ativação no Linux/MacOS
venv\Scripts\activate # Ativação no Windows
pip install -r requirements.txt # Instalação das dependências
- Estrutura dos Testes
Por convenção, os testes em Django são colocados em um arquivo tests.py dentro de cada aplicação, ou em uma pasta tests/ contendo múltiplos arquivos de teste.
- Executando os Testes
Para rodar os testes, navegue até backend/server
e utilize o comando:
python manage.py test
-
Clone o repositório
git clone https://github.com/unb-mds/LicitaBSB-24.1.git
-
Navegue até o diretório
frontend
e instale as dependências:npm install
-
Para rodar o projeto, execute:
npm run build npm run dev
O site estará disponível em http://localhost:5432/
.
- Testes Automatizados com Jest & Testing Library
Este projeto utiliza Jest e React Testing Library para testes. Os testes cobrem componentes, hooks customizados e funções auxiliares, garantindo que a aplicação funcione conforme esperado.
- Configuração Inicial
Certifique-se de que os pacotes de teste estão instalados:
Clone o repositório
git clone https://github.com/unb-mds/LicitaBSB-24.1.git
Navegue até a pasta 'frontend'
cd LicitaBSB-24.1/frontend
Instale as dependências
npm install
- Estrutura dos Testes
Por convenção, os arquivos de testes com Jest & Testing Library são nomeados com o sufixo .test.js
dentro de cada aplicação, ou em uma pasta tests/ contendo múltiplos arquivos de teste.
- Executando os Testes
Para rodar os testes, certifique-se de estar na página "frontend" e utilize o comando:
npm run test
- Cobertura de Código
Para gerar um relatório de cobertura de código, certifique-se de estar na página "frontend", e utilize o comando:
npm run test:coverage
- A atualização do banco de dados é feita automaticamente por Cronjob.
- Para testar os componentes do backend, acesse o repositório e clique no componente desejado.