Giter Site home page Giter Site logo

fga-eps-mds / 2018.1_gerencia_mais Goto Github PK

View Code? Open in Web Editor NEW
5.0 18.0 6.0 27.75 MB

Projeto que visa o melhorias no gerenciamento de médicos da saúde pública do Distrito Federal. ✅ Servidor de homologação: https://gicsaude.herokuapp.com/ ✅ Servidor de produção: https://gerenciamais.herokuapp.com/ ✅ Página de documentação do projeto:

Home Page: https://fga-gpp-mds.github.io/2018.1_Gerencia_mais/

License: MIT License

JavaScript 52.66% HTML 9.27% CSS 6.43% Python 25.50% Shell 6.06% Dockerfile 0.09%
docker python django react travis django-rest-framework heroku opensource medical usability monitoring agile continuous-delivery

2018.1_gerencia_mais's Introduction

Build License: MIT Coverage Status Codacy Badge Issue Count python


ℹ️ Sobre o projeto

Projeto desenvolvido durante as disciplinas de Engenharia de Produto de Software e Métodos de Desenvolvimento de Software da Universidade de Brasília, campus Gama.

O principal objetivo do projeto é oferecer uma forma de melhor alocar os médicos, de acordo com a necessidade do público. Com isso trazendo atendimentos mais efetivos, e uma melhor organização do quadro médico, fazendo com que os mesmos possam se organizar de uma forma melhor, a fim de cumprir as horas de trabalho de forma mais eficiente.

Gostou do projeto e gostria de contribuir? Acesse Contribua e saiba como fazer parte.

📈 Monitoramento de serviços

Nossos servidores de homologação e produção são monitorados constantemente, você pode visualizar em tempo real o consumo de recursos como: cpu, memória entre outros dados. Clique na imagem abaixo.

  • Status do sistema

      Homologação           Produção
      Heroku App Status                   Heroku App Status



💻 Tecnologias


🐳 Guia de Uso do Docker

  • Instalação

Primeiramente é necessário ter o docker instalado, caso não tenha acesse o Instalação docker. Após feito isso, instale o Docker-compose.

  • Comandos básicos

   Para a utilização do ambiente em background, basta dar o comando abaixo e ele irá ligar o container:

 docker-compose up -d

   Caso queira utilizar o ambiente com logs:

 docker-compose up 

   Para a visualização dos logs quando em modo de execução background, use o comando abaixo:

 docker-compose logs -f

   Para pausar o container:

docker-compose stop

   E para religar um container parado use o comando:

 docker-compose start 

   Para listar os containers que estão em execução:

 docker ps

   Para listar todos os containers já executados na sua máquina:

 docker ps -a

   Para executar comandos dentro do container:

 docker-compose exec -it  "id do container"  "comandos"

Para acessar o bash do container, substitua "comandos" por "bash".

  • Rodando a aplicação

Para rodar a aplicação, entre na pasta do projeto em que está localizado o docker-compose e digite no terminal:

  docker-compose up -d

Espere até que todos os serviços estejam disponíveis, acesse a página inicial do projeto com o seguinte endereço: https://localhost:8000

📊 Rodando os testes

Para conferir a cobertura de testes, siga os passos abaixo:

1º No terminal digite:

  coverage run -m django test --settings=tests.settings 

Isso fará com que os testes sejam executados.

obs: Para funcionar, é necessário estar na raiz do projeto.

2º No terminal digite:

  coverage report

Esse comando irá gerar um relatório contendo as porcentagens da cobertura de testes em cada módulo e a cobertura total.

Obs: Para funcionar, é necessário ter realizado o passo anterior.

3º No terminal digite (opcional):

  coverage html

Esse comando irá gerar uma pasta contendo um arquivo html(index.html) que apresenta a cobertura de testes.

ℹ️ Deploy

O deploy da aplicação é feito de forma automatizada por meio da integração contínua (Travis CI) que é responsável por verificar a cobertura de teste ,que não pode ser inferior a 95% , e realizar o deploy junto ao servidor de hospedagem Heroku. Na configuração da integração incluimos os ambientes de homologação e produção que são descritos logo em seguida.

  • Deploy ambiente de homologação: Para esse ambiente, usamos a brach development. O deploy ocorre de forma automatizada. toda vez que alguma alteração é feita nessa branch, que tem como filtro os testes implementados durante o desenvolvimento.
  • Deploy ambiente de produção: Quando lançada uma nova versão estável do sistema, um novo deploy é realizado de forma automatizada. Para isso usamos a brach master, onde a nova versão devidamente testada e obedecendo os critérios de qualidade estabelecidos no Plano de qualidade é entregue aos clientes de forma contínua. No tópico a seguir apresentamos os dois ambientes usados para validação e entrega ao cliente.

ℹ️ Micro Serviços

A aplicação utiliza dois serviços que funcionam de maneira independente. Gerencia report: Serviço de geração de relatório. Notifica mais: Serviço de notificação via email.

Ambos serviços necessitam apenas de dados em formato json. Informações mais detalhadas podem ser acessadas nos links abaixo:


