Smart Farming é um site web que visa facilitar o trabalho de monitoramento da estufa inteligente de mesmo nome mantida dentro da FATEC de São José dos Campos.
A aplicação permite fazer o gerenciamento (adição, edição e deleção) dos dados coletados pela estufa, assim como apresenta um dashboard interativo, onde é possível verificar a evolução desses valores ao longo do tempo por meio de gráficos.
Atualmente a estufa é monitorada de maneira arcaica utilizando-se primariamente de arquivos do tipo CSV para registrar e armazenar informações a partir dos dados coletados pelos sensores da estufa, assim como as informações obtidas de um Google Forms para realizar o check-list, isto é, uma lista de itens que servem para validar os dados obtidos por esses sensores.
Os dados colhidos pelos sensores são armazenados em um cartão microSD. Para fazer o registro desses dados em um arquivo CSV é preciso retirar o cartão, o que acaba não se tornando prático e até perigoso em virtude da fragilidade dessa peça. Para evitar isso, atualmente o cliente converte os dados contidos nesse cartão em um único arquivo CSV de forma automatizada, porém o backup desse arquivo acaba utilizando espaço de armazenamento desnecessário. Além disso, para verificar que esses dados estão de fato sendo registrados, o cliente necessita ficar fisicamente presente dentro da FATEC, o que nem sempre é possível.
Para fazer a análise de dados a fim de obter insights e reduzir potenciais problemas com relação ao andamento da estufa são constrúidos gráficos no Excel a partir dos arquivos CSV, porém não são tão interativos e são de difícil manutenção.
Posto o problema do cliente analisado, cabe a aplicação registrar esses dados de forma automatizada e exibi-las, tanto em forma de tabela, quanto de gráfico, bem como ter as funcionalidades de adicionar, editar e deletar esses registros, em que apenas um usuário com permissão (administrador) poderá fazer esse tipo de gerenciamento, bastando apenas que ele acesse o sitema via e-mail e senha. Além disso, o site em questão deve ser acessível em qualquer lugar e aberto a todo público, como também ressaltar o andamento da estufa com base nos dados que venham a ser cadastrados no sistema.
Para a confecção do produto foi empregado o framework de metodologia ágil Scrum, que consiste sumariamente dividir o desenvolvimento do projeto em Sprints, um conjunto de tarefas que devem ser executadas e desenvolvidas em um período pré-definido de tempo. Além disso, foi definido o Backlog do Produto, que são todas as funcionalidades que o software deverá ter com base nos requisitos levantados com o cliente. Uma vez aprovado por ele, para selecionar quais seriam as entregas das Sprints do projeto, primeiro foi definido o MVP de cada Sprint, que é uma versão do produto que prioriza as tarefas que trazem maior entrega de valor para o cliente. Então, a partir disso o Backlog do Produto foi dividido em 4 Backlog de Sprint.
mvp-1.mp4
mvp-2.mp4
mvp-3.mp4
mvp-4.mp4
Requisito | História de usuário | Prioridade | Estimativa |
---|---|---|---|
Cadastro de dados dos sensores via arquivo CSV. | Como administrador, quero fazer o upload de dados coletados pelos sensores contidos em um arquivo CSV para armazená-los no sistema. | ALTA | 3 |
Geração de gráfico dos dados de sensores. | Como mantenedor da estufa, quero que o sistema gere um gráfico de linha referente os dados coletados pelos sensores com relação a um período de dias a fim de facilitar minha análise acerca do andamento da estufa ao longo do tempo. | ALTA | 8 |
Cadastro automatizado dos dados coletados pelos sensores. | Como mantenedor da estufa, quero que o sistema consiga receber os dados inseridos no cartão microSD de forma automatizada para que eu não tenha que ficar retirando o cartão microSD para fazer o registro dos dados contidos nele. | ALTA | 13 |
Cadastro de dados de check-list via arquivo CSV. | Como administrador, quero fazer o upload de dados de check-list contidos em um arquivo CSV no sistema para armazená-los de forma mais segura. | ALTA | 3 |
Geração de gráficos acerca dos dados de check-list. | Como mantenedor da estufa, quero que o sistema gere gráficos referente os dados de check-list com relação a um período de dias a fim de facilitar a comparação com os dados coletados pelos sensores. | ALTA | 8 |
Cadastro de dados de check-list via formulário. | Como administrador, quero poder fazer o cadastro de dados de check-list via formulário para mantê-los salvos dentro do sistema. | ALTA | 5 |
Tabelas de registros. | Como mantenedor da estufa, quero visualizar os registros tanto referente aos dados coletados pelos sensores quanto ao check-list em respectivas tabelas a fim de que eu possa visualizar esses dados de forma escrita. | ALTA | 5 |
Usuário administrador. | Como mantenedor da estufa, quero que haja um usuário administrador pré-cadastrado para gerenciar o sistema para que nem todos os usuários que venham a acessar o site possam adicionar, editar ou deletar os dados cadastrados. | ALTA | 2 |
Edição de registros. | Como administrador, quero poder editar as informações de um registro para corrigir eventuais erros de cadastro. | ALTA | 5 |
Login. | Como administrador, quero que haja a funcionalidade de login via e-mail e senha para que apenas eu possa acessar os recursos do sistema que estão disponíveis para o usuário administrador. | ALTA | 8 |
Listagem de plantas. | Como mantenedor da estufa, quero poder ver todas as plantas cadastrados no sistema. | ALTA | 2 |
Cadastro de plantas. | Como administrador, quero poder cadastrar uma planta para que eu possa associá-la a um registro de check-list ou um registro (dos sensores ou check-list). | ALTA | 2 |
Edição de planta. | Como administrador, quero poder editar o nome de uma planta para que eu corrija enventuais erros de digitação. | ALTA | 2 |
Filtragem de dados nos gráficos dos dados coletados pelos sensores por período de dias. | Como mantenedor da estufa, quero poder filtrar os dados dos sensores exibidos pelos gráficos para determinados períodos de dias a fim de que eu possa acompanhar a evolução desses valores em diferentes faixas de tempo. | MÉDIA | 5 |
Filtragem de dados nos gráficos dos dados de check-list por período de dias. | Como mantenedor da estufa, quero poder filtrar os dados de checklist exibidos pelos gráficos para determinados períodos de dias a fim de que eu possa acompanhar a evolução desses valores em diferentes faixas de tempo. | MÉDIA | 5 |
Filtragem de registros nas tabelas por datas. | Como mantenedor da estufa, quero pode filtrar registros exibidos nas tabelas por período compreendido entre duas datas. | MÉDIA | 5 |
Paginação de registros. | Como administrador, quero que as tabelas possuem páginas onde cada página tenha no máximo 20 registros a fim de que nem todos os registros cadastrados nos sistema sejam exibidos para mim. | MÉDIA | 3 |
Mensagens de alerta. | Como administrador, quero poder se avisado que estou fazendo uma ação que pode afetar o sistema como um todo, como uma deleção de um registro, por exemplo, para eu não cometer equívocos e ter certeza do que eu estou fazendo. | MÉDIA | 5 |
Redefinição de senha. | Como administrador, quero poder recuperar minha senha caso eu a esqueça para que eu não perca acesso total ao sistema. | MÉDIA | 8 |
Responsividade. | Como mantenedor da estufa, quero que o site seja responsivo para que eu possa usá-lo por qualquer tipo de dispositivo. | MÉDIA | 8 |
Mensagens de erro. | Como mantenedor da estufa, quero que o sistema exiba mensagens quando alguma ação minha não for realizada com sucesso para que eu tenha consciência de fato que algo ocorreu de errado. | MÉDIA | 3 |
Cadastro de planta. | Como administrador quero poder cadastrar uma planta para associá-la a um registro referente aos dados coletados pelos sensores para então o mantenedor da estufa saber quais registros são associados a quais plantas. | MÉDIA | 5 |
Cálculo de média dos dados coletados pelos sensores. | Como mantenedor da estufa, quero que o sistema calcule a média de cada dado coletado pelo sensores ao longo do tempo para que eu possa identificar padrões ou realizar previsões a respeito desses valores. | MÉDIA | 5 |
Exportação de dados dos registros para arquivo CSV. | Como administrador, quero poder exportar os dados dos registros (dos sensores ou check-list) para um arquivo CSV para que eu possa utilizar essa base de dados para outros fins como migração de dados para outro sistema, por exemplo. | BAIXA | 2 |
Backup automatizado dos dados de registros. | Como mantenedor da estufa, quero que o sistema faça backup dos registros (dos sensores ou check-list) para que esses valores sejam recuperados em caso de eventual perda. | BAIXA | 3 |
Exibição do último registro coletado pelos sensores. | Como mantenedor da estufa, quero poder ver o último registro coletado pelos sensores para que eu tenha noção do estado atual da estufa. | BAIXA | 1 |
Cadastro de dados coletados pelos sensores via formulário. | Como administrador, quero poder fazer o cadastro de dados no sistema por meio de um formulário, com o objetivo de fazer o cadastramento de uma forma mais manual caso eu queira. | BAIXA | 2 |
Deleção de planta. | Como administrador, quero poder deletar uma planta para que ela não fique mais registrada no sistema. | BAIXA | 1 |
Persistência de sessão de login. | Como administrador, quero que o sistema persista minha sessão uma vez após feito o login mesmo que o meu navegador feche para que no próximo dia eu não tenha que fazer o procedimento de login novamente. | BAIXA | 1 |
- Docker a incrivel tecnologia de gerenciar containers.
- Git Para você conseguir clonar nosso repositório.
Também é crucial definir as variáveis de ambiente no arquivo .env antes de executar a aplicação. Veja o arquivo .env.example para saber quais variáveis devem ser definidas
- Abra o terminal
# Clone esse repositório
$ git clone https://github.com/CtrI-Alt-Del/smart-farming.git
- Abra o terminal no diretorio no qual você clonou o repositório
# Abra a pasta do arquivo
$ cd /smart-farming
- Finalmente, execute a aplicação
# Suba o docker container
$ docker compose up
Provavelmente a aplicação estará sendo executada em http://localhost:8000