# donmixho/vitalpets architecture

> Architecture diagram of the GitHub repository donmixho/vitalpets, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/donmixho/vitalpets
- Repository: https://github.com/donmixho/vitalpets

## Overview

VitalPets is a veterinary-management system split into ten independently persisted REST microservices. Staff use its APIs to manage owners and pets, schedule care, record clinical events, and handle supporting operations such as billing, inventory, vaccines, laboratory exams, personnel, and user accounts. The service layer is the principal internal layer shown; each domain’s own database is represented separately. Cross-service links follow the README’s documented WebClient relationships, corroborated where excerpts were available; other service internals and database wiring were not sampled.

Main entry points: [`ms-mascotas/src/main/java/com/vitalpets/mascotas/service/MascotaService.java`](https://github.com/donmixho/vitalpets/blob/main/ms-mascotas/src/main/java/com/vitalpets/mascotas/service/MascotaService.java) (Pet records), [`ms-citas/src/main/java/com/vitalpets/citas/service/CitaService.java`](https://github.com/donmixho/vitalpets/blob/main/ms-citas/src/main/java/com/vitalpets/citas/service/CitaService.java) (Appointments), [`ms-personal/src/main/java/com/vitalpets/personal/service/PersonalService.java`](https://github.com/donmixho/vitalpets/blob/main/ms-personal/src/main/java/com/vitalpets/personal/service/PersonalService.java) (Personnel and specialties), [`ms-usuarios/src/main/java/com/vitalpets/usuarios/service/UsuarioService.java`](https://github.com/donmixho/vitalpets/blob/main/ms-usuarios/src/main/java/com/vitalpets/usuarios/service/UsuarioService.java) (User accounts and roles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_patients["Patients and identity"]
  node_pets["Pet records"]
  node_pet_db[("Pets database")]
  node_clients["Owners and delegates"]
  node_client_db[("Clients database")]
end

subgraph group_care["Clinical care"]
  node_appointments["Appointments<br/>[CitaService.java]"]
  node_appointment_db[("Appointments database")]
  node_medical_history["Medical history"]
  node_history_db[("History database")]
  node_vaccines["Vaccination records<br/>[VacunaService.java]"]
  node_vaccine_db[("Vaccines database")]
  node_lab["Lab exams and results<br/>[ExamenService.java]"]
  node_lab_db[("Laboratory database")]
end

subgraph group_operations["Clinic operations"]
  node_billing["Detailed invoicing"]
  node_billing_db[("Billing database")]
  node_inventory["Product inventory"]
  node_inventory_db[("Inventory database")]
end

subgraph group_accounts["Accounts and staff"]
  node_personnel["Personnel and specialties"]
  node_personnel_db[("Personnel database")]
  node_users["User accounts and roles"]
  node_users_db[("Users database")]
end

node_staff_user(("Clinic staff"))

node_staff_user -->|"manage records"| node_pets
node_staff_user -->|"manage owners"| node_clients
node_staff_user -->|"schedule care"| node_appointments
node_staff_user -->|"record care"| node_medical_history
node_staff_user -->|"track vaccines"| node_vaccines
node_staff_user -->|"manage exams"| node_lab
node_staff_user -->|"issue invoices"| node_billing
node_staff_user -->|"manage stock"| node_inventory
node_staff_user -->|"manage staff"| node_personnel
node_staff_user -->|"manage access"| node_users
node_pets -->|"read/write"| node_pet_db
node_clients -->|"read/write"| node_client_db
node_appointments -->|"read/write"| node_appointment_db
node_medical_history -->|"read/write"| node_history_db
node_vaccines -->|"read/write"| node_vaccine_db
node_lab -->|"read/write"| node_lab_db
node_billing -->|"read/write"| node_billing_db
node_inventory -->|"read/write"| node_inventory_db
node_personnel -->|"read/write"| node_personnel_db
node_users -->|"read/write"| node_users_db
node_appointments -.->|"verify pet"| node_pets
node_appointments -.->|"verify client"| node_clients
node_medical_history -.->|"verify pet"| node_pets
node_vaccines -.->|"verify pet"| node_pets
node_lab -.->|"verify pet"| node_pets
node_billing -.->|"verify appointment"| node_appointments
node_inventory -.->|"verify staff"| node_personnel
node_personnel -.->|"verify account"| node_users
node_users -.->|"verify staff"| node_personnel

click node_pets "https://github.com/donmixho/vitalpets/blob/main/ms-mascotas/src/main/java/com/vitalpets/mascotas/service/MascotaService.java"
click node_clients "https://github.com/donmixho/vitalpets/blob/main/ms-clientes/src/main/java/com/vitalpets/clientes/service/ClienteService.java"
click node_appointments "https://github.com/donmixho/vitalpets/blob/main/ms-citas/src/main/java/com/vitalpets/citas/service/CitaService.java"
click node_medical_history "https://github.com/donmixho/vitalpets/blob/main/ms-historial/src/main/java/com/vitalpets/historial/service/HistorialService.java"
click node_vaccines "https://github.com/donmixho/vitalpets/blob/main/ms-vacunas/src/main/java/com/vitalpets/vacunas/service/VacunaService.java"
click node_lab "https://github.com/donmixho/vitalpets/blob/main/ms-laboratorio/src/main/java/com/vitalpets/laboratorio/service/ExamenService.java"
click node_billing "https://github.com/donmixho/vitalpets/blob/main/ms-facturacion/src/main/java/com/vitalpets/facturacion/service/FacturaService.java"
click node_inventory "https://github.com/donmixho/vitalpets/blob/main/ms-inventario/src/main/java/com/vitalpets/inventario/service/ProductoService.java"
click node_personnel "https://github.com/donmixho/vitalpets/blob/main/ms-personal/src/main/java/com/vitalpets/personal/service/PersonalService.java"
click node_users "https://github.com/donmixho/vitalpets/blob/main/ms-usuarios/src/main/java/com/vitalpets/usuarios/service/UsuarioService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pets,node_pet_db,node_clients,node_client_db toneBlue
class node_appointments,node_appointment_db,node_medical_history,node_history_db,node_vaccines,node_vaccine_db,node_lab,node_lab_db toneAmber
class node_billing,node_billing_db,node_inventory,node_inventory_db toneMint
class node_personnel,node_personnel_db,node_users,node_users_db toneRose
class node_staff_user toneIndigo
```

## Components

### Patients and identity

- [Pet records](https://github.com/donmixho/vitalpets/blob/main/ms-mascotas/src/main/java/com/vitalpets/mascotas/service/MascotaService.java): `ms-mascotas/src/main/java/com/vitalpets/mascotas/service/MascotaService.java`
- **Pets database**
- [Owners and delegates](https://github.com/donmixho/vitalpets/blob/main/ms-clientes/src/main/java/com/vitalpets/clientes/service/ClienteService.java): `ms-clientes/src/main/java/com/vitalpets/clientes/service/ClienteService.java`
- **Clients database**

### Clinical care

- [Appointments](https://github.com/donmixho/vitalpets/blob/main/ms-citas/src/main/java/com/vitalpets/citas/service/CitaService.java): `ms-citas/src/main/java/com/vitalpets/citas/service/CitaService.java`
- **Appointments database**
- [Medical history](https://github.com/donmixho/vitalpets/blob/main/ms-historial/src/main/java/com/vitalpets/historial/service/HistorialService.java): `ms-historial/src/main/java/com/vitalpets/historial/service/HistorialService.java`
- **History database**
- [Vaccination records](https://github.com/donmixho/vitalpets/blob/main/ms-vacunas/src/main/java/com/vitalpets/vacunas/service/VacunaService.java): `ms-vacunas/src/main/java/com/vitalpets/vacunas/service/VacunaService.java`
- **Vaccines database**
- [Lab exams and results](https://github.com/donmixho/vitalpets/blob/main/ms-laboratorio/src/main/java/com/vitalpets/laboratorio/service/ExamenService.java): `ms-laboratorio/src/main/java/com/vitalpets/laboratorio/service/ExamenService.java`
- **Laboratory database**

### Clinic operations

- [Detailed invoicing](https://github.com/donmixho/vitalpets/blob/main/ms-facturacion/src/main/java/com/vitalpets/facturacion/service/FacturaService.java): `ms-facturacion/src/main/java/com/vitalpets/facturacion/service/FacturaService.java`
- **Billing database**
- [Product inventory](https://github.com/donmixho/vitalpets/blob/main/ms-inventario/src/main/java/com/vitalpets/inventario/service/ProductoService.java): `ms-inventario/src/main/java/com/vitalpets/inventario/service/ProductoService.java`
- **Inventory database**

### Accounts and staff

- [Personnel and specialties](https://github.com/donmixho/vitalpets/blob/main/ms-personal/src/main/java/com/vitalpets/personal/service/PersonalService.java): `ms-personal/src/main/java/com/vitalpets/personal/service/PersonalService.java`
- **Personnel database**
- [User accounts and roles](https://github.com/donmixho/vitalpets/blob/main/ms-usuarios/src/main/java/com/vitalpets/usuarios/service/UsuarioService.java): `ms-usuarios/src/main/java/com/vitalpets/usuarios/service/UsuarioService.java`
- **Users database**

### Other components

- **Clinic staff**

## Connections

- Clinic staff → Pet records: manage records
- Clinic staff → Owners and delegates: manage owners
- Clinic staff → Appointments: schedule care
- Clinic staff → Medical history: record care
- Clinic staff → Vaccination records: track vaccines
- Clinic staff → Lab exams and results: manage exams
- Clinic staff → Detailed invoicing: issue invoices
- Clinic staff → Product inventory: manage stock
- Clinic staff → Personnel and specialties: manage staff
- Clinic staff → User accounts and roles: manage access
- Pet records → Pets database: read/write
- Owners and delegates → Clients database: read/write
- Appointments → Appointments database: read/write
- Medical history → History database: read/write
- Vaccination records → Vaccines database: read/write
- Lab exams and results → Laboratory database: read/write
- Detailed invoicing → Billing database: read/write
- Product inventory → Inventory database: read/write
- Personnel and specialties → Personnel database: read/write
- User accounts and roles → Users database: read/write
- Appointments → Pet records: verify pet
- Appointments → Owners and delegates: verify client
- Medical history → Pet records: verify pet
- Vaccination records → Pet records: verify pet
- Lab exams and results → Pet records: verify pet
- Detailed invoicing → Appointments: verify appointment
- Product inventory → Personnel and specialties: verify staff
- Personnel and specialties → User accounts and roles: verify account
- User accounts and roles → Personnel and specialties: verify staff