🌎 Acessando a aplicação

O gerencia mais possui dois ambientes, ambiente de homologação que é usado para testar e verificar se as funcionalidade implementadas mantêm o ambiente estável e o ambiente de produção, onde apresentamos as novas funcionalidades verificadas e validadas aos clientes. Os dois ambiente podem ser acessados através dos endereços apresentados abaixo:


👤 Equipe de EPS

python. python python python python

👤 Equipe de MDS

python python python python python

2018.1_gerencia_mais's People

Contributors

eduardojvr avatar victorhdcoelho avatar guilherme-aguiar avatar ulyssesbml avatar caiogabrielaraujo avatar joaosaliba avatar joaoceilandia avatar caiocbeleza avatar rafaelbrg avatar drykette avatar victorcmoura avatar

Stargazers

Maya Fiuza avatar  avatar  avatar  avatar Vinicius Bandeira avatar

Watchers

Eduardo Castro avatar James Cloos avatar João Henrique Pereira de Almeida  avatar João Paulo Ribeiro avatar Carla Rocha avatar Vinicius Bandeira avatar OmarJunior avatar Gesiel Freitas avatar Mar avatar  avatar Elmar Roberto Caixeta Filho avatar Álax de Carvalho Alves avatar  avatar  avatar  avatar  avatar  avatar  avatar

2018.1_gerencia_mais's Issues

Elaborar Plano de Gerenciamento de Custo

  • Descrição

Issue criada com o objetivo de controlar a elaboração do plano de gerenciamento de custos do projeto GIC incluindo os processos envolvidos em planejamento, estimativas, orçamentos, financiamentos, gerenciamento e controle dos custos, entre outros.

  • Controle de documentação

  • Abertura do Documento
  • Definir metodologia
  • Estimar custos
  • Determinar Orçamentos
  • Controle

[TS09] - Configurar deploy contínuo

Eu, como desenvolvedor
Desejo configurar o ambiente de hospedagem da aplicação (homologação e produção)
Para que a mesma possa ser validada (homologação) e acessada pelos usuários (produção)

[TS11] Integrar Frontend e Backend.

🔵 [TS11] Integrar Frontend e Backend.

  • Descrição

Eu como desenvolvedor desejo Integrar frontend com o backend para que seja corrigido falhas de compatibilidade.

  • Tasks

  • Integrar US01 e US02
  • Integrar US03 e US04
  • Integrar US05 e US06

[US01] - Cadastrar horários de médicos

  • Descrição

Eu, como administrador
desejo cadastrar os horários dos médicos
para que para que possam ser visualizados por eles depois.

  • Tasks

  • Criar pagina com formulario para cadastro de medicos.
  • Criar validação de dados digitados nos formularios.
  • Enviar dados cadastrados para API atraves de um json.
  • Critério de Aceitação

  • Dados de data/horas devem ser validados.
  • O horario deve ser cadastrado em um medico existente na API.

[US04] - Atualizar quadro de horários dos médicos

Eu como administrador
Desejo atualizar/modificar quadro de horários
Para caso algum imprevisto com o médico aconteça o quadro seja modificado.

  • Tasks

  • Criar metodo de atualização de horas.
  • Critério de Aceitação

  • Enviar json com integridade no metodo GET com as informações do quadro horario.
  • Receber e validar json recebido no metodo POST.

Erro no modulo rest_framework no docker

  • Descrição

O docker está mandando como erro a falta do rest_framework como modulo instalado nele. O que causa confusões na hora de fazer os links entre o React e o Django.

Problema no uso do docker-compose

Fiz a instalação do docker-compose seguindo as instruções do site, mas quando eu fui tentar criar/iniciar um container houve um erro:

Can't find a suitable configuration file in this directory or any
parent. Are you in the right directory?

    Supported filenames: docker-compose.yml, docker-compose.yaml

IMAGEM:
cut

Organizar repositório

  • Adicionar descrição do projeto;
  • Readme;
  • Contribua;
  • Adicionar documentos na wiki e na pasta docs do projeto;
  • Adicionar nome para o projeto;
  • Customizar sidebar da wiki;
  • Adicionar resultados e planejamento das sprints;

Elaborar Gerenciamento de riscos do projeto.

  • Descrição

Elaborar plano de Gerenciamento de riscos do projeto, para que provaveis riscos sejam traçados .

  • Tasks

  • Criar plano de gerenciaamento de riscos.
  • Identificar riscos.
  • Criar detalhamento de riscos.

[US10] Desenvolver sidebar

🔵 [US10] Desenvolver sidebar

  • Descrição

Eu como usuário desejo visualizar uma sidebar para que seja aprimorado a navegabilidade do site.

  • Tasks

  • Criar pagina de sidebar.
  • Criar sidebar de navegabilidade.
  • Critério de Aceitação

  • Todas as paginas com funcionalidade devem ser contempladas no sidebar.

Permissão restrita em pasta do django

Usei o sudo docker-compose up para criar o container, até ai tudo bem, depois abri outro terminal, e na pasta do projeto do django mandei um

