Skip to content

O objetivo do presente projeto foi desenvolver uma aplicação para uma clínica médica aqui denominada MedCare que permita ao usuário cadastrar médicos, pacientes e agendar consultas respeitando regras de negócio previamente determinadas pelo cliente.

Notifications You must be signed in to change notification settings

thiagohrcosta/medcare

Repository files navigation

MedCare

enter image description here O objetivo do presente projeto foi desenvolver uma aplicação para uma clínica médica aqui denominada MedCare que permita ao usuário cadastrar médicos, pacientes e agendar consultas respeitando regras de negócio previamente determinadas pelo cliente.

Acesse a aplicação diretamente no Heroku clicando aqui:

Não foi adicionada qualquer restrição ao usuário no Heroku, assim basta criar uma conta para acessar e testar a aplicação, caso queira usar uma já criada os dados de acesso seguem abaixo:

Tecnologias utilizadas

Ruby Rails HTML5 CSS3 SASS Bootstrap Postgres

Gems utilizadas

Versões

  • Ruby - 2.6.6
  • Rails - Rails 6.1.3.2
  • PostgreSQL - 12.7

Modelagem do Banco de Dados

db

O que o usuário pode fazer?

Tela do médico

A partir do menu médicos o usuário pode cadastrar um novo médico respeitando a regra de negócio exigida pelo cliente. Med1

Edição e Exclusão de médico

No menu lateral esquerdo é possível acessar a página de listagem de todos os médicos cadastrados no sistema, podendo editar ou excluir um determinado médico. Como regra de negócio não será possível excluir um médico caso este tenha consultas agendadas. Consultas só podem ser agendadas se houver prévia indicação de médico e paciente.

Cadastrar novo paciente

Med2 Já na tela de paciente o usuário poderá cadastrar um novo paciente atentando-se ao fato de que é exigido um CPF válido pela aplicação. Caso não possua um CPF para utilizar no cadastro foi disponibilizado um gerador de CPF dentro da aplicação de forma a permitir testes. Med3

Para acessar abra o terminal na pasta do arquivo e rode rails c, em seguida digite o comando CPF.generate para gerar um número válido, em seguida utilize-o para cadastrar na aplicação.

Editar ou excluir paciente

Med4 Também foi adicionada tela onde é possível que o usuário possa editar e excluir um determinado paciente

Agendar nova consulta

Med5 Respeitando a regra de negócio foi disponibilizada uma tela de agendamento de consultas onde o usuário poderá selecionar o paciente e o médico previamente cadastrados no sistema e agendar a data e horário de início da consulta. O horário de término será automaticamente determinado a partir do horário de início.

Filtrar médico - Dashboard

Uma das principais regras de negício era permitir que o usuário fosse capaz de filtrar médicos por nome, sendo o filtro inicial aquele que lista todos os médicos. Med6 Ao clicar em um determinado médico dados específicos serão gerados em tela, tais como a total de consultas realizadas pelo médico já realizada por este médico e quantos pacientes únicos atendidos foram atendidos por ele.

Testes - Rspec

Para a realização dos testes foi utilziado o Rspec sendo criados 24 testes. Rspec

Para rodar os testes acesse a pasta do arquivo pelo terminal e rode o compando rspec spec/models.

Como rodar o projeto?

Caso você já tenha instalado o Ruby on Rails nas versões apontadas no início, após efetuar o download do projeto é necessário rodar os seguintes comandos dentro da pasta do arquivo:

  • yarn install;
  • bundle install;

Em seguida para iniciar o banco de dados é necessário rodar os seguintes comandos:

  • rails db:create (caso o banco de dados não esteja criado);
  • rails db:migrante (para implementar as migrações no bando de dados);

Persistindo erros relacionados ao banco de dados rode no terminal o comando rails db:reset. Ao final rode o comando rails s para iniciar a aplicação em localhost:3000.

Etapas de desenvolvimento

14 de junho, 2021

 - Projeto criado em Rails;
 - Model Doctor criado;
 - Model Patient criado;
 - Model Appointment criado;
 - Controllers Doctor criado;
 - Controllers Patient criado;
 - Controllers Appointment criado;
 - Relacionamento entre Models adicionado;
 - Ações em Doctors Controller adicionadas;
 - Rspec gem adicionada;
 - Shoulda-matchers gem adcionada;
 - Testes adicionados para Doctor com Rspec;
 - Devise gem adicionada;
 - Devise views adicionadas.

15 de junho, 2021

- Devise adicionado para autenticação na Home Page;
- Página de Login adicionada;
- Dashboard inicial completo;
- Simple Form For adicionado;
- HTML e CSS para adicionar novos médicos implementado;
- Redirecionamento de rotas Dashboard e Doctors;
- Adicionando Doctors e botões para editar e apagar;
- Método para apagar médico adicionado;
- Método para editar médico adicionado;
- Restrição para remover médico com agendamento marcado implementada;
- Adicionado Pacientes ao Dash;
- Adicionado rotas doctors e patients;
- Tela de criação de pacientes completa;
- Testes adicionados para Patients com Rspec;
- Adicionado path para editar paciente;
- Ações para edição e update de paciente criadas no controller;
- Rota appointment adicionada;
- Redirecionamento de rotas do Appointment no Dashboard;
- Adicionada view para Appointment;
- Ações em Appointment controller adicionadas;
- Validações adicionadas em Appointment;
- Validações para evitar agendamento no mesmo horário implementada;
- Favicon adicionado;
- Adicionado contador de agendamentos e pacientes únicos.

16 de junho, 2021

- Rotas refatoradas para method: delete;
- Filtro adicionado com Ransack gem;
- Adicionada soma de agendamentos por médico;
- Adicionada soma de pacientes únicos atendidos por médico;
- CSS adicionado ao filtro;
- CSS adicionado para as tabelas;
- Adicionados testes para validar CRM;
- Adicionados testes para validar CRM_UF;
- Adicionados testes para Appointment com Rspec;

17 de junho, 2021

- Correção na apresentação e formatação da data;
- Define que ends_at será obrigatoriamente 30 minutos após starts_at;
- Validação de CPF completa;
- Testes para verificar validação de CPF completos;
- Adicionada validação para horário de abertura, almoço e fechamento;
- Adicionado About Us na Home Page;
- Adicionado Footer na Home Page;
- Adicionado CSS para Sign up e Forgot Password;
- Adicionado Readme.

19 de junho, 2021

- Adicionada variávies de cores ao CSS;
- Refatoramento de nomeclaturas;
- Refatoramento do model para se tormar mais "Dry";
- Bug em testes corrigido para suportar validação customizada;
- Agendamentos listados por data;
- Filtro para selecionar médicos adicionado ao index de médicos;
- Adicionada responsividade para Home Page;
- Padronização de quotes.

20 de junho, 2021

- Adicionando campo "listar todos os médicos";
- Adicionada view para editar appointment;

About

O objetivo do presente projeto foi desenvolver uma aplicação para uma clínica médica aqui denominada MedCare que permita ao usuário cadastrar médicos, pacientes e agendar consultas respeitando regras de negócio previamente determinadas pelo cliente.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published