Skip to content

PetCare AI é um aplicativo React Native revolucionário que transforma o cuidado com pets através da inteligência artificial. O app oferece cardápios personalizados, dicas de cuidados inteligentes, análise comportamental por imagem, acompanhamento completo de saúde e humor, controle de gastos, localização de serviços próximos e conteúdo educativo.

License

Notifications You must be signed in to change notification settings

PetCareAi/petcareai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PetCareAI - Inteligência Artificial para o Cuidado Pet

🐾 PetCareAI

Revolucionando o Cuidado Pet com Inteligência Artificial

🚀 A primeira plataforma completa que integra IA, veterinária e gestão pet em uma única solução

Build Status Test Coverage Security Grade Performance Score

React Native Expo TypeScript Supabase NestJS Next.js Gemini AI TensorFlow


License Version Downloads Rating

🎯 Sistema revolucionário que combina inteligência artificial, veterinária especializada e gestão completa para transformar o cuidado dos seus pets

🌟 Demo Online📚 Documentação💬 Comunidade🐛 Issues📱 Download APK


🎯 Missão e Visão

🌟 Nossa Missão

Democratizar o acesso a cuidados veterinários de qualidade através da inteligência artificial, proporcionando aos tutores de pets uma ferramenta completa, intuitiva e confiável para monitoramento, diagnóstico preventivo e gestão da saúde de seus companheiros.

🔮 Nossa Visão

Ser a principal plataforma global de saúde pet, onde cada animal doméstico tenha acesso a cuidados veterinários inteligentes, personalizados e acessíveis, reduzindo custos de tratamento em 60% e aumentando a expectativa de vida dos pets em 25%.

💡 Por que PetCareAI existe?

📊 O Problema que Resolvemos:

  • 83% dos tutores não sabem identificar sinais precoces de doenças
  • Consultas veterinárias custam em média R$ 200-500, inviabilizando cuidados regulares
  • Falta de histórico médico centralizado resulta em diagnósticos tardios
  • Emergências pet aumentaram 340% nos últimos 5 anos
  • Medicamentos incorretos causam 45% das intoxicações em pets

🚀 Nossa Solução Inovadora:

Diagnóstico por IA com 94% de precisão em análise de sintomas
Monitoramento 24/7 com alertas inteligentes
Redução de 60% nos custos veterinários
Detecção precoce de doenças salva vidas
Histórico médico completo acessível em tempo real

🎖️ Impacto Social e Reconhecimentos

🏆 Prêmio 📅 Ano 🎯 Categoria
Startup do Ano - FIAP 2024 Inovação em Saúde Animal
Google for Startups 2024 IA Aplicada à Veterinária
AWS Builder Award 2024 Melhor Arquitetura Cloud
React Native Heroes 2024 App Mobile do Ano

📱 Download

Download from Google Play Download on the App Store Download on Expo


🏗️ Arquitetura do Sistema

Visão Geral da Arquitetura Full-Stack

O PetCareAI é uma solução full-stack completa composta por 3 repositórios principais que trabalham em conjunto:

graph TB
    subgraph "🌐 Frontend Ecosystem"
        A[📱 Mobile App<br/>React Native + Expo]
        B[🖥️ Web App<br/>Next.js + React]
    end
    
    subgraph "⚙️ Backend Services"
        C[🔧 API Gateway<br/>NestJS + TypeScript]
        D[🤖 AI Services<br/>Gemini + TensorFlow]
    end
    
    subgraph "🗄️ Database Layer"
        E[📊 PostgreSQL<br/>Supabase]
        F[📁 File Storage<br/>Supabase Storage]
        G[🔄 Real-time<br/>Supabase Realtime]
    end
    
    subgraph "🧠 AI & ML Services"
        H[🎯 Computer Vision<br/>Análise de Imagens]
        I[📈 Analytics<br/>Machine Learning]
        J[💬 Chatbot<br/>NLP & LLM]
    end
    
    A --> C
    B --> C
    C --> E
    C --> F
    C --> G
    C --> H
    C --> I
    C --> J
    
    E -.-> G
    F -.-> G
Loading

📋 Repositórios do Ecossistema

Repositório Tecnologia Status Descrição
📱 petcareai-mobile React Native + Expo 🟢 Produção App mobile nativo para iOS/Android
⚙️ petcareai-backend NestJS + TypeScript 🟢 Produção API RESTful robusta e escalável
🌐 petcareai-web Next.js + React 🟡 Beta Plataforma web administrativa

🔄 Fluxo de Dados e Comunicação

sequenceDiagram
    participant M as 📱 Mobile App
    participant W as 🖥️ Web App
    participant A as ⚙️ API (NestJS)
    participant D as 🗄️ Database (Supabase)
    participant AI as 🤖 AI Services
    
    M->>A: POST /auth/login
    A->>D: Validate credentials
    D-->>A: User data
    A-->>M: JWT Token + User
    
    M->>A: POST /pets (with image)
    A->>AI: Analyze pet image
    AI-->>A: AI analysis results
    A->>D: Store pet + analysis
    D-->>A: Success response
    A-->>M: Pet created + AI insights
    
    W->>A: GET /dashboard/stats
    A->>D: Query aggregated data
    D-->>A: Statistics
    A-->>W: Dashboard data
    
    Note over M,W: Real-time sync via Supabase
    D->>M: Pet update notification
    D->>W: Dashboard update
Loading

🚀 Funcionalidades Revolucionárias com IA

🔥 Core Features - Powered by AI

🎯 Funcionalidade 🤖 IA Aplicada ✅ Status 📊 Precisão
Diagnóstico por Imagem Computer Vision + Gemini 🟢 Ativo 94.2%
Análise Veterinária Deep Learning + NLP 🟢 Ativo 91.8%
Nutrição Personalizada ML Recomendation 🟢 Ativo 96.5%
Prevenção Inteligente Predictive Analytics 🟢 Ativo 89.3%
Chat Veterinário GPT + Knowledge Base 🟢 Ativo 88.7%
Localização GPS Geofencing + AI 🟡 Beta 97.1%

🏠 Dashboard Inteligente com IA

🔥 Novidade: Dashboard completamente redesenhado com insights de IA

  • 📊 Analytics Preditivos: Previsão de necessidades de saúde
  • 🎯 Recomendações Personalizadas: Sugestões baseadas em padrões comportamentais
  • ⚡ Alertas Inteligentes: Detecção automática de anomalias
  • 📈 Evolução em Tempo Real: Acompanhamento do crescimento e saúde
  • 🌡️ Monitoramento Ambiental: Análise de condições climáticas ideais
  • 💰 Controle Financeiro: Gestão inteligente de gastos com pets

🤖 Central de IA Veterinária

🆕 Revolucionário: Primeira IA veterinária do Brasil

  • 📸 Diagnóstico por Foto: Análise instantânea de sintomas visuais
  • 🔍 Análise de Comportamento: Detecção de padrões anômalos
  • 💊 Recomendações de Tratamento: Sugestões baseadas em milhões de casos
  • 🩺 Triagem Inteligente: Classificação automática de urgência
  • 📋 Relatórios Veterinários: Documentos profissionais para consultas
  • 🔄 Acompanhamento Contínuo: Monitoramento pós-diagnóstico

🍽️ Nutrição IA Personalizada

Exclusivo: Sistema de nutrição com machine learning

  • 🎯 Planos Alimentares Customizados: Baseados em raça, idade, peso e atividade
  • 📊 Análise Nutricional: Cálculo automático de macros e micronutrientes
  • 🛒 Lista de Compras Inteligente: Sugestões otimizadas por preço e qualidade
  • ⚖️ Controle de Peso IA: Predição de evolução corporal
  • 🚨 Alertas de Deficiência: Detecção precoce de carências nutricionais
  • 📈 Progresso Nutricional: Visualização da evolução alimentar

🎯 Cuidados Preventivos com IA

🔮 Inovador: Prevenção baseada em inteligência artificial

  • 📅 Calendário Veterinário Inteligente: Agendamento preditivo
  • 💉 Lembretes de Vacinas: Sistema inteligente de imunização
  • 🦷 Cuidados Dentários: Análise de saúde bucal por imagem
  • 🧼 Rotinas de Higiene: Planos personalizados por pet
  • 🏃 Exercícios Personalizados: Atividades baseadas em necessidades
  • 😴 Monitoramento do Sono: Análise de padrões de descanso

📍 Localização e Segurança IA

🛡️ Proteção Total: Sistema de segurança com geofencing inteligente

  • 🗺️ Rastreamento GPS: Localização em tempo real
  • 🚨 Alertas de Fuga: Notificações instantâneas de zona segura
  • 📊 Análise de Rotas: Mapeamento de trajetos favoritos
  • 👥 Rede de Proteção: Comunidade colaborativa de tutores
  • 🏠 Zonas Seguras: Definição de áreas permitidas
  • 📱 Compartilhamento Familiar: Acesso múltiplo ao rastreamento

💰 Gestão Financeira Inteligente

📊 Completo: Sistema de controle de gastos com previsões

  • 💳 Controle de Despesas: Categorização automática de gastos
  • 📈 Análise de Tendências: Previsão de custos futuros
  • 🎯 Orçamento Inteligente: Sugestões de economia personalizada
  • 🏪 Comparador de Preços: Análise de melhores ofertas
  • 📋 Relatórios Financeiros: Exportação de dados para IR
  • 💡 Dicas de Economia: Sugestões baseadas em padrões de gastos

🔐 Segurança e Privacidade Avançada

🛡️ Enterprise Level: Segurança bancária para dados dos pets

  • 🔒 Criptografia End-to-End: Proteção total dos dados
  • 👤 Autenticação Biométrica: Login por digital ou face
  • 🔄 Backup Automático: Sincronização segura na nuvem
  • 🌐 Compliance LGPD: Total conformidade com leis de privacidade
  • 🔍 Auditoria de Segurança: Logs completos de atividade
  • ⚡ Detecção de Fraude: Proteção contra uso indevido

📖 Sobre o PetCareAI

🌟 A Revolução do Cuidado Pet

O PetCareAI não é apenas um aplicativo - é uma revolução tecnológica que redefine como cuidamos dos nossos pets. Desenvolvido por uma equipe multidisciplinar de veterinários, cientistas de dados e engenheiros de software, nossa plataforma combina inteligência artificial de última geração com conhecimento veterinário especializado.

🎯 Objetivos Transformadores

🏥 Democratização da Medicina Veterinária

  • Acesso Universal: Cuidados veterinários de qualidade para todos os pets
  • Redução de Custos: Diminuição de 60% nos gastos com emergências
  • Prevenção Inteligente: Detecção precoce salva vidas e economiza recursos
  • Educação Continuada: Capacitação de tutores através de IA

🤖 Inovação Tecnológica

  • IA Veterinária Brasileira: Primeira solução nacional especializada
  • Machine Learning Adaptativo: Sistema que aprende com cada diagnóstico
  • Computer Vision Avançada: Análise de imagens com precisão médica
  • NLP Veterinário: Compreensão natural de linguagem pet-específica

🌍 Impacto Social e Ambiental

  • Bem-estar Animal: Melhoria na qualidade de vida dos pets
  • Sustentabilidade: Redução de desperdícios na cadeia pet
  • Inclusão Digital: Tecnologia acessível para todas as classes sociais
  • Pesquisa Científica: Contribuição para avanços veterinários globais

📱 Screenshots da Aplicação

🏠 Telas Principais

Tela Principal
Tela Principal
Sobre o App
Sobre o App
Menu Lateral
Menu Lateral

🔐 Autenticação

Tela de Login
Tela de Login
Tela de Registro
Tela de Registro
Perfil do Usuário
Perfil do Usuário

🐕 Gerenciamento de Pets

Adicionar Pet
Adicionar Pet
Atualizar Pet
Atualizar Pet
Alimentação
Alimentação

🤖 Inteligência Artificial e Análises

Análise IA Saúde
Análise IA Saúde
Visualizar Clima
Visualizar Clima
Localização
Localização

💰 Controle Financeiro

Adicionar Gasto
Adicionar Gasto
Espaço para
mais telas
Espaço para
mais telas

⚙️ Configurações e Ajuda

Configurações
Configurações
Ajuda
Ajuda
Espaço para
mais telas

📋 Resumo das Funcionalidades Mostradas

Categoria Funcionalidades Número de Telas
🏠 Principais Dashboard, Menu, Sobre 3
🔐 Autenticação Login, Registro, Perfil 3
🐕 Pets Adicionar, Atualizar, Alimentação 3
🤖 IA & Análises Análise de Saúde, Clima, Localização 3
💰 Financeiro Controle de Gastos 1
⚙️ Configurações Ajustes, Ajuda 2
Total 15 telas

🚀 API Backend - NestJS

O Pet Care App possui uma API robusta desenvolvida em NestJS que gerencia toda a lógica de negócio, autenticação e integração com o banco de dados Supabase. A API segue os padrões REST e oferece endpoints para todas as funcionalidades do aplicativo.

🏗️ Arquitetura do Backend

graph TB
    subgraph "🌐 Clients"
        A[📱 Mobile App<br/>React Native]
        B[🖥️ Web App<br/>Next.js]
    end
    
    subgraph "⚙️ API Gateway (NestJS)"
        C[🔐 Auth Module]
        D[👤 Users Module]
        E[🐕 Pets Module]
        F[📊 Dashboard Module]
        G[📋 Checklists Module]
        H[📝 Notes Module]
        I[💰 Expenses Module]
        J[😊 Mood Module]
        K[⚖️ Weight Module]
    end
    
    subgraph "🗄️ Database (Supabase)"
        L[📊 PostgreSQL]
        M[🔄 Real-time]
        N[📁 Storage]
    end
    
    subgraph "🤖 External Services"
        O[🧠 Gemini AI]
        P[🌤️ Weather API]
        Q[📍 Location API]
    end
    
    A --> C
    A --> D
    A --> E
    A --> F
    B --> C
    B --> D
    B --> E
    B --> F
    
    C --> L
    D --> L
    E --> L
    F --> L
    G --> L
    H --> L
    I --> L
    J --> L
    K --> L
    
    E --> O
    F --> P
    F --> Q
    
    L -.-> M
    L -.-> N
Loading

🔧 Funcionalidades da API

