Coder Social home page Coder Social logo

medicalhelp-recife's Introduction

MedicalHelp-Recife

Projeto da disciplina de Engenharia de Software (IF977), do curso de graduação em Sistemas de Informação do Centro de Informática da Universidade Federal de Pernambuco (UFPE).

Link da aplicação no Heroku: http://medicalhelp-recife.herokuapp.com/

Equipe:

  • Guilherme Menge: Desenvolvedor
  • Maria Eugênia: Desenvolvedora de Testes e Product Owner
  • Mateus Maciel: Gerente do Projeto e Desenvolvedor
  • Mariana Lima: Desenvolvedora

Descrição

O MedicalHelp-Recife é uma aplicação SaaS que indica hospitais ao usuário (vítima ou testemunha) baseado em sua localização e algumas informações adicionais:

  • Estado de saúde da vítima (emergência, consultas de rotina, etc.);
  • Se a vítima possui plano de saúde ou não;
  • Preferência do usuário por hospital particular ou público.

Justificativa

No ano de 2015, em Recife, houve 70.011 solicitações de atendimento ao SAMU, destas, 43.477 não eram de urgência. Imagine quantas dessas pessoas chamaram o Serviço de Atendimento Médico de Urgência apenas por não saber para onde ir e como prosseguir. Nossa aplicação Web surge para solucionar esse problema, com o mapeamento das unidades de saúde mais próximas do usuário filtradas por suas necessidades, e ainda, ajuda a melhorar o fluxo dos atendimentos de urgência do SAMU, por criar uma plataforma alternativa para casos específicos.

Inicialmente a aplicação buscará hospitais em Recife e Região Metropolitana.

medicalhelp-recife's People

Contributors

mmp-s avatar meugenia1 avatar gmnge avatar mlsbez avatar vinicius3w avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

James Cloos avatar Marcela Oliveira avatar  avatar  avatar Jorge Linhares avatar Lucas Assad avatar Wellington Oliveira avatar  avatar  avatar Paulo Sergio avatar  avatar Lerisson Florencio de Freitas avatar

medicalhelp-recife's Issues

Modelo ER

Construir o modelo ER da aplicação, definindo os atributos e a(s) entidade(s) chave para a aplicação.

Correção da iteração 0

Histórias de usuário:

  • Formato -> ok
  • História bem escrita -> ok

nota final: 10


Ata de reunião:

  • Participantes da reunião -> ok
  • Tópicos discutidos -> ok
  • O que foi definido -> ok
  • Formato Markdown -> ok

nota final: 10


Mockups e storyboards:

  • Mockups -> ok
  • Storyboard -> ok

nota final: 10


Preenchimento do GitHub:

  • Nome do projeto -> ok
  • Descrição do projeto ->
       -Problema bem descrito: O hospital que será indicado obedece a um range dentro do mapa?, -1
       -Publico alvo: Lendo a descrição do projeto o usuário só seria o paciente, porém de acordo com as histórias de usuário as testemunhas também seriam usuários, -1
  • Justificativa do projeto -> ok
  • Especificação do papel dos membros -> ok

nota final: 8


Postmortem

  • O que estava planejado -> ok
  • Listar as atividades que foram planejadas para a alteração e o responsável por cada uma delas -> ok
  • O que foi feito -> ok
  • O que não foi feito -> ok
  • O que está planejado pra próxima iteração -> ok
  • Lições aprendidas -> ok
  • Formato Markdown -> ok

Tentem dividir mais os responsáveis ao invés de colocar muitos "Todos". Nesse caso, a união não faz a força.

nota final: 10


Observações finais:

Pessoal, sempre criem as issues no começo das iterações. Além de dar mais tempo para corrigir o erro a criação no início também vai contar ponto nas próximas iterações.

Postmortem

Sinalização do fim da iteração 0, um resumo sobre a mesma.

Feedback Cadastrar histórias no gitHub IT2

Eai galera, tudo certinho??

  • Uso de lable : OK
  • Milestones : OK
  • 1 Issue por participante : OK
  • Descrição da issue : -0,4.

Com relação a descrição das issues, tentem ser mais descritivos.

