-
Notifications
You must be signed in to change notification settings - Fork 0
portfolio de produtos
Estevam edited this page Jun 2, 2025
·
1 revision
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PetCare AI - Gerador de Portfolio PDF</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Arial', sans-serif;
background: #f0f8f0;
padding: 20px;
}
.control-panel {
background: white;
padding: 25px;
border-radius: 15px;
margin-bottom: 20px;
text-align: center;
box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}
.control-panel h1 {
color: #2e7d32;
margin-bottom: 10px;
font-size: 24px;
}
.generate-btn {
background: linear-gradient(45deg, #2e7d32, #4caf50);
color: white;
border: none;
padding: 18px 40px;
border-radius: 30px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);
}
.generate-btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(76, 175, 80, 0.4);
}
/* PDF Content Styles */
.pdf-content {
width: 210mm;
margin: 0 auto;
background: white;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.pdf-page {
width: 210mm;
min-height: 297mm;
padding: 0;
page-break-after: always;
position: relative;
overflow: hidden;
}
.pdf-page:last-child {
page-break-after: avoid;
}
/* Cover Page */
.cover-page {
background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 25%, #388e3c 50%, #4caf50 75%, #66bb6a 100%);
color: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
position: relative;
}
.cover-page::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="1" fill="rgba(255,255,255,0.1)" opacity="0.6"><animate attributeName="opacity" values="0.3;0.8;0.3" dur="3s" repeatCount="indefinite"/></circle><circle cx="80" cy="80" r="1.5" fill="rgba(255,255,255,0.1)" opacity="0.4"><animate attributeName="opacity" values="0.2;0.6;0.2" dur="4s" repeatCount="indefinite"/></circle><circle cx="60" cy="30" r="0.8" fill="rgba(255,255,255,0.1)" opacity="0.5"><animate attributeName="opacity" values="0.4;0.9;0.4" dur="2s" repeatCount="indefinite"/></circle></svg>') repeat;
opacity: 0.4;
}
.cover-content {
z-index: 2;
position: relative;
animation: fadeInUp 1s ease-out;
}
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.cover-logo {
font-size: 90px;
margin-bottom: 20px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.cover-title {
font-size: 52px;
font-weight: bold;
margin-bottom: 15px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.cover-subtitle {
font-size: 36px;
background: rgba(255,255,255,0.2);
padding: 18px 45px;
border-radius: 50px;
margin: 25px 0;
backdrop-filter: blur(10px);
border: 1px solid rgba(255,255,255,0.1);
}
.cover-tagline {
font-size: 20px;
margin-top: 35px;
opacity: 0.95;
max-width: 600px;
line-height: 1.4;
}
.cover-stats {
margin-top: 40px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
font-size: 16px;
}
.stat-item {
background: rgba(255,255,255,0.1);
padding: 15px;
border-radius: 15px;
backdrop-filter: blur(5px);
}
.stat-number {
font-size: 32px;
font-weight: bold;
display: block;
margin-bottom: 5px;
}
/* Solutions Overview Page */
.solutions-page {
background: linear-gradient(to bottom, #e8f5e8 0%, #ffffff 100%);
padding: 40px;
}
.page-title {
font-size: 42px;
color: #2e7d32;
text-align: center;
margin-bottom: 40px;
font-weight: bold;
position: relative;
}
.page-title::after {
content: '';
display: block;
width: 120px;
height: 5px;
background: linear-gradient(45deg, #4caf50, #66bb6a);
margin: 15px auto;
border-radius: 3px;
}
.solutions-overview {
display: grid;
grid-template-columns: 1.2fr 0.8fr;
gap: 40px;
margin-bottom: 50px;
}
.overview-text {
font-size: 16px;
line-height: 1.8;
color: #333;
}
.overview-text h3 {
color: #2e7d32;
font-size: 22px;
margin-bottom: 15px;
}
.overview-text p {
margin-bottom: 15px;
}
.overview-text ul {
margin-left: 20px;
margin-top: 10px;
}
.overview-text li {
margin-bottom: 8px;
}
.overview-stats {
background: linear-gradient(135deg, #4caf50, #66bb6a);
color: white;
padding: 35px 25px;
border-radius: 20px;
text-align: center;
box-shadow: 0 8px 20px rgba(76, 175, 80, 0.3);
}
.overview-stats h3 {
margin-bottom: 25px;
font-size: 20px;
}
.stat-item-overview {
margin: 20px 0;
padding: 10px;
background: rgba(255,255,255,0.1);
border-radius: 10px;
backdrop-filter: blur(5px);
}
.stat-number-overview {
font-size: 36px;
font-weight: bold;
display: block;
margin-bottom: 5px;
}
.stat-label {
font-size: 14px;
opacity: 0.9;
}
.ecosystem-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 25px;
margin-top: 40px;
}
.ecosystem-card {
background: white;
border: 2px solid #e8f5e8;
border-radius: 15px;
padding: 25px;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.ecosystem-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(45deg, #4caf50, #66bb6a);
}
.ecosystem-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(76, 175, 80, 0.15);
}
.ecosystem-icon {
font-size: 42px;
margin-bottom: 15px;
display: block;
}
.ecosystem-title {
font-size: 18px;
color: #2e7d32;
font-weight: bold;
margin-bottom: 12px;
}
.ecosystem-description {
font-size: 13px;
line-height: 1.6;
color: #555;
margin-bottom: 15px;
}
.ecosystem-tech {
font-size: 11px;
color: #666;
background: #f1f8e9;
padding: 8px 12px;
border-radius: 15px;
display: inline-block;
margin-right: 8px;
margin-bottom: 5px;
}
/* Tech Architecture Page */
.architecture-page {
background: linear-gradient(to bottom, #ffffff 0%, #f1f8e9 100%);
padding: 40px;
}
.architecture-diagram {
background: white;
border: 3px solid #4caf50;
border-radius: 20px;
padding: 35px;
margin: 35px 0;
text-align: center;
box-shadow: 0 6px 15px rgba(0,0,0,0.1);
}
.diagram-title {
font-size: 22px;
color: #2e7d32;
margin-bottom: 25px;
font-weight: bold;
}
.diagram-layer {
background: linear-gradient(135deg, #e8f5e8, #c8e6c8);
border: 2px solid #4caf50;
border-radius: 15px;
padding: 20px;
margin: 20px 0;
position: relative;
}
.layer-title {
font-weight: bold;
color: #2e7d32;
margin-bottom: 15px;
font-size: 16px;
}
.layer-components {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
gap: 10px;
}
.component {
background: white;
border: 1px solid #4caf50;
border-radius: 10px;
padding: 12px 16px;
margin: 5px;
font-size: 12px;
color: #2e7d32;
font-weight: 500;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
/* Stack Page */
.stack-page {
background: linear-gradient(to bottom, #f1f8e9 0%, #ffffff 100%);
padding: 40px;
}
.stack-categories {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 35px;
margin-top: 35px;
}
.stack-category {
background: white;
border-radius: 18px;
padding: 30px;
box-shadow: 0 6px 15px rgba(0,0,0,0.1);
border: 1px solid #e8f5e8;
}
.category-title {
font-size: 22px;
color: #2e7d32;
font-weight: bold;
margin-bottom: 25px;
text-align: center;
}
.tech-items {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
}
.tech-item {
background: linear-gradient(135deg, #e8f5e8, #f1f8e9);
border: 1px solid #c8e6c8;
border-radius: 12px;
padding: 18px;
text-align: center;
transition: all 0.2s ease;
}
.tech-item:hover {
transform: scale(1.05);
box-shadow: 0 4px 10px rgba(76, 175, 80, 0.2);
}
.tech-icon {
font-size: 26px;
margin-bottom: 10px;
display: block;
}
.tech-name {
font-size: 12px;
color: #2e7d32;
font-weight: bold;
}
.tech-version {
font-size: 10px;
color: #666;
margin-top: 3px;
}
/* AI Features Page */
.ai-page {
background: linear-gradient(135deg, #e8f5e8 0%, #ffffff 50%, #f1f8e9 100%);
padding: 40px;
}
.ai-features {
display: grid;
grid-template-columns: 1fr;
gap: 30px;
margin-top: 30px;
}
.ai-feature {
background: white;
border-radius: 20px;
padding: 30px;
box-shadow: 0 8px 20px rgba(0,0,0,0.1);
border-left: 5px solid #4caf50;
}
.ai-feature-title {
font-size: 24px;
color: #2e7d32;
margin-bottom: 15px;
display: flex;
align-items: center;
gap: 15px;
}
.ai-feature-icon {
font-size: 32px;
}
.ai-feature-description {
color: #555;
line-height: 1.7;
margin-bottom: 20px;
}
.ai-capabilities {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
}
.capability {
background: #f8fff8;
padding: 15px;
border-radius: 10px;
border: 1px solid #e0f2e0;
font-size: 13px;
}
.capability strong {
color: #2e7d32;
}
/* Contact Page */
.contact-page {
background: linear-gradient(135deg, #2e7d32 0%, #4caf50 100%);
color: white;
padding: 40px;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
}
.contact-content {
max-width: 700px;
margin: 0 auto;
}
.contact-title {
font-size: 48px;
margin-bottom: 25px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.contact-subtitle {
font-size: 22px;
margin-bottom: 45px;
opacity: 0.95;
line-height: 1.4;
}
.contact-info {
background: rgba(255,255,255,0.15);
border-radius: 20px;
padding: 35px;
margin: 35px 0;
backdrop-filter: blur(10px);
border: 1px solid rgba(255,255,255,0.1);
}
.contact-item {
font-size: 18px;
margin: 20px 0;
display: flex;
align-items: center;
justify-content: center;
gap: 15px;
}
.contact-icon {
font-size: 24px;
}
.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
margin-top: 40px;
padding: 30px;
background: rgba(255,255,255,0.1);
border-radius: 15px;
backdrop-filter: blur(5px);
}
.service-item {
display: flex;
align-items: center;
gap: 10px;
font-size: 15px;
}
.hidden {
display: none;
}
/* Print styles */
@media print {
body { margin: 0; padding: 0; }
.control-panel { display: none; }
.pdf-content { box-shadow: none; }
}
</style>
</head>
<body>
<div class="control-panel">
<h1>🐾 PetCare AI - Portfolio Completo</h1>
<p>Gerador de PDF profissional com todos os produtos e tecnologias</p>
<button class="generate-btn" onclick="generatePDF()">📄 Gerar Portfolio PDF</button>
</div>
<div class="pdf-content" id="pdf-content">
<!-- Página 1: Capa -->
<div class="pdf-page cover-page">
<div class="cover-content">
<div class="cover-logo">🐾</div>
<h1 class="cover-title">PetCare AI</h1>
<div class="cover-subtitle">ECOSSISTEMA COMPLETO</div>
<p class="cover-tagline">Revolucionando o cuidado pet através de tecnologia avançada, inteligência artificial e soluções integradas para tutores, veterinários e empresas</p>
<div class="cover-stats">
<div class="stat-item">
<span class="stat-number">8</span>
<span class="stat-label">Aplicações Desenvolvidas</span>
</div>
<div class="stat-item">
<span class="stat-number">5</span>
<span class="stat-label">Plataformas Suportadas</span>
</div>
<div class="stat-item">
<span class="stat-number">12+</span>
<span class="stat-label">Tecnologias Integradas</span>
</div>
</div>
</div>
</div>
<!-- Página 2: Ecossistema de Produtos -->
<div class="pdf-page solutions-page">
<h2 class="page-title">Ecossistema PetCare AI</h2>
<div class="solutions-overview">
<div class="overview-text">
<h3>Plataforma Integrada Completa</h3>
<p>O PetCare AI é um ecossistema tecnológico abrangente que oferece soluções para todos os aspectos do cuidado animal, desde aplicações móveis até sistemas de análise avançada com inteligência artificial.</p>
<p><strong>Principais Diferenciais:</strong></p>
<ul>
<li>Inteligência Artificial avançada com Google Gemini 2.0</li>
<li>Análise preditiva e machine learning</li>
<li>Interface multiplataforma unificada</li>
<li>Dados em tempo real e analytics</li>
<li>Integração completa entre aplicações</li>
</ul>
</div>
<div class="overview-stats">
<h3>Impacto e Alcance</h3>
<div class="stat-item-overview">
<span class="stat-number-overview">100%</span>
<span class="stat-label">Multiplataforma</span>
</div>
<div class="stat-item-overview">
<span class="stat-number-overview">3</span>
<span class="stat-label">Tipos de IA Integrada</span>
</div>
<div class="stat-item-overview">
<span class="stat-number-overview">5</span>
<span class="stat-label">Frameworks Utilizados</span>
</div>
<div class="stat-item-overview">
<span class="stat-number-overview">24/7</span>
<span class="stat-label">Disponibilidade</span>
</div>
</div>
</div>
<div class="ecosystem-grid">
<div class="ecosystem-card">
<span class="ecosystem-icon">📱</span>
<h3 class="ecosystem-title">PetCare AI Mobile</h3>
<p class="ecosystem-description">Aplicativo React Native completo com IA para cardápios personalizados, monitoramento de saúde, controle de gastos e localização de serviços veterinários.</p>
<div>
<span class="ecosystem-tech">React Native 0.72</span>
<span class="ecosystem-tech">Google Gemini AI</span>
<span class="ecosystem-tech">AsyncStorage</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">🌐</span>
<h3 class="ecosystem-title">PetCare AI Web</h3>
<p class="ecosystem-description">Aplicação web moderna em Vue.js 3 com TypeScript, oferecendo gerenciamento completo de pets e integração com todas as funcionalidades.</p>
<div>
<span class="ecosystem-tech">Vue.js 3</span>
<span class="ecosystem-tech">TypeScript</span>
<span class="ecosystem-tech">Pinia</span>
<span class="ecosystem-tech">Tailwind CSS</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">💻</span>
<h3 class="ecosystem-title">PetCare AI Desktop</h3>
<p class="ecosystem-description">Aplicação desktop multiplataforma com Electron, oferecendo experiência nativa e funcionalidades offline para Windows, macOS e Linux.</p>
<div>
<span class="ecosystem-tech">Electron 25.8</span>
<span class="ecosystem-tech">React 18.2</span>
<span class="ecosystem-tech">Chart.js</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">🔗</span>
<h3 class="ecosystem-title">PetCare AI API</h3>
<p class="ecosystem-description">API RESTful robusta desenvolvida em NestJS com TypeScript, fornecendo endpoints seguros e documentação Swagger completa.</p>
<div>
<span class="ecosystem-tech">NestJS</span>
<span class="ecosystem-tech">Prisma ORM</span>
<span class="ecosystem-tech">SQLite</span>
<span class="ecosystem-tech">JWT Auth</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">📊</span>
<h3 class="ecosystem-title">PetCare Analytics</h3>
<p class="ecosystem-description">Sistema avançado de análise de dados em Streamlit com visualizações interativas, mapas de calor e modelos preditivos para insights profundos.</p>
<div>
<span class="ecosystem-tech">Streamlit</span>
<span class="ecosystem-tech">Python</span>
<span class="ecosystem-tech">Plotly</span>
<span class="ecosystem-tech">Scikit-learn</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">🤖</span>
<h3 class="ecosystem-title">PetCare AI ML</h3>
<p class="ecosystem-description">Sistema de análise de saúde animal com IA, utilizando TensorFlow.js e Google Gemini 2.0 para diagnósticos por imagem e sintomas.</p>
<div>
<span class="ecosystem-tech">TensorFlow.js</span>
<span class="ecosystem-tech">Gemini 2.0</span>
<span class="ecosystem-tech">React + TS</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">📋</span>
<h3 class="ecosystem-title">PetCare Tasks</h3>
<p class="ecosystem-description">Sistema de gerenciamento de projetos e tarefas em Next.js 14, implementando metodologias ágeis e colaboração em equipe.</p>
<div>
<span class="ecosystem-tech">Next.js 14</span>
<span class="ecosystem-tech">PostgreSQL</span>
<span class="ecosystem-tech">NextAuth</span>
</div>
</div>
<div class="ecosystem-card">
<span class="ecosystem-icon">🏥</span>
<h3 class="ecosystem-title">Sistema Consultório</h3>
<p class="ecosystem-description">Aplicação Angular para gestão de consultórios veterinários, com agendamentos, histórico médico e integração com outras plataformas.</p>
<div>
<span class="ecosystem-tech">Angular 19</span>
<span class="ecosystem-tech">TypeScript</span>
<span class="ecosystem-tech">Angular CLI</span>
</div>
</div>
</div>
</div>
<!-- Página 3: Arquitetura Técnica -->
<div class="pdf-page architecture-page">
<h2 class="page-title">Arquitetura e Integração</h2>
<div class="architecture-diagram">
<h3 class="diagram-title">Modelo de Arquitetura Distribuída</h3>
<div class="diagram-layer">
<div class="layer-title">🖥️ Camada de Apresentação</div>
<div class="layer-components">
<div class="component">📱 React Native App</div>
<div class="component">🌐 Vue.js Web App</div>
<div class="component">💻 Electron Desktop</div>
<div class="component">🏥 Angular Consultório</div>
</div>
</div>
<div class="diagram-layer">
<div class="layer-title">🔗 Camada de API e Serviços</div>
<div class="layer-components">
<div class="component">🚀 NestJS API</div>
<div class="component">🔐 JWT Authentication</div>
<div class="component">📊 Analytics Engine</div>
<div class="component">🤖 AI/ML Services</div>
</div>
</div>
<div class="diagram-layer">
<div class="layer-title">🧠 Camada de Inteligência Artificial</div>
<div class="layer-components">
<div class="component">🎯 Google Gemini 2.0</div>
<div class="component">📸 TensorFlow.js</div>
<div class="component">📈 Scikit-learn</div>
<div class="component">🔍 NLTK Processing</div>
</div>
</div>
<div class="diagram-layer">
<div class="layer-title">🗄️ Camada de Dados</div>
<div class="layer-components">
<div class="component">🐘 PostgreSQL</div>
<div class="component">📄 SQLite</div>
<div class="component">💾 Local Storage</div>
<div class="component">☁️ Cloud Storage</div>
</div>
</div>
<div class="diagram-layer">
<div class="layer-title">🌍 Infraestrutura e Deploy</div>
<div class="layer-components">
<div class="component">⚡ Vercel</div>
<div class="component">🐳 Docker</div>
<div class="component">📱 App Stores</div>
<div class="component">🔄 CI/CD Pipeline</div>
</div>
</div>
</div>
<div style="margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 25px;">
<div style="background: white; padding: 25px; border-radius: 15px; border-left: 4px solid #4caf50;">
<h4 style="color: #2e7d32; margin-bottom: 15px;">🔄 Fluxo de Dados</h4>
<p style="font-size: 13px; line-height: 1.6; color: #555;">
Os dados fluem seamlessly entre todas as aplicações através da API central, garantindo sincronização e consistência em tempo real.
</p>
</div>
<div style="background: white; padding: 25px; border-radius: 15px; border-left: 4px solid #2e7d32;">
<h4 style="color: #2e7d32; margin-bottom: 15px;">🛡️ Segurança</h4>
<p style="font-size: 13px; line-height: 1.6; color: #555;">
Implementação de JWT, HTTPS, validação de dados e controle de acesso em todas as camadas da aplicação.
</p>
</div>
</div>
</div>
<!-- Página 4: Inteligência Artificial -->
<div class="pdf-page ai-page">
<h2 class="page-title">Inteligência Artificial Integrada</h2>
<div class="ai-features">
<div class="ai-feature">
<h3 class="ai-feature-title">
<span class="ai-feature-icon">🍽️</span>
Cardápios Personalizados com IA
</h3>
<p class="ai-feature-description">
Sistema avançado que utiliza Google Gemini AI para gerar cardápios completamente personalizados baseados no perfil específico de cada pet, considerando idade, peso, raça, condições de saúde e preferências do tutor.
</p>
<div class="ai-capabilities">
<div class="capability">
<strong>Análise Nutricional:</strong> Cálculo preciso de macronutrientes e micronutrientes necessários
</div>
<div class="capability">
<strong>Restrições Alimentares:</strong> Consideração automática de alergias e condições médicas
</div>
<div class="capability">
<strong>Orçamento Inteligente:</strong> Adequação às preferências econômicas do tutor
</div>
<div class="capability">
<strong>Variedade Semanal:</strong> Cardápios diversificados para evitar monotonia alimentar
</div>
</div>
</div>
<div class="ai-feature">
<h3 class="ai-feature-title">
<span class="ai-feature-icon">🩺</span>
Análise de Saúde por Imagem
</h3>
<p class="ai-feature-description">
Tecnologia revolucionária que combina Google Gemini 2.0 com TensorFlow.js para análise visual de saúde animal, detectando possíveis problemas através de fotografias e correlacionando com sintomas relatados.
</p>
<div class="ai-capabilities">
<div class="capability">
<strong>Reconhecimento Visual:</strong> Identificação de anomalias em olhos, pele e postura
</div>
<div class="capability">
<strong>Análise Multimodal:</strong> Combinação de imagem com descrição de sintomas
</div>
<div class="capability">
<strong>Níveis de Risco:</strong> Classificação automática em baixo, médio e alto risco
</div>
<div class="capability">
<strong>Recomendações:</strong> Orientações específicas sobre quando procurar veterinário
</div>
</div>
</div>
<div class="ai-feature">
<h3 class="ai-feature-title">
<span class="ai-feature-icon">📊</span>
Analytics Preditivos
</h3>
<p class="ai-feature-description">
Sistema de análise avançada que utiliza machine learning para identificar padrões, prever tendências de saúde e fornecer insights acionáveis sobre o bem-estar dos pets ao longo do tempo.
</p>
<div class="ai-capabilities">
<div class="capability">
<strong>Análise de Padrões:</strong> Identificação de correlações entre comportamento e saúde
</div>
<div class="capability">
<strong>Previsões de Saúde:</strong> Antecipação de possíveis problemas baseada em histórico
</div>
<div class="capability">
<strong>Clustering Inteligente:</strong> Agrupamento de pets similares para benchmarking
</div>
<div class="capability">
<strong>Processamento NLP:</strong> Análise de texto para insights comportamentais
</div>
</div>
</div>
</div>
<div style="margin-top: 35px; background: linear-gradient(135deg, #4caf50, #66bb6a); color: white; padding: 30px; border-radius: 20px; text-align: center;">
<h3 style="margin-bottom: 20px; font-size: 24px;">🎯 Precisão e Confiabilidade</h3>
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; margin-top: 25px;">
<div style="background: rgba(255,255,255,0.1); padding: 20px; border-radius: 15px; backdrop-filter: blur(5px);">
<div style="font-size: 32px; font-weight: bold; margin-bottom: 8px;">85%</div>
<div style="font-size: 14px;">Precisão na Análise de Imagens</div>
</div>
<div style="background: rgba(255,255,255,0.1); padding: 20px; border-radius: 15px; backdrop-filter: blur(5px);">
<div style="font-size: 32px; font-weight: bold; margin-bottom: 8px;">92%</div>
<div style="font-size: 14px;">Assertividade em Cardápios</div>
</div>
<div style="background: rgba(255,255,255,0.1); padding: 20px; border-radius: 15px; backdrop-filter: blur(5px);">
<div style="font-size: 32px; font-weight: bold; margin-bottom: 8px;">3s</div>
<div style="font-size: 14px;">Tempo Médio de Análise</div>
</div>
</div>
</div>
</div>
<!-- Página 5: Stack Tecnológico -->
<div class="pdf-page stack-page">
<h2 class="page-title">Stack Tecnológico Avançado</h2>
<div class="stack-categories">
<div class="stack-category">
<h3 class="category-title">🖥️ Frontend & Mobile</h3>
<div class="tech-items">
<div class="tech-item">
<span class="tech-icon">⚛️</span>
<div class="tech-name">React Native</div>
<div class="tech-version">v0.72</div>
</div>
<div class="tech-item">
<span class="tech-icon">🟢</span>
<div class="tech-name">Vue.js</div>
<div class="tech-version">v3.0</div>
</div>
<div class="tech-item">
<span class="tech-icon">⚛️</span>
<div class="tech-name">React</div>
<div class="tech-version">v18.2</div>
</div>
<div class="tech-item">
<span class="tech-icon">🔺</span>
<div class="tech-name">Angular</div>
<div class="tech-version">v19</div>
</div>
<div class="tech-item">
<span class="tech-icon">⚡</span>
<div class="tech-name">Electron</div>
<div class="tech-version">v25.8</div>
</div>
<div class="tech-item">
<span class="tech-icon">🎨</span>
<div class="tech-name">Tailwind CSS</div>
<div class="tech-version">v3.3</div>
</div>
</div>
</div>
<div class="stack-category">
<h3 class="category-title">🚀 Backend & APIs</h3>
<div class="tech-items">
<div class="tech-item">
<span class="tech-icon">🚀</span>
<div class="tech-name">NestJS</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">⚫</span>
<div class="tech-name">Next.js</div>
<div class="tech-version">v14</div>
</div>
<div class="tech-item">
<span class="tech-icon">🟢</span>
<div class="tech-name">Node.js</div>
<div class="tech-version">v18+</div>
</div>
<div class="tech-item">
<span class="tech-icon">📊</span>
<div class="tech-name">Streamlit</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">🔗</span>
<div class="tech-name">GraphQL</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">🔐</span>
<div class="tech-name">JWT Auth</div>
<div class="tech-version">Secure</div>
</div>
</div>
</div>
<div class="stack-category">
<h3 class="category-title">🤖 IA & Machine Learning</h3>
<div class="tech-items">
<div class="tech-item">
<span class="tech-icon">🎯</span>
<div class="tech-name">Google Gemini</div>
<div class="tech-version">v2.0</div>
</div>
<div class="tech-item">
<span class="tech-icon">🧠</span>
<div class="tech-name">TensorFlow.js</div>
<div class="tech-version">v4.15</div>
</div>
<div class="tech-item">
<span class="tech-icon">🐍</span>
<div class="tech-name">Scikit-learn</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">📊</span>
<div class="tech-name">Pandas</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">📈</span>
<div class="tech-name">Plotly</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">🔍</span>
<div class="tech-name">NLTK</div>
<div class="tech-version">Latest</div>
</div>
</div>
</div>
<div class="stack-category">
<h3 class="category-title">🗄️ Banco de Dados</h3>
<div class="tech-items">
<div class="tech-item">
<span class="tech-icon">🐘</span>
<div class="tech-name">PostgreSQL</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">📄</span>
<div class="tech-name">SQLite</div>
<div class="tech-version">Latest</div>
</div>
<div class="tech-item">
<span class="tech-icon">🔷</span>
<div class="tech-name">Prisma ORM</div>
<div class="tech-version">v5.7</div>
</div>
<div class="tech-item">
<span class="tech-icon">🔄</span>
<div class="tech-name">Redis</div>
<div class="tech-version">Cache</div>
</div>
<div class="tech-item">
<span class="tech-icon">💾</span>
<div class="tech-name">Local Storage</div>
<div class="tech-version">Browser</div>
</div>
<div class="tech-item">
<span class="tech-icon">🟪</span>
<div class="tech-name">Pinia Store</div>
<div class="tech-version">Vue</div>
</div>
</div>
</div>
</div>
<div style="margin-top: 40px; background: white; padding: 30px; border-radius: 20px; border: 2px solid #4caf50;">
<h3 style="color: #2e7d32; text-align: center; margin-bottom: 25px; font-size: 22px;">🛠️ Ferramentas de Desenvolvimento</h3>
<div style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;">
<div style="text-align: center; padding: 15px; background: #f8fff8; border-radius: 10px;">
<div style="font-size: 24px; margin-bottom: 8px;">📝</div>
<div style="font-size: 12px; color: #2e7d32; font-weight: bold;">TypeScript</div>
</div>
<div style="text-align: center; padding: 15px; background: #f8fff8; border-radius: 10px;">
<div style="font-size: 24px; margin-bottom: 8px;">🐳</div>
<div style="font-size: 12px; color: #2e7d32; font-weight: bold;">Docker</div>
</div>
<div style="text-align: center; padding: 15px; background: #f8fff8; border-radius: 10px;">
<div style="font-size: 24px; margin-bottom: 8px;">📚</div>
<div style="font-size: 12px; color: #2e7d32; font-weight: bold;">Swagger</div>
</div>
<div style="text-align: center; padding: 15px; background: #f8fff8; border-radius: 10px;">
<div style="font-size: 24px; margin-bottom: 8px;">⚡</div>
<div style="font-size: 12px; color: #2e7d32; font-weight: bold;">Vercel</div>
</div>
</div>
</div>
</div>
<!-- Página 6: Contato e Serviços -->
<div class="pdf-page contact-page">
<div class="contact-content">
<div class="contact-title">🐾 PetCare AI</div>
<p class="contact-subtitle">Transforme o cuidado animal da sua empresa com nossas soluções tecnológicas avançadas</p>
<div class="contact-info">
<div class="contact-item">
<span class="contact-icon">📧</span>
<span>contato@petcareai.com.br</span>
</div>
<div class="contact-item">
<span class="contact-icon">📱</span>
<span>+55 (48) 99999-9999</span>
</div>
<div class="contact-item">
<span class="contact-icon">🌐</span>
<span>www.petcareai.com.br</span>
</div>
<div class="contact-item">
<span class="contact-icon">📍</span>
<span>Florianópolis, SC - Brasil</span>
</div>
</div>
<div style="margin-top: 40px; background: rgba(255,255,255,0.1); padding: 35px; border-radius: 20px; backdrop-filter: blur(5px);">
<h3 style="margin-bottom: 25px; font-size: 26px;">🚀 Nossos Serviços</h3>
<div class="services-grid">
<div class="service-item">
<span>✅</span>
<span>Desenvolvimento de Apps Mobile</span>
</div>
<div class="service-item">
<span>✅</span>
<span>Aplicações Web Responsivas</span>
</div>
<div class="service-item">
<span>✅</span>
<span>Sistemas Desktop Multiplataforma</span>
</div>
<div class="service-item">
<span>✅</span>
<span>APIs RESTful Robustas</span>
</div>
<div class="service-item">
<span>✅</span>
<span>Soluções de Inteligência Artificial</span>
</div>
<div class="service-item">
<span>✅</span>
<span>Analytics e Machine Learning</span>
</div>
<div class="service-item">
<span>✅</span>
<span>Consultoria Técnica Especializada</span>
</div>
<div class="service-item">
<span>✅</span>
<span>Suporte Técnico 24/7</span>
</div>
</div>
</div>
<div style="margin-top: 40px; font-size: 18px; line-height: 1.6;">
<p><strong>💡 Pronto para revolucionar seu negócio pet?</strong></p>
<p>Entre em contato conosco e descubra como nossas soluções podem transformar a experiência dos seus clientes e otimizar seus processos.</p>
</div>
</div>
</div>
</div>
<script>
function generatePDF() {
const element = document.getElementById('pdf-content');
const button = document.querySelector('.generate-btn');
// Mostrar loading
button.innerHTML = '🔄 Gerando Portfolio PDF...';
button.disabled = true;
const options = {
margin: 0,
filename: 'PetCare-AI-Portfolio-Completo.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: {
scale: 2,
useCORS: true,
letterRendering: true,
allowTaint: false,
height: window.innerHeight,
width: window.innerWidth,
scrollX: 0,
scrollY: 0
},
jsPDF: {
unit: 'mm',
format: 'a4',
orientation: 'portrait',
compress: true
},
pagebreak: {
mode: 'avoid-all',
before: '.pdf-page',
after: '.pdf-page'
}
};
html2pdf().set(options).from(element).save().then(() => {
// Resetar botão
button.innerHTML = '✅ Portfolio PDF Gerado com Sucesso!';
button.style.background = 'linear-gradient(45deg, #2e7d32, #4caf50)';
setTimeout(() => {
button.innerHTML = '📄 Gerar Portfolio PDF';
button.disabled = false;
button.style.background = 'linear-gradient(45deg, #2e7d32, #4caf50)';
}, 4000);
}).catch(error => {
console.error('Erro ao gerar PDF:', error);
button.innerHTML = '❌ Erro ao Gerar PDF - Tentar Novamente';
button.style.background = 'linear-gradient(45deg, #d32f2f, #f44336)';
setTimeout(() => {
button.innerHTML = '📄 Gerar Portfolio PDF';
button.disabled = false;
button.style.background = 'linear-gradient(45deg, #2e7d32, #4caf50)';
}, 4000);
});
}
// Carregar animações quando a página carrega
window.addEventListener('load', function() {
console.log('PetCare AI Portfolio Generator carregado com sucesso!');
// Adicionar efeito de hover nas tech-items
document.querySelectorAll('.tech-item').forEach(item => {
item.addEventListener('mouseenter', function() {
this.style.transform = 'scale(1.05) rotate(1deg)';
});
item.addEventListener('mouseleave', function() {
this.style.transform = 'scale(1) rotate(0deg)';
});
});
// Adicionar efeito nas ecosystem-cards
document.querySelectorAll('.ecosystem-card').forEach(card => {
card.addEventListener('mouseenter', function() {
this.style.transform = 'translateY(-8px) scale(1.02)';
});
card.addEventListener('mouseleave', function() {
this.style.transform = 'translateY(0) scale(1)';
});
});
});
// Adicionar efeito de partículas na capa
function createParticles() {
const coverPage = document.querySelector('.cover-page');
if (coverPage) {
for (let i = 0; i < 15; i++) {
const particle = document.createElement('div');
particle.innerHTML = '🐾';
particle.style.position = 'absolute';
particle.style.fontSize = Math.random() * 20 + 10 + 'px';
particle.style.left = Math.random() * 100 + '%';
particle.style.top = Math.random() * 100 + '%';
particle.style.opacity = Math.random() * 0.3 + 0.1;
particle.style.animation = `float ${Math.random() * 3 + 2}s ease-in-out infinite`;
particle.style.zIndex = '1';
coverPage.appendChild(particle);
}
}
}
// Executar após carregamento
setTimeout(createParticles, 500);
</script>
</body>
</html>