proepidesenvolvimento / guardioes-api Goto Github PK
View Code? Open in Web Editor NEWAPI for app "Guardiões da Saúde"
License: Apache License 2.0
API for app "Guardiões da Saúde"
License: Apache License 2.0
Descrição (Como usuário gerente de algum grupo, eu quero poder cadastrar meus grupos para para que os usuários pertencetes a ele possam reportar e me trazer insights?)
Critérios de aceite
Manager
;Manager
deve ser autenticável, assim como User
e Admin
que já existem na API ;Descrição
A aplicação vai possuir dois tipo de managers, um para cuidar de instituição (group_manager) e um para cuidar e conteúdo como sindromes, sintomas, usuários, porcentagens e outros, este chamado manager.
A arquitetura atual possui um manager que deve ser renomaeado para group_manager e depois deve ser feito o manager.
Critérios de aceitação
manager
, como explicado acima.group_manager
, como explicado acima.Descrição
Acrescentar o campo de UF para que seja possível adicionar a unidade de federação a que a instituição está localizada.
Essa alteração também é necessária para o funcionamento do feature descrito na Issue #58 do repositório guardioes-app.
Critérios de aceite
Descrição
Alguns reportes estão saindo com a data errada pois o fuso horário da API não está de acordo com o fuso horário de Brasília.
Descrição
Como USUARIO, preciso de um acesso mais rápido ao dashboard.
Como PO, preciso diminuir os custos dos servidores.
Hipóteses
A priori, um dos possíveis gargalos para a alta latência de resposta parece ser a query que retorna os pinos no mapa. Outras possibilidades também não estão descartadas. Por isso, o primeiro passo dessa issue é testar e documentar testes de hipóteses à respeito desses gargalos.
Possíveis soluções
Soluções que independem da fonte do problema:
Caso o gargalo se confirme sendo o mapa:
Critérios de aceitação
Descrição
Ao resetar a senha por código no email, ela não é alterada.
Passo a Passo
Passo a passo para se reproduzir o bug:
Comportamento Esperado
A senha deve ser alterada para a senha escolhida.
Estudei os end
Descrição
Adicionar campos de cidade, estado , país de residencia, número de identificação, grupo de risco e instituição.
Precisamos de um forma de subir um ambiente de staging para testarmos as features da API
Buscar soluções para conseguir enviar emails sem uso da API de Terceiros.
Atualmente é usada a API do SendGrid para emails de redefinição de senha, porem ela possui um elevado custo monetário.
Critérios de Aceite
Observar os métodos Create e caso for possível torna-lo assícrono, por meio de jobs , como no tópico The delivery of the response has unnecessary dependencies .
A avaliação se há ou não possibilidade de torna-lo assícrono deve ser levado em conta principalmente as necessidades do App.
Critérios de aceite
Descrição
Quando se cria uma sindrome com sintomas ainda não criados no DB o atributo code dele vai duplicado.
Passo a Passo
Passo a passo para se reproduzir o bug:
1 - Enviar essa request para sindromes diferentes mas com mesmos sintomas
curl --location --request POST 'localhost:3001/syndromes' \
--header 'Accept: application/vnd.api+json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwic2NwIjoiYWRtaW4iLCJhdWQiOm51bGwsImlhdCI6MTU5MzgwOTYzMSwiZXhwIjoxNTk2NDM5Mzc3LCJqdGkiOiI3ZTcwZGZkNS0xZGI3LTQ0ODUtYjZkMy1kZTRkZjNlMTIwYzkifQ.NVx5sNDcmWXJ5mVbUoiwsrYqcTMOrZZLVWZTRkVRHb0' \
--data-raw '{
"syndrome": {
"description": "Síndrome Gripal",
"details": "Detalhes sindrome gripal",
"symptom": [
{
"description": "Dificuldade para Respirar",
"code": "DificuldadeParaRespirar",
"priority": 1,
"details": "Dificuldade Para Respirar",
"app": {
"id": 1,
"app_name": "Guardioes da Saude",
"owner_country": "Brazil"
}
},
{
"description": "Febre",
"code": "Febre",
"priority": 1,
"details": "Febre",
"app": {
"id": 1,
"app_name": "Guardioes da Saude",
"owner_country": "Brazil"
}
}
],
"message_attributes": {
"title": "Atenção",
"warning_message": "Baseado nos seus sintomas, você se enquadra na definição de caso suspeito de síndrome gripal. É recomendado que você procure atendimento em um serviço de urgência mais próximo. Caso não tenha condições de se deslocar, ligue para o SAMU no número 192. Ao se dirigir a um serviço de urgência, certifique-se de tomar medidas de proteção individual e etiqueta respiratória para si mesmo(a) e para eventuais acompanhantes. Note que isto não é um diagnóstico formal. Este aplicativo não substitui um exame laboratorial e apenas fornece recomendações com base nos seus sintomas.\n\n Fonte: Ministério da Saúde",
"go_to_hospital_message": ""
}
}
}'
2 - Acesse o console do rails e veja os sintomas anexados nas sindromes nas quais o sintoma já tinha sido criado, o atributo code está repetido
Comportamento Esperado
O code deve ser apenas um.
Descrição
É necessário adicionar uma margem da porcentagem para o retorno das síndromes. Por exemplo: apenas retornar sindromes com porcentagem maior ou igual a 20%, para que não aconteça de retornar síndromes com porcentagens muito baixas. Imagino que essa porcentagem deve ser obtida com a equipe da saúde.
Descrição
Para melhorar a nossa cobertura de testes vamos testar gradualmente o código já escrito na aplicação a começar pelas Models.
Devem ser testadas todas as models assim como seus relacionamentos e métodos
Descrição (Como usuário, eu quero quero poder cadastrar meu estado e cidade para eu possa gerar mais insights
Critérios de aceite
state
e city
em Users
;Descrição
Como ADMINISTRADOR de um instituição (empresa, escola, faculdade), quero adicionar minha instituição no sistema de forma que usários possam acessar.
Esta issue é grande e consiste de diversas etapas. Deve-se criar um modelo na API chamado 'Group', que se referencia de forma recursiva de forma a gerar um árvore. Quando um administrador cadastrar sua intituição, ele terá o poder de definir como ele espera que a instituição seja estruturada. Por exemplo, a administração da UnB pode adicionar um grupo de 'campus' e, para cada grupo, 'cursos', isso por uma tabel de excel que será servida à partir do painel de administradores no guardioes web.
Decisões quanto a arquitetura foram tomadas por @gabrieldouurado @RenatoBrittoAraujo @tsrrodrigues @ViniciusPuerto.
Endereço | CEP | Telefone | Codigo | Pais | UF | Municipio | Grupo | Campus | Curso |
---|---|---|---|---|---|---|---|---|---|
rua 34 | 123 | 123 | 1a | Brasil | DF | Asa Norte | UnB | Darcy | Ciência da Computação |
rua 32 | 132 | 124 | 2a | Brasil | DF | Asa Norte | UnB | Darcy | Artes Cênicas |
rua 33 | 111 | 125 | 1b | Brasil | DF | Gama | UnB | FGA | Engenharia de Software |
Critérios de aceite
Brasil/DF/*
para SES-DF ou Brasil/DF/Asa Norte
e Brasil/DF/Gama
para UnB.Descrição
À pedido do Mauro Sanchez e Jonas Brandt, adicionar nas síndromes ponderações de peso para diferentes sintomas de determinada síndrome no valor de predição positiva.
Esses pessoas serão determinados em produção pelo pessoal da saúde.
A nova formula será essa:
Caso esse valor não seja informado, se assume que é 1.
Critérios de aceitação
Descrição
Para deixar a aplicação mais simples de rodar e diminuir potêncial de bugs, cortar dependencias que não estão sendo utilizadas.
Descrição
Descrição do que se trata a issue.
testar o travis
definir stages (etapas) do pipeline de integração continua
Descrição:
Criar uma rota para fazermos o pŕe cadastro de instituições onde o usuário mande os atributos necessários para ser solicitado um cadastro
Tarefas:
Descrição
Adicionar o campo "Grupo de risco" ao household para que seja possível editar ou registrar com esse atributo.
Critérios de aceitação
Description
When a user reports twice in one day they can't report for a holsehold, because the limit applys to the user and the holsehold combined.
Step by step
Step by step to reproduce the bug:
Expect behavior
The user has to be able to report 2 times a day per user/household
Descrição
Implementar sistema de upload de dados sobre sindromes e sintomas.
Tarefas
Síndrome | Sintoma | Porcentagem | Ponderação |
---|---|---|---|
COVID-19 | Diarréia | 0.32 | 0.57 |
COVID-19 | Tosse | 0.93 | 3.1 |
COVID-19 | Febre | 0.92 | 2.8 |
Dengue | Febre | 0.78 | 1.03 |
Critérios de aceitação
Descrição
É necessário criar o CRUD para managers para que se possa usar no painel de gerenciamento no web.
Descrição
A configuração do docker dos serviços web e db estão quebrados.
Passo a Passo
Passo a passo para se reproduzir o bug:
# limpando as imagens
sudo rm -rf ./tmp/
sudo docker stop $(sudo docker ps -q)
sudo docker rmi $(sudo docker images -q) -f
sudo docker-compose build
sudo docker-compose up -d
Comportamento Esperado
API do serviço web e database do serviço db iniciarem. Estou utilizando a branch master do projeto em questão.
Screenshots
compose_log.txt
Exemplo de compontamento após a execução do comando "docker-compose up"
Informações do Desktop:
Descrição (Como usuário, eu quero poder cadastrar algo que me identifique como pertencente a algum grupo para algum tipo de gamificação possa ser garantida?)
Critérios de aceite
identification_code:string
em Users
;Melhorar o agrupamento dos Clusters de modo que sejam apresentados de tamanhos diferentes de acordo com o numero de relatos que ele agreda.
Critério de Aceitação:
Acrescentar dentro do aplicativo uma aba em que seja possível encontrar o email para contatar o suporte.
Esse email precisar ser de acordo com a instituição.
Descrição
A rota de sintomas apenas aceita um token provido de um usuário regular. Caso o token seja de um admin/manager a rota retorna um erro de status 500. É necessário que esses usuários também acessem essas rotas para que o painel de gerenciamento no web se comporte corretamente.
Passo a Passo
Exportar os dados com filtros de instituição. (arquivo .xls on .csv)
Tarefas
Critérios
Adicionar o @(twitter) que será utilizado com fonte de notícias dentro do aplicativo
Criar o Manager na API.
Criar sistemas de permissões para usuários elevados da API.
Tarefas
Revisar localizaçoes erradas ( plano piloto )
Atribuir ao report a cidade certa
Criiitérios
Realizar a filtragem das visualizações de acordo com a instituição.
Critérios de Aceitação:
Descrição
O modelo de documento de instituição escolar deve ser uma planilha .xls
que deve seguir padrões para que o cadastro seja feito de forma automática, logo devemos disponibilizar um template para que sejam cadastrados seus departamentos.
Tarefas
**Descrição
Fazer com que só apareça na lista de instituições aquelas que pertenceram a UF selecionada pelo usuário, categoria e nivel no momento do cadastro.
Filtros
Critérios de aceite
Atualizar as sintomas para contemplar todos sintomas da COVID
Tarefa
Criterio de aceitação
Descrição
Verificar se todas as informações trazidas pelas requisições estão de sendo fato usadas no aplicativo. Retirar as informações que não estão sendo usadas.
Dessa maneira será possível reduzir o tamanho da reposta resultando em um ganho de performance na API e Aplicativo.
Critérios de aceite
Descrição
Adicionar o campo school_unit_id a model de household e seus relacionamentos.
Critérios de aceite
Descrição
Verificar os atributos das instituições da API para ver se englobam todos os campos do pré-cadastro.
Também é necessário adicionar o campo do canal de comunicação da instituição, que provavelmente será um twitter. Será bom verificar com o @gsmartins96 qual a melhor forma de adicionar esse campo. Ex.: uma string com o user do twitter da instituição ou de outra forma.
Critério de aceitação:
Descrição
Método delete de syndromes e symptoms não estpa funcionando.
Erro
"status": 500,
"error": "Internal Server Error",
"exception": "#<ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table "symptoms" violates foreign key constraint "fk_rails_68e0a23081" on table "syndrome_symptom_percentages"\nDETAIL: Key (id)=(12) is still referenced from table "syndrome_symptom_percentages".\n: DELETE FROM "symptoms" WHERE "symptoms"."id" = $1>",
Passo a Passo
Passo a passo para se reproduzir o bug:
Comportamento Esperado
Possível deletar a síndrome ou o sintoma
Tarefas
Criar model para sindromes
Linkar sintomas para caracterizar a sindrome
Index de sindromes
Critérios
Testar rotas para criar, excluir e editar dados da API a partir de managers e admins.
Descrição
Ao realizar um report com sintomas, está retornando no objeto top_3(síndromes) síndromes que não estão relacionadas a nenhum dos sintomas reportados. Por exemplo, como está apenas criado no servidor a Sindrome Gripal. Ao realizar um report com o sintoma "Dor de Cabeça", que não está dentre os sintomas dessa síndrome, é retornado dentro das top_3 a Síndrome Gripal.
Passo a Passo
Passo a passo para se reproduzir o bug:
Comportamento Esperado
Retornar apenas síndromes em que os sintomas batam com os sintomas reportados.
Descrição
Ao enviar uma requisição de PATCH para a /users/{userID} retorna status 404.
Passo a Passo
Passo a passo para se reproduzir o bug:
Comportamento Esperado
As informações do usuário devem ser alteradas e a requisição deve retornar status 200.
*Descrição
Criar uma forma de notificar a ProEpi sobre novos pré cadastros de instituição para que ela possa validar.
Tarefas
Critérios
Devido à iniciativa de termos mais insituições de ensino e grupos participando do App entrou-se em contato com o IFB para inserirmos eles na nossa base
Descrição:
Como usuário, eu quero poder selecionar grupos já pré definidos, durante o cadastro. para que eu possa reportar participando desses grupos
Critérios de aceite
Group
;User
de has_many
e User
belongs_to
;Groups
permitido apenas para Admin
e Manager
referêntes ao seu AppA declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.