Ex:
Issue -> (Popular banco de dados #42)
Descrição -> Popular banco de dados com dados dos hospitais.
Parece redundante não?

Podiam colocar o que falta popular, como será feito. Assim como foi feito na issue "Criação de testes rspec #35" em que vocês colocaram o que seria testado.

Qualquer duvida só falar aqui. Caso concordem, só fechar a issue.

Teste rspec

Atualizar testes rspec de forma dry
Criar novos testes rspec

Correção Postmortem i3

  • O que estava planejado -> OK
  • O que foi feito -> OK
  • O que não foi feito -> OK
  • O que está planejado pra próxima iteração -> OK
  • Lições aprendidas -> OK
  • Formato Markdown -> OK
  • Atraso de 1 dia na entrega

Nota final -> 8

Feedback - correção do Postmortem IT02

Postmortem

  • Atraso do Postmortem -> não, (nota base 10.0)
    • Entregas feitas no até o dia final da iteração (23/10) têm nota base 10;
    • Entregas feitas no até um dia após final da iteração (24/10) têm nota base 8;
    • Entregas feitas no até dois dia após final da iteração (25/10) têm nota base 6;
    • Entregas feitas após dois dias do final da iteração (26/10 em diante) são zeradas.
  • O que estava planejado ->ok
  • O que foi feito -> ok
  • O que não foi feito -> ok
    • Faltou indicar o responsável pelo item que não foi realizado
    • Redução de 1,5%
  • O que está planejado pra próxima iteração ->ok
  • Lições aprendidas -> ok
  • Formato Markdown -> ok

nota final: 10 * (100% - (1,5% )) = 9,85


Observações finais:

Pessoal, reforçando, não esqueção de atribuir o responsável da atividade

FeedBack dos testes de TDD e BDD - Iteração 02

Testes BDD:

  • Não possui nenhum caminho triste -> -1
  • Todos os testes verdes -> Não, o seguinte teste não passou. -1

image

Nota BDD: 3

Testes TDD:

  • Não possuem caminhos tristes -> -1
  • Todos os testes verdes -> Sim, tudo certo

Galera, os arquivos que vocês não forem implementar
(MedicalHelp-Recife/spec/models/hospital_spec.rb por exemplo)
vocês podem deletar para não causar nenhuma confusão.

Nota BDD: 4


nota final: 7

Correção do cadastro das issues no GitHub - Iteração 1

Cadastro de histórias no GitHub

  • Uso de labels -> Não, o uso das labels está muito limitado; -1

Sigam essa referência:
6cf291b6-24dc-11e7-9cb2-a325c1979945

  • Milestones -> Ok

  • 1 issue por participante -> Ok

  • Descrição das issues -> Não, somente uma issue (#18 ) com descrição; -0,50

Nota final: 8.50

Configurar o Bootstrap

Utilizaremos o Bootstrap para produzir as telas da aplicação.
E necessário preparar o Rails para utilizar o Bootstrap.

Correção testes - Iteração 3

- Rspec

  • Atraso na entrega -> não

    • Entregas feitas no até o dia final da iteração (06/11) têm nota base 10;
    • Entregas feitas no até um dia após final da iteração (07/11) têm nota base 8;
    • Entregas feitas no até dois dia após final da iteração (08/11) têm nota base 6;
    • Entregas feitas após dois dias do final da iteração (09/11 em diante) são zeradas.
  • Testes completos (todos verdes) -> sim

  • Caminhos felizes/caminhos tristes -> sim

- Cucumber

  • Atraso na entrega -> não

    • Entregas feitas no até o dia final da iteração (06/11) têm nota base 10;
    • Entregas feitas no até um dia após final da iteração (07/11) têm nota base 8;
    • Entregas feitas no até dois dia após final da iteração (08/11) têm nota base 6;
    • Entregas feitas após dois dias do final da iteração (09/11 em diante) são zeradas.
  • Testes completos (todos verdes) -> sim

  • Caminhos felizes/caminhos tristes -> sim/não

    • Os cenários da feature centerma.featureestão ok, porém o de UI.feature estão muito simples.
    • redução de 5%

Nota final: 10 * (100% - 5%) = 9.5


Atualizar gemfile

Atualizar gems:
postgresql -> grupo dev e production
smarter_csv -> para população dos dados

Correção ER - Iteração 3

- Modelo ER

  • Atraso na entrega -> não
    • Entregas feitas no até o dia final da iteração (06/11) têm nota base 10;
    • Entregas feitas no até um dia após final da iteração (07/11) têm nota base 8;
    • Entregas feitas no até dois dia após final da iteração (08/11) têm nota base 6;
    • Entregas feitas após dois dias do final da iteração (09/11 em diante) são zeradas.
  • Aderente ao existente no projeto -> sim
  • Segue as normas preferinidas de modelagem ER -> sim

Nota final: 10 * (100%) = 10.0

FeedBack dos testes de TDD e BDD interação 01

- Rspec

  • Atraso na entrega -> sim, nota base passa a ser 8
    • Entregas feitas no até o dia final da iteração (09/10) têm nota base 10;
    • Entregas feitas no até um dia após final da iteração (10/10) têm nota base 8;
    • Entregas feitas no até dois dia após final da iteração (11/10) têm nota base 6;
    • Entregas feitas após dois dias do final da iteração (12/10 em diante) são zeradas.
  • Testes completos (todos verdes) -> não
    • Redução de 5%
    • F*******..**FFFFFFFFFFFFF
  • Seguinte erro foi encontrado ao executar o comando "rspec spec/"
Failures:

  1) HospitalsController GET #new returns a success response
     Failure/Error: get :new, params: {}, session: valid_session
     
     ActionController::UrlGenerationError:
       No route matches {:action=>"new", :controller=>"hospitals"}
     # /usr/local/rvm/gems/ruby-2.3.4/gems/rails-controller-testing-1.0.2/lib/rails/controller/testing/template_assertions.rb:61:in `process'
     # /usr/local/rvm/gems/ruby-2.3.4/gems/rails-controller-testing-1.0.2/lib/rails/controller/testing/integration.rb:12:in `block (2 levels) in <module:Integration>'
     # ./spec/controllers/hospitals_controller_spec.rb:62:in `block (3 levels) in <top (required)>'

  2) Hospitals GET /hospitals works! (now write some real specs)
     Failure/Error: get hospitals_path
     
     NameError:
       undefined local variable or method `hospitals_path' for #<RSpec::ExampleGroups::Hospitals::GETHospitals:0x0000000490c1e0>
     # ./spec/requests/hospitals_spec.rb:6:in `block (3 levels) in <top (required)>'

  3) HospitalsController routing routes to #index
     Failure/Error: expect(:get => "/hospitals").to route_to("hospitals#index")
       No route matches "/hospitals"
     # ./spec/routing/hospitals_routing_spec.rb:7:in `block (3 levels) in <top (required)>'

  4) HospitalsController routing routes to #new
     Failure/Error: expect(:get => "/hospitals/new").to route_to("hospitals#new")
       No route matches "/hospitals/new"
     # ./spec/routing/hospitals_routing_spec.rb:11:in `block (3 levels) in <top (required)>'

  5) HospitalsController routing routes to #show
     Failure/Error: expect(:get => "/hospitals/1").to route_to("hospitals#show", :id => "1")
       No route matches "/hospitals/1"
     # ./spec/routing/hospitals_routing_spec.rb:15:in `block (3 levels) in <top (required)>'

  6) HospitalsController routing routes to #edit
     Failure/Error: expect(:get => "/hospitals/1/edit").to route_to("hospitals#edit", :id => "1")
       No route matches "/hospitals/1/edit"
     # ./spec/routing/hospitals_routing_spec.rb:19:in `block (3 levels) in <top (required)>'

  7) HospitalsController routing routes to #create
     Failure/Error: expect(:post => "/hospitals").to route_to("hospitals#create")
       No route matches "/hospitals"
     # ./spec/routing/hospitals_routing_spec.rb:23:in `block (3 levels) in <top (required)>'

  8) HospitalsController routing routes to #update via PUT
     Failure/Error: expect(:put => "/hospitals/1").to route_to("hospitals#update", :id => "1")
       No route matches "/hospitals/1"
     # ./spec/routing/hospitals_routing_spec.rb:27:in `block (3 levels) in <top (required)>'

  9) HospitalsController routing routes to #update via PATCH
     Failure/Error: expect(:patch => "/hospitals/1").to route_to("hospitals#update", :id => "1")
       No route matches "/hospitals/1"
     # ./spec/routing/hospitals_routing_spec.rb:31:in `block (3 levels) in <top (required)>'

  10) HospitalsController routing routes to #destroy
      Failure/Error: expect(:delete => "/hospitals/1").to route_to("hospitals#destroy", :id => "1")
        No route matches "/hospitals/1"
      # ./spec/routing/hospitals_routing_spec.rb:35:in `block (3 levels) in <top (required)>'

  11) hospitals/edit renders the edit hospital form
      Failure/Error: <%= form_with(model: hospital, local: true) do |form| %>
      
      ActionView::Template::Error:
        undefined method `hospital_path' for #<#<Class:0x00000008653cd8>:0x00000008651e60>
      # ./app/views/hospitals/_form.html.erb:1:in `_app_views_hospitals__form_html_erb__1803264117295994878_70585240'
      # ./app/views/hospitals/edit.html.erb:3:in `_app_views_hospitals_edit_html_erb___4578337412820508545_70560640'
      # ./spec/views/hospitals/edit.html.erb_spec.rb:9:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `hospital_path' for #<#<Class:0x00000008653cd8>:0x00000008651e60>
      #   ./app/views/hospitals/_form.html.erb:1:in `_app_views_hospitals__form_html_erb__1803264117295994878_70585240'

  12) hospitals/index renders a list of hospitals
      Failure/Error: <td><%= link_to 'Show', hospital %></td>
      
      ActionView::Template::Error:
        undefined method `hospital_path' for #<#<Class:0x00000008653cd8>:0x00000007e890c0>
      # ./app/views/hospitals/index.html.erb:15:in `block in _app_views_hospitals_index_html_erb__1090940863306561775_66306880'
      # ./app/views/hospitals/index.html.erb:13:in `each'
      # ./app/views/hospitals/index.html.erb:13:in `_app_views_hospitals_index_html_erb__1090940863306561775_66306880'
      # ./spec/views/hospitals/index.html.erb_spec.rb:12:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `hospital_path' for #<#<Class:0x00000008653cd8>:0x00000007e890c0>
      #   ./app/views/hospitals/index.html.erb:15:in `block in _app_views_hospitals_index_html_erb__1090940863306561775_66306880'

  13) hospitals/new renders new hospital form
      Failure/Error: <%= form_with(model: hospital, local: true) do |form| %>
      
      ActionView::Template::Error:
        undefined method `hospitals_path' for #<#<Class:0x00000008653cd8>:0x00000008a3fbd0>
      # ./app/views/hospitals/_form.html.erb:1:in `_app_views_hospitals__form_html_erb__1803264117295994878_70585240'
      # ./app/views/hospitals/new.html.erb:3:in `_app_views_hospitals_new_html_erb___4057518934802454432_66072280'
      # ./spec/views/hospitals/new.html.erb_spec.rb:9:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `hospitals_path' for #<#<Class:0x00000008653cd8>:0x00000008a3fbd0>
      #   ./app/views/hospitals/_form.html.erb:1:in `_app_views_hospitals__form_html_erb__1803264117295994878_70585240'

  14) hospitals/show renders attributes in <p>
      Failure/Error: <%= link_to 'Edit', edit_hospital_path(@hospital) %> |
      
      ActionView::Template::Error:
        undefined method `edit_hospital_path' for #<#<Class:0x00000008653cd8>:0x00000008c2dd98>
        Did you mean?  edit_polymorphic_path
      # ./app/views/hospitals/show.html.erb:3:in `_app_views_hospitals_show_html_erb__2425531405677555081_65836380'
      # ./spec/views/hospitals/show.html.erb_spec.rb:9:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `edit_hospital_path' for #<#<Class:0x00000008653cd8>:0x00000008c2dd98>
      #   Did you mean?  edit_polymorphic_path
      #   ./app/views/hospitals/show.html.erb:3:in `_app_views_hospitals_show_html_erb__2425531405677555081_65836380'

