EasyPet GitHub

Apresentação do sistema

Do primeiro agendamento ao fim do atendimento.

O EasyPet conecta tutores, estabelecimentos e administração em uma plataforma de cuidados pet. A jornada passa pelo catálogo, pela agenda, pelo prontuário e pelo caixa.

Ver demonstrações

O que o EasyPet faz

Esta é a vitrine estática do projeto. As gravações mostram a aplicação de homologação com dados fictícios.

Identidade
Entrada com Google ou e-mail e senha. A homologação restringia o login Google a contas convidadas.
Cuidados do pet
Busca por estabelecimento ou serviço, reservas, histórico de consultas e carteira de vacinas com próximas doses.
Operação da clínica
Cadastro de serviços e equipe, organização de horários, atendimento, adicionais autorizados e registro de recebimentos.
Gestão da plataforma
Painel de estabelecimentos e tutores, auditoria, chamados internos e alertas de saúde dos serviços.
Base técnica
Interface React e seis microsserviços com bancos isolados, acessados pela aplicação por um API Gateway.

Demonstrações

A jornada em três perfis

Comece pela experiência do tutor, acompanhe a operação da clínica e termine no painel de administração.

Tutor

Encontre uma clínica, marque uma consulta e acompanhe os cuidados da Amora.

Busca de parceiros

Explore o catálogo, filtre por categoria e abra o perfil do estabelecimento para conhecer seus serviços.

Estabelecimento

Da confirmação da reserva ao caixa, com a participação do tutor quando a clínica propõe um adicional.

Administração

Consulte os indicadores da plataforma, verifique os serviços e acompanhe chamados de suporte.

Frontend

Uma interface para cada rotina

A aplicação usa React, TypeScript, Vite, React Router e Tailwind CSS. As telas compartilham componentes e tokens de interface, com caminhos diferentes para cada perfil.

Explorar o código do frontend
Navegação por papel
O mesmo app encaminha cada pessoa ao painel correspondente. As rotas e o menu usam as permissões da sessão, e o backend valida as operações.
Componentes reutilizáveis
Botões, campos, diálogos e estados de carregamento, erro ou lista vazia usam componentes compartilhados. A navegação lateral se adapta ao desktop e ao celular.
Integração com a API
Uma camada de serviços tipados organiza as chamadas HTTP. O cliente Axios aplica o token de sessão e centraliza o tratamento de sessão expirada.

Backend

Cada domínio cuida dos seus dados

O backend usa Java e Spring. O Spring Cloud Gateway concentra a entrada HTTP, valida o JWT e limita a taxa de requisições com Redis.

Aplicação ReactAPI Gateway

Auth

Identidade, login Google por OAuth 2.0, sessões e permissões.

Pet

Cadastro, prontuário e carteira de vacinas.

Partner

Estabelecimentos, catálogo, equipes e escalas.

Booking

Disponibilidade, reservas, atendimentos e autorizações.

Payment

Cobranças, recebimentos e fechamento de caixa.

Notification

Notificações de agenda, preferências, chamados e alertas.

Cada serviço de domínio possui seu próprio PostgreSQL e evolui o banco com migrações Flyway.

Agenda sem reservas duplicadas

O Booking serializa a alocação de horários por estabelecimento. Chaves de idempotência permitem repetir uma tentativa sem criar uma segunda reserva.

Contrato da agenda

O caixa aplica o aceite registrado

O Payment consulta a autorização no Booking, usa o valor aprovado pelo tutor e registra a aplicação uma única vez.

Contrato do caixa

Notificações acompanham a agenda

O Booking grava eventos de reserva em uma tabela de saída. O Notification consome esses eventos em segundo plano e confirma o processamento.

Código do serviço

DevOps

Da homologação à VPS

O EasyPet foi homologado na mesma VPS do Setoriza. A publicação usou um projeto Docker Compose próprio, com volumes separados e acesso público pelo Nginx com HTTPS.

Ver registro da publicação
Release preparado fora da VPS
As imagens foram preparadas na estação de trabalho. O Nginx encaminhava apenas o domínio do EasyPet ao projeto Compose, e os bancos ficavam na rede interna.
Operação e recuperação
Healthchecks, alertas operacionais e rotinas de backup faziam parte da homologação. Antes de desligar a aplicação, foram verificados os seis dumps do PostgreSQL.
Publicação atual
O Nginx entrega esta vitrine e os vídeos como arquivos estáticos. O backend está desligado, com os volumes preservados para reativação.

Innker Tecnologia

Conheça outros projetos

Setoriza

Organiza o atendimento por setores e reúne as conversas de WhatsApp e o histórico dos chamados.

Conhecer o Setoriza

Portfólio de Randy Gomes

Projetos de desenvolvimento full stack e a trajetória profissional por trás do EasyPet.

Ver portfólio pessoal