Files
portifolio-evandrodevbr/public/portfolio-data.json
T
Evandro Fonseca Junior 6e1022b58c feat(cases): cases de clientes, serviços ligados à prova e SEO por página
Cases da SEV Moda Íntima e da Lavação 047; case no formato cliente, problema, entrega, mídia e contato, com detalhes técnicos recolhidos; sem GitHub, ressalvas e fontes de commit. /cases separa clientes e Laboratório. Serviços mostram o case de cliente certo e o bloco de investimento e prazo só aparece preenchido. Metadata social própria por página, not-found com noindex, sitemap com /ia.
2026-10-14 03:31:57 -03:00

400 lines
16 KiB
JSON

{
"personal": {
"name": "Evandro Fonseca Junior",
"title": "Engenheiro da Computação e Desenvolvedor de Software",
"location": "Garuva, Santa Catarina, Brasil",
"email": "[email protected]",
"phone": "Disponível pelo botão de WhatsApp",
"linkedin": "https://www.linkedin.com/in/evandrodevbr/",
"summary": "Engenheiro da Computação e desenvolvedor de software com 5 anos de experiência, especializado em soluções web modernas e inovadoras. Formado em Engenharia da Computação, com conhecimentos sólidos em computação em nuvem e inteligência artificial. Busco constantemente novos desafios onde possa aplicar minha paixão por tecnologia e resolver problemas de forma criativa."
},
"experiences": [
{
"id": "innovo-tecnologia",
"title": "Desenvolvedor Fullstack",
"company": "Innovo Tecnologia Da Informacao Ltda.",
"period": "Dezembro 2024 - Fevereiro 2025",
"location": "Joinville, Santa Catarina, Brasil",
"type": "Tempo Integral · Híbrido",
"description": "Desenvolvimento de componentes Front-end utilizando Angular e implementação da lógica de Back-end com Node.js, integrando bancos de dados PostgreSQL e MySQL. Atuação em metodologias ágeis, especialmente Scrum, colaborando para otimizar processos de desenvolvimento.",
"achievements": [
"Contribuição ativa na criação e manutenção de bibliotecas (libs) internas",
"Garantia de reutilização de código e qualidade técnica dos sistemas legados",
"Otimização de processos de desenvolvimento com metodologias ágeis"
],
"technologies": [
"Angular",
"Node.js",
"JavaScript",
"PostgreSQL",
"MySQL",
"Scrum"
],
"featured": true
},
{
"id": "apolo-energia",
"title": "Desenvolvedor Full Stack",
"company": "Apolo Energia",
"period": "Junho 2022 - Presente",
"location": "Curitiba, Paraná, Brasil",
"type": "Autônomo · Remota",
"description": "Entrega de aplicações Web e Mobile que sustentam rotinas internas da Apolo Energia, com responsividade e capacidade de crescer sem perda de qualidade. Desenho e implementação de APIs REST com contratos claros, testes e versionamento, simplificando integrações com terceiros e sistemas internos.",
"achievements": [
"Melhoria de desempenho em rotas e consultas críticas por meio de análise de gargalos, indexação e cache",
"Fortalecimento da segurança de dados com autenticação/autorização adequadas e criptografia em trânsito",
"Integração de plataformas e dispositivos (IoT) para troca confiável de dados entre serviços e parceiros",
"Automação de rotinas e criação de painéis para operação e controle em processos de energia renovável",
"Participação no planejamento e na arquitetura de novas soluções com decisões técnicas estratégicas"
],
"technologies": [
"PHP",
"Laravel",
"JavaScript",
"MySQL",
"IoT",
"APIs REST"
],
"featured": true
}
],
"projects": [
{
"id": "sev-modaintima",
"kind": "cliente",
"title": "SEV Moda Íntima",
"subtitle": "Catálogo digital e loja virtual",
"description": "Loja virtual completa desenvolvida com Next.js App Router, TypeScript, Prisma e Tailwind CSS. Inclui vitrine pública com experiência cinematográfica, sistema de pedidos via WhatsApp, área administrativa e busca inteligente com ranking de relevância.",
"longDescription": "Catálogo digital avançado com multi-filtros, busca inteligente com ranking de relevância e integração híbrida de geocodificação. Inclui modo escuro, animações fluidas com Framer Motion e área administrativa completa para produtos, estoque e pedidos.",
"technologies": [
"Next.js 16",
"TypeScript",
"PostgreSQL",
"Prisma",
"Tailwind CSS 4",
"Framer Motion"
],
"features": [
"Vitrine pública cinematográfica",
"Multi-filtro e busca inteligente",
"Integração de pedidos via WhatsApp",
"Cálculo de frete por distância",
"Painel Administrativo completo",
"Gestão de estoque por tamanho"
],
"category": "loja virtual",
"level": "senior",
"status": "Em Produção",
"demoUrl": "https://sevmodaintima.com.br",
"githubUrl": "",
"badges": ["Loja virtual", "Em Produção"],
"featured": true,
"metrics": {
"complexity": 5,
"teamSize": "Individual"
}
},
{
"id": "lavacao-047",
"kind": "cliente",
"title": "Lavação 047",
"subtitle": "Site e painel para lavação automotiva",
"description": "Site da Lavação 047, em Garuva-SC, com tabela de preços por porte do veículo, pedido direto pelo WhatsApp, mapa de localização e painel do dono para editar preços, textos e fotos sem nova publicação.",
"longDescription": "Página em Next.js 16 com cena de rolagem do sujo ao brilho, galeria de trabalhos por serviço e perguntas frequentes montadas a partir dos dados reais do negócio. O conteúdo salvo no painel alimenta a página, os dados estruturados, o sitemap e o cartão de compartilhamento. Respeita a preferência do sistema por menos movimento e guarda conteúdo e imagens em Redis e Blob privado, com arquivo local como alternativa.",
"technologies": [
"Next.js 16",
"React 19",
"TypeScript",
"Tailwind CSS 4",
"Motion",
"Upstash Redis",
"Vercel Blob"
],
"features": [
"Tabela de preços por porte do veículo",
"Pedido pelo WhatsApp com mensagem pronta",
"Painel do dono para preços, textos, fotos e mapa",
"Galeria de trabalhos por serviço",
"SEO com JSON-LD, sitemap e llms.txt",
"Mapa de localização com OpenStreetMap"
],
"category": "site",
"level": "senior",
"status": "Em Produção",
"demoUrl": "https://landing-page-lavacao047.vercel.app",
"githubUrl": "",
"badges": ["Site e painel", "Em Produção"],
"featured": true,
"metrics": {
"complexity": 4,
"teamSize": "Individual"
}
},
{
"id": "nutriscan",
"kind": "laboratorio",
"title": "NutriScan",
"subtitle": "Consulta de produtos por nome e código de barras",
"description": "Aplicação web para consultar produtos alimentícios por nome ou código de barras, combinando cache JSON com a API Open Food Facts.",
"longDescription": "A busca consulta o cache JSON primeiro e recorre ao Open Food Facts quando faltam resultados. A consulta por código aceita de 8 a 13 dígitos, e a camada de acesso à base diferencia buscas por nome e código, com limite de oito segundos por consulta.",
"technologies": [
"Next.js",
"TypeScript",
"Cache JSON",
"Open Food Facts"
],
"features": [
"Busca por nome ou código",
"Cache JSON consultado antes da API externa",
"Consulta ao Open Food Facts quando faltam resultados",
"Validação de códigos com 8 a 13 dígitos",
"Limite de oito segundos por consulta"
],
"category": "aplicação web",
"level": "senior",
"status": "Em Produção",
"demoUrl": "https://nutriscan.evandro.dev.br",
"githubUrl": "",
"badges": ["Open Food Facts", "Em Produção"],
"featured": true,
"metrics": {
"complexity": 5,
"teamSize": "Individual"
}
},
{
"id": "twins-lab",
"kind": "laboratorio",
"title": "Twins Lab",
"subtitle": "Protótipo de Gêmeo Digital Industrial",
"description": "Protótipo de gêmeo digital industrial com autenticação, simulador de reator, persistência MongoDB e transmissão de eventos do servidor (SSE) a cada dois segundos.",
"longDescription": "A rota exige sessão do NextAuth antes de abrir a transmissão SSE. O simulador salva dados e estado no MongoDB e notifica clientes quando execução ou cenário mudam.",
"technologies": ["Next.js", "TypeScript", "NextAuth", "MongoDB", "SSE"],
"features": [
"Autenticação com NextAuth",
"Simulador de reator",
"Persistência no MongoDB",
"Transmissão SSE a cada dois segundos"
],
"category": "IoT",
"level": "senior",
"status": "Protótipo",
"githubUrl": "",
"badges": ["IoT", "SSE", "Protótipo"],
"featured": true,
"metrics": {
"complexity": 5,
"teamSize": "Individual"
}
},
{
"id": "reddit-explorer",
"kind": "laboratorio",
"title": "Reddit Posts Explorer",
"subtitle": "Posts do r/artificial em MongoDB, filtrados por período",
"description": "Aplicação Astro SSR que coleta os posts em alta do r/artificial pela API pública do Reddit, grava no MongoDB sem duplicar, pelo id, e permite filtrar por período e ordenar por votos ou comentários.",
"longDescription": "O serviço consulta r/artificial/hot.json e grava os posts em lote, atualizando os existentes em vez de duplicar. O endpoint de filtro valida as datas e o campo de ordenação.",
"technologies": [
"Astro",
"MongoDB",
"Mongoose",
"TypeScript",
"API do Reddit"
],
"features": [
"Coleta dos posts em alta do r/artificial",
"Gravação por id no MongoDB, sem duplicar",
"Filtro por período",
"Ordenação por votos ou comentários",
"API própria com validação de parâmetros"
],
"category": "integração com API",
"level": "pleno",
"status": "Concluído",
"demoUrl": null,
"githubUrl": "",
"badges": ["Integração com API", "MongoDB", "Concluído"],
"featured": true,
"metrics": {
"complexity": 3,
"teamSize": "Individual"
}
},
{
"id": "sc-plus",
"kind": "cliente",
"title": "SC Plus Aquicultura",
"subtitle": "Página institucional em Next.js 15",
"description": "Página institucional em Next.js 15, React 19 e Tailwind CSS 4, com metadados e dados estruturados para indexação.",
"longDescription": "Site institucional em Next.js 15 com React 19 e Tailwind CSS 4. A página publica título, descrição, URL canônica, imagem social e dados estruturados.",
"technologies": [
"Next.js 15",
"React 19",
"Tailwind CSS 4",
"TypeScript"
],
"features": [
"Página institucional",
"Metadados e URL canônica",
"Dados estruturados"
],
"category": "site",
"level": "pleno",
"status": "Concluído",
"demoUrl": "https://scplus.evandro.dev.br",
"githubUrl": "",
"badges": ["Página institucional", "Next.js 15"],
"featured": true,
"metrics": {
"complexity": 2,
"teamSize": "Individual"
}
},
{
"id": "gcc-installer",
"kind": "laboratorio",
"title": "MinGW GCC Installer",
"subtitle": "Instalador gráfico de MinGW-w64/GCC para Windows",
"description": "Aplicativo Python com interface tkinter que lê as builds publicadas do MinGW-w64, baixa o pacote .7z escolhido, instala em C:\\mingw64 e adiciona o compilador ao PATH do usuário no registro do Windows.",
"longDescription": "A lista de versões vem da API de releases do niXman/mingw-builds-binaries, com as builds ucrt e posix destacadas. A instalação extrai o pacote com o 7-Zip, move para C:\\mingw64 e renomeia mingw32-make.exe para make.exe. Feito para Windows, com o 7-Zip no caminho padrão.",
"technologies": ["Python", "Tkinter", "Win32 API", "GitHub API", "7-Zip"],
"features": [
"Lista as builds publicadas do MinGW-w64",
"Destaca builds ucrt e posix",
"Baixa e instala em C:\\mingw64",
"Adiciona o compilador ao PATH do usuário",
"Testes do núcleo (23)"
],
"category": "aplicativo desktop",
"level": "pleno",
"status": "Concluído",
"demoUrl": null,
"githubUrl": "",
"badges": ["Desktop", "Windows", "Concluído"],
"featured": true,
"metrics": {
"complexity": 4,
"teamSize": "Individual"
}
},
{
"id": "as-servicos",
"kind": "cliente",
"title": "AS Serviços",
"subtitle": "Site institucional com cena 3D gerada em código",
"description": "Site institucional em Next.js 16 com cena Three.js gerada em código: uma casa desenhada em linhas e uma placa-mãe ligadas ao progresso da rolagem.",
"longDescription": "O motor monta casa, instalação elétrica e placa-mãe com geometrias e linhas do Three.js. O canvas converte a rolagem em progresso de 0 a 1, e a qualidade se adapta conforme WebGL, preferência por menos movimento, economia de dados, conexão e capacidade do dispositivo.",
"technologies": ["Next.js 16", "TypeScript", "Three.js"],
"features": [
"Casa, instalação elétrica e placa-mãe geradas com Three.js",
"Rolagem convertida em progresso de 0 a 1",
"Qualidade em quatro níveis: estático, baixo, médio ou alto"
],
"category": "site",
"level": "senior",
"status": "Concluído",
"demoUrl": null,
"githubUrl": "",
"badges": ["Three.js", "WebGL", "Concluído"],
"featured": true,
"metrics": {
"complexity": 5,
"teamSize": "Em equipe"
}
}
],
"skills": {
"technical": [
{
"category": "Frontend",
"icon": "Code",
"color": "text-blue-400",
"bgColor": "bg-blue-500/20",
"skills": [
"React.js & Next.js",
"Angular",
"TypeScript & JavaScript",
"Tailwind CSS",
"HTML5 & CSS3"
]
},
{
"category": "Backend",
"icon": "Database",
"color": "text-blue-400",
"bgColor": "bg-blue-500/20",
"skills": [
"Node.js",
"PHP",
"Laravel",
"MySQL",
"PostgreSQL",
"Python",
"APIs RESTful",
"Firebase"
]
},
{
"category": "DevOps e ferramentas",
"icon": "GitBranch",
"color": "text-blue-400",
"bgColor": "bg-blue-500/20",
"skills": ["GitHub Actions", "Git", "Vercel", "Docker", "Cloudflare"]
},
{
"category": "Foco",
"icon": "Cpu",
"color": "text-blue-400",
"bgColor": "bg-blue-500/20",
"skills": [
"Computação em nuvem",
"Inteligência Artificial",
"IoT",
"Energia Renovável"
]
}
],
"soft": [
{
"skill": "Comunicação",
"level": 90
},
{
"skill": "Trabalho em Equipe",
"level": 85
},
{
"skill": "Resolução de Problemas",
"level": 95
},
{
"skill": "Aprendizado Contínuo",
"level": 90
},
{
"skill": "Adaptabilidade",
"level": 85
}
]
},
"contact": {
"email": "[email protected]",
"phone": "Disponível pelo botão de WhatsApp",
"whatsapp": "Disponível pelo botão de WhatsApp",
"linkedin": "https://www.linkedin.com/in/evandrodevbr/",
"location": "Garuva, Santa Catarina, Brasil"
},
"social": [
{
"name": "LinkedIn",
"url": "https://www.linkedin.com/in/evandrodevbr/",
"icon": "linkedin"
},
{
"name": "Email",
"url": "mailto:[email protected]",
"icon": "mail"
}
]
}