https://github.com/emmanuellaalbuquerque/4paws
4Paws é um sistema de Gerenciamento para Clínicas Veterinárias que possibilita gerenciar consultas, exames, prescrições, veterinários, pets e seus respectivos tutores.
https://github.com/emmanuellaalbuquerque/4paws
java jwt spring-data-jpa spring-security springboot
Last synced: 11 months ago
JSON representation
4Paws é um sistema de Gerenciamento para Clínicas Veterinárias que possibilita gerenciar consultas, exames, prescrições, veterinários, pets e seus respectivos tutores.
- Host: GitHub
- URL: https://github.com/emmanuellaalbuquerque/4paws
- Owner: EmmanuellaAlbuquerque
- License: apache-2.0
- Created: 2024-08-21T22:39:10.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-29T21:35:55.000Z (over 1 year ago)
- Last Synced: 2025-03-26T19:21:22.457Z (over 1 year ago)
- Topics: java, jwt, spring-data-jpa, spring-security, springboot
- Language: Java
- Homepage: https://4paws-api.up.railway.app
- Size: 1.49 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 4Paws 🐾🐕🦺
O 4Paws é uma API projetada para otimizar e simplificar a gestão de clínicas veterinárias. Oferecendo um conjunto de ferramentas para donos de clínicas veterinários, recepcionistas e veterinários gerenciarem consultas, exames, prescrições, pets e seus respectivos tutores.
Consultas

Tutores

Pets

TiposDeConsulta

TiposDeExame

Profiles

