Instruções para execução do projeto
Estutura de pastas
O repositório está organizado da seguinte forma:
.
├── docs
├── README.md
├── src
├── .github
└── tests
- docs: Diretório que contem todos os arquivos referentes à documentação do projeto.
- src: Contem todos os arquivos relacionados com o código fonte da solução
- tests: Armazena testes automatizados da solução
- .github: Contem o fluxo de integração contínua do repositório
Pré-requisitos
As seguintes ferramentas são necessárias para rodar o projeto sem problemas
Lançando a aplicação
Para utilizar os módulos:
1. Clone o repositório, se ainda não o tiver feito:
git clone https://github.com/Inteli-College/2024-T0002-EC09-G01.git
2. Entre no diretório src:
cd src
3. Preparando o broker:
Para rodar a solução on-premise, dá-se a possibilidade de configurar um broker local com o mosquitto. Para isso, deve-se instalar:
sudo apt-get install mosquitto mosquitto-clients
Após isso, entrar na pasta de configuração e rodar o broker:
cd config
mosquitto -c mosquito.conf
Para rodar a solução com um cluster próprio, deve-se alterar o arquivo de variáveis de ambiente para conter as informações do broker desejado e autenticação.
4. Rodando o simulador de sensores:
cd src/cmd
go run simulation.go
5. Rodando o Subscriber para adicionar as informações ao banco de dados:
cd src/database
go run database.go
Testes
Para garantir a funcionalidade da solução, foram criados testes automatizados que aferem a qualidade das funcionalidades. Cada pacote epropostasstá acompanhado de um arquivo de teste que indica o tempo de execução de algumas funções, bem como se os testes foram ou não bem sucedidos.
| Recurso | Testes Desenvolvidos | Status | Nome do Arquivo |
|---|---|---|---|
| Publisher |
| ✅ Sucesso | publisher_test.go |
| Subscriber | Teste de Subscrição em um tópico | ✅ Sucesso | subscriber_test.go |
| Client | Criação de um cliente com conexão com um Broker | ✅ Sucesso | client_test.go |
Como rodar os testes
- Entre no diretório do pacote que deseja testar
- Rode o comando de teste do Go
Exemplo com o pacote Publisher:
cd src/tests
go test
Observações
- Existem planos para dockerizar a solução no futuro. 🐋
- Apenas a execução da solução em Go foi demonstrada, uma vez que pretendemos seguir com o desenvolvimento utilizando esta ferramenta, apesar de existirem códigos em Python.