Skip to content

Latest commit

 

History

History
389 lines (338 loc) · 20.3 KB

README.md

File metadata and controls

389 lines (338 loc) · 20.3 KB
Smart Farming

Visão geral do produto 🖥️

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.


Tecnologias 🛠️

HTML HTML CSS CSS Figma Figma TypeScript TailwindCSS ApexCharts ApexCharts Python Python JavaScript JavaScript MySQL MySQL Flask Flask Docker Docker HTMX HTMX HyperScript HyperScript

Problema do cliente 👔

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.


Objetivo do produto 🎯

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.


Metodologia empregada 💡

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'S 🏆

Sprint - 1️⃣

mvp-1.mp4

Sprint - 2️⃣

mvp-2.mp4

Sprint - 3️⃣

mvp-3.mp4

Sprint - 4️⃣

mvp-4.mp4

Backlog do produto 📖

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

Relatório e detalhes de cada Sprint 📅

Como usar a aplicação localmente? 🚀

🔧 Pré requisitos

  • 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

Usando a aplicação 📟

  • 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


Time de Desenvolvimento 👷🏻

Foto Nome Função Github Linkedin
Joao Pedro Carvalho Product Owner
Kauan Fonseca do Vale Scrum Master
Thiago Martins Scrum Team
Rafael dos Santos Scrum Team
Gabriel Oliveira Scrum Team
Joao Gabriel Oliveira Scrum Team