diff --git a/public/Curriculo_ Francielle_Ferraz_Frontend_Junior.pdf b/public/Curriculo_ Francielle_Ferraz_Frontend_Junior.pdf deleted file mode 100644 index 936dc9c..0000000 Binary files a/public/Curriculo_ Francielle_Ferraz_Frontend_Junior.pdf and /dev/null differ diff --git a/public/Curriculo_ Francielle_Ferraz_Frontend_Junior_V2.pdf b/public/Curriculo_ Francielle_Ferraz_Frontend_Junior_V2.pdf new file mode 100644 index 0000000..d1eac9c Binary files /dev/null and b/public/Curriculo_ Francielle_Ferraz_Frontend_Junior_V2.pdf differ diff --git a/src/sections/HeroSection.tsx b/src/sections/HeroSection.tsx index 4d4b825..82e386b 100644 --- a/src/sections/HeroSection.tsx +++ b/src/sections/HeroSection.tsx @@ -107,8 +107,8 @@ export function HeroSection() { {/* Botão de Download CV */} diff --git a/src/sections/ProjectsSection.tsx b/src/sections/ProjectsSection.tsx index 5955ec9..65e7f6a 100644 --- a/src/sections/ProjectsSection.tsx +++ b/src/sections/ProjectsSection.tsx @@ -5,17 +5,38 @@ import { FaGithub } from "react-icons/fa"; export function ProjectsSection() { const { language } = useLanguage(); + // Interfce do formato das suítes de teste + interface TestSuite { + name: string; + icon: React.ReactNode; + type: "unit" | "e2e"; + } + + // Interface para a estrutura do projeto + interface Project { + title: string; + image: string; + tags: string[]; + testSuites: TestSuite[]; + github: string; + live: string; + pt: string; + en: string; + } + // Dados dos Meus 3 Projetos - const projectsData = [ + const projectsData: Project[] = [ { title: "Night Owl E-commerce", image: "/projects/night-owl-screen.png", tags: ["React", "TypeScript", "Tailwind CSS", "Context API", "Stripe"], - testSuite: { - name: "Jest & RTL", - icon: , - type: "unit", - }, + testSuites: [ + { + name: "Jest & RTL", + icon: , + type: "unit", + }, + ], github: "https://github.com/franferrazdev/night-owl-ecommerce", live: "https://night-owl-ecommerce.vercel.app/", pt: "Plataforma de vendas online completa contendo catálogo reativo, gerenciamento avançado de carrinho e checkout fluido.", @@ -31,7 +52,13 @@ export function ProjectsSection() { "PostgreSQL", "Tailwind CSS", ], - testSuite: { name: "Playwright", icon: , type: "e2e" }, + testSuites: [ + { + name: "Playwright", + icon: , + type: "e2e", + }, + ], github: "https://github.com/franferrazdev/school-management-dashboard", live: "https://school-management-dashboard-woad.vercel.app/", pt: "Plataforma corporativa full-stack de gestão escolar, Business Intelligence, controle analítico de notas e gerenciamento de chamadas.", @@ -41,11 +68,14 @@ export function ProjectsSection() { title: "Live Coding Bug Quiz", image: "/projects/welcome-screen.png", tags: ["React", "TypeScript", "Tailwind CSS", "Lucide Icons"], - testSuite: { - name: "Jest & RTL", - icon: , - type: "unit", - }, + testSuites: [ + { + name: "Jest & RTL", + icon: , + type: "unit", + }, + { name: "Playwright", icon: , type: "e2e" }, + ], github: "https://github.com/franferrazdev/live-coding-bug-quiz", live: "https://live-coding-bug-quiz-one.vercel.app/", pt: "Simulador técnico interativo homologado para testes de Code Review, depuração de erros em tempo real e avaliação de serioridade front-end.", @@ -99,16 +129,21 @@ export function ProjectsSection() { {/* Badge Técnica de Testes */} - - {project.testSuite.icon} - {project.testSuite.name} - +
+ {project.testSuites.map((suite) => ( + + {suite.icon} + {suite.name} + + ))} +

diff --git a/tests/recruiter.spec.ts b/tests/recruiter.spec.ts index e74ea47..95b08d0 100644 --- a/tests/recruiter.spec.ts +++ b/tests/recruiter.spec.ts @@ -31,7 +31,7 @@ test.describe("Portfólio franferrazdev - Jornada E2E do Recrutador", () => { await expect(downloadButton).toBeVisible(); await expect(downloadButton).toHaveAttribute( "href", - "/Curriculo_Francielle_Ferraz_Frontend_Junior.pdf", + "/Curriculo_Francielle_Ferraz_Frontend_Junior_V2.pdf", ); // Testa a alternância real de idiomas (Chaveia para Inglês e checa a Navbar)