BernuviaBernuvia
Categoria: SaaSWeb

Vetria — SaaS multi-clínica para veterinarias (Next.js 15 + NestJS 11)

1/15
#veterinaria#multi-tenant#gestão de clínicas#agenda de citas#expediente clínico

Software veterinário com código fonte: agenda, expediente, receitas PDF, cobranças, caixa, inventário, hospitalização e portal do tutor. Multi-clínica com RLS. Interface apenas em espanhol.

29 USDC35 USDC−17%

Pagamento protegido

Seu dinheiro fica em custódia por 1 dia

Entrega imediata

Baixe o código completo ao pagar

Compra respaldada

Algum problema? Abra um chamado

O que está incluído
  • Código fonte completo: web Next.js, API NestJS, worker BullMQ, esquema Drizzle, migrações e seed com 2 clínicas demo
  • Docker Compose de desenvolvimento, Dockerfiles, workflows de GitHub Actions e guias de implantação (VPS, Fly.io, Cloud Run)
  • 45 testes E2E com Playwright e testes unitários com Vitest
  • README e 5 guias em espanhol; THIRD_PARTY_NOTICES.md e CHANGELOG. Sem node_modules (são instalados com pnpm)
Tecnologias
NENext.jsNENestJSPOPostgreSQLTYTypeScriptDODocker
Descrição

Vetria é um software de gestão para clínicas veterinárias, pronto para operar como SaaS: muitas clínicas em uma única instalação, cada uma isolada na base de dados com Row-Level Security do PostgreSQL. Não é um kit de UI: agenda, prontuário clínico, receitas, cobranças, caixa, inventário, hospitalização, portal do tutor e relatórios funcionam de ponta a ponta, com API REST documentada, dados de demonstração e testes automatizados.

Idioma: interface 100 % em espanhol (México)

A interface, os e-mails, os PDFs e as mensagens de validação estão apenas em espanhol, com formatos do México (es-MX, moeda padrão MXN, IVA 16 %, CFDI). Não inclui um sistema de internacionalização (i18n) nem traduções. Os identificadores do código estão em inglês; os comentários e a documentação, em espanhol. Se você lê este anúncio traduzido, o produto não está.

Para quem é

  • Agências e freelancers que vendem software para veterinárias no México e na América Latina.
  • Empreendedores que desejam lançar seu próprio SaaS veterinário por assinatura.
  • Equipes que buscam uma base multi-tenant em TypeScript para saúde ou serviços.

Funcionalidade

Agenda

  • Lista de consultas e calendário com arrastar e soltar; detecção de sobreposições por veterinário.
  • Horários disponíveis por veterinário de acordo com a jornada e o fuso horário da clínica.
  • Consultas em série (toda semana, a cada 2 semanas ou a cada mês, de 2 a 12): são criadas como consultas individuais e a série é interrompida na primeira sobreposição.
  • Lista de espera com sugestões quando um espaço é liberado e confirmação de presença por link.

Prontuário clínico

  • Pacientes com foto e vários pacientes por tutor; arquivamento lógico que preserva histórico e pagamentos.
  • Anotações clínicas em Markdown com histórico de versões.
  • Sinais vitais com gráfico de peso e anexos (imagens com miniatura WebP).
  • Vacinas e desparasitizações: próximos reforços, vencimentos e carteira em PDF.

Receitas e documentos

  • Receita em PDF com assinatura digitalizada e registro profissional do veterinário.
  • Recibos, carteira, fechamento de caixa e folha de hospitalização em PDF.

Cobranças e caixa

  • Pagamentos totais ou parciais por consulta, com número sequencial por clínica.
  • Caixa com abertura, fechamento e conferência (esperado vs. contado).
  • Faturas CFDI simuladas: XML e PDF de teste sem validade fiscal, com a interface pronta para conectar a um PAC real.

Inventário

  • Catálogo de serviços e produtos, estoques com mínimo e kardex de movimentos.
  • Desconto automático de estoques ao completar ou cobrar a consulta, com devolução se revertido.

Hospitalização

  • Gaiolas e áreas, internações, notas de acompanhamento por turno (manhã, tarde, noite) e alta.

Portal do tutor

  • Acesso sem senha através de link mágico: consultas, carteira, receitas, recibos e solicitação de consultas.
  • Caixa de solicitações para que a equipe aceite ou rejeite.

Lembretes

  • Lembretes automáticos de consultas por e-mail, SMS ou WhatsApp (Twilio), com link para confirmar ou cancelar.
  • Aviso diário por e-mail de reforços de vacinas e desparasitizações próximos a vencer.
  • Registro de cada envio com seu estado.

Relatórios e exportação

  • Dashboard e relatórios com gráficos por data, veterinário e método de pagamento.
  • Exportação para CSV e Excel (.xlsx); registro de auditoria consultável e exportável.

Multi-clínica e filiais

  • Registro de clínicas, convites de equipe e funções: proprietário, administrador, veterinário e recepção.
  • Filiais com fuso horário próprio; assinatura por planos com limites (Stripe ou modo simulado).
  • Busca global com ⌘K / Ctrl+K, PWA instalável e design escuro por padrão.

Segurança

  • RLS no PostgreSQL: a API usa um papel sem bypass, então uma consulta não pode sair de sua clínica.
  • JWT com tokens de atualização rotativos em cookies httpOnly, Argon2, verificação de e-mail e recuperação de senha.
  • Limitação de taxa por IP e por clínica, CSP e cabeçalhos de segurança, logs com requestId, Sentry opcional.

Pilha técnica