## Deploy
[https://4paws-api.up.railway.app/](https://4paws-api.up.railway.app/)
## Lista de Conteúdos
📌 [Funcionalidades](#funcionalidades)
📌 [Dados de Acesso (para testes)](#dados-de-acesso-para-testes)
📌 [Diagramas UML](#diagramas-uml)
📌 [Tecnologias Utilizadas](#tecnologias-utilizadas)
📌 [Licença](#licença)
📌 [Autor](#autor)
## Funcionalidades
1. **Gerenciamento de consultas:** 📅
- Agendamento, atualização e cancelamento de consultas
- Listagem de consultas para veterinários (ordenadas por data)
2. **Gerenciamento de pets:** 🐶🐱
- Registro de novos pets
- Atualização de informações dos pets
3. **Gerenciamento de exames:** 🔬
- Registro, edição e remoção de exames
4. **Controle de prescrições:** 💊
- Registro, edição e remoção de prescrições médicas
5. **Administração de tipos de serviços:** 📋
- Cadastro e atualização de tipos de consultas e tipos de exames
- Listagem de tipos de consultas e tipos de exames disponíveis
6. **Gerenciamento de usuários:** 👥
- Registro de veterinários 👨⚕️👩⚕️, recepcionistas 💼 e administradores 🔑
- Autenticação de usuários (login) 🔐
- Visualização de perfil de usuário 👤
7. **Gerenciamento de tutores:** 🧑🤝🧑
- Registro de novos tutores
- Atualização de informações dos tutores
- Busca de tutores por CPF 🔍
### Dados de Acesso (para testes)
###### admin
```json
{
"email": "admin@example.com",
"password": "123"
}
```
###### recepcionista
```json
{
"email": "maria-recep@example.com",
"password": "123"
}
```
###### veterinário
```json
{
"email": "tonia-vet@example.com",
"password": "123"
}
```
## Diagramas UML
### Diagrama de Sequência
```mermaid
sequenceDiagram
actor Admin
actor Tutor
actor Recepcionista
actor Veterinário
participant Sistema
Admin ->> Sistema: Cadastra Serviços
Admin ->> Sistema: Cadastra Veterinários
Admin ->> Sistema: Cadastra Recepcionista
Tutor ->> Recepcionista: Entra em contato
Recepcionista ->> Tutor: Solicita informações
Tutor ->> Recepcionista: Fornece informações
Recepcionista ->> Sistema: Cadastra Tutor
Recepcionista ->> Sistema: Cadastra Pet
Recepcionista ->> Sistema: Cadastra Consulta
Veterinário ->> Tutor: Consulta Pet
Veterinário ->> Sistema: Registra observações sobre a Consulta
```
### Diagrama de Caso de Uso

### Diagrama de Classes
```mermaid
classDiagram
class Usuario {
-UUID id
-String email
-String senha
-String nome
-String cpf
-Cargo cargo
}
class Tutor {
-UUID id
-String nome
-String telefone
-String cpf
-Endereco endereco
-List~Pet~ pets
}
class Veterinario {
-Especialidade especialidade
-long crmv
-UF UF
-List~Consulta~ consultas
}
class UF {
<>
PB
PE
SP
...
}
class Especialidade {
<>
CIRURGIA
PATOLOGIA
CARDIOLOGIA
NEFROLOGIA_E_UROLOGIA
NUTRICAO_E_NUTROLOGIA
...
}
class Recepcionista {
}
class Pet {
-UUID id
-String nome
-double peso
-Sexo sexo
-Raca raça
-LocalDateTime dataDeNascimento
-Tutor tutor
}
class Raca {
-Integer id
-String nome
-Especie especie
}
class Especie {
-Integer id
-String nome
}
class Sexo {
<>
FEMEA
MACHO
}
%% class Servico {
%% <>
%% -UUID id
%% -TipoServico tipoServico
%% -Status status
%% }
%% class Pagamento {
%% -Long id
%% -double desconto
%% -double precoFinal
%% -LocalDateTime dataPagamento
%% -Servico servico
%% }
class Consulta {
-UUID id
-LocalDateTime dataRealizacao
-List~Veterinarios~ veterinarios
-Pet pet
-String observacoes
-List~Exame~ exames
-List~Prescricao~ prescricoes
-TipoConsulta tipoConsulta
}
class TipoConsulta {
}
class Exame {
-UUID id
-String resultado
-LocalDateTime dataRealizacao
-TipoExame tipoExame
}
class TipoExame {
}
class TipoServico {
<>
-Long id
-String nome
-String descricao
-Double preçoBase
}
class Prescricao {
-UUID id
-String medicamento
-String posologia
}
class Endereco {
-UUID id
-String bairro
-long numero
-String rua
}
class Cargo {
-int id
-String nome
}
Usuario <|-- Veterinario
Usuario <|-- Recepcionista
%% Servico <|-- Consulta
%% Servico <|-- Exame
TipoServico <|-- TipoConsulta
TipoServico <|-- TipoExame
Pet "1..*" --> "1" Raca : é de uma
Raca "1..*" --> "1" Especie: pertence
%% Servico "1" --> "1" TipoServico : tem
Usuario "1..*" --> "1" Cargo : tem
Pet "1..*" --> "1" Sexo : tem
Pet "1" --> "1..*" Consulta : pertence
Tutor "1" --> "1" Endereco: tem
Tutor "1" --> "1..*" Pet : possui
Recepcionista --> Consulta: cadastra
Recepcionista --> Tutor: cadastra
Veterinario --> Especialidade: tem
Veterinario --> UF: tem
Consulta "1..*" --> "1..*" Veterinario : é feita
Consulta "1" -- "0..*" Exame
Consulta "1" -- "0..*" Prescricao
Exame "1..*" -- "1" TipoExame
Consulta "1..*" -- "1" TipoConsulta
%% Pagamento "1" --> "1" Servico : tem
```
### Diagrama de Banco de Dados

## Tecnologias Utilizadas
- Java
- Spring Boot
- Spring Data Jpa
- Spring Security
- Spring Validation
- JWT
- H2 Database
- Lombok
### Licença
[Apache License 2.0](https://github.com/EmmanuellaAlbuquerque/4Paws/blob/main/LICENSE)
### Autor
Meu Linkedin: [in/emmanuella-albuquerque/](https://www.linkedin.com/in/emmanuella-albuquerque/)
Made with 💜☕ by Manu