[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81078":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":13,"stars7d":13,"stars30d":13,"stars90d":15,"forks30d":15,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":26,"discoverSource":27},81078,"FIAP-achievements","leoosilvp\u002FFIAP-achievements","leoosilvp","Biblioteca open-source para exibição padronizada de badges e certificados dos Nano Courses da FIAP em perfis profissionais, portfólios e repositórios GitHub.","https:\u002F\u002Ffiap-achievements.vercel.app",null,"JavaScript",44,1,2,0,3,0.9,"MIT License",false,"main",true,[],"2026-06-12 02:04:10","\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fpublic\u002Fassets\u002Fsvg\u002Flogo.svg\"\u002F>\n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=dark\" width=\"100\"\u002F>\n\u003C\u002Fp>\n\n\u003Cbr\u002F>\n\n\u003Cdiv align='center'>\n\n\u003Cp>\n  \u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicença-MIT-000000?style=flat-square\" alt=\"MIT License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fvercel.com\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdeploy-Vercel-000000?style=flat-square&logo=vercel\" alt=\"Vercel\" \u002F>\u003C\u002Fa>\n  \u003Ca>\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVERSÃO-2.0.1-000000?style=flat-square\" alt=\"Versão\" \u002F>\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSVG-CDN--cached-000000?style=flat-square\" alt=\"SVG cached\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fhome\">\u003Cstrong>Site\u003C\u002Fstrong>\u003C\u002Fa>\n  &nbsp;·&nbsp;\n  \u003Ca href=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fcatalog\">\u003Cstrong>Catálogo\u003C\u002Fstrong>\u003C\u002Fa>\n  &nbsp;·&nbsp;\n  \u003Ca href=\"#-início-rápido\">\u003Cstrong>Início Rápido\u003C\u002Fstrong>\u003C\u002Fa>\n  &nbsp;·&nbsp;\n  \u003Ca href=\"#-referência-da-api\">\u003Cstrong>API\u003C\u002Fstrong>\u003C\u002Fa>\n  &nbsp;·&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fleoosilvp\u002Ffiap-achievements\u002Fissues\">\u003Cstrong>Reportar Bug\u003C\u002Fstrong>\u003C\u002Fa>\n  &nbsp;·&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fleoosilvp\u002Ffiap-achievements\u002Fissues\">\u003Cstrong>Solicitar Badge\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\n---\n\n**FIAP Achievements** é um serviço open-source que permite que estudantes exibam suas conquistas da FIAP — Nano Courses, Challenges e Global Solutions — diretamente no GitHub, portfólios e qualquer lugar que renderize imagens HTML.\n\nCada badge é um **SVG nítido**, servido por API com cache CDN de 1 ano, disponível em três temas de cor. Nenhuma chave de API. Nenhum cadastro. Apenas uma `\u003Cimg>`.\n\n---\n\n## Índice\n\n- [🌐 Site e Catálogo](#-site-e-catálogo)\n- [🚀 Início Rápido](#-início-rápido)\n- [📡 Referência da API](#-referência-da-api)\n  - [Parâmetros](#parâmetros)\n  - [Tipos de Badge](#tipos-de-badge)\n  - [Temas](#-temas)\n  - [Cabeçalhos de Resposta](#cabeçalhos-de-resposta)\n- [🏅 Catálogo de Badges](#-catálogo-de-badges)\n  - [Nano Courses](#-nano-courses)\n  - [Challenge](#-challenge)\n  - [Global Solution](#-global-solution)\n- [💡 Exemplos de Uso](#-exemplos-de-uso)\n- [🏗️ Arquitetura](#️-arquitetura)\n- [⚙️ Rodando Localmente](#️-rodando-localmente)\n- [🤝 Contribuindo](#-contribuindo)\n- [🔒 Segurança](#-segurança)\n- [📄 Licença](#-licença)\n\n---\n\n## 🌐 Site e Catálogo\n\nA forma mais fácil de encontrar suas badges é pelo site — sem precisar decorar IDs ou slugs.\n\n| Página | URL | O que você encontra |\n|--------|-----|---------------------|\n| **Home** | [fiap-achievements.vercel.app\u002Fhome](https:\u002F\u002Ffiap-achievements.vercel.app\u002Fhome) | Visão geral do projeto e como usar |\n| **Catálogo** | [fiap-achievements.vercel.app\u002Fcatalog](https:\u002F\u002Ffiap-achievements.vercel.app\u002Fcatalog) | Todas as badges com busca e filtros por categoria |\n\n\n> No catálogo você encontra os IDs dos Nano Courses e os slugs de Challenge e Global Solution que precisa para montar sua URL.\n\n---\n\n## 🚀 Início Rápido\n\n### Nano Course (padrão)\n\nCole o ID diretamente no parâmetro `badge`:\n\n```html\n\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=SEU_ID&theme=dark\" width=\"100\" \u002F>\n```\n\n### Challenge\n\n```html\n\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=EMPRESA&ranking=1&theme=dark\" width=\"100\" \u002F>\n```\n\n### Global Solution\n\n```html\n\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=TOPICO&theme=dark\" width=\"100\" \u002F>\n```\n\n> **Onde encontrar os valores?** Acesse o [Catálogo](https:\u002F\u002Ffiap-achievements.vercel.app\u002Fcatalog) ou consulte o [Catálogo de Badges](#-catálogo-de-badges) abaixo.\n\n**Pré-visualização de qualquer badge:**\n\n```\nhttps:\u002F\u002Ffiap-achievements.vercel.app\u002Fbadge?badge=SEU_ID&theme=dark\n```\n\n---\n\n## 📡 Referência da API\n\n### `GET \u002Fapi\u002Fbadge`\n\nRetorna a imagem SVG da badge solicitada. **Sempre retorna `HTTP 200` com `Content-Type: image\u002Fsvg+xml`** — em caso de erro, serve um SVG de erro temático. A tag `\u003Cimg>` nunca quebra.\n\n---\n\n### Parâmetros\n\n| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |\n|-----------|------|:-----------:|--------|-----------|\n| `badge` | `string` | ✅ | — | ID numérico do Nano Course **ou** tipo: `challenge`, `gs` |\n| `theme` | `string` | ❌ | `dark` | Tema visual: `light`, `dark` ou `black` |\n| `year` | `number` | ✅ challenge \u002F gs | — | Ano da edição (ex: `2025`) |\n| `company` | `string` | ✅ challenge | — | Slug da empresa parceira (ex: `jovi`) |\n| `topic` | `string` | ✅ gs | — | Slug do tema da G.S (ex: `future-of-work`) |\n| `ranking` | `number` | ❌ challenge | `1` | Posição: `1`, `2` ou `3` |\n\n---\n\n### Tipos de Badge\n\n| Tipo | `badge=` | Parâmetros obrigatórios | Exemplo |\n|------|----------|------------------------|---------|\n| Nano Course | ID numérico | — | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=dark` |\n| Challenge | `challenge` | `year`, `company` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=jovi&ranking=1` |\n| Global Solution | `gs` | `year`, `topic` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=future-of-work` |\n\n---\n\n### 🎨 Temas\n\nTrês temas disponíveis. Escolha o que melhor combina com o fundo do seu perfil.\n\n| Tema | Parâmetro | Ideal para |\n|------|-----------|------------|\n| Light | `light` | READMEs e portfólios com fundo claro |\n| Dark | `dark` | READMEs e perfis com fundo escuro |\n| Black | `black` | Fundos OLED \u002F preto total |\n\n\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=light\" width=\"100\" \u002F>&nbsp;&nbsp;\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=dark\" width=\"100\" \u002F>&nbsp;&nbsp;\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=black\" width=\"100\" \u002F>\n\n---\n\n### Cabeçalhos de Resposta\n\n| Cabeçalho | Badge encontrada | Fallback \u002F Erro |\n|-----------|-----------------|-----------------|\n| `Content-Type` | `image\u002Fsvg+xml` | `image\u002Fsvg+xml` |\n| `Cache-Control` | `public, immutable, max-age=31536000` | `public, max-age=60` |\n| `X-Badge-Status` | `ok` | `not-found` · `bad-request` · `internal-error` |\n\nBadges ficam em cache por **1 ano** na CDN — carregam instantaneamente em qualquer lugar.\n\n---\n\n## 🏅 Catálogo de Badges\n\n> 💡 **Dica:** prefira navegar pelo [catálogo interativo](https:\u002F\u002Ffiap-achievements.vercel.app\u002Fcatalog) — ele tem busca, filtros e preview em tempo real.\n\nTodas as badges estão disponíveis nos três temas. As pré-visualizações abaixo exibem a variante `light`.\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Ch3>📘 Nano Courses\u003C\u002Fh3>\u003C\u002Fsummary>\n\nBusque pelo ID numérico do curso diretamente no parâmetro `badge`:\n\n```\nhttps:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=SEU_ID&theme=dark\n```\n\n| Pré-visualização | ID | Copiar URL |\n|:---:|:---:|:---|\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=108275&theme=light\" width=\"120\" \u002F> | `108275` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=108275&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=128573&theme=light\" width=\"120\" \u002F> | `128573` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=128573&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=140892&theme=light\" width=\"120\" \u002F> | `140892` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=140892&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=145807&theme=light\" width=\"120\" \u002F> | `145807` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=145807&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=146952&theme=light\" width=\"120\" \u002F> | `146952` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=146952&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=149382&theme=light\" width=\"120\" \u002F> | `149382` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=149382&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=150738&theme=light\" width=\"120\" \u002F> | `150738` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=150738&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=158904&theme=light\" width=\"120\" \u002F> | `158904` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=158904&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=162483&theme=light\" width=\"120\" \u002F> | `162483` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=162483&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=179458&theme=light\" width=\"120\" \u002F> | `179458` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=179458&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=193674&theme=light\" width=\"120\" \u002F> | `193674` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=193674&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=193820&theme=light\" width=\"120\" \u002F> | `193820` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=193820&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=195438&theme=light\" width=\"120\" \u002F> | `195438` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=195438&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=214690&theme=light\" width=\"120\" \u002F> | `214690` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=214690&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=218574&theme=light\" width=\"120\" \u002F> | `218574` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=218574&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=248960&theme=light\" width=\"120\" \u002F> | `248960` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=248960&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=249537&theme=light\" width=\"120\" \u002F> | `249537` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=249537&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=251907&theme=light\" width=\"120\" \u002F> | `251907` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=251907&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=257108&theme=light\" width=\"120\" \u002F> | `257108` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=257108&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=261840&theme=light\" width=\"120\" \u002F> | `261840` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=261840&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=276841&theme=light\" width=\"120\" \u002F> | `276841` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=276841&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=281496&theme=light\" width=\"120\" \u002F> | `281496` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=281496&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=284169&theme=light\" width=\"120\" \u002F> | `284169` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=284169&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=284705&theme=light\" width=\"120\" \u002F> | `284705` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=284705&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=light\" width=\"120\" \u002F> | `294870` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=314785&theme=light\" width=\"120\" \u002F> | `314785` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=314785&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=320654&theme=light\" width=\"120\" \u002F> | `320654` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=320654&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=325740&theme=light\" width=\"120\" \u002F> | `325740` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=325740&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=348275&theme=light\" width=\"120\" \u002F> | `348275` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=348275&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=367981&theme=light\" width=\"120\" \u002F> | `367981` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=367981&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=370618&theme=light\" width=\"120\" \u002F> | `370618` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=370618&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=374692&theme=light\" width=\"120\" \u002F> | `374692` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=374692&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=386429&theme=light\" width=\"120\" \u002F> | `386429` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=386429&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=390715&theme=light\" width=\"120\" \u002F> | `390715` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=390715&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=410593&theme=light\" width=\"120\" \u002F> | `410593` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=410593&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=431597&theme=light\" width=\"120\" \u002F> | `431597` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=431597&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=432981&theme=light\" width=\"120\" \u002F> | `432981` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=432981&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=458721&theme=light\" width=\"120\" \u002F> | `458721` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=458721&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=468250&theme=light\" width=\"120\" \u002F> | `468250` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=468250&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=469128&theme=light\" width=\"120\" \u002F> | `469128` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=469128&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=470315&theme=light\" width=\"120\" \u002F> | `470315` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=470315&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=482731&theme=light\" width=\"120\" \u002F> | `482731` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=482731&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=492673&theme=light\" width=\"120\" \u002F> | `492673` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=492673&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=495183&theme=light\" width=\"120\" \u002F> | `495183` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=495183&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=503194&theme=light\" width=\"120\" \u002F> | `503194` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=503194&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=507934&theme=light\" width=\"120\" \u002F> | `507934` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=507934&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=517862&theme=light\" width=\"120\" \u002F> | `517862` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=517862&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=537186&theme=light\" width=\"120\" \u002F> | `537186` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=537186&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=540126&theme=light\" width=\"120\" \u002F> | `540126` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=540126&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=561239&theme=light\" width=\"120\" \u002F> | `561239` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=561239&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=573846&theme=light\" width=\"120\" \u002F> | `573846` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=573846&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=605219&theme=light\" width=\"120\" \u002F> | `605219` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=605219&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=627840&theme=light\" width=\"120\" \u002F> | `627840` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=627840&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=631728&theme=light\" width=\"120\" \u002F> | `631728` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=631728&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=640281&theme=light\" width=\"120\" \u002F> | `640281` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=640281&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=645372&theme=light\" width=\"120\" \u002F> | `645372` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=645372&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=670821&theme=light\" width=\"120\" \u002F> | `670821` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=670821&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=675431&theme=light\" width=\"120\" \u002F> | `675431` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=675431&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=682491&theme=light\" width=\"120\" \u002F> | `682491` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=682491&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=684325&theme=light\" width=\"120\" \u002F> | `684325` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=684325&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=692314&theme=light\" width=\"120\" \u002F> | `692314` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=692314&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=697314&theme=light\" width=\"120\" \u002F> | `697314` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=697314&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=703951&theme=light\" width=\"120\" \u002F> | `703951` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=703951&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=714608&theme=light\" width=\"120\" \u002F> | `714608` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=714608&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=721963&theme=light\" width=\"120\" \u002F> | `721963` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=721963&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=735018&theme=light\" width=\"120\" \u002F> | `735018` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=735018&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=736418&theme=light\" width=\"120\" \u002F> | `736418` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=736418&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=748350&theme=light\" width=\"120\" \u002F> | `748350` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=748350&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=752906&theme=light\" width=\"120\" \u002F> | `752906` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=752906&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=758230&theme=light\" width=\"120\" \u002F> | `758230` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=758230&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=761905&theme=light\" width=\"120\" \u002F> | `761905` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=761905&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=781293&theme=light\" width=\"120\" \u002F> | `781293` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=781293&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=785063&theme=light\" width=\"120\" \u002F> | `785063` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=785063&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=793412&theme=light\" width=\"120\" \u002F> | `793412` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=793412&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=798451&theme=light\" width=\"120\" \u002F> | `798451` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=798451&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=810254&theme=light\" width=\"120\" \u002F> | `810254` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=810254&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=812064&theme=light\" width=\"120\" \u002F> | `812064` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=812064&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=820547&theme=light\" width=\"120\" \u002F> | `820547` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=820547&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=829145&theme=light\" width=\"120\" \u002F> | `829145` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=829145&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=830617&theme=light\" width=\"120\" \u002F> | `830617` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=830617&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=835758&theme=light\" width=\"120\" \u002F> | `835758` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=835758&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=849216&theme=light\" width=\"120\" \u002F> | `849216` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=849216&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=856024&theme=light\" width=\"120\" \u002F> | `856024` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=856024&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=860192&theme=light\" width=\"120\" \u002F> | `860192` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=860192&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=860741&theme=light\" width=\"120\" \u002F> | `860741` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=860741&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=861429&theme=light\" width=\"120\" \u002F> | `861429` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=861429&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=862174&theme=light\" width=\"120\" \u002F> | `862174` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=862174&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=864195&theme=light\" width=\"120\" \u002F> | `864195` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=864195&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=903715&theme=light\" width=\"120\" \u002F> | `903715` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=903715&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=907158&theme=light\" width=\"120\" \u002F> | `907158` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=907158&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=907326&theme=light\" width=\"120\" \u002F> | `907326` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=907326&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=913674&theme=light\" width=\"120\" \u002F> | `913674` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=913674&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=914502&theme=light\" width=\"120\" \u002F> | `914502` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=914502&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=915204&theme=light\" width=\"120\" \u002F> | `915204` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=915204&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=918357&theme=light\" width=\"120\" \u002F> | `918357` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=918357&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=924560&theme=light\" width=\"120\" \u002F> | `924560` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=924560&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=925781&theme=light\" width=\"120\" \u002F> | `925781` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=925781&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=928143&theme=light\" width=\"120\" \u002F> | `928143` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=928143&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=934705&theme=light\" width=\"120\" \u002F> | `934705` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=934705&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=986241&theme=light\" width=\"120\" \u002F> | `986241` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=986241&theme=light` |\n| \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=991000&theme=light\" width=\"120\" \u002F> | `991000` | `https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=991000&theme=light` |\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Ch3>🏆 Challenge\u003C\u002Fh3>\u003C\u002Fsummary>\n\nPasse `badge=challenge` e informe `year`, `company` e opcionalmente `ranking` (padrão: `1`):\n\n```\nhttps:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=ANO&company=EMPRESA&ranking=1&theme=light\n```\n\n#### 2026\n\n| Empresa | 🥇 1º lugar | 🥈 2º lugar | 🥉 3º lugar |\n|---------|:-----------:|:-----------:|:-----------:|\n| **Jovi** (`jovi`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=jovi&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=jovi&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=jovi&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Soul Up** (`soul-up`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=soul-up&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=soul-up&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=soul-up&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **TOTVS** (`totvs`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=totvs&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=totvs&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2026&company=totvs&ranking=3&theme=light\" width=\"120\" \u002F> |\n\n#### 2025\n\n| Empresa | 🥇 1º lugar | 🥈 2º lugar | 🥉 3º lugar |\n|---------|:-----------:|:-----------:|:-----------:|\n| **B3** (`b3`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=b3&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=b3&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=b3&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **CCR** (`ccr`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=ccr&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=ccr&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=ccr&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Click Go** (`click-go`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=click-go&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=click-go&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=click-go&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Fortinet** (`fortinet`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=fortinet&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=fortinet&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=fortinet&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **HC IBM** (`hc-ibm`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=hc-ibm&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=hc-ibm&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=hc-ibm&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Odontoprev** (`odontoprev`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=odontoprev&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=odontoprev&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=odontoprev&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Oracle** (`oracle`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=oracle&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=oracle&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=oracle&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Passa a Bola** (`passaabola`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=passaabola&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=passaabola&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=passaabola&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Santander** (`santander`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=santander&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=santander&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=santander&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Smartlabs** (`smartlabs`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=smartlabs&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=smartlabs&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=smartlabs&ranking=3&theme=light\" width=\"120\" \u002F> |\n| **Vivo** (`vivo`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=vivo&ranking=1&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=vivo&ranking=2&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=vivo&ranking=3&theme=light\" width=\"120\" \u002F> |\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Ch3>🌍 Global Solution\u003C\u002Fh3>\u003C\u002Fsummary>\n\nPasse `badge=gs` e informe `year` e `topic`:\n\n```\nhttps:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=ANO&topic=TOPICO&theme=light\n```\n\n#### 2025\n\n| Tema | Light | Dark | Black |\n|------|:-----:|:----:|:-----:|\n| **Future of Work** (`future-of-work`) | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=future-of-work&theme=light\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=future-of-work&theme=dark\" width=\"120\" \u002F> | \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=future-of-work&theme=black\" width=\"120\" \u002F> |\n\n\u003C\u002Fdetails>\n\n---\n\n## 💡 Exemplos de Uso\n\n### Fileira de Nano Courses no README\n\n```html\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=dark\" width=\"100\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=864195&theme=dark\" width=\"100\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=928143&theme=dark\" width=\"100\" \u002F>\n\u003C\u002Fdiv>\n```\n\n### Badge de Challenge no README\n\n```html\n\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=oracle&ranking=1&theme=dark\" width=\"100\" \u002F>\n```\n\n### Badge de Global Solution no README\n\n```html\n\u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=future-of-work&theme=dark\" width=\"100\" \u002F>\n```\n\n### Portfólio com espaçamento\n\n```html\n\u003Cdiv style=\"display: flex; gap: 16px; flex-wrap: wrap; justify-content: center;\">\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=294870&theme=light\" width=\"100\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=challenge&year=2025&company=oracle&ranking=1&theme=light\" width=\"100\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Ffiap-achievements.vercel.app\u002Fapi\u002Fbadge?badge=gs&year=2025&topic=future-of-work&theme=light\" width=\"100\" \u002F>\n\u003C\u002Fdiv>\n```\n\n---\n\n## 🏗️ Arquitetura\n\n```\nfiap-achievements\u002F\n├── api\u002F\n│   └── badge.js                   # Serverless function (Vercel)\n├── public\u002F\n│   └── assets\u002F\n│       └── certificates\u002F\n│           ├── nano\u002F\n│           │   ├── light\u002F  {id}.svg\n│           │   ├── dark\u002F   {id}.svg\n│           │   └── black\u002F  {id}.svg\n│           ├── challenge\u002F\n│           │   └── {year}\u002F{company}\u002F\n│           │       ├── light\u002F  {ranking}.svg\n│           │       ├── dark\u002F   {ranking}.svg\n│           │       └── black\u002F  {ranking}.svg\n│           ├── gs\u002F\n│           │   └── {year}\u002F{topic}\u002F\n│           │       ├── light\u002F  1.svg\n│           │       ├── dark\u002F   1.svg\n│           │       └── black\u002F  1.svg\n│           ├── error-light.svg\n│           ├── error-dark.svg\n│           └── error-black.svg\n├── src\u002F\n│   ├── components\u002F\n│   │   ├── Header.jsx\n│   │   └── Footer.jsx\n│   ├── routes\u002F\n│   │   ├── Home.jsx               # Página inicial (\u002Fhome)\n│   │   ├── Catalog.jsx            # Catálogo interativo (\u002Fcatalog)\n│   │   └── Badges.jsx             # Pré-visualização (\u002Fbadge)\n│   ├── hooks\u002F\n│   │   └── useCatalog.js\n│   ├── css\u002F\n│   ├── App.jsx\n│   └── main.jsx\n├── .github\u002F\n│   ├── workflows\u002F\n│   │   ├── ci.yml                 # Lint e build em todo PR\u002Fpush para main\n│   │   └── validate-badges.yml    # Validação de SVGs em PRs com badges\n│   └── pull_request_template.md\n├── vercel.json\n└── vite.config.js\n```\n\n**Rotas da aplicação:**\n\n| Rota | Descrição |\n|------|-----------|\n| `\u002Fhome` | Página inicial com visão geral do projeto |\n| `\u002Fcatalog` | Catálogo interativo com busca e filtros |\n| `\u002Fbadge` | Pré-visualização de qualquer badge por parâmetros de URL |\n| `\u002Fapi\u002Fbadge` | Endpoint da serverless function — retorna o SVG |\n\n**Fluxo da API:**\n\n```\nGET \u002Fapi\u002Fbadge?badge=...&theme=...\n  │\n  ├─ badge numérico  →  nano\u002F{theme}\u002F{id}.svg\n  ├─ badge=challenge →  challenge\u002F{year}\u002F{company}\u002F{theme}\u002F{ranking}.svg\n  └─ badge=gs        →  gs\u002F{year}\u002F{topic}\u002F{theme}\u002F1.svg\n       │\n       ├─ arquivo encontrado  →  SVG + cache 1 ano\n       └─ não encontrado      →  error-{theme}.svg + cache 60s\n```\n\n---\n\n## ⚙️ Rodando Localmente\n\n**Pré-requisitos:** Node.js ≥ 18, npm\n\n```bash\n# 1. Clone o repositório\ngit clone https:\u002F\u002Fgithub.com\u002Fleoosilvp\u002Ffiap-achievements.git\ncd fiap-achievements\n\n# 2. Instale as dependências\nnpm install\n\n# 3. Inicie o servidor de desenvolvimento\nnpm run dev\n```\n\n> **Atenção:** o endpoint `\u002Fapi\u002Fbadge` requer o runtime da Vercel. Use a [Vercel CLI](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fcli) para suporte completo ao backend local.\n\n```bash\nnpm i -g vercel\nvercel dev\n```\n\n---\n\n## 🤝 Contribuindo\n\nContribuições são bem-vindas e ajudam a expandir o catálogo da comunidade.\n\n### Adicionando Nano Courses\n\nAdicione os SVGs nos três temas:\n\n```\npublic\u002Fassets\u002Fcertificates\u002Fnano\u002Flight\u002F{id}.svg\npublic\u002Fassets\u002Fcertificates\u002Fnano\u002Fdark\u002F{id}.svg\npublic\u002Fassets\u002Fcertificates\u002Fnano\u002Fblack\u002F{id}.svg\n```\n\n### Adicionando Challenges\n\nCrie a estrutura de diretórios com os três rankings para cada tema:\n\n```\npublic\u002Fassets\u002Fcertificates\u002Fchallenge\u002F{year}\u002F{company}\u002Flight\u002F{ranking}.svg\npublic\u002Fassets\u002Fcertificates\u002Fchallenge\u002F{year}\u002F{company}\u002Fdark\u002F{ranking}.svg\npublic\u002Fassets\u002Fcertificates\u002Fchallenge\u002F{year}\u002F{company}\u002Fblack\u002F{ranking}.svg\n```\n\n> Rankings `1`, `2` e `3` são obrigatórios para cada empresa e tema.\n\n### Adicionando Global Solutions\n\n```\npublic\u002Fassets\u002Fcertificates\u002Fgs\u002F{year}\u002F{topic}\u002Flight\u002F1.svg\npublic\u002Fassets\u002Fcertificates\u002Fgs\u002F{year}\u002F{topic}\u002Fdark\u002F1.svg\npublic\u002Fassets\u002Fcertificates\u002Fgs\u002F{year}\u002F{topic}\u002Fblack\u002F1.svg\n```\n\n### Regras Gerais\n\n- SVGs devem estar otimizados e abaixo de 300 KB\n- Os três temas (`light`, `dark`, `black`) são obrigatórios\n- Nenhum ID duplicado dentro do mesmo tipo\n- Abra um Pull Request com descrição clara — o template guia o preenchimento\n\n### Ambiente de Desenvolvimento\n\n```bash\nnpm install     # instalar dependências\nnpm run dev     # servidor local (frontend)\nnpm run lint    # lint\nnpm run build   # build de produção\nvercel dev      # servidor local com suporte ao endpoint \u002Fapi\u002Fbadge\n```\n\n---\n\n## 🔒 Segurança\n\nTodos os parâmetros fornecidos pelo usuário são sanitizados antes de qualquer uso — apenas `[a-z0-9\\-_]` é permitido em slugs e apenas dígitos em valores numéricos. A API nunca executa path traversal, nunca expõe o sistema de arquivos além de `public\u002Fassets\u002Fcertificates\u002F` e nunca retorna uma página de erro HTTP.\n\n---\n\n## 📄 Licença\n\nDistribuído sob a [Licença MIT](.\u002FLICENSE).\n\n---\n\n\u003Cdiv align=\"center\">\n\nLets Rock The Future\n\n\u003C\u002Fdiv>","FIAP Achievements 是一个开源服务，允许学生展示他们在FIAP获得的成就，如Nano Courses、Challenges和Global Solutions等，在GitHub、个人作品集或任何支持HTML图片渲染的地方。项目核心功能包括提供清晰的SVG徽章，通过API以CDN缓存形式提供长达一年的服务，并支持三种颜色主题。无需API密钥或注册，仅需使用一个`\u003Cimg>`标签即可轻松集成。这种简洁的设计使得该项目非常适合那些希望在专业资料中直观展示其技术学习成果和个人成就的学生和技术爱好者使用。","2026-06-11 04:03:26","CREATED_QUERY"]