CapaTecnologiaMonorepo npm workspaces + Turborepo, TypeScript estritoWebNext.js 15 (App Router), React 19, Tailwind CSS v4, Radix UI, FullCalendar, RechartsAPINestJS 11 sobre Fastify, Zod, OpenAPI/Swagger (mais de 180 operações)DadosPostgreSQL 16, Drizzle ORM, migrações versionadas, RLSJobsRedis 7 + BullMQ (e-mails, lembretes, backups), worker separávelArquivosArmazenamento S3 compatível (MinIO em local)QualidadeVitest, Playwright, ESLint, GitHub Actions

O que inclui

  • Código fonte completo: web, API, worker, esquema de banco de dados, migrações e seed com 2 clínicas demo.
  • Docker Compose para desenvolvimento, Dockerfiles multi-stage e workflows de CI e release (imagens para GHCR).
  • 45 testes E2E com Playwright e testes unitários com Vitest.
  • README e guias em espanhol: início, implantação, segurança, backups e troca de marca.
  • THIRD_PARTY_NOTICES.md e CHANGELOG. As dependências npm são instaladas com pnpm (não estão no ZIP).

Requisitos

  • Node.js 22 LTS (recomendado; mínimo 20) e pnpm 10.
  • Docker com Docker Compose v2 (Docker Desktop, OrbStack, Colima ou Docker Engine).

Instalação

Após pnpm install e copiar .env.example para .env:

  • pnpm infra:up: Postgres, Redis, Mailpit e MinIO no Docker.
  • pnpm db:migrate: esquema, papel da API e políticas RLS.
  • pnpm db:seed: dados de demonstração.
  • pnpm dev: web em localhost:3000 e API em localhost:4000.

Implantação

Guias passo a passo para um VPS com Docker Compose e Caddy (HTTPS automático), Fly.io e Google Cloud Run. A imagem da API traz os comandos api, worker e migrate; inclui runbook de backups do Postgres para S3.

O que está simulado ou requer suas contas

  • Stripe: a assinatura de clínicas funciona em modo simulado; para cobrar de verdade você precisa da sua conta e preços do Stripe.
  • Twilio: sem credenciais, SMS e WhatsApp apenas são registrados no log; para enviar você precisa da sua conta.
  • Email: localmente usa-se Mailpit; em produção você precisa do seu provedor SMTP.
  • CFDI: não inclui um PAC. Os comprovantes são de teste e não têm validade fiscal; a estrutura está pronta para conectar um PAC real, cuja integração e contrato ficam por sua conta.
  • Armazenamento S3, PostgreSQL e Redis de produção são fornecidos por você.

Licença

É vendido com a licença padrão de comprador da Bernuvia: você pode usar e modificar Vetria, implantá-lo como SaaS próprio e construir produtos para seus clientes. Você não pode revender nem redistribuir o código como template. As dependências de código aberto mantêm suas licenças (THIRD_PARTY_NOTICES.md). A compra não inclui direitos sobre a marca “Vetria”: inclui um guia para colocar a sua.

Perguntas frequentes

Está em inglês?

Não. A interface, os e-mails e os PDFs estão apenas em espanhol (México) e não há sistema i18n. Você pode adicionar um (por exemplo, next-intl), mas requer extrair os textos e não está incluído.

As faturas CFDI são válidas perante o SAT?

Não. O gerador interno produz XML e PDF de teste. Para timbrar você deve contratar um PAC e implementar seu conector na interface incluída.

Como os dados são isolados entre clínicas?

Cada tabela tem a clínica como chave e uma política RLS no PostgreSQL. A API se conecta com um papel sem bypass e fixa a clínica em cada transação.

Posso vendê-lo como SaaS para clínicas veterinárias?

Sim, com sua marca. O que você não pode é revender o código como template.

Preciso de Stripe ou Twilio para testá-lo?

Não. Sem credenciais funcionam em modo simulado e tudo é testado localmente com Docker.

Posso usar outro banco de dados?

Não sem reescrever partes importantes: o isolamento depende do RLS do PostgreSQL 16.

Funciona no celular?

É uma aplicação web adaptável que pode ser instalada como PWA. Não inclui apps nativos para iOS nem Android.

Templates relacionados

−33%

Smart-Money Tracker for Polymarket – macOS SwiftUI App

Aplicativo nativo para macOS para descobrir, seguir e analisar as carteiras mais lucrativas do Polymarket: taxa de vitória verdadeira, apostas compartilhadas, alertas e simulação de copy-trading. Sem chaves de API, sem backend.

Aplicativo desktop

10 USDC15 USDC
3
−58%

MediAgenda - medical booking SaaS

SaaS completo de agendamento médico construído com Next.js 14, Prisma e Stripe. Quatro portais (pacientes, médicos, admin, suporte), chat em tempo real, prontuários médicos, bilíngue EN/ES. Lance sua clínica em dias.

SaaS

19 USDC45 USDC
(1)1
−54%

Lumora – Visual Website Builder SaaS with Bootstrap 5 (Full Source)

Construtor de páginas arrastar e soltar com um editor de código ao vivo, 8 templates, publicação com um clique com domínios personalizados, equipes com funções e planos Stripe. Pronto para Docker.

SaaS

18 USDC39 USDC
−21%

Whiteout – 3D Zombie Shooter for Web & Android (three.js + TS)

Um completo jogo de tiro em primeira pessoa de sobrevivência: corra por um campo congelado e atire em hordas, chefes e pacotes de cães. Web + Android, 100% procedural, EN/ES, código TypeScript limpo.

Jogos

22 USDC28 USDC

Ainda não há avaliações. Seja a primeira pessoa a contar sua experiência.