sudo docker exec -it projeto_django_1 python manage.py startapp meuapp

já que sem sudo dá um erro:
captura de tela de 2018-03-16 17-09-39
o problema é que essa pasta ''app'' está com permissão restrita:
captura de tela de 2018-03-16 17-11-34
eu não consigo salvar nada na pasta app, e só consigo criar com sudo.
triste

[US06] - Visualizar quadro de disponibilidade médica

  • Descrição

Eu como usuário
Desejo visualizar o quadro de disponibilidade médica
Para que possa conferir o quadro horário semanal e /ou mensal

  • Tasks

  • Criar rotas para envio das informações ao frontend
  • Critério de Aceitação

  • As informações devem ser acessíveis através de requisição pelo frontend
  • O código deve ser devidamente testado

Responsabilidades DevOps

🔵 Fases DevOps

Fase 1:

  • Ferramentas de automação e coleta de métricas. (travis, codeclimate...)

  • Ambiente docker
    Fase 2:

  • Ambiente de homologação e produção

  • Deploy contínuo e automatizado

Fase 3:

  • Acompanhamento e análise através de ferramentas automatizadas
    • Monitoramento
    • Operação

Problemas Execução do projeto

Pessoal,

o projeto de vocês estão muito atrasados! Algumas observações

  • Como dito em sala de aula, não é para utilizar a wiki, e sim uma pasta doc no repositório principal.

  • Não há transparÊncia no projeto de vcs (documentação das sprints não está up to date).

  • Vocês estão pecando bastante na execução da metodologia. Scrum Master não está fazendo o trabalho direito

  • A essa altura da disciplina, já era para vocês estarem pontuando as tarefas

  • O nome da disciplina mudou! Essa label GPP pega mal :(

  • As issues devem ser descritas!! A maior parte das issues de vocês não tem descriçao alguma

  • Os pontos levantados acima dificultam bastante a execução do projeto, insere riscos que podem inviabilizar as entregas, além de impossibilitar a auto-organização do time. Se empenhem mais :p

[US09] Visualizar quadro de disponibilidade médica mensal.

🔵 Template de issues

  • Descrição

Eu como usuário desejo visualizar quadro de disponibilidade média mensal para saber os horários de trabalho dos médicos.

  • Tasks

Use checkbox para tarefas inseridas em um mesmo contexto, exemplo:
Title: Organizar repositório

  • Criar paginas e urls das paginas.
  • Integrar com backend.
  • Critério de Aceitação

  • Mostrar quadro do mes atual através dos dados fornecidos pela api.

[US02] - Cadastrar horários de médicos

  • Descrição

Eu como administrador
Desejo cadastrar os horários dos médicos
Para que possam ser visualizados por eles depois.

  • Tasks

  • Criar método para coleta de dados de entrada
  • Garantir a persistência dos dados
  • Critério de Aceitação

  • Dados de entrada devem persistir no banco
  • O código deve ser devidamente testado

Duvida de django/react

Atualmente no projeto a gnt tem o app de react assim:
captura de tela de 2018-03-20 23-38-00
Onde o template no django ''index.html'', se interliga com o frontend:
captura de tela de 2018-03-20 23-39-59
frontend (index.js)
captura de tela de 2018-03-20 23-42-36
finalmente em (App.js) que tem o conteudo da pagina
captura de tela de 2018-03-20 23-45-48

Meu problema é o seguinte, eu fui tentar fazer outra pagina, configurei a views e fiz um ''teste.html'' quase igual, apenas mudando a id da div para "teste", depois criei um "test.js" nos moldes do "index.js" e por ultimo um "Testapp.js" nos moldes do "App.js" e não dá erro nenhum, apenas mostra a pagina em branco. Aparentemente essa não é a abordagem certa para criar o frontend de outra pagina, queria saber então, como eu faria outra pagina? seria um react-create-app para cada pagina?

[US05] - Visualizar quadro de disponibilidade médica semanal.

  • Descrição

Eu como usuário
Desejo visualizar o quadro de disponibilidade médica
Para que possa conferir o quadro horário semanal e /ou mensal

  • Tasks

  • Recuperar do banco o quadro de horários
  • Mostrar ao usuário as informações do quadro
  • Critério de Aceitação

  • O usuário deve ser capaz de visualizar corretamente os dados referentes ao quadro de horários
  • O código deve ser devidamente testado

[US03] - Atualizar quadro de horários dos médicos

  • Descrição

Eu como administrador
Desejo atualizar/modificar quadro de horários
Para caso algum imprevisto com o médico aconteça o quadro seja modificado

  • Tasks

  • Atualizar/modificar corretamente o quadro de horários
  • Critério de Aceitação

  • Dados de entrada devem persistir no banco
  • O código deve ser devidamente testado

Erro no Docker

docker-compose up -d
ERROR:
Can't find a suitable configuration file in this directory or any
parent. Are you in the right directory?

    Supported filenames: docker-compose.yml, docker-compose.yaml

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.