434 lines
17 KiB
JSON
434 lines
17 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 Informação 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": "Painel ao vivo de um reator simulado",
|
|
"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 de um fórum de IA, 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": "Site institucional com áreas, projetos e contato",
|
|
"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 do compilador 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 na rolagem",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"id": "julia-beauty",
|
|
"kind": "cliente",
|
|
"title": "Julia Beauty",
|
|
"subtitle": "Site de estúdio de extensão de cílios",
|
|
"description": "Site estático do estúdio de extensão de cílios da lash designer Julia, em Camboriú (SC), feito em HTML, CSS e JavaScript sem build: simulador de efeito no olho, painel de fotos que troca com a rolagem e agendamento pelo WhatsApp.",
|
|
"longDescription": "Página única com SEO local: Open Graph, dados estruturados JSON-LD (BeautySalon e FAQPage), sitemap, robots.txt e llms.txt. O deploy na Vercel roda pelo Gitea Actions a cada push. Medido antes da publicação, o Lighthouse no celular deu 100 em desempenho, acessibilidade, boas práticas e SEO.",
|
|
"technologies": [
|
|
"HTML",
|
|
"CSS",
|
|
"JavaScript",
|
|
"JSON-LD",
|
|
"Vercel",
|
|
"Gitea Actions"
|
|
],
|
|
"features": [
|
|
"Simulador de efeito no olho",
|
|
"Painel de fotos que troca com a rolagem",
|
|
"Agendamento pelo WhatsApp com mensagem pronta",
|
|
"SEO local com JSON-LD, sitemap e llms.txt",
|
|
"Deploy na Vercel por Gitea Actions"
|
|
],
|
|
"category": "site",
|
|
"level": "pleno",
|
|
"status": "Em Produção",
|
|
"demoUrl": "https://juliabeauty.com.br",
|
|
"githubUrl": "",
|
|
"badges": ["Site estático", "Em Produção"],
|
|
"featured": true,
|
|
"metrics": {
|
|
"complexity": 3,
|
|
"teamSize": "Individual"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
]
|
|
}
|