feat: harden portfolio and add SEO foundations

This commit is contained in:
Evandro Fonseca Junior committed 2026-09-04 19:25:30 -03:00
1 parent b079afdd73
commit 62bcfbd8fa
121 files changed
+7769 -10469

No files matched your search

+31 -55
View File
@@ -97,31 +97,28 @@
{
"id": "nutriscan",
"title": "NutriScan",
"subtitle": "Análise Nutricional Inteligente",
"description": "PWA Next.js 14 com arquitetura App Router para análise nutricional. Resolve problema de acesso offline a dados nutricionais através de Service Worker e cache estratégico. Integração com Open Food Facts API, busca por código de barras via Web API e armazenamento local com MongoDB para histórico de usuários.",
"longDescription": "Plataforma completa de análise nutricional que permite aos usuários escanear códigos de barras e obter informações detalhadas sobre produtos alimentícios, incluindo análise NutriScore, gráficos de nutrientes e sistema de filtros avançados.",
"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 o wrapper diferencia buscas por nome e código com timeout de oito segundos.",
"technologies": [
"Next.js 14",
"Next.js",
"TypeScript",
"MongoDB",
"PWA",
"Tailwind CSS",
"Open Food Facts API"
"Cache JSON",
"Open Food Facts"
],
"features": [
"Busca por código de barras com scanner",
"Análise nutricional com NutriScore",
"Modo offline com Service Worker",
"Gráficos interativos de nutrientes",
"Sistema avançado de filtros",
"Cache inteligente de dados"
"Busca por nome ou código",
"Cache JSON consultado antes da API externa",
"Fallback para Open Food Facts",
"Validação de códigos com 8 a 13 dígitos",
"Timeout de oito segundos"
],
"category": "full-stack",
"level": "senior",
"status": "Em Produção",
"status": "Código público",
"demoUrl": "https://nutriscan.evandro.dev.br",
"githubUrl": "https://github.com/evandrodevbr/nutriscan",
"badges": ["PWA", "Em Produção", "Open Source"],
"badges": ["Open Food Facts", "Código público"],
"featured": true,
"metrics": {
"complexity": 5,
@@ -131,32 +128,22 @@
{
"id": "twins-lab",
"title": "Twins Lab",
"subtitle": "Plataforma IoT Industrial",
"description": "Plataforma IoT Next.js com arquitetura de streaming em tempo real via WebSockets. Resolve problema de latência em monitoramento industrial através de comunicação bidirecional e análise preditiva com OpenRouter AI. Sistema de autenticação NextAuth, controle de dispositivos IoT e dashboards com atualização sub-segundo.",
"longDescription": "Plataforma avançada de monitoramento industrial que integra dispositivos IoT, oferece controle em tempo real de reatores, análise preditiva com IA e sistema completo de autenticação para múltiplos usuários.",
"technologies": [
"Next.js",
"TypeScript",
"NextAuth",
"WebSockets",
"OpenRouter AI",
"Docker",
"Real-time APIs"
],
"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 streaming SSE de eventos do servidor a cada dois segundos.",
"longDescription": "A rota exige sessão do NextAuth antes de abrir o stream 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": [
"Controle de dispositivos IoT em tempo real",
"Dashboards com gráficos dinâmicos",
"Sistema de autenticação completo",
"Análise preditiva com IA",
"Streaming de dados em tempo real",
"Sistema administrativo completo"
"Autenticação com NextAuth",
"Simulador de reator",
"Persistência no MongoDB",
"Stream SSE a cada dois segundos"
],
"category": "iot",
"level": "senior",
"status": "Em Produção",
"status": "Protótipo",
"demoUrl": "https://twins.evandro.dev.br",
"githubUrl": "https://github.com/evandrodevbr/twins-lab",
"badges": ["IoT", "Real-time", "AI/ML", "Em Produção"],
"badges": ["IoT", "SSE", "Código público"],
"featured": true,
"metrics": {
"complexity": 5,
@@ -267,31 +254,20 @@
"id": "as-servicos",
"title": "AS Serviços",
"subtitle": "Site Institucional com Cena 3D Procedural",
"description": "Site institucional da AS Serviços — engenharia civil, elétrica, eletrônica/automação e desenvolvimento de software — desenvolvido em Next.js 16 com cena 3D procedural em Three.js. A casa wireframe do hero se transforma em uma placa-mãe conforme a página é rolada, com toda a geometria gerada em runtime, sem assets externos.",
"longDescription": "O conceito visual traduz a premissa da empresa: a mesma engenharia aplicada ao mundo físico e ao digital. Câmera, partículas e paralaxe do mouse são funções puras do progresso de scroll (0–1), suavizadas por interpolação exponencial. Inclui portfólio com scroll 'pinado' em telas grandes, formulário de contato com Server Actions, detecção adaptativa de qualidade de dispositivo e TypeScript estrito ponta a ponta.",
"technologies": [
"Next.js 16",
"React 19",
"TypeScript",
"Three.js",
"Tailwind CSS 4",
"shadcn/ui",
"anime.js"
],
"description": "Site institucional em Next.js 16 que representa quatro frentes de engenharia com uma cena Three.js gerada em código: uma casa wireframe 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, reduced motion, economia de dados, conexão e capacidade do dispositivo.",
"technologies": ["Next.js 16", "TypeScript", "Three.js"],
"features": [
"Cena 3D procedural (casa wireframe ↔ placa-mãe)",
"Animação dirigida por scroll",
"Sem assets 3D externos",
"Detecção adaptativa de qualidade",
"Portfólio com scroll pinado",
"Formulário com Server Actions"
"Casa, instalação elétrica e placa-mãe geradas com Three.js",
"Rolagem convertida em progresso de 0 a 1",
"Qualidade static, low, medium ou high"
],
"category": "web",
"level": "senior",
"status": "Em Produção",
"status": "Código público",
"demoUrl": "https://asservicos.com",
"githubUrl": "https://github.com/evandrodevbr/as-servicos",
"badges": ["3D/WebGL", "Em Produção", "SEO"],
"badges": ["Three.js", "WebGL", "Código público"],
"featured": true,
"metrics": {
"complexity": 5,