Finished in 0.97803 seconds (files took 2.62 seconds to load)
29 examples, 14 failures, 13 pending

Failed examples:

rspec ./spec/controllers/hospitals_controller_spec.rb:61 # HospitalsController GET #new returns a success response
rspec ./spec/requests/hospitals_spec.rb:5 # Hospitals GET /hospitals works! (now write some real specs)
rspec ./spec/routing/hospitals_routing_spec.rb:6 # HospitalsController routing routes to #index
rspec ./spec/routing/hospitals_routing_spec.rb:10 # HospitalsController routing routes to #new
rspec ./spec/routing/hospitals_routing_spec.rb:14 # HospitalsController routing routes to #show
rspec ./spec/routing/hospitals_routing_spec.rb:18 # HospitalsController routing routes to #edit
rspec ./spec/routing/hospitals_routing_spec.rb:22 # HospitalsController routing routes to #create
rspec ./spec/routing/hospitals_routing_spec.rb:26 # HospitalsController routing routes to #update via PUT
rspec ./spec/routing/hospitals_routing_spec.rb:30 # HospitalsController routing routes to #update via PATCH
rspec ./spec/routing/hospitals_routing_spec.rb:34 # HospitalsController routing routes to #destroy
rspec ./spec/views/hospitals/edit.html.erb_spec.rb:8 # hospitals/edit renders the edit hospital form
rspec ./spec/views/hospitals/index.html.erb_spec.rb:11 # hospitals/index renders a list of hospitals
rspec ./spec/views/hospitals/new.html.erb_spec.rb:8 # hospitals/new renders new hospital form
rspec ./spec/views/hospitals/show.html.erb_spec.rb:8 # hospitals/show renders attributes in <p>
  • Caminhos felizes/caminhos tristes -> não (sem penalidade por esta iteração)
    • Foram verificados apenas a existência de caminhos felizes nos testes

