{"id":26351624,"url":"https://github.com/grupo-syntax-squad/tupan","last_synced_at":"2026-02-13T00:36:55.449Z","repository":{"id":256299780,"uuid":"847736906","full_name":"Grupo-Syntax-Squad/Tupan","owner":"Grupo-Syntax-Squad","description":"O projeto tem como objetivo desenvolver um sistema de monitoramento de estações meteorológicas de baixo custo, capaz de receber e armazenar dados de sensores como direção e velocidade do vento, pluviometria, umidade, temperatura e pressão. O sistema gerará relatórios e dashboards com o histórico de leituras e enviará alertas em situações de risco. ","archived":false,"fork":false,"pushed_at":"2024-10-23T11:37:33.000Z","size":5533,"stargazers_count":3,"open_issues_count":10,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-10-24T10:05:03.115Z","etag":null,"topics":["4dsm","django","fatec-sjc","nextjs","postgresql","python","redis","scrum","tailwindcss","typescript","web","wheather","wheather-analysis"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Grupo-Syntax-Squad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-26T12:59:11.000Z","updated_at":"2024-10-22T00:39:12.000Z","dependencies_parsed_at":"2024-09-16T13:00:52.635Z","dependency_job_id":"c6a1d537-4c96-4ac0-9159-8121818ca0e9","html_url":"https://github.com/Grupo-Syntax-Squad/Tupan","commit_stats":null,"previous_names":["grupo-syntax-squad/tupan"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Grupo-Syntax-Squad%2FTupan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Grupo-Syntax-Squad%2FTupan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Grupo-Syntax-Squad%2FTupan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Grupo-Syntax-Squad%2FTupan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Grupo-Syntax-Squad","download_url":"https://codeload.github.com/Grupo-Syntax-Squad/Tupan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243858891,"owners_count":20359257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["4dsm","django","fatec-sjc","nextjs","postgresql","python","redis","scrum","tailwindcss","typescript","web","wheather","wheather-analysis"],"created_at":"2025-03-16T10:33:33.559Z","updated_at":"2026-02-13T00:36:50.429Z","avatar_url":"https://github.com/Grupo-Syntax-Squad.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":" ![tupanbanner](/documents/img/Banner.PNG)\n\n\u003cbr\u003e\n  \n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#objetivo\"\u003eObjetivo do Projeto \u003c/a\u003e  |\n  \u003ca href=\"#visão\"\u003eVisão do Produto \u003c/a\u003e  |\n  \u003ca href=\"#metodologia\"\u003eMetodologia \u003c/a\u003e  |\n  \u003ca href=\"#tecnologias\"\u003eTecnologias \u003c/a\u003e  |\n  \u003ca href=\"#mvp\"\u003eMVP\u003c/a\u003e  |\n  \u003ca href=\"#sprints\"\u003eSprints\u003c/a\u003e  |\n  \u003ca href=\"#backlogArtefatos\"\u003eBacklog \u0026 Artefatos\u003c/a\u003e  | \n  \u003ca href=\"#rastreamentoRequisitos\"\u003eRastreamento de Requisitos\u003c/a\u003e  | \n  \u003ca href=\"#autores\"\u003eAutores\u003c/a\u003e  \n\u003c/p\u003e\n\n\u003c/br\u003e\n\n\u003cspan id=\"objetivo\"\u003e\n  \n## 📌Objetivo do Projeto\n\u003e [!IMPORTANT]\n\u003e O objetivo do projeto é desenvolver um sistema para monitoramento de estação meteorológica de baixo custo. Este sistema deve fornecer as medidas enviadas por sensores como: direção e velocidade do vento, índice pluviométrico, umidade, temperatura e pressão. Todo o histórico de dados enviados pela estação meteorológica devem ser armazenados pelo sistema, possibilitando a geração de relatórios e dashboards que informem o período e leituras realizadas. O projeto deve também ser capaz de enviar alertas para situações de risco, onde sejam detectadas leituras acima da média conhecida para a região onde a estação meteorológica está instalada. O sistema deve ser capaz de adicionar outros sensores que possam ser instalados nas estações meteorológicas posteriormente. Afim de difundir o conhecimento, o sistema deve fornecer conceitos matemáticos envolvidos nos cálculos dos parâmetros de leitura das estações meteorológicas. \n\n\u003e **Status do Projeto: Concluído ✅**\n\n\n\u003cspan id=\"visão\"\u003e\n  \n## 💡Visão do Produto\n\u003e [!TIP]\n\u003e As estações meteorológicas são um recurso importante fornecendo dados das condições climáticas locais ou regionais. Também são usadas para o monitoramento e portanto, redução de danos, causados por desastres naturais envolvendo condições climáticas severas, como alagamentos, deslizamentos, incêndios e riscos à saúde da população. Com o nosso sistema Tupã, as estações são capazes de fornecer um fluxo periódico de informações sobre as condições climáticas, permitindo um monitoramento com mais acurácia. A capacidade de envio de alertas para a população e órgãos públicos, dá uma capacidade de tomada de decisão mais precisa e com maior tempo hábil para medidas necessárias em caso de condições adversas que coloquem a segurança pública em risco. O nosso sistema também permite gerar um histórico para acompanhar as condições meteorológicas locais, gerando dados que podem dar informações valiosas sobre o impacto do clima ou mudanças climáticas.\n\n\u003cspan id=\"metodologia\"\u003e\n  \n## 📚Metodologia\nO framework de Metodologia Ágil utilizado no produto foi o Scrum, um método ágil adaptativo, iterativo, flexível e eficaz. Entre as ferramentas utilizadas no Scrum, uma é a divisão do projeto em **Sprints**. Para selecionar quais seriam as entregas das nossas Sprints, primeiro definimos nosso **MVP**, priorizando as tarefas que trariam maior entrega de valor para o cliente. Então, a partir das Tarefas foi construído o **Backlog do Produto**,  o qual foi aprovado pelo cliente e dividido em 4 Backlog de Sprint.\n\nDessa forma, com as Tarefas já traçadas, definimos a quantidade de tempo necessário para cada Tarefa, sendo dividido, de maneira mais otimizada, entre os Desenvolvedores do time.\n\n\u003cspan id=\"tecnologias\"\u003e\n  \n## 🔌**Tecnologias**\n\u003e [!NOTE]\n\u003e Estas foram as tecnologias utilizadas no desenvolvimento do projeto:\n\n\u003ch4 align=\"left\"\u003e\n \u003ca href=\"https://www.typescriptlang.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-2f74c0?style=for-the-badge\u0026logo=TypeScript\u0026logoColor=white\" alt ='TypeScript'target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://nextjs.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Next-black?style=for-the-badge\u0026logo=next.js\u0026logoColor=white\" alt='NextJS' target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.postgresql.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/postgresql-336791.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" alt='PostgreSQL' target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://nodejs.org/pt-br\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-Node-57a746?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\" alt='NodeJS' target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.djangoproject.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/django-0c4b33.svg?style=for-the-badge\u0026logo=django\u0026logoColor=white\" alt='Django' target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://tailwindcss.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/tailwind-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" alt='TailwindCSS' target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.python.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54\" alt='Python' target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.figma.com\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-Figma-%23E4405F?style=for-the-badge\u0026logo=Figma\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.docker.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/docker-1D63ED.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://redis.io/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/redis-%23DD0031.svg?style=for-the-badge\u0026logo=redis\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://azure.microsoft.com/pt-br\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/azure-165BA3.svg?style=for-the-badge\u0026logo=microsoftazure\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://code.visualstudio.com\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-Visual Studio-%2384CE?style=for-the-badge\u0026logo=Visual Studio Code\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.w3schools.com/c/c_intro.php\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge\u0026logo=c\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://www.cypress.io/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-cypress-%23E5E5E5?style=for-the-badge\u0026logo=cypress\u0026logoColor=058a5e\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://jestjs.io/pt-BR/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"https://swagger.io/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n\u003c/h4\u003e\n\u003cbr\u003e\n\n\u003cspan id=\"mvp\"\u003e\n  \n## 🏆**MVP**\n\n![MVP_01](https://github.com/user-attachments/assets/9bedf7e2-557d-47f4-b032-357cedf04959)\n\n\u003cbr\u003e\n\n\n\u003cspan id=\"sprints\"\u003e\n\n## 📅Sprints \n\n### Sprint - 1️⃣ 🎯 ([Clique aqui](https://github.com/Grupo-Syntax-Squad/SkyGuard/tree/sprint-1)) Concluída ☑️\n### Sprint - 2️⃣ 🎯 ([Clique aqui](https://github.com/Grupo-Syntax-Squad/SkyGuard/tree/sprint-2)) Concluída ☑️\n### Sprint - 3️⃣ 🎯 ([Clique aqui](https://github.com/Grupo-Syntax-Squad/SkyGuard/tree/sprint-3)) Concluída ☑️\n### Sprint - 4️⃣ 🎯 ([Clique aqui](https://github.com/Grupo-Syntax-Squad/SkyGuard/tree/sprint-4)) Concluída ☑️\n\n\u003cspan id=\"backlogArtefatos\"\u003e\n  \n\n\n## 👥User Stories\n![user_stories](https://github.com/user-attachments/assets/1391888f-bf38-4bb9-bdb6-d4c8d98a40ff)\n[DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\u003cbr\u003e \n\n## 🌱Backlog do Produto\n![Product_backlog1](https://github.com/Grupo-Syntax-Squad/Tupan/blob/main/documents/img/Product_backlog1.jpg)\n![Product_backlog2](https://github.com/Grupo-Syntax-Squad/Tupan/blob/main/documents/img/Product_backlog2.jpg)\n\n\n\u003cbr\u003e\n\n## 🌱Backlog das Sprints\n![Sprints_Backlog](https://github.com/Grupo-Syntax-Squad/Tupan/blob/main/documents/img/Sprints_Backlog.jpg)\n\n\u003cbr\u003e\n\n## 🧱Modelo de Dados\n\u003cp align=\"center\"\u003e\n \n![imagem nodelo de dados](https://github.com/user-attachments/assets/83ba0c5a-e619-4406-925e-202057ebfc24)\n\n\n\n\u003cbr\u003e\n\n## 🧱Arquitetura\n![Arquitetura Novo](https://github.com/user-attachments/assets/c8e5fe79-7c48-4cf9-b461-ad70bd1a180b)\n\n\n\n\n\n\u003cspan id=\"rastreamentoRequisitos\"\u003e\n\n\u003cbr\u003e\n\n## 📜 Rasteamento de Requisitos\n\n## Introdução\n\nEste tópico apresenta a organização da documentação do projeto para a rastreabilidade de requisitos. A estrutura permite rastrear os requisitos desde a fase inicial até o desenvolvimento e a entrega, garantindo que cada funcionalidade atenda a um ou mais requisitos funcionais ou não funcionais.\n\n![image](https://github.com/user-attachments/assets/8a1409ac-9788-4e8e-9a62-752008af562d)\n\no rastreamento começa assim que o Poroduct Owner entende quais são as dores do cliente, e com basse nisso define os requisitos do projeto e seus critérios de aceitação, assim como Dor/Dod.\n\napós isso, são criadas as user stories para detalhar melhor cada uma das funcionalidades atende os requisitos do cliente. E é feito o Dod/Dor de cada user story.\n\nA partir desta documentação feita, é possivel criar as issues e tasks de forma claras e com confiabilidade que os critérios sejam entendidos e atingidos pelo time de desenvolvimento.\n\nPara a realização de cada task, é criada pelo desenvolvedor responsavel pela task, uma branch para que todo o rastreamento daquela tarefa esteja centralizado, e  minimizando as chances de haverem problemas de conflito a cada commit. O nome de cada Branch deve seguir o padrão descrito na imagem a seguir.\n\napós a realização da tarefa, é feito o teste unitário para validar as funções ou dados utilizados na funcionalidade.\n\nassim que a tarefa é aprovada nesse teste, o desenvolvedor cria um pull request para que outro integrante do time que não estava diretamente ligado a tarefa analise o código e aprove ou aponte os pontos de melhorias.\n\napós a validação da tarefa individualmente, é feito o teste de integração, para garantir que a tarefa não afetou outras funcionalidades do sistema e é realizado o merge nos casos onde o teste é bem sucedido!\n\n\n## 📜 Tags de Commit\n\u003cdiv align=\"center\"\u003e\n \n![tupanCommits](https://github.com/user-attachments/assets/ad3fe330-df2d-458a-ae70-5f56dbf8f30b)\n\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cspan id=\"rastreamentoRequisitos\"\u003e\n\n\u003cbr\u003e\n\n## Requisito 1: Desenvolvimento de um DataLogger\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve utilizar um DataLogger para realizar a recepção dos dados de uma estação meteorologica e enviar para um banco de dados temporarios, onde  \n\n  **Definition of Done (DOD)**\n- O sistema implementa a recepção de dados a partir do DataLogger a cada 15 minutos e envia esses dados para o banco de dados temporário.\n- O DataLogger é configurável e aceita dados com parâmetros variáveis em quantidade e tipo.\n- As User Stories associadas (US01, US18, US19 e US23) estão implementadas, testadas e revisadas.\n- Os dados recebidos e processados são exibidos corretamente na interface do usuário, conforme os requisitos.\n- O código foi revisado, está documentado e sem erros críticos.\n- Foram realizados testes de unidade e integração para garantir a correta recepção e processamento dos dados.\n- A aplicação está otimizada para lidar com o recebimento de dados sem perda de desempenho ou inconsistências.\n- A documentação técnica e de uso foi atualizada para incluir detalhes sobre a configuração e operação do DataLogger.\n- A funcionalidade foi implantada e validada em um ambiente de produção ou de homologação com dados reais.\n\n**Definition of Ready (DOR)**\n\n- Os critérios de aceitação para o DataLogger foram definidos e estão claros para toda a equipe.\n- Todas as dependências técnicas, como especificações de API e integração com o banco de dados, foram documentadas e revisadas.\n- O design de como os dados serão exibidos na interface está aprovado.\n- As User Stories estão detalhadas e priorizadas para o desenvolvimento.\n- Os ambientes de desenvolvimento e teste estão configurados e prontos para a implementação do DataLogger.\n- A arquitetura da solução foi revisada, e os requisitos de desempenho e segurança foram especificados.\n- Todos os recursos necessários, incluindo bibliotecas ou componentes de hardware, estão disponíveis.\n- As dependências entre este requisito e outras funcionalidades foram mapeadas e discutidas.\n\n  **Critérios de Aceitação:**\n  - O DataLogger deve ser flexivel, aceitando dados com parametros e a quantidade dos mesmos variaveis.\n  - Deve fazer a recepção dos dados a cada 15 minutos.\n\n  **User Story's ligadas ao requisito**\n  ![image](https://github.com/user-attachments/assets/1eda5ddc-2b4f-4b11-b21d-26088101324e)\n  ![image](https://github.com/user-attachments/assets/6bae0a31-b6a1-41b6-8b02-e0fc757018b0)\n  ![image](https://github.com/user-attachments/assets/b78e5aa0-b42c-4cc7-b3ce-63b802f00cc6)\n  [DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\n  **Issue ligada ao requisito**\n  - [Issue - #46 Task - BackEnd - criação do DataLogger](https://github.com/Grupo-Syntax-Squad/Tupan/issues/46)\n\n  **Branch ligada ao requisito**\n  - [Branch - 46-func/criação do DataLogger](https://github.com/Grupo-Syntax-Squad/Tupan-Consumer/tree/46-func/criação-do-dataLogger)\n\n\n\u003c/details\u003e\n\n### Requisito 2: Montagem de uma Estação Meteorológica\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve permitir que independente de como foi feita a montagem de uma estação meteorológica, os dados  e parametros da mesma, podem ser inseridos em tempo real.\n\n**Definition of Done (DOD)**\n\n- O sistema permite o cadastro, atualização e exclusão de estações meteorológicas.\n- Os dados das estações, como nome, local (CEP, latitude e longitude), parâmetros de medição e status (ativo/inativo), são salvos corretamente no banco de dados.\n- A funcionalidade para coletar dados meteorológicos em tempo real (temperatura, umidade, pressão atmosférica, velocidade do vento, etc.) está integrada e operacional.\n- Todas as User Stories associadas foram implementadas, testadas e passaram nos testes unitários e de aceitação.\n- O código está revisado, sem erros críticos, e documentado conforme os padrões do projeto.\n- O frontend está implementado e visualmente validado para exibir informações de forma clara e correta.\n- Testes de integração e automação foram realizados para verificar a comunicação entre o frontend e o backend.\n- Todos os cenários críticos foram testados, incluindo a manipulação de falhas de rede e a precisão dos dados meteorológicos.\n- A documentação do sistema foi atualizada com detalhes das funcionalidades e instruções de uso.\n- A aplicação foi implantada em ambiente de produção e validada com dados reais.\n\n**Definition of Ready (DOR)**\n\n- Os critérios de aceitação estão claramente definidos e compreendidos por todos os membros da equipe.\n- As User Stories estão definadas, completas e priorizadas, prontas para serem implementadas.\n- Os requisitos funcionais e não funcionais foram especificados (incluindo desempenho e segurança).\n- O design da interface de usuário para a funcionalidade foi aprovado e está disponível.\n- Todos os detalhes técnicos necessários, como especificações da API e esquemas de banco de dados, foram definidos.\n- Os ambientes de desenvolvimento e teste estão configurados e prontos para receber novas funcionalidades.\n- A arquitetura da solução foi revisada para garantir que suporta os novos requisitos.\n- Todos os recursos e permissões necessários foram garantidos para a execução da tarefa.\n  \n  **User Stories ligadas ao requisito**\n![image](https://github.com/user-attachments/assets/c07917c5-b2ff-4007-a515-42c2f3a9b04c)\n![image](https://github.com/user-attachments/assets/7630f5fb-10f3-47b7-b270-738f0a44d5c8)\n[DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\n\n  **Issue ligada ao requisito**\n  - [ #16-estações-front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/16)\n\n\u003c/details\u003e\n\n### Requisito 3: CRUD Estações, Parâmetros, Alertas e Usuários\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve permitir operações de CRUD para estações, parâmetros, alertas e usuários.\n\n  **Definition of Done (DOD)**\n\n- As operações CRUD (Criar, Ler, Atualizar, Deletar) estão implementadas e funcionam corretamente para estações, parâmetros, alertas e usuários.\n- As User Stories (US01, US02, etc.) associadas ao requisito estão implementadas e passaram por testes unitários e de aceitação.\n- Todos os dados estão sendo corretamente validados antes de serem enviados ou processados no sistema.\n- A interface do usuário exibe corretamente os dados de CRUD e oferece feedback apropriado para cada operação.\n- Foram realizados testes de usabilidade para garantir uma experiência amigável.\n- O código passou por revisão e está sem erros críticos ou vulnerabilidades conhecidas.\n- Foram implementadas medidas de segurança para proteger os dados dos usuários.\n- A aplicação foi testada em ambientes diferentes para garantir a consistência e o desempenho esperado.\n- A documentação foi atualizada para incluir as operações CRUD e as permissões associadas.\n- A funcionalidade foi implantada e validada em produção, com todos os casos de uso operacionais.\n\n**Definition of Ready (DOR)**\n\n- Os critérios de aceitação foram claramente definidos e compreendidos por toda a equipe.\n- Todas as User Stories relacionadas ao CRUD estão detalhadas, priorizadas e com dependências resolvidas.\n- Os requisitos técnicos, como endpoints de API e modelos de banco de dados, foram especificados.\n- O design da interface de usuário foi aprovado e está disponível para a equipe de desenvolvimento.\n- As dependências externas foram identificadas e estão prontas para uso.\n- O ambiente de desenvolvimento e testes está configurado e acessível à equipe.\n- A equipe tem acesso a exemplos de dados e à documentação técnica necessária para a implementação.\n- As permissões de acesso ao repositório e outras ferramentas estão garantidas.\n- As condições e restrições de segurança foram revisadas e aprovadas.\n- O backlog foi atualizado, e a equipe de desenvolvimento está alocada para trabalhar nesse requisito.\n\n  **Critérios de Aceitação:**\n  - Deve ser possível criar, ler, atualizar e deletar estações e seus parâmetros.\n  \n  **User Stories ligadas ao requisito**\n  - [user stories de 1 à 15](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n  - [DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\n\n\n  **Issue ligada ao requisito**\n  - [#2-Parâmetros - Front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/2)\n  - [#5-Alertas / Histórico Alertas / Medição - Back](https://github.com/Grupo-Syntax-Squad/Tupan/issues/5)\n  - [#12-Parâmetros / Estações - Back](https://github.com/Grupo-Syntax-Squad/Tupan/issues/12)\n  - [#15-Usuários - Front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/15)\n  - [#16-Estações - Front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/16)\n  - [#17-Alertas - Front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/17)\n\n\n\n\u003c/details\u003e\n\n### Requisito 4: Recepção dos Dados das Estações Meteorológicas\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve ser capaz de receber e processar os dados coletados pelas estações meteorológicas.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - O sistema deve conseguir receber e processar os dados de diferentes fontes meteorológicas.\n\n  **User Stories ligadas ao requisito**\n  - ![image](https://github.com/user-attachments/assets/9c794538-81d5-4c28-8b4b-06df18e46e5f)\n  - [DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\n\n  **Issue ligada ao requisito**\n  - [#39- func - Criação do serviço de recepção dos dados das estações](https://github.com/Grupo-Syntax-Squad/Tupan-Consumer/tree/39-func/criacao-do-servico-de-recepcao-dos-dados-das-estacoes)\n\n\u003c/details\u003e\n\n### Requisito 5: Dashboard para Visualização dos Parâmetros Meteorológicos\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve fornecer um dashboard para visualizar os parâmetros meteorológicos coletados, facilitando a  consulta de dados.\n\n  **Prioridade:** Média\n\n  **Critérios de Aceitação:**\n  - O usuário deve ser capaz de visualizar os parâmetros meteorológicos em gráficos interativos, podendo assim filtrar dados como parametros e datas.\n\n  **User Stories ligadas ao requisito**\n- ![image](https://github.com/user-attachments/assets/3d5d6852-3147-444c-836f-f81d68f1815c)\n- [DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\n  **Issue ligada ao requisito**\n  - [#44- Recepção das Medições e exibição nos gráficos](https://github.com/Grupo-Syntax-Squad/Tupan/issues/44)\n\n\n\u003c/details\u003e\n\n### Requisito 6: Geração de Alertas\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve ser capaz de gerar alertas com base em uma analise nos parâmetros coletados em relação a parametros pré estabelecidos pelo cliente.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - O sistema deve gerar alertas automaticamente quando determinados parâmetros forem atingidos.\n\n  **User Stories ligadas ao requisito**\n- ![image](https://github.com/user-attachments/assets/fc501498-2fdc-46b6-83f8-48341383a09a)\n- ![image](https://github.com/user-attachments/assets/a2cdb0dd-cb81-4a11-8cfb-ea3f30c26c28)\n- ![image](https://github.com/user-attachments/assets/47829e0d-cf2a-4b8d-ac89-0363487672e2)\n- [DOD/DOR Das user stories](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's)\n\n\n\n  **Issue ligada ao requisito**\n  - [#55 Observabilidade de Alertas no Front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/55)\n  - [#52 Task - BackEnd - disparo de alertas](https://github.com/Grupo-Syntax-Squad/Tupan/issues/52)\n\n\n\n\u003c/details\u003e\n\n### Requisito 7: Tutorial e Significado de cada Parâmetro Meteorológico\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve fornecer tutoriais que expliquem o significado de cada parâmetro meteorológico e explique como são feitas as medições dos mesmos.\n\n  **Prioridade:** Baixa\n\n  **Critérios de Aceitação:**\n  - O usuário deve ter acesso a explicações detalhadas sobre os parâmetros meteorológicos e como são tratados.\n\n  **User Stories ligadas ao requisito**\n- ![image](https://github.com/user-attachments/assets/36d2c53a-c0f4-4fce-9a29-f2c327ce8e01)\n\n  **Issue ligada ao requisito**\n  - [#31 Educacional - Front](https://github.com/Grupo-Syntax-Squad/Tupan/issues/31)\n\n\u003c/details\u003e\n\n## Requisitos Não Funcionais\n\n### Requisito 8: UX dos Dashboards\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** A interface do dashboard deve ser intuitiva e de fácil uso.\n\n  **Prioridade:** Média\n\n  **Critérios de Aceitação:**\n  - O design do dashboard deve ser responsivo e otimizado para dispositivos móveis.\n\n\u003c/details\u003e\n\n### Requisito 9: Documentação\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve ter documentação clara e acessível para todos os desenvolvedores e usuários.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - A documentação deve cobrir todas as funcionalidades principais e como utilizá-las.\n\n  **Issue ligada ao requisito**\n  - [57# rastreabilidade de requisitos - Devops](https://github.com/Grupo-Syntax-Squad/Tupan/issues/57)\n  - [32# docs - documentacao de projeto](https://github.com/Grupo-Syntax-Squad/Tupan/issues/32)\n\n\n\n\u003c/details\u003e\n\n### Requisito 10: Pipeline de IC\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve ter um pipeline de integração contínua para automatizar testes e deploy.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - O pipeline deve executar testes automaticamente para cada commit.\n\n  **User Stories ligadas ao requisito**\n  - [user stories 27, 28, 29](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us27-testes-unit%C3%A1rios-no-front-end)\n\n  **Issue ligada ao requisito**\n  - [#54 Teste de integração dos módulos de usuário](https://github.com/Grupo-Syntax-Squad/Tupan/issues/54)\n  - [#49 Devops - Testes unitários](https://github.com/Grupo-Syntax-Squad/Tupan/issues/49)\n  - [#42 Setup do ambiente de produção](https://github.com/Grupo-Syntax-Squad/Tupan/issues/42)\n  - [#53 Configurar Teste Unitário](https://github.com/Grupo-Syntax-Squad/Tupan/issues/53)\n  - [#48 FrontEnd - configurar testes unitarios](https://github.com/Grupo-Syntax-Squad/Tupan/issues/48)\n\n\n\n\u003c/details\u003e\n\n### Requisito 11: Deploy Automático\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  **Descrição:** O sistema deve realizar o deploy automático sempre que uma nova versão for aprovada.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - O deploy automático deve ser acionado após a aprovação do código no pipeline de IC.\n\n  **User Stories ligadas ao requisito**\n  - [US26: Deploy Automático](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us26-deploy-autom%C3%A1tico)\n\n  **Issue ligada ao requisito**\n  - (Adicionar link da issue aqui)\n\n\u003c/details\u003e\n\n### Requisito 12: Testes Automatizados\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n  \n  \n  **Descrição:** O sistema deve ter testes automatizados implementados para garantir a qualidade e a estabilidade das funcionalidades.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - Testes de unidade devem validar funcionalidades críticas do sistema.\n  - Testes de integração devem garantir que os principais fluxos funcionam conforme esperado.\n\n  **User Stories ligadas ao requisito**\n  - [US27: Testes Unitários no Front-End](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us27-testes-unit%C3%A1rios-no-front-end)\n  - [US28: Testes de Integração no Front-End](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us28-testes-de-integra%C3%A7%C3%A3o-no-front-end)\n  - [US29: Testes Unitários no Back-End](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us29-testes-unit%C3%A1rios-no-back-end)\n  - [US30: Testes de Integração no Back-End](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us30-testes-de-integra%C3%A7%C3%A3o-no-back-end)\n\n  **Issue ligada ao requisito**\n  - [FrontEnd - configurar testes unitarios#48](https://github.com/Grupo-Syntax-Squad/Tupan/issues/48)\n  - [Devops - Testes unitários#49](https://github.com/Grupo-Syntax-Squad/Tupan/issues/49)\n  - [Configurar Teste Unitário#53](https://github.com/Grupo-Syntax-Squad/Tupan/issues/53)\n\n\n\u003c/details\u003e\n\n### Requisito 13: Manual de Usuário\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n\n  **Descrição:** O sistema deve fornecer um manual de usuário que cubra todas as funcionalidades e permita ao usuário aprender a usar a aplicação de forma intuitiva.\n\n  **Prioridade:** Alta\n\n  **Critérios de Aceitação:**\n  - O manual deve conter instruções detalhadas sobre o uso de todas as funcionalidades.\n  - O conteúdo deve incluir imagens ou capturas de tela para facilitar o entendimento.\n  - O manual deve estar acessível online em formato digital a qualquer momento.\n  - O manual deve estar em conformidade com os padrões de clareza e linguagem.\n\n  **User Stories ligadas ao requisito**\n  - ([US25: Informações](https://github.com/Grupo-Syntax-Squad/Tupan/wiki/09%E2%80%90-User-Story's#us25-informa%C3%A7%C3%B5es))\n\n  **Issue ligada ao requisito**\n  - (Adicionar link da issue aqui)\n\n\n\n\u003c/details\u003e\n\n### Requisito 14: Geração de Relatórios\n\u003cdetails\u003e\n  \u003csummary\u003eDetalhes do Requisito\u003c/summary\u003e\n\n  **Descrição:** O sistema deve ser capaz de gerar relatórios com dados relevantes de forma eficiente, permitindo ao usuário personalizar a geração dos relatórios.\n\n  **Prioridade:** Média\n\n  **Critérios de Aceitação:**\n  - Relatórios devem incluir dados organizados conforme especificado.\n  - Relatórios devem ser gerados em formatos como Excel.\n  - O usuário deve poder selecionar filtros ou parâmetros para personalizar os relatórios.\n  - Relatórios devem ser gerados de maneira eficiente, com um tempo de resposta inferior a 10 segundos para grandes conjuntos de dados.\n\n  **User Stories ligadas ao requisito**\n  - (Adicionar links das user stories aqui)\n\n  **Issue ligada ao requisito**\n  - (Adicionar link da issue aqui)\n\n\u003c/details\u003e\n\n\n\u003cbr\u003e\n\n## 👨‍💻**Autores** \n\n|      Nome      |    Função       |                            Github                             |                           Linkedin                           |\n| :--------------: | :-----------: | :----------------------------------------------------------: | :----------------------------------------------------------: |\n| Mateus Henrique Lima dos Reis | Product Owner | \u003ca href=\"https://github.com/mhlreis\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \u003ca href=\"https://br.linkedin.com/in/mhlreis\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e\n| Diego Dias Motta Boa Sorte | Scrum Master | \u003ca href=\"https://github.com/diegoboasorte\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \u003ca href=\"https://www.linkedin.com/in/diegoboasorte\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e |\n| Gabriel de Oliveira Silva Reis    | Desenvolvedor | \u003ca href=\"https://github.com/b4hia\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \u003ca href=\"https://www.linkedin.com/in/b4hia/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e |\n| Gabriel Felipe dos Santos  | Desenvolvedor | \u003ca href=\"https://github.com/gabrielfsantos99\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \n| Iago Cardoso Souza  | Desenvolvedor | \u003ca href=\"https://github.com/iagocpv\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e |\n| João Vitor dos Santos Pereira  | Desenvolvedor | \u003ca href=\"https://github.com/JaovitoP\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \u003ca href=\"https://www.linkedin.com/in/joaopereira18/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e |\n| Ryan Verissimo de Araujo     | Desenvolvedor | \u003ca href=\"https://github.com/ryandaraujo\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \u003ca href=\"https://www.linkedin.com/in/ryan-verissimo-de-araujo-910925239/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e |\n| Wellington Luiz de Faria   | Desenvolvedor | \u003ca href=\"https://github.com/WellingtonLFaria\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e | \u003ca href=\"https://br.linkedin.com/in/wellington-luiz-de-faria-92007425b\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\"\u003e\u003c/a\u003e |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrupo-syntax-squad%2Ftupan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrupo-syntax-squad%2Ftupan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrupo-syntax-squad%2Ftupan/lists"}