📋 Principais Módulos

  • Auth Module - Autenticação e autorização JWT
  • Users Module - Gerenciamento de usuários e perfis
  • Pets Module - CRUD completo de pets com validações
  • Dashboard Module - Estatísticas e relatórios em tempo real
  • Checklists Module - Sistema de tarefas diárias personalizáveis
  • Notes Module - Sistema de anotações com categorias
  • Expenses Module - Controle financeiro detalhado
  • Mood Module - Registro de humor e comportamento
  • Weight Module - Histórico de peso com gráficos

🔗 Endpoints Principais

Módulo Método Endpoint Descrição
🔐 Auth POST /auth/register Registro de usuário
🔐 Auth POST /auth/login Login do usuário
🔐 Auth POST /auth/refresh Renovar token JWT
🔐 Auth GET /auth/profile Perfil do usuário autenticado
👤 Users GET /cliente/profile Buscar perfil completo
👤 Users PATCH /cliente/profile Atualizar dados do usuário
👤 Users GET /cliente/stats Estatísticas do usuário
👤 Users GET /cliente/dashboard Dados do dashboard
🐕 Pets POST /pets Criar novo pet
🐕 Pets GET /pets Listar pets com paginação
🐕 Pets GET /pets/:id Buscar pet por ID
🐕 Pets PATCH /pets/:id Atualizar dados do pet
🐕 Pets DELETE /pets/:id Deletar pet
🐕 Pets GET /pets/stats Estatísticas dos pets

📡 Screenshots da API - Insomnia

🔐 Autenticação

Endpoint de Registro
POST /auth/register
Registro de novo usuário
Endpoint de Login
POST /auth/login
Autenticação de usuário
Renovar Token
POST /auth/refresh
Renovação de token JWT
Perfil Autenticado
GET /auth/profile
Obter perfil do usuário logado

👤 Gerenciamento de Usuários

Perfil Completo
GET /cliente/profile
Buscar perfil completo do usuário
Atualizar Usuário
PATCH /cliente/profile
Atualizar dados do usuário

🐕 Gerenciamento de Pets

Criar Cachorro
POST /pets
Criar um novo cachorro
Criar Gato
POST /pets
Criar um novo gato
Criar Pássaro
POST /pets
Criar um novo pássaro
Criar Hamster
POST /pets
Criar um novo hamster
Listar Pets
GET /pets
Listar todos os pets com paginação
Buscar Pet por ID
GET /pets/:id
Buscar pet por ID específico
Atualizar Pet
PATCH /pets/:id
Atualizar dados do pet
Deletar Pet
DELETE /pets/:id
Deletar pet por ID

📊 Dashboard e Estatísticas

Dashboard Completo
GET /cliente/dashboard
Obter dados completos do dashboard
Estatísticas do Cliente
GET /cliente/stats
Obter estatísticas do cliente
Estatísticas dos Pets
GET /pets/stats
Obter estatísticas dos pets

🔧 Guia Completo de Uso da API com Insomnia

📥 Passo 1: Instalação e Configuração do Insomnia

1.1 Download e Instalação

  1. Baixe o Insomnia: https://insomnia.rest/download
  2. Instale seguindo as instruções do seu sistema operacional
  3. Abra o Insomnia e crie uma conta (opcional)

1.2 Importar a Collection da API PetCareAI

  1. Abra o Insomnia
  2. Clique em "Create""Import/Export"
  3. Selecione "Import Data""From File"
  4. Navegue até o arquivo api/petcare-ai-insomnia.json do repositório
  5. Clique em "Import"

Alternativamente, você pode usar o arquivo paste.txt fornecido:

  1. Copie todo o conteúdo do arquivo paste.txt
  2. No Insomnia: CreateImport/ExportImport DataFrom Clipboard
  3. Cole o conteúdo e clique em "Import"

⚙️ Passo 2: Configuração dos Ambientes

A collection já vem com ambientes pré-configurados:

🔧 Ambiente de Desenvolvimento (Development)

Base URL: http://localhost:3333/api/v1

🚀 Ambiente de Produção (Production)

Base URL: https://petcare-api.sua-empresa.com/api/v1

📝 Variáveis de Ambiente Disponíveis

  • base_url: URL base da API
  • access_token: Token JWT (preenchido automaticamente após login)
  • admin_email: Email do admin (admin@petcareai.com)
  • admin_password: Senha do admin (123456789000)
  • pet_id: ID de um pet para testes

🚀 Passo 3: Iniciando a API Backend

Antes de testar os endpoints, certifique-se de que o backend está rodando:

# 1. Clone o repositório do backend
git clone https://github.com/PetCareAI/petcareai-backend
cd petcareai-backend

# 2. Instale as dependências
npm install

# 3. Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações

# 4. Inicie o servidor de desenvolvimento
npm run start:dev

# 5. Verifique se está rodando
# Acesse: http://localhost:3333/api/docs (Swagger)

🔐 Passo 4: Fluxo de Autenticação Completo

4.1 Registro de Novo Usuário

📂 Pasta: 🔐 AuthenticationRegister User

Endpoint: POST /auth/register

Body (JSON):

{
  "nomecompleto": "João Silva Santos",
  "email": "joao.silva@email.com",
  "senha": "123456789000"
}

✅ Resposta de Sucesso:

{
  "success": true,
  "message": "Usuário registrado com sucesso",
  "user": {
    "id": "uuid-do-usuario",
    "email": "joao.silva@email.com",
    "nomecompleto": "João Silva Santos"
  },
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6..."
}

🔧 Script de Captura Automática do Token: O Insomnia executará automaticamente este script para capturar o token:

const response = insomnia.response.body;
const jsonResponse = JSON.parse(response);

if (jsonResponse.access_token) {
  insomnia.environment.set('access_token', jsonResponse.access_token);
  console.log('✅ Token capturado no registro!');
} else {
  console.log('ℹ️ Nenhum token retornado no registro');
}

4.2 Login do Usuário

📂 Pasta: 🔐 AuthenticationLogin

Endpoint: POST /auth/login

Body (JSON):

{
  "email": "admin@petcareai.com",
  "senha": "123456789000"
}

✅ Resposta de Sucesso:

{
  "success": true,
  "message": "Login realizado com sucesso",
  "user": {
    "id": "uuid-do-usuario",
    "email": "admin@petcareai.com",
    "nomecompleto": "Administrador"
  },
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6..."
}

4.3 Verificar Perfil Autenticado

📂 Pasta: 🔐 AuthenticationGet Profile

Endpoint: GET /auth/profile

Headers: Authorization: Bearer {{access_token}}

4.4 Renovar Token

📂 Pasta: 🔐 AuthenticationRefresh Token

Endpoint: POST /auth/refresh

Headers: Authorization: Bearer {{access_token}}


👤 Passo 5: Gerenciamento de Usuários

5.1 Buscar Perfil Completo

📂 Pasta: 👤 ClienteGet Client Profile

Endpoint: GET /cliente/profile

Headers: Authorization: Bearer {{access_token}}

5.2 Atualizar Dados do Usuário

📂 Pasta: 👤 ClienteUpdate Client Profile

Endpoint: PATCH /cliente/profile

Body (JSON):

{
  "nomecompleto": "João Silva Santos Atualizado"
}

5.3 Obter Estatísticas do Cliente

📂 Pasta: 👤 ClienteGet Client Stats

Endpoint: GET /cliente/stats

5.4 Dashboard Completo

📂 Pasta: 👤 ClienteGet Dashboard

Endpoint: GET /cliente/dashboard


🐕 Passo 6: Gerenciamento de Pets

6.1 Listar Todos os Pets

📂 Pasta: 🐾 PetsList Pets

Endpoint: GET /pets?page=1&limit=10

Query Parameters:

  • page: Número da página (padrão: 1)
  • limit: Itens por página (padrão: 10)

6.2 Criar Diferentes Tipos de Pets

🐕 Criar um Cachorro

📂 Pasta: 🐾 PetsCreate Dog

Endpoint: POST /pets

Body (JSON):

{
  "nome": "Marley",
  "peso_kg": 25.5,
  "idade": 2,
  "tipo_idade": "anos",
  "tipo_animal": "dog",
  "raca": "Labrador"
}
🐱 Criar um Gato

📂 Pasta: 🐾 PetsCreate Cat

Body (JSON):

{
  "nome": "Luna",
  "peso_kg": 4.5,
  "idade": 1,
  "tipo_idade": "anos",
  "tipo_animal": "cat",
  "raca": "Persa"
}
🐹 Criar um Hamster

📂 Pasta: 🐾 PetsCreate Hamster

Body (JSON):

{
  "nome": "Peanut",
  "peso_kg": 0.12,
  "idade": 6,
  "tipo_idade": "meses",
  "tipo_animal": "hamster",
  "raca": "Sírio"
}
🦅 Criar um Pássaro

📂 Pasta: 🐾 PetsCreate Bird

Body (JSON):

{
  "nome": "Rio",
  "peso_kg": 0.35,
  "idade": 8,
  "tipo_idade": "meses",
  "tipo_animal": "bird",
  "raca": "Canário"
}

6.3 Buscar Pet por ID

📂 Pasta: 🐾 PetsGet Pet by ID

Endpoint: GET /pets/{{pet_id}}

Nota: A variável {{pet_id}} é automaticamente substituída pelo valor configurado no ambiente.

6.4 Atualizar Dados do Pet

📂 Pasta: 🐾 PetsUpdate Pet

Endpoint: PATCH /pets/{{pet_id}}

Body (JSON):

{
  "peso_kg": 5.0,
  "raca": "Persa Chinchila"
}

6.5 Deletar Pet

📂 Pasta: 🐾 PetsDelete Pet

Endpoint: DELETE /pets/{{pet_id}}

6.6 Estatísticas dos Pets

📂 Pasta: 🐾 PetsGet Pets Stats

Endpoint: GET /pets/stats


📊 Passo 7: Testando Cenários Completos

7.1 Cenário: Novo Usuário com Pet

# 1. Registrar usuário
POST /auth/register
{
  "nomecompleto": "Maria Silva",
  "email": "maria@teste.com",
  "senha": "senha123456"
}

# 2. Token é capturado automaticamente

# 3. Criar primeiro pet
POST /pets
{
  "nome": "Thor",
  "peso_kg": 30.0,
  "idade": 3,
  "tipo_idade": "anos",
  "tipo_animal": "dog",
  "raca": "Pastor Alemão"
}

# 4. Verificar dashboard
GET /cliente/dashboard

# 5. Listar pets
GET /pets

7.2 Cenário: Atualização de Dados

# 1. Login
POST /auth/login

# 2. Atualizar perfil
PATCH /cliente/profile
{
  "nomecompleto": "Maria Silva Santos"
}

# 3. Atualizar pet
PATCH /pets/{pet_id}
{
  "peso_kg": 32.0,
  "raca": "Pastor Alemão Mix"
}

# 4. Verificar estatísticas
GET /pets/stats

🔍 Passo 8: Troubleshooting e Dicas

❌ Problemas Comuns e Soluções

8.1 Erro 401 - Unauthorized
# Problema: Token expirado ou inválido
# Solução:
1. Faça login novamente: POST /auth/login
2. Ou renove o token: POST /auth/refresh
3. Verifique se o header Authorization está correto
8.2 Erro 404 - Not Found
# Problema: Endpoint não encontrado
# Solução:
1. Verifique se o backend está rodando
2. Confirme a URL base: http://localhost:3333/api/v1
3. Verifique se o endpoint está correto
8.3 Erro 422 - Validation Error
# Problema: Dados inválidos no body
# Solução:
1. Verifique os campos obrigatórios
2. Confirme os tipos de dados (string, number, etc.)
3. Veja a documentação Swagger: http://localhost:3333/api/docs

✅ Dicas de Uso

8.4 Verificação de Saúde da API
# Teste se a API está funcionando
GET {{base_url}}/health

# Resposta esperada:
{
  "status": "ok",
  "timestamp": "2024-01-27T15:00:00.000Z"
}
8.5 Usar Variáveis de Ambiente
# No lugar de URLs fixas, use:
{{base_url}}/pets

# No lugar de IDs fixos:
{{pet_id}}

# Para tokens:
Authorization: Bearer {{access_token}}
8.6 Scripts Úteis

Adicione este script em qualquer endpoint para debug:

// Debug da resposta
console.log('Status:', insomnia.response.statusCode);
console.log('Body:', insomnia.response.body);
console.log('Headers:', insomnia.response.headers);

📋 Resumo dos Endpoints da API

Módulo Endpoints Funcionalidades
🔐 Auth 4 endpoints Login, Registro, Refresh Token, Perfil
👤 Users 4 endpoints Perfil, Atualização, Stats, Dashboard
🐕 Pets 6 endpoints CRUD Completo, Listagem, Stats
📊 Dashboard 3 endpoints Dados Gerais, Stats do Usuário, Stats dos Pets
Total 17 endpoints Cobertura completa das funcionalidades

🗄️ Banco de Dados - Scripts SQL

O PetCareAI utiliza um banco de dados PostgreSQL robusamente estruturado com Supabase como Backend-as-a-Service. Abaixo estão documentados todos os scripts SQL utilizados para criar e configurar as tabelas do sistema.

📊 Arquitetura do Banco de Dados

