https://github.com/higorsnt/sismed
👨⚕️ Sistema de Agendamento de Consultas 🩺
https://github.com/higorsnt/sismed
celebrate express jest jwt nodejs sqlite3
Last synced: 3 months ago
JSON representation
👨⚕️ Sistema de Agendamento de Consultas 🩺
- Host: GitHub
- URL: https://github.com/higorsnt/sismed
- Owner: higorsnt
- License: mit
- Created: 2020-07-21T03:06:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-16T21:32:16.000Z (over 3 years ago)
- Last Synced: 2025-05-29T14:13:03.552Z (about 1 year ago)
- Topics: celebrate, express, jest, jwt, nodejs, sqlite3
- Language: JavaScript
- Homepage:
- Size: 101 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
👨⚕️ Sistema de Agendamento de Consultas 🩺
## :bookmark: Sobre
Este é uma API que visa auxiliar pacientes e médicos no agendamento de consultas e na criação de prontuários que são gerados a cada consulta, onde o médico ao longo da consulta pode informar os sintomas relatados pelo paciente e o que lhe foi receitado, facilitando o acompanhamento do mesmo.
## :boom: Utilização
1. Inicialmente é necessário realizar o clone do repositório:
```bash
git clone https://github.com/HigorSnt/sismed.git
```
2. Em seguida, entre na pasta gerada pelo passo anterior e execute os seguintes comandos:
```bash
# Antes de tudo é necessário baixar as dependências descritas no package.json
$ npm install
# Antes de iniciar a aplicação gere o banco de dados e as tabelas
$ npm run knex:migrate
# Para executar a aplicação:
$ npm run dev
# Para executar os testes:
$ npm run test
```
## 🛣 Rotas
As rotas presentes na aplicação serão descritas abaixo:
### 🚏 `/doctor`
-
POST: rota responsável por criar um médico no banco de dados.
Exemplo de execução:
{
"crm": "1111",
"name": "Vitor Martin Augusto Viana",
"email": "vitormartinaugustoviana_@cressem.com.br",
"password": "7q6eYdq8Fh"
}
Resultado
{
"crm": "1111"
}
-
GET: esta rota retorna todos os médicos cadastrados.
Resultado
[
{
"name": "Vitor Martin Augusto Viana",
"email": "vitormartinaugustoviana_@cressem.com.br",
"crm": "1111"
},
{
"name": "Luciano Pilla Pinto",
"email": "luciano@gmail.com",
"crm": "4785"
}
]
### 🚏 `/patient`
-
POST: rota responsável por criar um paciente no banco de dados.
Exemplo de execução:
{
"name": "Raissa Oliveira",
"email": "raissacarvalhooliveira@rhyta.com",
"password": "Rohng3ien"
}
Resultado
{
"email": "raissacarvalhooliveira@rhyta.com"
}
-
GET: esta rota retorna todos os pacientes cadastrados.
Resultado
[
{
"name": "Higor",
"email": "higor@gmail.com"
},
{
"name": "Raissa Oliveira",
"email": "raissacarvalhooliveira@rhyta.com"
}
]
### 🚏 `/login`
-
POST: esta rota é a responsável por realizar o login. Porém, existe duas formas de login: o paciente realiza seu login utilizando o email e senha cadastrados, enquanto que o médico realiza o login pelo seu CRM e senha cadastrados.
Exemplo de execução para um paciente:
{
"email": "raissacarvalhooliveira@rhyta.com",
"password": "Rohng3ien"
}
Exemplo de execução para um médico:
{
"crm": "1111",
"password": "7q6eYdq8Fh"
}
Resultado para ambas requisições
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTEiLCJjYXRlZ29yeSI6ImRvY3RvciIsImlhdCI6MTU5NTM1MTkwOH0.Bic4lw1qY3-qVWkWonQNrpXNoOP7H7GEMWRewvA37bQ"
}
> ⚠️ Todas as próximas rotas fazem uso do token jwt originado da rota de login.
> Portanto, é necessário colocar o token no cabeçalho da requisição http.
### 🚏 `/appointment`
-
POST: rota que permite aos pacientes marcarem consultas. Apenas pacientes conseguem realizar essa operação!
Exemplo de execução:
{
"doctor": {
"crm": "1111",
"name": "Vitor Martin Augusto Viana"
},
"date": "31-07-2020 07:00:00"
}
Resultado
{
"id": 2,
"doctor_crm": "1111",
"patient_id": "raissacarvalhooliveira@rhyta.com",
"date": "31-07-2020 07:00:00"
}
### 🚏 `/appointment/:id`
-
PATCH: rota que permite aos pacientes e médicos atualizarem as informações das consultas. Pacientes apenas podem marcar a consulta como concluída e alterar a data da mesma, enquanto que o médico além de concluir a consulta, também pode realizar uma descrição dos sintomas relatados durante a consulta médica e o que foi prescrito para o paciente.
Para realizar a atualização da consulta deve-se passar apenas o que será atualizado.
Exemplo de execução:
{
"symptoms": "febre e tosse",
"prescription": "Xarope 3x ao dia"
}
Resultado
{
"id": 1,
"doctor_crm": "1111",
"patient_id": "higor@gmail.com",
"date": "31-07-2020 07:00:00",
"symptoms": "febre e tosse",
"prescription": "Xarope 3x ao dia",
"done": 0
}
-
GET: rota que permite ao paciente e médico todas as informações relativas da consulta com o id passado na rota.
Resultado
{
"id": 1,
"doctor_crm": "1111",
"patient_id": "higor@gmail.com",
"date": "31-07-2020 07:00:00",
"symptoms": "febre e tosse",
"prescription": "Xarope 3x ao dia",
"done": 0
}
-
DELETE: rota que permite ao paciente excluir a consulta registrada com o id correspondente ao passado como parâmetro na rota.
Como resultado é retornado apenas um código200caso sucesso.
## :memo: Licença
Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE.md) para mais detalhes.