- Cucumber

  • Atraso na entrega -> sim, nota base passa a ser 8
    • Entregas feitas no até o dia final da iteração (09/10) têm nota base 10;
    • Entregas feitas no até um dia após final da iteração (10/10) têm nota base 8;
    • Entregas feitas no até dois dia após final da iteração (11/10) têm nota base 6;
    • Entregas feitas após dois dias do final da iteração (12/10 em diante) são zeradas.
  • Testes completos (todos verdes) -> não
    • Redução de 5%
    • Seguinte erro foi encontrado ao executar o comando "cucumber features/homepage.feature"
When click on the “buscar” button       # features/step_definitions/homepage.rb:5
      Unable to find visible button "buscar" (Capybara::ElementNotFound)
      ./features/step_definitions/homepage.rb:6:in `"click on the “buscar” button"'
      features/homepage.feature:8:in `When click on the “buscar” button'
    • Esse erro é gerado porque ele não conseguia identificar o botão buscar.

    • Não foi encontrado erro, contudo foi encontrado a seguinte pendência ao executar o comando "cucumber features/mappage.feature"

When click on the map                # features/step_definitions/mappage.rb:5
      TODO (Cucumber::Pending)
      ./features/step_definitions/mappage.rb:6:in `"click on the map"'
      features/mappage.feature:8:in `When click on the map'

Caminhos felizes/caminhos tristes -> não (sem penalidade por esta iteração)

  • Foram verificados apenas a existência de caminhos felizes nos testes
  • Foram encontrados passos pendentes.

Nota final: 8 * (100% - 5% - 5%) = 7.4


Observação

  • Vocês precisam fazer testes mais completos, a ideia de testes é quebrar o código em si, procurar falhas existentes e explorar as mesmas e por isso caminhos tristes (onde é induzida a tentativa de falha) devem estar mais presentes que os felizes em si. No que compete a rspec façam testes ligados as regras de negócio em si, evitem fazer os testes já prontos do scaffold.

Teste rspec

Desenvolver teste rspec para rotas inválidas (caminho triste)
Retirar testes que não serão desenvolvidos (model, helpers)

Preparar o ambiente para Deployment

Para facilitar o nosso trabalho, precisamos configurar o Heroku e o Banco de Dados para efetuar testes básicos e acompanhar o resultado do nosso trabalho.

Correções do layout pra adequar ao MVP

Alterações nas posições dos botões, bem como na maneira de dimensionar os caracteres (adequar às diversas resoluções de tela).

Padronização nos cliques dos botões (:hover... etc).

Vários "minor fixes" de estilo.

[criado atrasado].

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.