From aad56ad885e87a5c0f3e48d89eae9200cf34a86b Mon Sep 17 00:00:00 2001 From: Evandro Fonseca Junior Date: Wed, 5 Aug 2026 22:38:27 -0300 Subject: [PATCH] feat: add AS Servicos site (asservicos.com) to portfolio --- lib/site-content.ts | 30 ++++++++++++++- public/portfolio-data.json | 76 +++++++++++++++++++++----------------- 2 files changed, 70 insertions(+), 36 deletions(-) diff --git a/lib/site-content.ts b/lib/site-content.ts index b64ea02..27f8e46 100644 --- a/lib/site-content.ts +++ b/lib/site-content.ts @@ -211,7 +211,13 @@ export const servicePages: ServicePageContent[] = [ "Implementacao do fluxo com testes e tratamento de excecoes relevantes.", "Entrega com documentacao de operacao, limites e proximo passo.", ], - stack: ["IoT", "WebSockets", "APIs", "Dashboards", "Integracao de sistemas"], + stack: [ + "IoT", + "WebSockets", + "APIs", + "Dashboards", + "Integracao de sistemas", + ], ctaLabel: "Falar sobre integracao e IoT", ctaHref: "/#contact", relatedCaseIds: ["twins-lab"], @@ -309,7 +315,8 @@ export const caseStudies: CaseStudyContent[] = [ { id: "gcc-installer", title: "MinGW GCC Installer", - subtitle: "Ferramenta desktop para automacao de ambiente de desenvolvimento", + subtitle: + "Ferramenta desktop para automacao de ambiente de desenvolvimento", summary: "Aplicacao em Python para simplificar setup local no Windows, com download assincrono, checagem de compatibilidade e integracao com PATH.", impact: @@ -317,6 +324,25 @@ export const caseStudies: CaseStudyContent[] = [ stack: ["Python", "Tkinter", "Win32 API", "Threading", "7-Zip"], githubUrl: "https://github.com/evandrodevbr/gcc-installer", }, + { + id: "as-servicos", + title: "AS Serviços", + subtitle: "Site institucional multidisciplinar com cena 3D procedural", + summary: + "Site institucional em Next.js 16 com cena 3D procedural em Three.js: uma casa wireframe que se transforma em placa-mae conforme o scroll. Quatro areas de engenharia — civil, eletrica, eletronica/automacao e software — sob o mesmo teto.", + impact: + "Demonstra engenharia de software aplicada a presenca digital: cena 3D gerada em runtime sem assets externos, animacao dirigida por scroll e codigo 100% tipado.", + stack: [ + "Next.js 16", + "React 19", + "Three.js", + "TypeScript", + "Tailwind CSS 4", + "shadcn/ui", + ], + demoUrl: "https://asservicos.com", + githubUrl: "https://github.com/evandrodevbr/as-servicos", + }, ]; export const serviceHubLinks = servicePages.map((service) => ({ diff --git a/public/portfolio-data.json b/public/portfolio-data.json index 927d77f..bd61cda 100644 --- a/public/portfolio-data.json +++ b/public/portfolio-data.json @@ -121,11 +121,7 @@ "status": "Em Produção", "demoUrl": "https://nutriscan.evandro.dev.br", "githubUrl": "https://github.com/evandrodevbr/nutriscan", - "badges": [ - "PWA", - "Em Produção", - "Open Source" - ], + "badges": ["PWA", "Em Produção", "Open Source"], "featured": true, "metrics": { "complexity": 5, @@ -160,12 +156,7 @@ "status": "Em Produção", "demoUrl": "https://twins.evandro.dev.br", "githubUrl": "https://github.com/evandrodevbr/twins-lab", - "badges": [ - "IoT", - "Real-time", - "AI/ML", - "Em Produção" - ], + "badges": ["IoT", "Real-time", "AI/ML", "Em Produção"], "featured": true, "metrics": { "complexity": 5, @@ -199,11 +190,7 @@ "status": "Concluído", "demoUrl": null, "githubUrl": "https://github.com/evandrodevbr/reddit-search", - "badges": [ - "API Integration", - "MongoDB", - "Real-time" - ], + "badges": ["API Integration", "MongoDB", "Real-time"], "featured": true, "metrics": { "complexity": 3, @@ -234,11 +221,7 @@ "status": "Concluído", "demoUrl": "https://scplus.evandro.dev.br", "githubUrl": "https://github.com/evandrodevbr/scplus", - "badges": [ - "Responsive", - "SEO", - "Modern Stack" - ], + "badges": ["Responsive", "SEO", "Modern Stack"], "featured": true, "metrics": { "complexity": 2, @@ -273,16 +256,47 @@ "status": "Concluído", "demoUrl": null, "githubUrl": "https://github.com/evandrodevbr/gcc-installer", - "badges": [ - "Desktop", - "Automation", - "System Integration" - ], + "badges": ["Desktop", "Automation", "System Integration"], "featured": true, "metrics": { "complexity": 4, "teamSize": "Individual" } + }, + { + "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" + ], + "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" + ], + "category": "web", + "level": "senior", + "status": "Em Produção", + "demoUrl": "https://asservicos.com", + "githubUrl": "https://github.com/evandrodevbr/as-servicos", + "badges": ["3D/WebGL", "Em Produção", "SEO"], + "featured": true, + "metrics": { + "complexity": 5, + "teamSize": "Individual" + } } ], "skills": { @@ -321,13 +335,7 @@ "icon": "GitBranch", "color": "text-blue-400", "bgColor": "bg-blue-500/20", - "skills": [ - "GitHub Actions", - "Git", - "Vercel", - "Docker", - "Cloudflare" - ] + "skills": ["GitHub Actions", "Git", "Vercel", "Docker", "Cloudflare"] }, { "category": "Foco", @@ -390,4 +398,4 @@ "icon": "mail" } ] -} \ No newline at end of file +}