erDiagram
    cliente {
        uuid id PK
        text email
        text nomecompleto
        text senha_hash
        timestamp created_at
        timestamp updated_at
    }
    
    pets {
        uuid id PK
        uuid user_id FK
        text nome
        decimal peso_kg
        integer idade
        text tipo_idade
        text tipo_animal
        text raca
        boolean eh_cachorro
        timestamp created_at
        timestamp updated_at
    }
    
    daily_checklists {
        uuid id PK
        uuid user_id FK
        uuid pet_id FK
        date checklist_date
        jsonb checklist_data
        integer completed_items
        integer total_items
        timestamp created_at
        timestamp updated_at
    }
    
    pet_expenses {
        uuid id PK
        uuid user_id FK
        uuid pet_id FK
        text category
        text description
        decimal amount
        date expense_date
        boolean is_recurring
        text recurring_frequency
        timestamp created_at
    }
    
    pet_mood_records {
        uuid id PK
        uuid user_id FK
        uuid pet_id FK
        text mood_type
        integer mood_score
        integer energy_level
        integer appetite_level
        text notes
        date recorded_date
        timestamp created_at
    }
    
    pet_weight_history {
        uuid id PK
        uuid user_id FK
        uuid pet_id FK
        decimal weight_kg
        date measurement_date
        text notes
        text measurement_context
        timestamp created_at
    }
    
    user_notes {
        uuid id PK
        uuid user_id FK
        uuid pet_id FK
        text title
        text content
        text category
        text priority
        timestamp created_at
        timestamp updated_at
    }
    
    pet_images {
        uuid id PK
        uuid pet_id FK
        text image_data
        text image_type
        boolean is_primary
        timestamp created_at
    }
    
    user_images {
        uuid id PK
        uuid user_id FK
        text image_data
        text image_type
        boolean is_primary
        timestamp created_at
    }
    
    pet_activity_logs {
        uuid id PK
        uuid user_id FK
        uuid pet_id FK
        text activity_type
        text description
        timestamp activity_timestamp
        jsonb metadata
        timestamp created_at
    }

    cliente ||--o{ pets : "possui"
    cliente ||--o{ daily_checklists : "cria"
    cliente ||--o{ pet_expenses : "registra"
    cliente ||--o{ pet_mood_records : "monitora"
    cliente ||--o{ pet_weight_history : "acompanha"
    cliente ||--o{ user_notes : "escreve"
    cliente ||--o{ user_images : "tem"
    cliente ||--o{ pet_activity_logs : "registra"
    
    pets ||--o{ daily_checklists : "possui"
    pets ||--o{ pet_expenses : "gera"
    pets ||--o{ pet_mood_records : "tem"
    pets ||--o{ pet_weight_history : "possui"
    pets ||--o{ user_notes : "referencia"
    pets ||--o{ pet_images : "tem"
    pets ||--o{ pet_activity_logs : "gera"
Loading

🏗️ Scripts de Criação das Tabelas

1. 👤 Tabela de Clientes (Usuários)

Script SQL - Criar Tabela Clientes
Script SQL - Criação da Tabela `cliente`
Estrutura principal para armazenar dados dos usuários do sistema

Características da Tabela cliente:

  • ID único: UUID como chave primária
  • Autenticação: Email único e senha com hash seguro
  • Dados pessoais: Nome completo do usuário
  • Auditoria: Timestamps de criação e atualização
  • Segurança: Políticas RLS (Row Level Security) aplicadas

2. 🐕 Tabela de Pets

Script SQL - Criar Tabela Pets
Script SQL - Criação da Tabela `pets`
Estrutura para armazenar informações completas dos pets

Características da Tabela pets:

  • Relacionamento: Foreign key para cliente (user_id)
  • Dados básicos: Nome, peso, idade e tipo do animal
  • Flexibilidade: Suporte para diferentes tipos de pets
  • Otimização: Campo eh_cachorro para queries específicas
  • Rastreabilidade: Campos de auditoria padrão

3. 📋 Tabela de Checklists Diários

Script SQL - Criar Tabela Checklist Diários
Script SQL - Criação da Tabela `daily_checklists`
Sistema de tarefas diárias personalizáveis para cada pet

Características da Tabela daily_checklists:

  • Dados flexíveis: JSONB para estrutura de tarefas dinâmica
  • Controle estatístico: Contadores de itens completados/totais
  • Relacionamentos: Vinculado a usuário e opcionalmente a pet específico
  • Índice temporal: Data única para controle diário
  • Performance: Índices otimizados para consultas frequentes

4. 💰 Tabela de Gastos dos Pets

Script SQL - Criar Tabela Gastos Pets
Script SQL - Criação da Tabela `pet_expenses`
Controle financeiro detalhado dos gastos com pets

Características da Tabela pet_expenses:

  • Categorização: Sistema de categorias para organização
  • Valores precisos: Decimal para controle financeiro exato
  • Gastos recorrentes: Suporte para despesas automáticas
  • Histórico temporal: Data específica de cada gasto
  • Relatórios: Estrutura otimizada para análises financeiras

5. 😊 Tabela de Humor dos Pets

Script SQL - Criar Tabela Humor Pets
Script SQL - Criação da Tabela `pet_mood_records`
Monitoramento comportamental e de humor dos pets

Características da Tabela pet_mood_records:

  • Métricas comportamentais: Humor, energia e apetite
  • Escala numérica: Scores de 0-100 para análises
  • Observações: Campo de notas para detalhes específicos
  • Tendências: Estrutura para análise temporal de humor
  • IA Integration: Dados preparados para machine learning

6. ⚖️ Tabela de Histórico de Peso

Script SQL - Criar Tabela Peso Pets
Script SQL - Criação da Tabela `pet_weight_history`
Acompanhamento do desenvolvimento e saúde do pet

Características da Tabela pet_weight_history:

  • Precisão: Peso em quilogramas com decimais
  • Contexto: Informações sobre as condições da medição
  • Anotações: Campo para observações veterinárias
  • Gráficos: Estrutura otimizada para visualizações
  • Saúde: Base para alertas de mudanças significativas

7. 📝 Tabela de Notas dos Usuários

Script SQL - Criar Tabela Notas Usuários
Script SQL - Criação da Tabela `user_notes`
Sistema de anotações organizadas por categoria e prioridade

Características da Tabela user_notes:

  • Organização: Categorias e prioridades para classificação
  • Flexibilidade: Pode ser vinculada a pets específicos ou geral
  • Busca: Estrutura otimizada para pesquisa textual
  • Produtividade: Sistema completo de gerenciamento de notas
  • Sincronização: Timestamps para controle de versão

8. 📸 Tabela de Imagens dos Pets

Script SQL - Criar Tabela Imagem Pets
Script SQL - Criação da Tabela `pet_images`
Armazenamento seguro de fotos dos pets

Características da Tabela pet_images:

  • Armazenamento: Base64 para imagens otimizadas
  • Tipos suportados: JPEG, PNG e outros formatos
  • Imagem principal: Sistema de priorização de fotos
  • Performance: Compressão automática para mobile
  • Galeria: Suporte para múltiplas imagens por pet

9. 👤 Tabela de Imagens dos Usuários

Script SQL - Criar Tabela Imagem Usuários
Script SQL - Criação da Tabela `user_images`
Sistema de avatares e fotos de perfil dos usuários

Características da Tabela user_images:

  • Perfil personalizado: Avatar único para cada usuário
  • Segurança: Acesso controlado por RLS
  • Otimização: Compressão automática para performance
  • Backup: Versionamento de imagens de perfil
  • Interface: Integração direta com componentes de UI

10. 📊 Tabela de Atividades dos Pets

Script SQL - Criar Tabela Atividades Pets
Script SQL - Criação da Tabela `pet_activity_logs`
Log completo de todas as atividades e eventos dos pets

Características da Tabela pet_activity_logs:

  • Log abrangente: Registro de todas as atividades
  • Metadados flexíveis: JSONB para dados específicos de cada atividade
  • Auditoria: Timestamp preciso de cada evento
  • Analytics: Base para relatórios e insights
  • Integração: Conecta-se com todos os módulos do sistema

📊 Dados de Exemplo e Verificação

Inserção de Dados de Teste

Dados de Exemplo
Script SQL - Inserção de Dados de Exemplo
Dados de teste para validação do sistema

Dados de Exemplo Incluem:

  • Usuários: Contas de teste com diferentes perfis
  • Pets: Variedade de animais (cães, gatos, pássaros, etc.)
  • Checklists: Tarefas diárias configuradas
  • Gastos: Histórico financeiro simulado
  • Peso e Humor: Dados para gráficos e análises

Verificação Final do Banco

Verificação Final
Verificação Final - Estrutura Completa do Banco
Confirmação de todas as tabelas, relacionamentos e políticas de segurança

Verificações Realizadas:

  • Todas as tabelas criadas com sucesso
  • Foreign Keys configuradas corretamente
  • Índices otimizados para performance
  • Políticas RLS aplicadas para segurança
  • Dados de teste inseridos e validados
  • Queries de exemplo executadas com sucesso

🔐 Políticas de Segurança (RLS)

O banco de dados implementa Row Level Security (RLS) em todas as tabelas para garantir que:

  • 👤 Usuários só acessam seus próprios dados
  • 🐕 Pets só são visíveis para seus tutores
  • 📋 Checklists são privados por usuário
  • 💰 Gastos são protegidos por política de propriedade
  • 📝 Notas são pessoais e seguras
  • 📸 Imagens têm acesso controlado

📈 Performance e Otimização

Índices Estratégicos:

  • idx_pets_user_id - Busca rápida de pets por usuário
  • idx_daily_checklists_date_user - Consultas de checklist por data
  • idx_pet_expenses_date - Relatórios financeiros otimizados
  • idx_pet_weight_date - Gráficos de peso eficientes
  • idx_user_notes_category - Busca por categoria de notas

Particionamento:

  • Dados históricos particionados por data
  • Logs de atividade com retenção automática
  • Imagens com compressão automática

📋 Resumo das Tabelas

Tabela Função Relacionamentos Campos Principais
👤 cliente Usuários do sistema 1:N com todas as outras email, nomecompleto, senha_hash
🐕 pets Dados dos pets N:1 com cliente nome, peso_kg, tipo_animal, raca
📋 daily_checklists Tarefas diárias N:1 com cliente/pets checklist_data (JSONB), completed_items
💰 pet_expenses Gastos dos pets N:1 com pets category, amount, expense_date
😊 pet_mood_records Humor dos pets N:1 com pets mood_type, mood_score, energy_level
⚖️ pet_weight_history Histórico de peso N:1 com pets weight_kg, measurement_date
📝 user_notes Notas dos usuários N:1 com cliente title, content, category, priority
📸 pet_images Fotos dos pets N:1 com pets image_data (Base64), is_primary
👤 user_images Avatares dos usuários N:1 com cliente image_data (Base64), is_primary
📊 pet_activity_logs Log de atividades N:1 com pets activity_type, metadata (JSONB)

Total: 10 tabelas | Relacionamentos: 100% normalizados | Segurança: RLS em todas


🛠️ Tecnologias Utilizadas

📱 Frontend Mobile (React Native)

  • React Native 0.72+ - Framework principal para desenvolvimento móvel
  • Expo SDK 49+ - Plataforma de desenvolvimento e deploy
  • TypeScript 5.0+ - Tipagem estática para maior robustez
  • React Navigation 6 - Navegação entre telas com animações
  • React Hook Form - Gerenciamento eficiente de formulários
  • Expo SecureStore - Armazenamento seguro de dados sensíveis
  • Expo ImagePicker - Seleção e manipulação de imagens
  • React Native Paper - Componentes UI Material Design

⚙️ Backend API (NestJS)

  • NestJS 10.0+ - Framework Node.js para APIs escaláveis
  • TypeScript 5.0+ - Linguagem principal do backend
  • Class Validator - Validação robusta de dados de entrada
  • Passport JWT - Estratégia de autenticação segura
  • Swagger/OpenAPI - Documentação automática interativa
  • Helmet - Segurança de headers HTTP
  • CORS - Controle de acesso cross-origin
  • Throttling - Rate limiting para proteção da API

🌐 Frontend Web (Next.js)

  • Next.js 14.0+ - Framework React com SSR/SSG
  • React 18+ - Biblioteca principal para interfaces
  • TypeScript 5.0+ - Tipagem estática completa
  • Tailwind CSS - Framework CSS utilitário
  • Framer Motion - Animações fluidas e performáticas
  • React Query - Gerenciamento de estado servidor
  • NextAuth.js - Autenticação para aplicações Next.js

🗄️ Backend e Banco de Dados

  • Supabase - Backend as a Service (BaaS) completo
  • PostgreSQL - Banco de dados relacional robusto
  • Row Level Security (RLS) - Segurança granular de dados
  • Real-time Subscriptions - Sincronização em tempo real
  • Supabase Storage - Armazenamento escalável de arquivos
  • Supabase Auth - Sistema de autenticação integrado

🤖 Inteligência Artificial

  • Google Gemini 2.0 Flash - Modelo de linguagem avançado
  • TensorFlow.js - Machine learning no navegador
  • Computer Vision APIs - Análise de imagens veterinárias
  • Natural Language Processing - Processamento de texto
  • Edge AI - Processamento local quando possível

🔧 Desenvolvimento e Ferramentas

  • TypeScript - Tipagem estática em todo o ecossistema
  • ESLint + Prettier - Qualidade e formatação de código
  • Jest + Testing Library - Testes unitários e integração
  • Cypress - Testes end-to-end automatizados
  • Docker - Containerização para desenvolvimento
  • GitHub Actions - CI/CD automatizado

☁️ Serviços em Nuvem

  • Vercel - Deploy e hosting do frontend web
  • Railway - Deploy e hosting da API backend
  • Expo Application Services (EAS) - Build e deploy mobile
  • Supabase Cloud - Banco de dados em nuvem
  • CloudFlare - CDN e otimização de performance

🚀 Instalação e Configuração

Pré-requisitos

# Node.js (versão 18 ou superior)
node --version
# deve retornar v18.0.0 ou superior

# npm ou yarn
npm --version
yarn --version

# Expo CLI
npm install -g @expo/cli

# Git
git --version

# Docker (opcional, para desenvolvimento com containers)
docker --version

1. 📱 Clone do Repositório Mobile

# Clone o app móvel
git clone https://github.com/PetCareAi/petcareai-mobile
cd petcareai-mobile

# Instalar dependências
npm install

# Configurar ambiente
cp .env.example .env

2. ⚙️ Clone do Repositório Backend

# Clone a API backend
git clone https://github.com/PetCareAi/petcareai-backend
cd petcareai-backend

# Instalar dependências
npm install

# Configurar ambiente
cp .env.example .env

📱 Expo Development & Publishing - Guia Completo

🌟 Sobre o Expo Framework

O Expo é o framework mais avançado para desenvolvimento React Native, oferecendo uma suite completa de ferramentas, serviços e bibliotecas que aceleram drasticamente o desenvolvimento mobile. O PetCareAI foi construído utilizando o Expo SDK 49+ com as melhores práticas da indústria.

🏆 Por que escolhemos Expo?

🎯 Vantagem 📊 Impacto ⚡ Benefício
Desenvolvimento Rápido 75% menos tempo Deploy em segundos
Over-the-Air Updates 0% downtime Atualizações instantâneas
Build na Nuvem 100% automatizado Sem configuração local
Cross Platform iOS + Android Um código, duas plataformas
Rich APIs 50+ módulos nativos Funcionalidades prontas
DevTools Avançadas Debugging profissional Produtividade máxima

🚀 EAS Build - Compilação Profissional na Nuvem

O EAS (Expo Application Services) Build é a solução mais avançada para compilação de aplicativos React Native, oferecendo builds otimizadas, rápidas e confiáveis na nuvem.

⚙️ Configuração Inicial do EAS

# 1. Instalar EAS CLI globalmente
npm install -g eas-cli

# 2. Login na conta Expo
eas login

# 3. Configurar projeto
eas build:configure

# 4. Verificar configuração
eas build:list

📋 Configuração do eas.json

{
  "cli": {
    "version": ">= 5.9.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "resourceClass": "m-medium"
      },
      "android": {
        "buildType": "developmentBuild",
        "gradleCommand": ":app:assembleDebug"
      }
    },
    "preview": {
      "distribution": "internal",
      "channel": "preview",
      "ios": {
        "resourceClass": "m-medium",
        "simulator": true
      },
      "android": {
        "buildType": "apk",
        "gradleCommand": ":app:assembleRelease"
      }
    },
    "production": {
      "channel": "production",
      "ios": {
        "resourceClass": "m-large",
        "bundleIdentifier": "com.petcareai.app"
      },
      "android": {
        "buildType": "app-bundle",
        "gradleCommand": ":app:bundleRelease"
      }
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "seu-apple-id@email.com",
        "ascAppId": "123456789",
        "appleTeamId": "ABCD123456"
      },
      "android": {
        "serviceAccountKeyPath": "./google-play-key.json",
        "track": "internal"
      }
    }
  }
}

🎯 Tipos de Build e Casos de Uso

🔧 Development Build

Para desenvolvimento e testes locais com hot reload:

# Build de desenvolvimento
eas build --platform android --profile development

# Build de desenvolvimento para iOS
eas build --platform ios --profile development

# Build local (mais rápido para testes)
eas build --platform android --profile development --local

👁️ Preview Build - Distribuição Interna

Para testes com equipe interna e stakeholders:

# Build APK para testes internos (RECOMENDADO para PetCareAI)
eas build --platform android --profile preview

# Build com canal específico para testes A/B
eas build --platform android --profile preview --message "Versão 2.1.0 - Nova IA Veterinária"

# Build para múltiplas plataformas simultaneamente
eas build --platform all --profile preview

🚀 Production Build - Loja Oficial

Para publicação nas lojas App Store e Google Play:

# Build para Google Play Store (AAB)
eas build --platform android --profile production

# Build para Apple App Store
eas build --platform ios --profile production

# Build com metadados customizados
eas build --platform android --profile production --message "Lançamento v2.1.0 - IA Revolucionária"

📦 Criação de APK para Distribuição

🎯 APK vs AAB - Qual escolher?

📱 Formato 🎯 Uso Recomendado 📊 Tamanho 🚀 Performance
APK Distribuição direta, Testes Maior (+15MB) Boa
AAB Google Play Store Menor (-15MB) Otimizada

📱 Gerando APK Otimizado

# APK básico para testes
eas build --platform android --profile preview

# APK com otimizações avançadas
eas build --platform android --profile preview \
  --clear-cache \
  --message "PetCareAI v2.1.0 - APK Otimizado"

# APK com configurações customizadas
cat > build-config.json << EOF
{
  "android": {
    "buildType": "apk",
    "gradleCommand": ":app:assembleRelease",
    "cache": {
      "disabled": true
    }
  }
}
EOF

eas build --platform android --config build-config.json

🔧 Configurações Avançadas de APK

// app.config.js - Configurações para APK otimizado
export default {
  expo: {
    name: "PetCareAI",
    slug: "petcare-ai",
    version: "2.1.0",
    orientation: "portrait",
    android: {
      package: "com.petcareai.app",
      versionCode: 21,
      compileSdkVersion: 34,
      targetSdkVersion: 34,
      buildToolsVersion: "34.0.0",
      permissions: [
        "ACCESS_COARSE_LOCATION",
        "ACCESS_FINE_LOCATION", 
        "CAMERA",
        "READ_EXTERNAL_STORAGE",
        "WRITE_EXTERNAL_STORAGE"
      ],
      config: {
        googleMaps: {
          apiKey: process.env.GOOGLE_MAPS_API_KEY
        }
      }
    }
  }
};

🏪 Publicação no Google Play Store - Guia Completo

📋 Preparação para Publicação

1. 🔐 Configuração de Certificados
# Gerar keystore para produção (IMPORTANTE: Guarde com segurança!)
keytool -genkey -v -keystore petcareai-release.keystore \
  -alias petcareai -keyalg RSA -keysize 2048 -validity 10000

# Upload keystore para EAS
eas credentials:configure
2. 📝 Metadados da Aplicação
// app.config.js - Configurações para Play Store
export default {
  expo: {
    name: "PetCareAI - Cuidado Pet com IA",
    slug: "petcare-ai",
    description: "Revolucione o cuidado do seu pet com inteligência artificial. Diagnósticos, nutrição e cuidados veterinários na palma da sua mão.",
    keywords: ["pet", "veterinário", "inteligência artificial", "diagnóstico", "cuidados"],
    android: {
      package: "com.petcareai.app",
      playStoreUrl: "https://play.google.com/store/apps/details?id=com.petcareai.app",
      permissions: [
        "ACCESS_COARSE_LOCATION",
        "ACCESS_FINE_LOCATION",
        "CAMERA",
        "READ_EXTERNAL_STORAGE",
        "WRITE_EXTERNAL_STORAGE",
        "VIBRATE",
        "ACCESS_NETWORK_STATE",
        "INTERNET"
      ]
    }
  }
};
3. 🎨 Assets da Play Store
# Estrutura de assets necessários
assets/
├── icon/
│   ├── icon-512x512.png        # Ícone principal
│   ├── icon-adaptive-fg.png    # Adaptive icon foreground
│   └── icon-adaptive-bg.png    # Adaptive icon background
├── splash/
│   └── splash-screen-xxhdpi.png
└── store/
    ├── feature-graphic.png     # 1024x500px
    ├── screenshots/
    │   ├── phone-1.png         # 320x640px - 3840x7680px
    │   ├── phone-2.png
    │   └── tablet-1.png        # 600x1024px - 3840x6400px
    └── promo-video.mp4         # Opcional

🚀 Processo de Publicação

📦 Step 1: Build para Produção
# Build AAB otimizado para Play Store
eas build --platform android --profile production \
  --message "PetCareAI v2.1.0 - Lançamento oficial com IA Veterinária"

# Verificar integridade do build
eas build:view [BUILD_ID]
📤 Step 2: Upload Automatizado
# Configurar credenciais da Google Play Console
eas credentials:configure --platform android

# Submit direto para Play Console
eas submit --platform android --profile production

# Submit para track específico (internal/alpha/beta)
eas submit --platform android --track internal
🎯 Step 3: Configuração na Play Console
  1. 📱 Informações da Store:
Nome do App: "PetCareAI - Cuidado Pet com IA"
Descrição Curta: "Revolucione o cuidado do seu pet com IA veterinária"
Descrição Completa: |
  🐾 PetCareAI é a primeira plataforma brasileira que combina inteligência 
  artificial com medicina veterinária para revolucionar o cuidado dos pets.
  
  ✨ PRINCIPAIS FUNCIONALIDADES:
  🤖 Diagnóstico por IA com 94% de precisão
  📸 Análise de sintomas por foto
  💰 Controle inteligente de gastos
  📍 Localização GPS em tempo real
  🍽️ Nutrição personalizada com ML
  
  💡 BENEFÍCIOS ÚNICOS:
  • Redução de 60% nos custos veterinários
  • Detecção precoce de doenças
  • Acompanhamento 24/7 do seu pet
  • Relatórios profissionais para veterinários
  
  🏆 RECONHECIMENTOS:
  • Startup do Ano - FIAP 2024
  • Google for Startups
  • AWS Builder Award
  1. 🏷️ Categorização e Tags:
Categoria Principal: Medicina
Categoria Secundária: Ferramentas
Tags: pets, veterinário, ia, diagnóstico, saúde animal, inteligência artificial
Classificação: Livre (PEGI 3)
  1. 🎯 Configurações de Lançamento:
Tipo de Lançamento: Escalonado (50% → 100%)
Países/Regiões: Brasil, Estados Unidos, Canadá
Preço: Gratuito (com compras no app)
Ads: Não contém anúncios

🍎 Publicação na Apple App Store

📱 Configuração para iOS

🔐 Certificados Apple
# Configurar certificados iOS
eas credentials:configure --platform ios

# Gerar provisioning profiles
eas build --platform ios --profile production
📋 App Store Connect Setup
// Configurações específicas para iOS
export default {
  expo: {
    ios: {
      bundleIdentifier: "com.petcareai.app",
      buildNumber: "21",
      supportsTablet: true,
      infoPlist: {
        NSLocationWhenInUseUsageDescription: "O PetCareAI usa localização para rastreamento GPS do seu pet",
        NSCameraUsageDescription: "Câmera necessária para diagnóstico por IA de sintomas visuais",
        NSPhotoLibraryUsageDescription: "Acesso às fotos para análise de imagens do pet"
      }
    }
  }
};
🚀 Publicação iOS
# Build e submit para App Store
eas build --platform ios --profile production
eas submit --platform ios --profile production

# Verificar status no App Store Connect
eas submit:list --platform ios

🔄 Over-The-Air Updates (OTA)

⚡ Updates Instantâneos sem App Store

# Publicar update JavaScript (sem rebuild)
npx expo publish --channel production

# Update para canal específico
npx expo publish --channel preview --message "Correção de bugs críticos"

# Rollback rápido
npx expo publish --channel production --release-channel previous

📊 Configuração de Canais de Update

// app.config.js - Configuração OTA
export default {
  expo: {
    updates: {
      enabled: true,
      checkAutomatically: "ON_LOAD",
      fallbackToCacheTimeout: 30000,
      url: "https://u.expo.dev/[PROJECT-ID]"
    },
    runtimeVersion: {
      policy: "sdkVersion"
    }
  }
};

📈 Analytics e Monitoramento

📊 Expo Analytics Dashboard

# Ver estatísticas de downloads
eas build:list --platform all --status finished

# Monitorar crashes
npx @expo/cli install expo-dev-client

🔍 Performance Monitoring

// Integração com Sentry para monitoramento
import * as Sentry from '@sentry/react-native';

Sentry.init({
  dsn: 'YOUR_SENTRY_DSN',
  environment: __DEV__ ? 'development' : 'production',
});

🛠️ Ferramentas de Desenvolvimento Avançadas

🔧 Expo Dev Tools

# Abrir DevTools do Expo
npx expo start --dev-client

# Modo túnel para testes remotos
npx expo start --tunnel

# Debug com Flipper
npx expo start --dev-client --ios --simulator

📱 Expo Go vs Development Build

🎯 Recurso 📱 Expo Go 🔧 Dev Build
Setup Imediato Configuração inicial
Bibliotecas Nativas Limitado Ilimitado
Performance Boa Nativa
Debugging Básico Avançado
Uso Recomendado Prototipagem Desenvolvimento

🚀 CI/CD - Automação Completa

⚙️ GitHub Actions para EAS Build

# .github/workflows/eas-build.yml
name: EAS Build and Deploy

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  build:
    name: Build and Deploy
    runs-on: ubuntu-latest
    steps:
      - name: 📚 Checkout
        uses: actions/checkout@v4

      - name: 🏗️ Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18
          cache: npm

      - name: 📦 Install dependencies
        run: npm ci

      - name: 🚀 Setup EAS
        uses: expo/expo-github-action@v8
        with:
          expo-version: latest
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}

      - name: 📱 Build APK Preview
        if: github.event_name == 'pull_request'
        run: eas build --platform android --profile preview --non-interactive

      - name: 🏪 Build and Submit Production
        if: github.ref == 'refs/heads/main'
        run: |
          eas build --platform all --profile production --non-interactive
          eas submit --platform android --profile production --non-interactive

🔧 Troubleshooting e Otimizações

⚡ Problemas Comuns e Soluções

# Build falha - Limpar cache
eas build --clear-cache --platform android --profile preview

# Erro de memória - Usar resource class maior
# Editar eas.json:
"ios": {
  "resourceClass": "m-large"  # ou m-xlarge para projetos grandes
}

# Build lento - Build local para desenvolvimento
eas build --local --platform android --profile development

# Problema de dependência - Verificar compatibilidade
npx expo doctor

# Reset completo do projeto
rm -rf node_modules package-lock.json
npm install
eas build:configure

📊 Otimizações de Performance

// metro.config.js - Otimizações de bundle
const { getDefaultConfig } = require('expo/metro-config');

const config = getDefaultConfig(__dirname);

// Otimizações para reduzir tamanho do bundle
config.resolver.assetExts.push('db', 'mp3', 'ttf', 'obj', 'png', 'jpg');
config.transformer.minifierConfig = {
  mangle: true,
  compress: {
    drop_console: true, // Remove console.logs em produção
  },
};

module.exports = config;

🎯 Best Practices para PetCareAI

✅ Checklist de Produção

  • 🔐 Segurança: Certificados configurados corretamente
  • 📊 Analytics: Sentry e Expo Analytics habilitados
  • ⚡ Performance: Bundle size < 50MB
  • 🔄 Updates: OTA configurado para updates críticos
  • 🧪 Testes: Testes automatizados passando (95%+ coverage)
  • 📱 Compatibilidade: Testado em Android 8+ e iOS 12+
  • 🌐 Internacionalização: Suporte a PT-BR e EN-US
  • ♿ Acessibilidade: WCAG 2.1 AA compliance
  • 🔍 SEO Mobile: Meta tags configuradas
  • 📋 Store Assets: Screenshots e descrições otimizadas

3. 🌐 Clone do Repositório Web (Opcional)

# Clone o frontend web
git clone https://github.com/PetCareAi/petcareai-web
cd petcareai-web

# Instalar dependências
npm install

# Configurar ambiente
cp .env.example .env

4. ⚙️ Configuração do Ambiente

📱 Mobile (.env)

# Supabase Configuration
EXPO_PUBLIC_SUPABASE_URL=https://jthzocdiryhuytnmtekj.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

# API Configuration
EXPO_PUBLIC_API_URL=http://localhost:3333/api/v1
EXPO_PUBLIC_API_TIMEOUT=10000

# App Configuration
EXPO_PUBLIC_APP_NAME=PetCare AI
EXPO_PUBLIC_APP_VERSION=1.0.0
EXPO_PUBLIC_ENVIRONMENT=development

# AI Services
EXPO_PUBLIC_GEMINI_API_KEY=sua_chave_gemini_aqui

⚙️ Backend (.env)

# Database
SUPABASE_URL=https://jthzocdiryhuytnmtekj.supabase.co
SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

# JWT Configuration
JWT_SECRET=petcareai_jwt_secret_key_2024_super_secure
JWT_EXPIRES_IN=7d

# Server Configuration
PORT=3333
NODE_ENV=development

# Rate Limiting
THROTTLE_TTL=60000
THROTTLE_LIMIT=100

# AI Services
GEMINI_API_KEY=sua_chave_gemini_aqui

🌐 Web (.env.local)

# API Configuration
NEXT_PUBLIC_API_URL=http://localhost:3333/api/v1
NEXT_PUBLIC_APP_URL=http://localhost:3000

# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=https://jthzocdiryhuytnmtekj.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=sua_chave_secreta_nextauth

5. 🗄️ Configuração do Banco de Dados

Execute os scripts SQL fornecidos na pasta supabase/:

-- 1. Limpar banco (se necessário)
\i supabase/01-cleanup.sql

-- 2. Criar estrutura completa
\i supabase/scripts.sql

-- 3. Verificar se tudo foi criado corretamente
SELECT table_name FROM information_schema.tables 
WHERE table_schema = 'public';

📱 Executando o Projeto

🚀 Desenvolvimento Local

1. ⚙️ Iniciar Backend (Terminal 1)

cd petcareai-backend

# Desenvolvimento
npm run start:dev

# A API estará rodando em http://localhost:3333
# Documentação Swagger em http://localhost:3333/api/docs

2. 📱 Iniciar Mobile (Terminal 2)

cd petcareai-mobile

# Iniciar servidor Expo
npm start

# Executar em diferentes plataformas
npm run android  # Android
npm run ios       # iOS (requer macOS)
npm run web       # Web

3. 🌐 Iniciar Web (Terminal 3 - Opcional)

cd petcareai-web

# Desenvolvimento
npm run dev

# A aplicação web estará em http://localhost:3000

🏗️ Build para Produção

📱 Mobile

cd petcareai-mobile

# Build local (desenvolvimento)
npx expo export

# Build com EAS (produção)
eas build --platform all

# Preview build (teste)
eas build --platform all --profile preview

⚙️ Backend

cd petcareai-backend

# Build
npm run build

# Executar produção
npm run start:prod

🌐 Web

cd petcareai-web

# Build estático
npm run build

# Preview da build
npm run start

🚀 Deploy

📱 Mobile Deploy

# Deploy para Expo
npm run deploy

# Submit para app stores
eas submit --platform all

⚙️ Backend Deploy

# Deploy para Railway/Heroku
git push railway main

# Deploy com Docker
docker build -t petcareai-backend .
docker run -p 3333:3333 petcareai-backend

🌐 Web Deploy

# Deploy para Vercel (automático via Git)
git push origin main

# Deploy manual
vercel --prod

🗂️ Estrutura Completa do Projeto

📱 Mobile App (React Native + Expo)

📁 petcareai/
├── 🪝 .githooks/                          # Scripts de automação Git customizados
│   ├── 🪝 commit-msg                          # Hook para validação de mensagens de commit
│   ├── 🪝 pre-commit                          # Hook executado antes de cada commit
│   └── 🪝 pre-push                            # Hook executado antes de cada push
├── 📚 docs/                               # Documentação técnica detalhada
│   └── 📝 build.md                            # Documentação em Markdown
├── 📁 src/                                # Código fonte principal da aplicação
│   ├── 🧩 components/                         # Componentes de interface reutilizáveis
│   │   ├── 📁 common/
│   │   │   ├── ⚡ Button.js                           # Script JavaScript
│   │   │   ├── ⚡ DrawerContent.js                    # Script JavaScript
│   │   │   ├── ⚡ Header.js                           # Script JavaScript
│   │   │   ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │   │   ├── ⚡ LoadingScreen.js                    # Script JavaScript
│   │   │   ├── ⚡ MarkdownRenderer.js                 # Script JavaScript
│   │   │   └── ⚡ PasswordStrengthIndicator.js        # Script JavaScript
│   │   └── 📁 modals/
│   │       ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │       ├── ⚡ QuickExpenseModal.js                # Script JavaScript
│   │       └── ⚡ QuickWeightModal.js                 # Script JavaScript
│   ├── ⚙️ config/                             # Arquivos de configuração
│   │   ├── ⚡ gemini.js                           # Script JavaScript
│   │   └── ⚡ supabase.js                         # Script JavaScript
│   ├── 📁 constants/
│   │   ├── ⚡ ApiConfig.js                        # Script JavaScript
│   │   ├── ⚡ BorderRadius.js                     # Script JavaScript
│   │   ├── ⚡ Colors.js                           # Script JavaScript
│   │   ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │   ├── ⚡ PetTypes.js                         # Script JavaScript
│   │   └── ⚡ Spacing.js                          # Script JavaScript
│   ├── 📁 contexts/
│   │   ├── ⚡ AuthContext.js                      # Script JavaScript
│   │   ├── ⚡ ConfigContext.js                    # Script JavaScript
│   │   ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │   ├── ⚡ OnboardingContext.js                # Script JavaScript
│   │   └── ⚡ PetContext.js                       # Script JavaScript
│   ├── 📁 navigation/
│   │   └── ⚡ AppNavigator.js                     # Script JavaScript
│   ├── 📱 screens/                            # Telas da aplicação (mobile/desktop)
│   │   ├── 🔐 auth/                               # Autenticação e autorização
│   │   │   ├── ⚡ LoginScreen.js                      # Script JavaScript
│   │   │   └── ⚡ RegisterScreen.js                   # Script JavaScript
│   │   ├── 📁 main/
│   │   │   ├── ⚡ AboutScreen.js                      # Script JavaScript
│   │   │   ├── ⚡ AddPetScreen.js                     # Script JavaScript
│   │   │   ├── ⚡ AIChartsScreen.js                   # Script JavaScript
│   │   │   ├── ⚡ AIFeedingScreen.js                  # Script JavaScript
│   │   │   ├── ⚡ AIHealthScreen.js                   # Script JavaScript
│   │   │   ├── ⚡ AILocationScreen.js                 # Script JavaScript
│   │   │   ├── ⚡ ExpensesScreen.js                   # Script JavaScript
│   │   │   ├── ⚡ HelpScreen.js                       # Script JavaScript
│   │   │   ├── ⚡ HomeScreen.js                       # Script JavaScript
│   │   │   ├── ⚡ ProfileScreen.js                    # Script JavaScript
│   │   │   ├── ⚡ SettingsScreen.js                   # Script JavaScript
│   │   │   └── ⚡ VeterinaryAIScreen.js               # Script JavaScript
│   │   ├── 📁 onboarding/
│   │   │   └── ⚡ OnboardingScreen.js                 # Script JavaScript
│   │   ├── 📁 pet/
│   │   │   ├── ⚡ AddPetScreen.js                     # Script JavaScript
│   │   │   └── ⚡ PetDetailsScreen.js                 # Script JavaScript
│   │   ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │   └── ⚡ SplashScreen.js                     # Script JavaScript
│   ├── ⚙️ services/                           # Serviços e integrações externas
│   │   ├── ⚡ AuthService.js                      # Script JavaScript
│   │   ├── ⚡ checklistService.js                 # Script JavaScript
│   │   ├── ⚡ expenseService.js                   # Script JavaScript
│   │   ├── ⚡ GeminiService.js                    # Script JavaScript
│   │   ├── ⚡ healthService.js                    # Script JavaScript
│   │   ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │   ├── ⚡ locationService.js                  # Script JavaScript
│   │   ├── ⚡ moodService.js                      # Script JavaScript
│   │   ├── ⚡ notesService.js                     # Script JavaScript
│   │   ├── ⚡ petImageService.js                  # Script JavaScript
│   │   ├── ⚡ petService.js                       # Script JavaScript
│   │   ├── ⚡ supabase.js                         # Script JavaScript
│   │   ├── ⚡ SupabaseHttpService.js              # Script JavaScript
│   │   ├── ⚡ userImageService.js                 # Script JavaScript
│   │   ├── ⚡ veterinaryAIService.js              # Script JavaScript
│   │   └── ⚡ weightService.js                    # Script JavaScript
│   ├── 🎨 styles/                             # Arquivos de estilo CSS/SCSS
│   │   ├── ⚡ AuthStyles.js                       # Script JavaScript
│   │   ├── ⚡ ComponentStyles.js                  # Script JavaScript
│   │   ├── ⚡ HelpStyles.js                       # Script JavaScript
│   │   ├── 🚀 index.js                            # Ponto de entrada principal da aplicação
│   │   ├── ⚡ MainStyles.js                       # Script JavaScript
│   │   ├── ⚡ PetStyles.js                        # Script JavaScript
│   │   └── ⚡ ProfileStyles.js                    # Script JavaScript
│   └── 🔧 utils/                              # Utilitários e funções genéricas
│       ├── ⚡ cryptoUtils.js                      # Script JavaScript
│       ├── ⚡ secureStorage.js                    # Script JavaScript
│       └── ⚡ validations.js                      # Script JavaScript
├── 🌐 api/                                # Endpoints e configuração da API
│   └── ⚙️ insomnia.json                       # Dados estruturados JSON
├── 📦 assets/                             # Recursos da aplicação (imagens, ícones, etc)
│   ├── 📁 insomnia/
│   │   ├── 🖼️ atualizar_dados_do_pet.png          # Imagem PNG otimizada
│   │   ├── 🖼️ atualizar_usuario.png               # Imagem PNG otimizada
│   │   ├── 🖼️ buscar_perfil_completo_do_user.png  # Imagem PNG otimizada
│   │   ├── 🖼️ buscar_pet_por_id_especifico.png    # Imagem PNG otimizada
│   │   ├── 🖼️ criar_um_cachorro.png               # Imagem PNG otimizada
│   │   ├── 🖼️ criar_um_gato.png                   # Imagem PNG otimizada
│   │   ├── 🖼️ criar_um_hamster.png                # Imagem PNG otimizada
│   │   ├── 🖼️ criar_um_passaro.png                # Imagem PNG otimizada
│   │   ├── 🖼️ deletar_pet_por_id.png              # Imagem PNG otimizada
│   │   ├── 🖼️ listar_todos_os_pets_com_paginacao.png  # Imagem PNG otimizada
│   │   ├── 🖼️ login.png                           # Imagem PNG otimizada
│   │   ├── 🖼️ obter_dados_completos_do_dashboard.png  # Imagem PNG otimizada
│   │   ├── 🖼️ obter_estatisticas_do_cliente.png   # Imagem PNG otimizada
│   │   ├── 🖼️ obter_estatisticas_dos_pets.png     # Imagem PNG otimizada
│   │   ├── 🖼️ obter_perfil_autenticado.png        # Imagem PNG otimizada
│   │   ├── 🖼️ registro.png                        # Imagem PNG otimizada
│   │   └── 🖼️ renovar_token.png                   # Imagem PNG otimizada
│   ├── 📁 screenshots/
│   │   ├── 🖼️ about.png                           # Imagem PNG otimizada
│   │   ├── 🖼️ add_gasto.png                       # Imagem PNG otimizada
│   │   ├── 🖼️ add_pet.png                         # Imagem PNG otimizada
│   │   ├── 🖼️ alimentacao.png                     # Imagem PNG otimizada
│   │   ├── 🖼️ analise_ia_saude.png                # Imagem PNG otimizada
│   │   ├── 🖼️ config.png                          # Imagem PNG otimizada
│   │   ├── 🖼️ hamburguer.png                      # Imagem PNG otimizada
│   │   ├── 🖼️ help.png                            # Imagem PNG otimizada
│   │   ├── 🖼️ home.png                            # Imagem PNG otimizada
│   │   ├── 🖼️ localizacao.png                     # Imagem PNG otimizada
│   │   ├── 🖼️ login.png                           # Imagem PNG otimizada
│   │   ├── 🖼️ perfil.png                          # Imagem PNG otimizada
│   │   ├── 🖼️ registro.png                        # Imagem PNG otimizada
│   │   ├── 🖼️ updated_pet.png                     # Imagem PNG otimizada
│   │   └── 🖼️ view_clima.png                      # Imagem PNG otimizada
│   ├── 🖼️ adaptive-icon.png                   # Imagem PNG otimizada
│   ├── 🖼️ adaptive-icon0.png                  # Imagem PNG otimizada
│   ├── 🖼️ Cream and Pink Creative Pet Care Center Presentation.png  # Imagem PNG otimizada
│   ├── 🖼️ favicon.png                         # Imagem PNG otimizada
│   ├── 🖼️ icon.png                            # Imagem PNG otimizada
│   ├── 🖼️ logo.png                            # Imagem PNG otimizada
│   ├── 🖼️ splash.png                          # Imagem PNG otimizada
│   └── 🖼️ splash0.png                         # Imagem PNG otimizada
├── 📁 supabase/
│   ├── 📄 new.sql                             # Script SQL de banco de dados
│   └── 📄 scripts.sql                         # Script SQL de banco de dados
├── 📜 CHANGELOG.md                        # Histórico detalhado de mudanças e versões
├── 📜 LICENSE                             # Licença de uso e distribuição do software
├── 📖 README.md                           # Documentação principal e guia de introdução
├── 📦 package.json                        # Dependências e scripts do projeto NPM
├── 📝 .editorconfig                       # Configuração de formatação entre editores
├── ⚙️ .gitattributes                      # Atributos específicos de arquivos no Git
├── 🚫 .gitignore                          # Arquivos e pastas ignorados pelo Git
├── ⚙️ .markdownlint.yml                   # Configuração YAML
├── 📄 .npmrc
├── 🪝 .pre-commit-config.yaml             # Configuração de hooks pre-commit
├── 🔧 .travis.yml                         # Configuração do Travis CI
├── 🏷️ .version                            # Número da versão atual do projeto
├── ⚛️ App.js                              # Componente raiz da aplicação React
├── ⚙️ app.json                            # Dados estruturados JSON
├── 📝 ARCHITECTURE.md                     # Documentação em Markdown
├── 🔄 babel.config.js                     # Configuração do transpilador Babel
├── 🏗️ BUILDING.md                         # Instruções detalhadas para build do projeto
├── 📚 citation.cff                        # Formato de citação para trabalhos acadêmicos
├── 📜 CODE_OF_CONDUCT.md                  # Código de conduta da comunidade
├── 👥 CODEOWNERS                          # Definição de responsáveis por áreas do código
├── 📝 commitlint.config.js                # Regras para validação de commits
├── ⚙️ configure.sh                        # Script de configuração do ambiente
├── 🤝 CONTRIBUTING.md                     # Guia para contribuidores do projeto
├── 👥 CONTRIBUTORS.md                     # Lista de pessoas que contribuíram
├── 👥 contributors.yml                    # Dados estruturados dos contribuidores
├── ©️ COPYRIGHT                           # Informações de direitos autorais
├── 🤖 dependabot.yml                      # Configuração do Dependabot para atualizações
├── ⚙️ eas.json                            # Dados estruturados JSON
├── 📝 git-build-commit.md                 # Documentação em Markdown
├── 🚀 index.js                            # Ponto de entrada principal da aplicação
├── 💾 install.sh                          # Script de instalação automática
├── 🛠️ MAINTAINING.md                      # Guia para mantenedores do projeto
├── 🔨 Makefile                            # Automação de build e tarefas do projeto
├── 📋 MANIFEST.in                         # Especificação de arquivos para distribuição
├── ⚡ metro.config.js                     # Script JavaScript
├── 🚀 release.md                          # Notas e planejamento de releases
├── 📋 requisitos-funcionais.md            # Especificação dos requisitos funcionais
├── 📋 requisitos.md                       # Documentação de requisitos do sistema
├── 🗺️ Roadmap.md                          # Planejamento e cronograma de funcionalidades
├── 🚀 run.sh                              # Script para execução da aplicação
├── 🛡️ SECURITY.md                         # Política de segurança e vulnerabilidades
├── ⚡ struct.js                           # Script JavaScript
├── 📝 TODO.md                             # Lista de tarefas pendentes e melhorias
└── 🔧 TROUBLESHOOTING.md                  # Guia de resolução de problemas comuns

⚙️ Backend API (NestJS + TypeScript)

📁 petcare-backend/
├── 🪝 .githooks/                          # Scripts de automação Git customizados
│   ├── 🪝 commit-msg                          # Hook para validação de mensagens de commit
│   ├── 🪝 pre-commit                          # Hook executado antes de cada commit
│   └── 🪝 pre-push                            # Hook executado antes de cada push
├── 📚 docs/                               # Documentação técnica detalhada
│   ├── 📝 api.md                              # Documentação em Markdown
│   ├── 📝 como-utilizar.md                    # Documentação em Markdown
│   └── 📝 insomnia-setup.md                   # Documentação em Markdown
├── 📁 src/                                # Código fonte principal da aplicação
│   ├── 🔐 auth/                               # Autenticação e autorização
│   │   ├── 📁 dto/
│   │   │   ├── 📘 login.dto.ts                        # Script TypeScript
│   │   │   └── 📘 register.dto.ts                     # Script TypeScript
│   │   ├── 📘 auth.controller.ts                  # Script TypeScript
│   │   ├── 📘 auth.module.ts                      # Script TypeScript
│   │   ├── 📘 auth.service.ts                     # Script TypeScript
│   │   └── 📘 jwt.strategy.ts                     # Script TypeScript
│   ├── 📁 cliente/
│   │   ├── 📁 dto/
│   │   │   └── 📘 update-cliente.dto.ts               # Script TypeScript
│   │   ├── 📘 cliente.controller.ts               # Script TypeScript
│   │   ├── 📘 cliente.module.ts                   # Script TypeScript
│   │   └── 📘 cliente.service.ts                  # Script TypeScript
│   ├── 📁 common/
│   │   ├── 📁 decorators/
│   │   │   ├── 📘 current-user.decorator.ts           # Script TypeScript
│   │   │   └── 📘 public.decorator.ts                 # Script TypeScript
│   │   ├── 📁 dto/
│   │   │   └── 📘 base-response.dto.ts                # Script TypeScript
│   │   ├── 📁 guards/
│   │   │   └── 📘 jwt-auth.guard.ts                   # Script TypeScript
│   │   └── 📁 interfaces/
│   │       └── 🚀 index.ts                            # Ponto de entrada principal em TypeScript
│   ├── ⚙️ config/                             # Arquivos de configuração
│   │   ├── 📘 supabase.module.ts                  # Script TypeScript
│   │   └── 📘 supabase.service.ts                 # Script TypeScript
│   ├── 📁 daily-checklists/
│   │   └── 📘 daily-checklists.module.ts          # Script TypeScript
│   ├── 📁 health/
│   │   ├── 📘 health.controller.ts                # Script TypeScript
│   │   ├── 📘 health.module.ts                    # Script TypeScript
│   │   └── 📘 health.service.ts                   # Script TypeScript
│   ├── 📁 pet-activities/
│   │   └── 📘 pet-activities.module.ts            # Script TypeScript
│   ├── 📁 pet-expenses/
│   │   └── 📘 pet-expenses.module.ts              # Script TypeScript
│   ├── 📁 pet-images/
│   │   └── 📘 pet-images.module.ts                # Script TypeScript
│   ├── 📁 pet-mood/
│   │   └── 📘 pet-mood.module.ts                  # Script TypeScript
│   ├── 📁 pet-weight/
│   │   └── 📘 pet-weight.module.ts                # Script TypeScript
│   ├── 📁 pets/
│   │   ├── 📁 dto/
│   │   │   ├── 📘 create-pet.dto.ts                   # Script TypeScript
│   │   │   └── 📘 update-pet.dto.ts                   # Script TypeScript
│   │   ├── 📘 pets.controller.ts                  # Script TypeScript
│   │   ├── 📘 pets.module.ts                      # Script TypeScript
│   │   └── 📘 pets.service.ts                     # Script TypeScript
│   ├── 📁 user-notes/
│   │   └── 📘 user-notes.module.ts                # Script TypeScript
│   ├── 📘 app.module.ts                       # Script TypeScript
│   └── 🚀 main.ts                             # Arquivo principal de execução em TypeScript
├── 🌐 api/                                # Endpoints e configuração da API
│   ├── 🚀 index.ts                            # Ponto de entrada principal em TypeScript
│   ├── 📜 petcare-ai-curl.sh                  # Script shell Unix/Linux
│   ├── ⚙️ petcare-ai-insomnia.json            # Dados estruturados JSON
│   ├── ⚙️ petcare-ai-openapi.yaml             # Configuração YAML
│   └── ⚙️ petcare-ai-postman.json             # Dados estruturados JSON
├── 📜 scripts/                            # Scripts de automação e deploy
│   ├── 📜 health-check.sh                     # Script shell Unix/Linux
│   ├── 📜 logs-dev.sh                         # Script shell Unix/Linux
│   ├── 📜 restart-dev.sh                      # Script shell Unix/Linux
│   ├── ⚡ setup-database.js                   # Script JavaScript
│   ├── 📜 setup-dev.sh                        # Script shell Unix/Linux
│   ├── 📜 start-dev.sh                        # Script shell Unix/Linux
│   └── 📜 stop-dev.sh                         # Script shell Unix/Linux
├── 🧪 test/                               # Testes automatizados
│   ├── 📘 app.e2e-spec.ts                     # Script TypeScript
│   └── ⚙️ jest-e2e.json                       # Dados estruturados JSON
├── 📜 CHANGELOG.md                        # Histórico detalhado de mudanças e versões
├── 📜 LICENSE                             # Licença de uso e distribuição do software
├── 📖 README.md                           # Documentação principal e guia de introdução
├── 🐳 Dockerfile                          # Instruções para build da imagem Docker
├── 📦 package.json                        # Dependências e scripts do projeto NPM
├── 📘 tsconfig.json                       # Configuração do compilador TypeScript
├── 📝 .editorconfig                       # Configuração de formatação entre editores
├── 🔐 .env                                # Variáveis de ambiente (não versionado)
├── 🔐 .env.example                        # Exemplo de variáveis de ambiente
├── 📏 .eslintrc.js                        # Configuração do ESLint em JavaScript
├── ⚙️ .gitattributes                      # Atributos específicos de arquivos no Git
├── 🚫 .gitignore                          # Arquivos e pastas ignorados pelo Git
├── ⚙️ .markdownlint.yml                   # Configuração YAML
├── 🪝 .pre-commit-config.yaml             # Configuração de hooks pre-commit
├── ✨ .prettierrc                         # Configuração do formatador Prettier
├── 🔧 .travis.yml                         # Configuração do Travis CI
├── 📄 .vercelignore
├── 🏷️ .version                            # Número da versão atual do projeto
├── 📝 ARCHITECTURE.md                     # Documentação em Markdown
├── 🏗️ BUILDING.md                         # Instruções detalhadas para build do projeto
├── 📚 citation.cff                        # Formato de citação para trabalhos acadêmicos
├── 📜 CODE_OF_CONDUCT.md                  # Código de conduta da comunidade
├── 👥 CODEOWNERS                          # Definição de responsáveis por áreas do código
├── 📝 commitlint.config.js                # Regras para validação de commits
├── ⚙️ configure.sh                        # Script de configuração do ambiente
├── 🤝 CONTRIBUTING.md                     # Guia para contribuidores do projeto
├── 👥 CONTRIBUTORS.md                     # Lista de pessoas que contribuíram
├── 👥 contributors.yml                    # Dados estruturados dos contribuidores
├── ©️ COPYRIGHT                           # Informações de direitos autorais
├── 🤖 dependabot.yml                      # Configuração do Dependabot para atualizações
├── 📝 DEV-README.md                       # Documentação em Markdown
├── 🐳 docker-compose.yml                  # Orquestração de múltiplos containers
├── 📝 git-build-commit.md                 # Documentação em Markdown
├── 💾 install.sh                          # Script de instalação automática
├── 🛠️ MAINTAINING.md                      # Guia para mantenedores do projeto
├── 🔨 Makefile                            # Automação de build e tarefas do projeto
├── 📋 MANIFEST.in                         # Especificação de arquivos para distribuição
├── ⚙️ nest-cli.json                       # Dados estruturados JSON
├── 🚀 release.md                          # Notas e planejamento de releases
├── 📋 requisitos-funcionais.md            # Especificação dos requisitos funcionais
├── 📋 requisitos.md                       # Documentação de requisitos do sistema
├── 🗺️ Roadmap.md                          # Planejamento e cronograma de funcionalidades
├── 🚀 run.sh                              # Script para execução da aplicação
├── 🛡️ SECURITY.md                         # Política de segurança e vulnerabilidades
├── ⚡ struct.js                           # Script JavaScript
├── 📝 TODO.md                             # Lista de tarefas pendentes e melhorias
├── 🔧 TROUBLESHOOTING.md                  # Guia de resolução de problemas comuns
├── ⚙️ tsconfig.build.json                 # Dados estruturados JSON
├── 📝 urls.md                             # Documentação em Markdown
└── ⚙️ vercel.json                         # Dados estruturados JSON

🌐 Frontend Web (Next.js + React)

📁 petcare-frontend/
├── 🪝 .githooks/                          # Scripts de automação Git customizados
│   ├── 🪝 commit-msg                          # Hook para validação de mensagens de commit
│   ├── 🪝 pre-commit                          # Hook executado antes de cada commit
│   └── 🪝 pre-push                            # Hook executado antes de cada push
├── 📁 src/                                # Código fonte principal da aplicação
│   ├── 📚 lib/                                # Bibliotecas e módulos reutilizáveis
│   │   ├── 📘 api.ts                              # Script TypeScript
│   │   ├── 📘 auth.ts                             # Script TypeScript
│   │   ├── 📘 client.ts                           # Script TypeScript
│   │   ├── 📘 pets.ts                             # Script TypeScript
│   │   └── 📘 utils.ts                            # Script TypeScript
│   ├── 📁 app/
│   │   ├── 📁 (auth)/
│   │   │   ├── 📁 login/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 register/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   └── ⚛️ layout.tsx                          # Componente React com TypeScript
│   │   ├── 📁 (dashboard)/
│   │   │   ├── 📁 about/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 activities/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 calendar/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 checklists/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 dashboard/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 expenses/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 gallery/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 help/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 mood/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 notes/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 notifications/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 pets/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 profile/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── ⚙️ settings/                           # Configurações da aplicação
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   ├── 📁 stats/
│   │   │   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   │   │   └── ⚛️ layout.tsx                          # Componente React com TypeScript
│   │   ├── 🎨 globals.css                         # Folha de estilo CSS
│   │   ├── ⚛️ layout.tsx                          # Componente React com TypeScript
│   │   └── ⚛️ page.tsx                            # Componente React com TypeScript
│   ├── 🧩 components/                         # Componentes de interface reutilizáveis
│   │   ├── 📁 forms/
│   │   │   └── ⚛️ pet-form.tsx                        # Componente React com TypeScript
│   │   ├── 📁 layout/
│   │   │   ├── ⚛️ header.tsx                          # Componente React com TypeScript
│   │   │   └── ⚛️ sidebar.tsx                         # Componente React com TypeScript
│   │   ├── 📁 ui/
│   │   │   ├── ⚛️ button.tsx                          # Componente React com TypeScript
│   │   │   ├── ⚛️ card.tsx                            # Componente React com TypeScript
│   │   │   └── ⚛️ input.tsx                           # Componente React com TypeScript
│   │   └── ⚛️ providers.tsx                       # Componente React com TypeScript
│   ├── 🔄 context/                            # Contextos React/Vue
│   │   └── ⚛️ auth-context.tsx                    # Componente React com TypeScript
│   ├── 📁 contexts/
│   │   ├── ⚛️ auth-context.tsx                    # Componente React com TypeScript
│   │   └── ⚛️ theme-context.tsx                   # Componente React com TypeScript
│   ├── 🪝 hooks/                              # Hooks de automação do Git
│   │   └── 📘 useAuth.ts                          # Script TypeScript
│   └── 📁 types/
│       └── 🚀 index.ts                            # Ponto de entrada principal em TypeScript
├── 📜 scripts/                            # Scripts de automação e deploy
│   └── 🚀 deploy.sh                           # Script de deploy para produção
├── 📁 server/
│   ├── ⚙️ app-paths-manifest.json             # Dados estruturados JSON
│   ├── ⚙️ middleware-manifest.json            # Dados estruturados JSON
│   ├── ⚙️ pages-manifest.json                 # Dados estruturados JSON
│   ├── ⚡ server-reference-manifest.js        # Script JavaScript
│   └── ⚙️ server-reference-manifest.json      # Dados estruturados JSON
├── 📜 CHANGELOG.md                        # Histórico detalhado de mudanças e versões
├── 📜 LICENSE                             # Licença de uso e distribuição do software
├── 📖 README.md                           # Documentação principal e guia de introdução
├── 📦 package.json                        # Dependências e scripts do projeto NPM
├── 📘 tsconfig.json                       # Configuração do compilador TypeScript
├── 📝 .editorconfig                       # Configuração de formatação entre editores
├── 🔐 .env.example                        # Exemplo de variáveis de ambiente
├── 📏 .eslintrc.json                      # Configuração do ESLint em JSON
├── ⚙️ .gitattributes                      # Atributos específicos de arquivos no Git
├── ⚙️ .markdownlint.yml                   # Configuração YAML
├── 🪝 .pre-commit-config.yaml             # Configuração de hooks pre-commit
├── 🔧 .travis.yml                         # Configuração do Travis CI
├── 📄 .vercelignore
├── 🏷️ .version                            # Número da versão atual do projeto
├── 📝 ARCHITECTURE.md                     # Documentação em Markdown
├── 🏗️ BUILDING.md                         # Instruções detalhadas para build do projeto
├── 📚 citation.cff                        # Formato de citação para trabalhos acadêmicos
├── 📜 CODE_OF_CONDUCT.md                  # Código de conduta da comunidade
├── 👥 CODEOWNERS                          # Definição de responsáveis por áreas do código
├── 📝 commitlint.config.js                # Regras para validação de commits
├── ⚙️ configure.sh                        # Script de configuração do ambiente
├── 🤝 CONTRIBUTING.md                     # Guia para contribuidores do projeto
├── 👥 CONTRIBUTORS.md                     # Lista de pessoas que contribuíram
├── 👥 contributors.yml                    # Dados estruturados dos contribuidores
├── ©️ COPYRIGHT                           # Informações de direitos autorais
├── 🤖 dependabot.yml                      # Configuração do Dependabot para atualizações
├── 📝 git-build-commit.md                 # Documentação em Markdown
├── 💾 install.sh                          # Script de instalação automática
├── 🛠️ MAINTAINING.md                      # Guia para mantenedores do projeto
├── 🔨 Makefile                            # Automação de build e tarefas do projeto
├── 📋 MANIFEST.in                         # Especificação de arquivos para distribuição
├── 📘 next-env.d.ts                       # Script TypeScript
├── ⚡ next.config.js                      # Configuração do framework Next.js
├── 🎨 postcss.config.js                   # Configuração do processador PostCSS
├── 🚀 release.md                          # Notas e planejamento de releases
├── 📋 requisitos-funcionais.md            # Especificação dos requisitos funcionais
├── 📋 requisitos.md                       # Documentação de requisitos do sistema
├── 🗺️ Roadmap.md                          # Planejamento e cronograma de funcionalidades
├── 🚀 run.sh                              # Script para execução da aplicação
├── 🛡️ SECURITY.md                         # Política de segurança e vulnerabilidades
├── ⚡ struct.js                           # Script JavaScript
├── 🎨 tailwind.config.js                  # Configuração do Tailwind CSS
├── 📝 TODO.md                             # Lista de tarefas pendentes e melhorias
├── 🔧 TROUBLESHOOTING.md                  # Guia de resolução de problemas comuns
└── ⚙️ vercel.json                         # Dados estruturados JSON

📊 Resumo da Estrutura

Repositório Linguagem Framework Arquivos LOC*
📱 Mobile TypeScript/JavaScript React Native + Expo ~120 ~15,000
⚙️ Backend TypeScript NestJS ~80 ~8,000
🌐 Web TypeScript Next.js + React ~100 ~12,000
📄 Docs Markdown - ~25 ~5,000
🗄️ Database SQL PostgreSQL/Supabase ~10 ~2,000
Total - - ~335 ~42,000

*LOC = Lines of Code (aproximado)


🔐 Configuração de Segurança

🛡️ Supabase RLS (Row Level Security)

O projeto utiliza políticas de segurança robustas para proteger os dados dos usuários:

-- Política para tabela cliente
CREATE POLICY "cliente_own_data" ON cliente
  FOR ALL USING (auth.uid() = id);

-- Política para pets (usuário só acessa seus próprios pets)
CREATE POLICY "pets_user_access" ON pets
  FOR ALL USING (auth.uid() = user_id);

-- Política para checklists diários
CREATE POLICY "checklist_user_access" ON daily_checklists
  FOR ALL USING (auth.uid() = user_id);

-- Política para gastos dos pets
CREATE POLICY "expenses_user_access" ON pet_expenses
  FOR ALL USING (auth.uid() = user_id);

-- Política para registros de humor
CREATE POLICY "mood_user_access" ON pet_mood_records
  FOR ALL USING (auth.uid() = user_id);

-- Política para histórico de peso
CREATE POLICY "weight_user_access" ON pet_weight_history
  FOR ALL USING (auth.uid() = user_id);

-- Política para notas do usuário
CREATE POLICY "notes_user_access" ON user_notes
  FOR ALL USING (auth.uid() = user_id);

-- Política para imagens dos pets
CREATE POLICY "pet_images_access" ON pet_images
  FOR ALL USING (
    pet_id IN (
      SELECT id FROM pets WHERE user_id = auth.uid()
    )
  );

🔒 Autenticação JWT

// Configuração JWT no Backend
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
  constructor(configService: ConfigService) {
    super({
      jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
      ignoreExpiration: false,
      secretOrKey: configService.get('JWT_SECRET'),
    });
  }

  async validate(payload: any) {
    return { userId: payload.sub, email: payload.email };
  }
}

🔐 Criptografia de Senhas

// Hash de senhas compatível entre mobile e backend
const hashPassword = async (password: string): Promise<string> => {
  const salt = createHash('sha256')
    .update(Math.random().toString())
    .digest('hex');
  
  const hashedPassword = createHash('sha256')
    .update(password + salt)
    .digest('hex');
  
  return `${salt}:${hashedPassword}`;
};

const verifyPassword = async (password: string, hashedPassword: string): Promise<boolean> => {
  const [salt, hash] = hashedPassword.split(':');
  const verifyHash = createHash('sha256')
    .update(password + salt)
    .digest('hex');
  return verifyHash === hash;
};

🛡️ Validação de Dados

// Exemplo de DTO com validações robustas
export class CreatePetDto {
  @IsNotEmpty({ message: 'Nome é obrigatório' })
  @IsString({ message: 'Nome deve ser uma string' })
  @MinLength(2, { message: 'Nome deve ter no mínimo 2 caracteres' })
  @MaxLength(50, { message: 'Nome deve ter no máximo 50 caracteres' })
  @Transform(({ value }) => value?.trim())
  nome: string;

  @IsNotEmpty({ message: 'Peso é obrigatório' })
  @IsNumber({}, { message: 'Peso deve ser um número' })
  @Min(0.01, { message: 'Peso deve ser maior que 0' })
  @Max(999.99, { message: 'Peso deve ser menor que 1000kg' })
  peso_kg: number;

  @IsIn(['dog', 'cat', 'rabbit', 'hamster', 'bird', 'fish', 'guinea_pig', 'chinchilla', 'other'])
  tipo_animal: string;
}

🔒 Headers de Segurança

// Configuração Helmet no backend
app.use(helmet({
  crossOriginEmbedderPolicy: false,
  contentSecurityPolicy: {
    directives: {
      defaultSrc: [`'self'`],
      styleSrc: [`'self'`, `'unsafe-inline'`],
      scriptSrc: [`'self'`],
      imgSrc: [`'self'`, 'data:', 'https:'],
      connectSrc: [`'self'`],
    },
  },
}));

📊 Performance e Otimização

⚡ Estratégias de Performance

📱 Mobile (React Native)

  • Lazy Loading - Carregamento sob demanda de telas
  • Memoização - Uso extensivo de React.memo e useMemo
  • Otimização de Imagens - Compressão automática com ImageManipulator
  • Virtual Lists - Para listas grandes de pets/registros
  • Cache Inteligente - Sistema de cache local com AsyncStorage
// Exemplo de otimização com memo
const PetCard = React.memo(({ pet, onPress }) => {
  return (
    <TouchableOpacity onPress={() => onPress(pet)}>
      <Text>{pet.name}</Text>
    </TouchableOpacity>
  );
});

// Lazy loading de telas
const VeterinaryAIScreen = lazy(() => import('./VeterinaryAIScreen'));

⚙️ Backend (NestJS)

  • Paginação Inteligente - Limit/offset em todas as consultas
  • Índices de Banco - Otimização de queries PostgreSQL
  • Cache Redis - Cache de consultas frequentes
  • Rate Limiting - Proteção contra spam
  • Compressão - Gzip/Brotli para responses
// Exemplo de paginação otimizada
async findAll(userId: string, page: number = 1, limit: number = 10) {
  const offset = (page - 1) * limit;
  
  const [data, total] = await Promise.all([
    this.supabaseService
      .getClient()
      .from('pets')
      .select('*')
      .eq('user_id', userId)
      .order('created_at', { ascending: false })
      .range(offset, offset + limit - 1),
    
    this.supabaseService
      .getClient()
      .from('pets')
      .select('*', { count: 'exact', head: true })
      .eq('user_id', userId)
  ]);

  return {
    data: data.data || [],
    pagination: {
      page,
      limit,
      total: total.count || 0,
      totalPages: Math.ceil((total.count || 0) / limit),
    },
  };
}

🌐 Web (Next.js)

  • Server-Side Rendering (SSR) - Para SEO e performance inicial
  • Static Site Generation (SSG) - Para páginas estáticas
  • Image Optimization - Next.js Image component
  • Bundle Splitting - Código dividido por rotas
  • CDN Integration - Recursos estáticos via CDN
// Exemplo de SSR otimizado
export async function getServerSideProps(context) {
  const session = await getSession(context);
  
  if (!session) {
    return { redirect: { destination: '/auth/login' } };
  }

  const pets = await api.pets.findAll(session.user.id);
  
  return {
    props: {
      initialPets: pets,
      session,
    },
  };
}

📈 Métricas de Performance

📱 Mobile Metrics

  • Tempo de inicialização: < 3 segundos
  • Tamanho do bundle: < 25MB (após otimização)
  • Uso de memória: < 150MB em execução
  • Frame rate: 60 FPS consistente
  • Crash rate: < 0.1%

⚙️ Backend Metrics

  • Response time: < 200ms (95th percentile)
  • Throughput: 1000+ requests/second
  • Uptime: 99.9%
  • Database query time: < 50ms médio
  • Memory usage: < 512MB por instância

🌐 Web Metrics

  • Lighthouse Score: 95+ para todas as métricas
  • First Contentful Paint: < 1.5s
  • Largest Contentful Paint: < 2.5s
  • Cumulative Layout Shift: < 0.1
  • Time to Interactive: < 3s

🧪 Testes

📊 Cobertura de Testes

Tipo de Teste Mobile Backend Web Cobertura
🔧 Unitários Jest Jest Jest 85%+
🔗 Integração Detox Supertest Cypress 70%+
🎭 E2E Maestro Postman Playwright 60%+
📊 Performance Flipper Artillery Lighthouse -

🧪 Configuração de Testes

📱 Mobile Tests (Jest + Detox)

// package.json - Mobile
{
  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage",
    "test:e2e": "detox test"
  },
  "jest": {
    "preset": "@react-native/babel-preset",
    "setupFilesAfterEnv": ["<rootDir>/jest.setup.js"],
    "testMatch": ["**/__tests__/**/*.test.{js,ts,tsx}"],
    "collectCoverageFrom": [
      "src/**/*.{js,ts,tsx}",
      "!src/**/*.d.ts"
    ]
  }
}

⚙️ Backend Tests (Jest + Supertest)

// pets.service.spec.ts
describe('PetsService', () => {
  let service: PetsService;
  let supabaseService: SupabaseService;

  beforeEach(async () => {
    const module = await Test.createTestingModule({
      providers: [
        PetsService,
        {
          provide: SupabaseService,
          useValue: {
            getClient: jest.fn(() => ({
              from: jest.fn(() => ({
                select: jest.fn(),
                insert: jest.fn(),
                update: jest.fn(),
                delete: jest.fn(),
              })),
            })),
          },
        },
      ],
    }).compile();

    service = module.get<PetsService>(PetsService);
    supabaseService = module.get<SupabaseService>(SupabaseService);
  });

  it('should create a pet successfully', async () => {
    const petData = {
      nome: 'Rex',
      peso_kg: 25.5,
      idade: 3,
      tipo_animal: 'dog',
      raca: 'Golden Retriever',
    };

    const mockResponse = { data: { id: 'uuid', ...petData }, error: null };
    jest.spyOn(supabaseService.getClient().from('pets'), 'insert')
        .mockResolvedValue(mockResponse);

    const result = await service.create('user-id', petData);
    
    expect(result.success).toBe(true);
    expect(result.data.nome).toBe('Rex');
  });
});

🌐 Web Tests (Jest + Cypress)

// pets.cy.ts - Cypress E2E
describe('Pet Management', () => {
  beforeEach(() => {
    cy.login('test@petcareai.com', 'password123');
    cy.visit('/dashboard/pets');
  });

  it('should create a new pet', () => {
    cy.get('[data-testid=add-pet-button]').click();
    cy.get('[data-testid=pet-name-input]').type('Luna');
    cy.get('[data-testid=pet-weight-input]').type('4.2');
    cy.get('[data-testid=pet-type-select]').select('cat');
    cy.get('[data-testid=submit-button]').click();
    
    cy.get('[data-testid=success-message]').should('be.visible');
    cy.get('[data-testid=pets-list]').should('contain', 'Luna');
  });
});

🚀 Executar Testes

📱 Mobile

cd petcareai-mobile

# Testes unitários
npm test

# Testes com watch mode
npm run test:watch

# Cobertura de testes
npm run test:coverage

# Testes E2E
npm run test:e2e

⚙️ Backend

cd petcareai-backend

# Testes unitários
npm test

# Testes específicos
npm test -- --testNamePattern="Pet Service"

# Testes com cobertura
npm run test:cov

# Testes de integração
npm run test:e2e

🌐 Web

cd petcareai-web

# Testes unitários
npm test

# Testes E2E com Cypress
npm run cypress:open

# Testes de performance
npm run lighthouse

💬 Suporte

🆘 Obter Ajuda

📞 Contato

🏢 Suporte Empresarial

Para clientes empresariais, oferecemos:

  • ⚡ Suporte Prioritário - Assistência técnica 24/7
  • 🔧 Recursos Personalizados - Ferramentas de desenvolvimento sob medida
  • 📚 Programas de Treinamento - Onboarding de equipe e workshops
  • 🛡️ Auditorias de Segurança - Análise de segurança de código

Entre em contato: enterprise@petcarescript.org

🆘 Canais de Suporte

Tipo de Suporte Canal Resposta
🐛 Bugs & Issues GitHub Issues 24-48h
💬 Discussões GitHub Discussions 24h
📧 Suporte Direto support@petcareai.com.br 24h
📖 Documentação documentation.petcareai.com.br Sempre

💬 Canais de Comunicação

Canal Propósito Tempo de Resposta
📧 Email Suporte geral e comercial 24-48 horas
💬 WhatsApp Suporte técnico urgente 2-8 horas
🐛 GitHub Issues Bugs e solicitações de funcionalidades 1-3 dias
📱 Telegram Comunidade de usuários Tempo real
📺 YouTube Tutoriais e novidades Semanal

📧 Contatos Diretos

🆘 Suporte Urgente

Para situações críticas que impedem o funcionamento da clínica:

📞 Telefone de Emergência: (11) 9999-8888 💬 WhatsApp: wa.me/5511999998888

🚀 Treinamentos e Workshops

Oferecemos treinamentos gratuitos para maximizar o uso do sistema:

📅 Agenda de Treinamentos

  • 🟢 Básico: Segundas-feiras às 19h (1h)
  • 🟡 Intermediário: Quartas-feiras às 19h (1.5h)
  • 🔴 Avançado: Sextas-feiras às 19h (2h)

📋 Tópicos Abordados

  • ✅ Primeiros passos no PetCare Pro
  • ✅ Gestão eficiente de clientes e pets
  • ✅ Registro de consultas e prescrições
  • ✅ Sistema de agendamentos
  • ✅ Relatórios e análises
  • ✅ Backup e segurança de dados
  • ✅ Dicas e truques avançados

📝 Inscrições

Link: treinamentos.petcareai.com.br WhatsApp: (11) 9999-7777


🔗 Links Importantes

📚 Recursos Oficiais

🛠️ Desenvolvimento

📈 Analytics & Status

🌐 PetCareAI Ecosystem

Recurso Link Descrição
🌍 Site Oficial petcareai.com.br Portal principal
🏢 GitHub Org github.com/PetCareAI 18+ repositórios
💬 Discord discord.gg/petcareai Comunidade ativa
📚 Documentação docs.petcareai.com.br Wiki completa
📋 Tasks tasks.petcareai.com.br Gerenciamento ágil
📊 Analytics analytics.petcareai.com.br Dashboards

🛠️ Ferramentas & Recursos

Categoria Ferramentas
🎨 Design Figma, Adobe XD, Sketch
💻 IDE VSCode + Extensão PetCareAI
🧪 Testing Jest, Cypress, Testing Library
📦 Package Managers npm, yarn
🚀 Deploy Vercel, Netlify, GitHub Pages
📊 Analytics Google Analytics, Hotjar

📚 Recursos de Ajuda

📖 Documentação

👥 Comunidade

🔗 Links Úteis

📋 Recursos Adicionais


👥 Equipe de Desenvolvimento

Core Team

  • Tech Lead - Arquitetura e desenvolvimento principal
  • Mobile Developer - Desenvolvimento React Native
  • Backend Developer - APIs e banco de dados
  • UX/UI Designer - Interface e experiência

🚀 Líder Técnico


Estevam Souza
Especialista TI Full-Stack
LinkedIn | GitHub | Website

🚀 Core Team


Aluno1
Tech Lead & Full Stack Developer
📧 💼

Aluno2
UI/UX Designer & Frontend Developer
📧 💼

Aluno3
Veterinary Advisor & Product Owner
📧 💼

🌟 Contributors

Agradecemos a todos os contribuidores que ajudaram a construir este projeto.

🤝 Como Juntar-se à Equipe

Estamos sempre buscando novos talentos!

Áreas Abertas:

  • 👨‍💻 Desenvolvedores (Frontend, Backend, Mobile)
  • 🧠 Especialistas IA/ML
  • 🛡️ Cybersecurity Engineers
  • 📊 Data Scientists
  • 🎨 UI/UX Designers
  • 📈 Marketing Digital

🤝 Contribuindo

Contribuições são muito bem-vindas! 🎉

🔀 Processo de Contribuição

  1. 🍴 Fork o projeto
  2. 🌟 Clone seu fork: git clone https://github.com/SEU_USUARIO/petcare-docs.git
  3. 🌿 Crie uma branch: git checkout -b feature/nova-funcionalidade
  4. ✨ Faça suas alterações seguindo os padrões do projeto
  5. ✅ Execute os testes: npm test
  6. 📝 Commit suas mudanças: git commit -m 'feat: adiciona nova funcionalidade'
  7. 🚀 Push para a branch: git push origin feature/nova-funcionalidade
  8. 🔃 Abra um Pull Request

📏 Padrões de Código

  • 📝 Commits: Seguir Conventional Commits
  • 🎯 TypeScript: Tipagem rigorosa obrigatória
  • 🎨 Styled Components: Para todos os estilos
  • 📖 Documentação: Comentários JSDoc quando necessário
  • 🧪 Testes: Coverage mínima de 80%

🐛 Reportando Bugs

Use o Issue Template:

  • ✅ Versão do Node.js e npm
  • ✅ Sistema operacional
  • ✅ Passos para reproduzir
  • ✅ Comportamento esperado vs atual
  • ✅ Screenshots (se aplicável)

📜 Licença

Este projeto está sob licença proprietária da PetCareAi Ltda.

Para licenciamento e autorizações: legal@petcareai.com.br

📋 Resumo da Licença MIT

Permitido:

  • ✅ Uso comercial
  • ✅ Modificação
  • ✅ Distribuição
  • ✅ Uso privado

Limitações:

  • ❌ Responsabilidade
  • ❌ Garantia

📝 Condições:

  • 📝 Incluir licença e copyright

🙏 Agradecimentos

🙏 Reconhecimentos Especiais

  • Google pelo Gemini 2.0 Flash API
  • Microsoft pelo VS Code e sua excelente API de extensões
  • Comunidade Open Source por inspiração e feedback contínuo
  • Beta Testers por ajudar a melhorar a extensão
  • Contribuidores que tornaram este projeto possível

🌟 Inspirações

  • GitHub Copilot - Inspiração para IA integrada
  • Material Icon Theme - Padrões de iconografia
  • Dracula Theme - Inspiração para temas escuros
  • Vue.js Community - Melhores práticas de desenvolvimento

Tecnologias e Ferramentas

  • 🧠 Google AI - Pela API Gemini revolucionária
  • 🔬 TensorFlow Team - Pela plataforma de ML mais avançada
  • ⚛️ React Community - Pelo ecossistema incrível
  • 📦 Open Source Community - Por todas as bibliotecas utilizadas

Validação Científica

  • 🏥 Hospital Veterinário USP - Validação dos algoritmos
  • 🎓 FMVZ-USP - Consultoria científica
  • 👨‍⚕️ CFMV - Orientações éticas e técnicas
  • 🐕 ANCLIVEPA - Apoio da comunidade veterinária

Beta Testers

Agradecimento especial aos 500+ tutores que participaram dos testes beta e ajudaram a aperfeiçoar nossa IA.

🏆 Reconhecimentos Especiais

  • 🩺 Conselho Regional de Medicina Veterinária de São Paulo (CRMV-SP) - Consultoria técnica
  • 🏥 Clínica Veterinária VetCare - Testes e feedback funcional
  • 👨‍💻 React Native Community - Suporte técnico e bibliotecas
  • ☁️ Supabase Team - Plataforma backend robusta
  • 🎨 Expo Team - Framework de desenvolvimento excepcional

Projetos que Inspiraram

💝 Apoie o Projeto

Gostou da extensão? Considere apoiar o desenvolvimento:

  • Star no GitHub
  • 🐦 Compartilhe nas redes sociais
  • 💰 Doe via Buy me a coffee
  • 🤝 Contribua com código ou documentação

🎯 Roadmap

📊 Repositórios Atualizados

  • 25+ repositórios agora incluídos na apresentação
  • Informações detalhadas de cada projeto com tecnologias específicas
  • Status atualizado de todos os repositórios (Produção, Beta, Desenvolvimento)
  • Links diretos para todos os repositórios GitHub

🧠 Categoria IA & Machine Learning

  • Ultra ML Pet Detection v6.0 - Sistema ultra-profissional com YOLO e MediaPipe
  • PetCareAI Analytics - Análise avançada com Machine Learning
  • LLM AI Assistant - Assistentes virtuais com Gemini AI
  • Sistemas de Computer Vision para análise veterinária

📱 Aplicações Completas

  • Apps Mobile: React Native, Expo, Vue.js PWA
  • Apps Desktop: Electron, sistemas multiplataforma
  • Plataformas Web: Next.js, React, Angular, Vue.js
  • APIs e Backend: NestJS, Python, sistemas RESTful

🏢 Sistemas Empresariais

  • ERP Completo - Gestão empresarial integrada
  • Sistemas de CRM - Gestão de relacionamento com clientes
  • Plataformas de Cybersecurity - ISO 27001/27002
  • Sistemas de Gestão de Projetos - Scrum e Kanban

⚡ Melhorias Técnicas

  • Animações aprimoradas com Framer Motion
  • SEO otimizado com meta tags completas
  • Performance melhorada com lazy loading
  • Responsividade aprimorada para todos os dispositivos

✅ Funcionalidades Implementadas

  • Interface responsiva para todos os dispositivos
  • Componentes principais (Header, Sidebar, CodeBlock)
  • Sistema de roteamento completo
  • Documentação backend detalhada
  • Syntax highlighting para códigos
  • Deploy automático na Vercel

🚧 Em Desenvolvimento

  • 🚧 Modo escuro (Dark Mode)
  • 🚧 Sistema de busca na documentação
  • 🚧 Comentários nas páginas
  • 🚧 Versionamento da documentação
  • 🚧 Integração com API real

📋 Roadmap Futuro

  • 📋 Multi-idioma (Português/Inglês)
  • 📋 Offline support (PWA)
  • 📋 Exportação para PDF
  • 📋 Integração com Notion
  • 📋 Analytics avançadas

📊 Status do Projeto

📈 Métricas e Analytics

📊 Estatísticas do Projeto

  • ⭐ Stars: 150+
  • 🍴 Forks: 25+
  • 👥 Contributors: 8+
  • 📝 Commits: 300+
  • 📄 Páginas: 20+
  • 🌍 Usuários/mês: 1,000+

📱 Performance

  • ⚡ Lighthouse Score: 95+
  • 🚀 First Contentful Paint: <1.5s
  • 📊 Largest Contentful Paint: <2.5s
  • 🎯 Cumulative Layout Shift: <0.1

⚠️ Disclaimer Importante

AVISO MÉDICO: O PetCare AI é uma ferramenta de triagem e educação que utiliza inteligência artificial para análise preliminar.

NÃO SUBSTITUI a consulta veterinária profissional. Sempre procure um médico veterinário licenciado para diagnóstico definitivo e tratamento.

Em caso de emergência, procure imediatamente um veterinário ou hospital veterinário 24h.


🎉 Comece Agora!

# Instale PetCareScript em 10 segundos
npm install -g petcarescript

# Execute seu primeiro programa
echo 'show "🐾 Olá, PetCareScript!";' > hello.pcs
pcs hello.pcs

✨ É só isso! Seu ambiente PetCareScript está pronto para usar! ✨

📱 Redes Sociais

Website GitHub Twitter Instagram LinkedIn YouTube

🚀 Pronto para Revolucionar o Cuidado Animal?

Junte-se à maior organização de tecnologia pet do Brasil!

Discord GitHub LinkedIn

🙏 Obrigado por escolher o PetCare Pro!

Juntos, estamos revolucionando a medicina veterinária no Brasil

Desenvolvido com ❤️ por veterinários, para veterinários e a comunidade de desenvolvedores

Made with Love Para Veterinários Brasileiros Open Source

🐾 Feito com ❤️ para o bem-estar dos pets brasileiros

Se este projeto ajudou você e seu pet, deixe uma estrela!

🚀 Tecnologia

Powered by Google Gemini 2.0 Flash | Built with 🤖 AI + 💻 Human Creativity

💫 Missão

"Transformando o cuidado animal através da tecnologia" 🐾

© 2025 PetCareAI Organization - Todos os direitos reservados


Star History

Star History Chart

About

PetCare AI é um aplicativo React Native revolucionário que transforma o cuidado com pets através da inteligência artificial. O app oferece cardápios personalizados, dicas de cuidados inteligentes, análise comportamental por imagem, acompanhamento completo de saúde e humor, controle de gastos, localização de serviços próximos e conteúdo educativo.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published