diff --git a/frontend/RESPONSIVENESS_AND_I18N_IMPROVEMENTS.md b/frontend/RESPONSIVENESS_AND_I18N_IMPROVEMENTS.md
new file mode 100644
index 0000000..59c60a3
--- /dev/null
+++ b/frontend/RESPONSIVENESS_AND_I18N_IMPROVEMENTS.md
@@ -0,0 +1,201 @@
+# Melhorias de Responsividade e Internacionalização
+
+## ✅ Concluído
+
+### 1. Sistema de Idiomas
+- ✅ Sistema de i18n já implementado com 3 idiomas (pt-BR, en, es)
+- ✅ LanguageSwitcher component criado e funcional
+- ✅ Traduções adicionadas para navegação mobile:
+ - `nav.language`: "Idioma" / "Language" / "Idioma"
+ - `nav.registerUser`: "Cadastrar Usuário" / "Register User" / "Registrar Usuario"
+ - `nav.registerCompany`: "Cadastrar Empresa" / "Register Company" / "Registrar Empresa"
+
+### 2. Navbar Responsivo
+- ✅ Menu mobile já implementado com Sheet component
+- ✅ LanguageSwitcher adicionado no desktop
+- ⚠️ **PENDENTE**: Adicionar LanguageSwitcher no menu mobile
+
+## 📋 Próximos Passos
+
+### 1. Completar Traduções nos Arquivos de Idioma
+
+#### en.json (Inglês)
+Adicionar na seção "nav" (linha 18-24):
+```json
+"nav": {
+ "jobs": "Jobs",
+ "about": "About",
+ "contact": "Contact",
+ "login": "Login",
+ "register": "Register",
+ "language": "Language",
+ "registerUser": "Register User",
+ "registerCompany": "Register Company"
+},
+```
+
+#### es.json (Espanhol)
+Adicionar na seção "nav":
+```json
+"nav": {
+ "jobs": "Empleos",
+ "about": "Acerca de",
+ "contact": "Contacto",
+ "login": "Iniciar sesión",
+ "register": "Registrarse",
+ "language": "Idioma",
+ "registerUser": "Registrar Usuario",
+ "registerCompany": "Registrar Empresa"
+},
+```
+
+### 2. Atualizar Navbar para Mobile
+
+Arquivo: `e:\gohorse\gohorsejobs\frontend\src\components\navbar.tsx`
+
+Adicionar após a linha 110 (dentro do SheetContent):
+```tsx
+{/* Language Switcher in Mobile */}
+
+ {t('nav.language')}
+
+
+```
+
+E atualizar os links de registro no mobile (linhas 139-144):
+```tsx
+ setIsOpen(false)}>
+
+
+ setIsOpen(false)}>
+
+
+```
+
+### 3. Verificar Responsividade em Todas as Páginas
+
+Testar as seguintes páginas em diferentes tamanhos de tela:
+- ✅ `/` - Home
+- ✅ `/jobs` - Lista de vagas
+- ✅ `/blog` - Blog
+- ✅ `/companies` - Empresas
+- ⚠️ `/jobs/[id]` - Detalhes da vaga
+- ⚠️ `/jobs/[id]/apply` - Formulário de candidatura
+- ⚠️ `/blog/[slug]` - Artigo do blog
+- ⚠️ `/register/user` - Cadastro de usuário
+- ⚠️ `/register` - Cadastro de empresa
+- ⚠️ `/publicar-vaga` - Publicar vaga
+- ⚠️ `/dashboard/*` - Todas as páginas do dashboard
+
+### 4. Melhorias de Responsividade Específicas
+
+#### Breakpoints Padrão do Tailwind:
+- `sm`: 640px
+- `md`: 768px
+- `lg`: 1024px
+- `xl`: 1280px
+- `2xl`: 1536px
+
+#### Checklist de Responsividade:
+- [ ] Textos legíveis em mobile (min 14px)
+- [ ] Botões com tamanho adequado para toque (min 44x44px)
+- [ ] Espaçamento adequado entre elementos
+- [ ] Imagens responsivas com `object-fit`
+- [ ] Tabelas com scroll horizontal em mobile
+- [ ] Formulários com campos empilhados em mobile
+- [ ] Navegação mobile funcional
+- [ ] Modais e dialogs responsivos
+
+## 🎨 Padrões de Responsividade
+
+### Containers
+```tsx
+
+```
+
+### Grid Responsivo
+```tsx
+
+```
+
+### Texto Responsivo
+```tsx
+
+```
+
+### Padding/Margin Responsivo
+```tsx
+
+```
+
+### Flex Responsivo
+```tsx
+
+```
+
+## 🌐 Uso do Sistema de Idiomas
+
+### Em Componentes
+```tsx
+import { useTranslation } from "@/lib/i18n";
+
+export function MyComponent() {
+ const { t, locale, setLocale } = useTranslation();
+
+ return (
+
+
{t('page.title')}
+
{t('page.description', { name: 'João' })}
+
+ );
+}
+```
+
+### Trocar Idioma
+```tsx
+setLocale('pt-BR'); // ou 'en' ou 'es'
+```
+
+## 📱 Testes de Responsividade
+
+### Dispositivos para Testar:
+1. **Mobile**: 375x667 (iPhone SE)
+2. **Mobile**: 390x844 (iPhone 12 Pro)
+3. **Tablet**: 768x1024 (iPad)
+4. **Desktop**: 1280x720
+5. **Desktop**: 1920x1080
+
+### Ferramentas:
+- Chrome DevTools (F12 → Toggle Device Toolbar)
+- Firefox Responsive Design Mode
+- Testes em dispositivos reais
+
+## 🚀 Comandos Úteis
+
+```bash
+# Rodar em desenvolvimento
+npm run dev
+
+# Build para produção
+npm run build
+
+# Verificar erros de lint
+npm run lint
+
+# Corrigir erros de lint
+npm run lint:fix
+```
+
+## 📝 Notas
+
+- O sistema de cores já está padronizado para `#F0932B`
+- O Edge Runtime foi removido de todos os arquivos problemáticos
+- O projeto usa Next.js 14 com App Router
+- Tailwind CSS é usado para estilização
+- shadcn/ui é usado para componentes
diff --git a/frontend/messages/en-US.json b/frontend/messages/en-US.json
index f99cec6..eef637e 100644
--- a/frontend/messages/en-US.json
+++ b/frontend/messages/en-US.json
@@ -121,6 +121,174 @@
"footer": {
"rights": "All rights reserved.",
"privacy": "Privacy",
- "terms": "Terms of use"
+ "terms": "Terms of use",
+ "blog": "Blog",
+ "empresas": "Companies",
+ "login": "Login"
+ },
+ "contact": {
+ "title": "Contact Us",
+ "subtitle": "We're here to help you",
+ "getInTouch": "Get in Touch",
+ "name": "Name",
+ "email": "Email",
+ "subject": "Subject",
+ "message": "Message",
+ "send": "Send Message",
+ "sending": "Sending...",
+ "success": "Message sent successfully!",
+ "error": "Error sending message",
+ "faq": "Frequently Asked Questions",
+ "resources": "Useful Resources"
+ },
+ "about": {
+ "title": "About Us",
+ "hero": {
+ "title": "The evolution of work begins with people and their culture",
+ "subtitle": "Every day we contribute to transform the way we think about work so that it is consistent with the way we want to live."
+ },
+ "whatWeDo": {
+ "title": "What do we do?",
+ "p1": "GoHorse Jobs connects companies to qualified talents to transform projects into real results, combining expertise, agility and innovation in each hire.",
+ "p2": "Our platform facilitates the meeting between those looking for prepared professionals and those looking for opportunities aligned with their profile, objectives and work style.",
+ "p3": "At the same time, we help professionals evolve in their careers, gain autonomy, expand their networking and achieve opportunities that really make sense for their professional growth."
+ },
+ "hybrid": {
+ "title": "We are hybrid, itinerant and diverse",
+ "stats": "70% of the GoHorse Jobs team works remotely. 100% work with autonomy.",
+ "agile": "+ Agile",
+ "agileDesc": "Our flexible work culture allows us to quickly respond to the needs of the market and our users.",
+ "productive": "+ Productive",
+ "productiveDesc": "Autonomy and flexibility result in a more motivated, engaged and productive team in their projects."
+ },
+ "purpose": {
+ "title": "The purpose that unites us",
+ "desc": "We work continuously to transform the world of work by promoting autonomy, talent development and equal opportunities for all, from wherever they are.",
+ "quote": "We are an innovative organization that seeks to empower people at work, positively impacting personal, family and social life.",
+ "believe": "We believe there is a new way to work."
+ },
+ "values": {
+ "title": "Our values",
+ "subtitle": "The principles that guide our daily lives and shape our organizational culture"
+ },
+ "cta": {
+ "title": "Be part of the work transformation",
+ "subtitle": "Join thousands of companies and professionals who already trust GoHorse Jobs to build the future of work.",
+ "findJobs": "Find Jobs",
+ "postJob": "Post Job"
+ }
+ },
+ "blog": {
+ "title": "GoHorse Jobs Blog",
+ "subtitle": "Content about career, recruitment, technology and the future of work",
+ "searchPlaceholder": "Search articles...",
+ "categories": {
+ "all": "All",
+ "recruitment": "Recruitment",
+ "career": "Career",
+ "technology": "Technology",
+ "development": "Development",
+ "culture": "Culture",
+ "market": "Market"
+ },
+ "readMore": "Read more",
+ "showing": "Showing",
+ "of": "of",
+ "articles": "articles",
+ "newsletter": {
+ "title": "Want to receive our content first hand?",
+ "subtitle": "Subscribe to our newsletter and stay up to date with the latest news from the job market",
+ "placeholder": "Your best email",
+ "subscribe": "Subscribe Newsletter"
+ }
+ },
+ "postJob": {
+ "sidebar": {
+ "title": "Post job openings quickly and efficiently",
+ "benefit1": "One of the largest communities of professionals in the market",
+ "benefit2": "Platform with high visibility and daily access",
+ "benefit3": "Great movement of applications every day",
+ "benefit4": "New talents registering constantly"
+ },
+ "form": {
+ "title": "Post your job opening for FREE!",
+ "subtitle": "More than",
+ "registeredCVs": "50 thousand registered resumes",
+ "jobTitle": "Job position",
+ "jobTitlePlaceholder": "Ex: Full Stack Developer",
+ "companyName": "Company Name",
+ "companyNamePlaceholder": "Ex: Tech Company Ltd",
+ "cnpj": "Company ID",
+ "cnpjPlaceholder": "00.000.000/0000-00",
+ "employees": "Number of employees at unit",
+ "employeesPlaceholder": "Ex: 50",
+ "zipCode": "ZIP Code",
+ "zipCodePlaceholder": "00000-000",
+ "firstName": "First Name",
+ "firstNamePlaceholder": "Your first name",
+ "lastName": "Last Name",
+ "lastNamePlaceholder": "Your last name",
+ "email": "Your corporate email",
+ "emailPlaceholder": "your.email@company.com",
+ "phone": "Your phone",
+ "phonePlaceholder": "(00) 0000-0000",
+ "mobile": "Your mobile",
+ "mobilePlaceholder": "(00) 00000-0000",
+ "acceptTermsPrefix": "I have read and accept the",
+ "termsLink": "Legal Conditions",
+ "acceptTermsAnd": "and the",
+ "privacyLink": "Privacy Policy",
+ "acceptTermsSuffix": "of GoHorse Jobs.",
+ "acceptMarketing": "I authorize GoHorse Jobs to send commercial communications about products, services and events from its partners and collaborators.",
+ "submitButton": "POST JOB FOR FREE",
+ "candidateQuestion": "Are you a candidate?",
+ "candidateLink": "Sign up for free here!"
+ }
+ },
+ "registerUser": {
+ "title": "Create User Account",
+ "subtitle": "Fill in the details below to register",
+ "hero": {
+ "title": "Start your professional journey",
+ "subtitle": "Create your account and get access to the best tech job opportunities.",
+ "profile": "Create your complete professional profile",
+ "apply": "Apply to the best companies",
+ "track": "Track your applications in real time"
+ },
+ "form": {
+ "name": "Full Name",
+ "namePlaceholder": "Your full name",
+ "email": "Email",
+ "emailPlaceholder": "your@email.com",
+ "phone": "Phone",
+ "phonePlaceholder": "(00) 00000-0000",
+ "password": "Password",
+ "passwordPlaceholder": "Minimum 6 characters",
+ "confirmPassword": "Confirm Password",
+ "confirmPasswordPlaceholder": "Enter password again",
+ "acceptTerms": "I accept the terms of use and privacy policy",
+ "submit": "Create Account",
+ "submitting": "Creating account...",
+ "hasAccount": "Already have an account?",
+ "login": "Sign in",
+ "backHome": "Back to home"
+ }
+ },
+ "companies": {
+ "hero": {
+ "title": "Discover the Best Companies",
+ "subtitle": "Meet amazing companies that are hiring now"
+ },
+ "searchPlaceholder": "Search companies by name or industry...",
+ "filters": "Filters",
+ "companiesFound": "companies found",
+ "featured": "Featured Companies",
+ "allCompanies": "All Companies",
+ "featuredBadge": "Featured",
+ "jobs": "jobs",
+ "viewProfile": "View profile",
+ "viewMore": "View more",
+ "noCompanies": "No companies found",
+ "adjustFilters": "Try adjusting your search filters"
}
}
\ No newline at end of file
diff --git a/frontend/messages/pt-BR.json b/frontend/messages/pt-BR.json
index 5ba2335..a9dbdd2 100644
--- a/frontend/messages/pt-BR.json
+++ b/frontend/messages/pt-BR.json
@@ -121,6 +121,174 @@
"footer": {
"rights": "Todos os direitos reservados.",
"privacy": "Privacidade",
- "terms": "Termos de uso"
+ "terms": "Termos de uso",
+ "blog": "Blog",
+ "empresas": "Empresas",
+ "login": "Login"
+ },
+ "contact": {
+ "title": "Entre em Contato",
+ "subtitle": "Estamos aqui para ajudar você",
+ "getInTouch": "Fale Conosco",
+ "name": "Nome",
+ "email": "E-mail",
+ "subject": "Assunto",
+ "message": "Mensagem",
+ "send": "Enviar Mensagem",
+ "sending": "Enviando...",
+ "success": "Mensagem enviada com sucesso!",
+ "error": "Erro ao enviar mensagem",
+ "faq": "Perguntas Frequentes",
+ "resources": "Recursos Úteis"
+ },
+ "about": {
+ "title": "Sobre Nós",
+ "hero": {
+ "title": "A evolução do trabalho começa pelas pessoas e sua cultura",
+ "subtitle": "Todos os dias contribuímos para transformar a maneira como pensamos o trabalho para que seja coerente com a maneira como queremos viver."
+ },
+ "whatWeDo": {
+ "title": "O que fazemos?",
+ "p1": "O GoHorse Jobs conecta empresas a talentos qualificados para transformar projetos em resultados reais, unindo expertise, agilidade e inovação em cada contratação.",
+ "p2": "Nossa plataforma facilita o encontro entre quem busca profissionais preparados e quem deseja oportunidades alinhadas ao seu perfil, objetivos e estilo de trabalho.",
+ "p3": "Ao mesmo tempo, ajudamos profissionais a evoluírem em suas carreiras, ganharem autonomia, ampliarem seu networking e conquistarem oportunidades que realmente fazem sentido para seu crescimento profissional."
+ },
+ "hybrid": {
+ "title": "Somos híbridos, itinerantes e diversos",
+ "stats": "70% da equipe do GoHorse Jobs trabalha remotamente. 100% de trabalho com autonomia.",
+ "agile": "+ Ágil",
+ "agileDesc": "Nossa cultura de trabalho flexível nos permite responder rapidamente às necessidades do mercado e dos nossos usuários.",
+ "productive": "+ Produtiva",
+ "productiveDesc": "A autonomia e flexibilidade resultam em uma equipe mais motivada, engajada e produtiva em seus projetos."
+ },
+ "purpose": {
+ "title": "O propósito que nos une",
+ "desc": "Trabalhamos continuamente para transformar o mundo do trabalho promovendo a autonomia, o desenvolvimento de talentos e a igualdade de oportunidades para todos, de onde quer que seja.",
+ "quote": "Somos uma organização inovadora que busca potencializar as pessoas no trabalho, impactando positivamente na vida pessoal, familiar e social.",
+ "believe": "Acreditamos que há uma nova forma de trabalhar."
+ },
+ "values": {
+ "title": "Nossos valores",
+ "subtitle": "Os princípios que guiam nosso dia a dia e moldam nossa cultura organizacional"
+ },
+ "cta": {
+ "title": "Faça parte da transformação do trabalho",
+ "subtitle": "Junte-se a milhares de empresas e profissionais que já confiam no GoHorse Jobs para construir o futuro do trabalho.",
+ "findJobs": "Encontrar Vagas",
+ "postJob": "Publicar Vaga"
+ }
+ },
+ "blog": {
+ "title": "Blog GoHorse Jobs",
+ "subtitle": "Conteúdos sobre carreira, recrutamento, tecnologia e o futuro do trabalho",
+ "searchPlaceholder": "Buscar artigos...",
+ "categories": {
+ "all": "Todos",
+ "recruitment": "Recrutamento",
+ "career": "Carreira",
+ "technology": "Tecnologia",
+ "development": "Desenvolvimento",
+ "culture": "Cultura",
+ "market": "Mercado"
+ },
+ "readMore": "Ler mais",
+ "showing": "Mostrando",
+ "of": "de",
+ "articles": "artigos",
+ "newsletter": {
+ "title": "Quer receber nossos conteúdos em primeira mão?",
+ "subtitle": "Assine nossa newsletter e fique por dentro das novidades do mercado de trabalho",
+ "placeholder": "Seu melhor e-mail",
+ "subscribe": "Assinar Newsletter"
+ }
+ },
+ "postJob": {
+ "sidebar": {
+ "title": "Anuncie vagas de emprego de forma rápida e eficiente",
+ "benefit1": "Uma das maiores comunidades de profissionais do mercado",
+ "benefit2": "Plataforma com alta visibilidade e acesso diário",
+ "benefit3": "Grande movimentação de candidaturas todos os dias",
+ "benefit4": "Novos talentos se cadastrando constantemente"
+ },
+ "form": {
+ "title": "Anuncie a sua vaga de emprego GRÁTIS!",
+ "subtitle": "Mais de",
+ "registeredCVs": "50 mil currículos cadastrados",
+ "jobTitle": "Cargo da vaga",
+ "jobTitlePlaceholder": "Ex: Desenvolvedor Full Stack",
+ "companyName": "Nome da Empresa",
+ "companyNamePlaceholder": "Ex: Tech Company Ltda",
+ "cnpj": "CNPJ da Empresa",
+ "cnpjPlaceholder": "00.000.000/0000-00",
+ "employees": "Nº de funcionários da unidade",
+ "employeesPlaceholder": "Ex: 50",
+ "zipCode": "CEP",
+ "zipCodePlaceholder": "00000-000",
+ "firstName": "Nome",
+ "firstNamePlaceholder": "Seu nome",
+ "lastName": "Sobrenome",
+ "lastNamePlaceholder": "Seu sobrenome",
+ "email": "Seu e-mail corporativo",
+ "emailPlaceholder": "seu.email@empresa.com",
+ "phone": "Seu telefone fixo",
+ "phonePlaceholder": "(00) 0000-0000",
+ "mobile": "Seu celular",
+ "mobilePlaceholder": "(00) 00000-0000",
+ "acceptTermsPrefix": "Li e aceito as",
+ "termsLink": "Condições Legais",
+ "acceptTermsAnd": "e a",
+ "privacyLink": "Política de Privacidade",
+ "acceptTermsSuffix": "do GoHorse Jobs.",
+ "acceptMarketing": "Autorizo o GoHorse Jobs a enviar comunicações comerciais sobre produtos, serviços e eventos dos seus parceiros e colaboradores.",
+ "submitButton": "ANUNCIAR VAGA GRÁTIS",
+ "candidateQuestion": "Você é um candidato?",
+ "candidateLink": "Cadastre-se grátis aqui!"
+ }
+ },
+ "registerUser": {
+ "title": "Criar Conta de Usuário",
+ "subtitle": "Preencha os dados abaixo para se cadastrar",
+ "hero": {
+ "title": "Comece sua jornada profissional",
+ "subtitle": "Crie sua conta e tenha acesso às melhores oportunidades de emprego em tecnologia.",
+ "profile": "Crie seu perfil profissional completo",
+ "apply": "Candidate-se às melhores empresas",
+ "track": "Acompanhe suas candidaturas em tempo real"
+ },
+ "form": {
+ "name": "Nome Completo",
+ "namePlaceholder": "Seu nome completo",
+ "email": "E-mail",
+ "emailPlaceholder": "seu@email.com",
+ "phone": "Telefone",
+ "phonePlaceholder": "(00) 00000-0000",
+ "password": "Senha",
+ "passwordPlaceholder": "Mínimo 6 caracteres",
+ "confirmPassword": "Confirmar Senha",
+ "confirmPasswordPlaceholder": "Digite a senha novamente",
+ "acceptTerms": "Aceito os termos de uso e a política de privacidade",
+ "submit": "Criar Conta",
+ "submitting": "Criando conta...",
+ "hasAccount": "Já tem uma conta?",
+ "login": "Fazer login",
+ "backHome": "Voltar para o início"
+ }
+ },
+ "companies": {
+ "hero": {
+ "title": "Descubra as Melhores Empresas",
+ "subtitle": "Conheça empresas incríveis que estão contratando agora"
+ },
+ "searchPlaceholder": "Buscar empresas por nome ou setor...",
+ "filters": "Filtros",
+ "companiesFound": "empresas encontradas",
+ "featured": "Empresas em Destaque",
+ "allCompanies": "Todas as Empresas",
+ "featuredBadge": "Destaque",
+ "jobs": "vagas",
+ "viewProfile": "Ver perfil",
+ "viewMore": "Ver mais",
+ "noCompanies": "Nenhuma empresa encontrada",
+ "adjustFilters": "Tente ajustar seus filtros de busca"
}
}
\ No newline at end of file
diff --git a/frontend/next.config.ts b/frontend/next.config.ts
index f628bc1..1f2979c 100644
--- a/frontend/next.config.ts
+++ b/frontend/next.config.ts
@@ -16,6 +16,7 @@ const nextConfig: NextConfig = {
hostname: "**",
},
],
+ qualities: [25, 50, 75, 80, 90, 100],
},
};
diff --git a/frontend/public/1.png b/frontend/public/1.png
new file mode 100644
index 0000000..60ec55b
Binary files /dev/null and b/frontend/public/1.png differ
diff --git a/frontend/public/10.png b/frontend/public/10.png
new file mode 100644
index 0000000..06272d4
Binary files /dev/null and b/frontend/public/10.png differ
diff --git a/frontend/public/111.png b/frontend/public/111.png
new file mode 100644
index 0000000..9fb2802
Binary files /dev/null and b/frontend/public/111.png differ
diff --git a/frontend/public/12.png b/frontend/public/12.png
new file mode 100644
index 0000000..23b20c6
Binary files /dev/null and b/frontend/public/12.png differ
diff --git a/frontend/public/16.png b/frontend/public/16.png
new file mode 100644
index 0000000..7a95da4
Binary files /dev/null and b/frontend/public/16.png differ
diff --git a/frontend/public/18.png b/frontend/public/18.png
new file mode 100644
index 0000000..b48c0b0
Binary files /dev/null and b/frontend/public/18.png differ
diff --git a/frontend/public/2.png b/frontend/public/2.png
new file mode 100644
index 0000000..e39fbad
Binary files /dev/null and b/frontend/public/2.png differ
diff --git a/frontend/public/4.png b/frontend/public/4.png
new file mode 100644
index 0000000..ed872f2
Binary files /dev/null and b/frontend/public/4.png differ
diff --git a/frontend/public/6.png b/frontend/public/6.png
new file mode 100644
index 0000000..0f23d0d
Binary files /dev/null and b/frontend/public/6.png differ
diff --git a/frontend/public/9.png b/frontend/public/9.png
new file mode 100644
index 0000000..775e543
Binary files /dev/null and b/frontend/public/9.png differ
diff --git a/frontend/public/logohorseee.png b/frontend/public/logohorseee.png
new file mode 100644
index 0000000..edf2b72
Binary files /dev/null and b/frontend/public/logohorseee.png differ
diff --git a/frontend/public/muie.jpeg b/frontend/public/muie.jpeg
new file mode 100644
index 0000000..70151eb
Binary files /dev/null and b/frontend/public/muie.jpeg differ
diff --git a/frontend/public/oportunidade.png b/frontend/public/oportunidade.png
new file mode 100644
index 0000000..efe67e4
Binary files /dev/null and b/frontend/public/oportunidade.png differ
diff --git a/frontend/public/optr.png b/frontend/public/optr.png
new file mode 100644
index 0000000..5724538
Binary files /dev/null and b/frontend/public/optr.png differ
diff --git a/frontend/public/optr1.png b/frontend/public/optr1.png
new file mode 100644
index 0000000..1566b67
Binary files /dev/null and b/frontend/public/optr1.png differ
diff --git a/frontend/public/vaga.png b/frontend/public/vaga.png
new file mode 100644
index 0000000..3957ed4
Binary files /dev/null and b/frontend/public/vaga.png differ
diff --git a/frontend/public/vaga1.png b/frontend/public/vaga1.png
new file mode 100644
index 0000000..fbf446f
Binary files /dev/null and b/frontend/public/vaga1.png differ
diff --git a/frontend/public/vaga2.png b/frontend/public/vaga2.png
new file mode 100644
index 0000000..a4dfde1
Binary files /dev/null and b/frontend/public/vaga2.png differ
diff --git a/frontend/public/vagamobile2.png b/frontend/public/vagamobile2.png
new file mode 100644
index 0000000..1e5447f
Binary files /dev/null and b/frontend/public/vagamobile2.png differ
diff --git a/frontend/src/app/about/page.tsx b/frontend/src/app/about/page.tsx
index ae2796c..f43761a 100644
--- a/frontend/src/app/about/page.tsx
+++ b/frontend/src/app/about/page.tsx
@@ -2,95 +2,256 @@
import { Navbar } from "@/components/navbar"
import { Footer } from "@/components/footer"
-import { Card, CardContent } from "@/components/ui/card"
-import { Target, Users, Zap, Shield } from "lucide-react"
+import { Heart, Users, Rocket, Lightbulb, Target, Globe, Handshake, Smile } from "lucide-react"
+import Image from "next/image"
import { useTranslation } from "@/lib/i18n"
export default function AboutPage() {
const { t } = useTranslation()
+
const values = [
{
- icon: Target,
- title: t("about.values.items.mission.title"),
- description: t("about.values.items.mission.description"),
+ icon: Heart,
+ title: t('about.values.passion.title'),
+ description: t('about.values.passion.description')
},
{
icon: Users,
- title: t("about.values.items.community.title"),
- description: t("about.values.items.community.description"),
+ title: t('about.values.humility.title'),
+ description: t('about.values.humility.description')
},
{
- icon: Zap,
- title: t("about.values.items.efficiency.title"),
- description: t("about.values.items.efficiency.description"),
+ icon: Rocket,
+ title: t('about.values.autonomy.title'),
+ description: t('about.values.autonomy.description')
},
{
- icon: Shield,
- title: t("about.values.items.trust.title"),
- description: t("about.values.items.trust.description"),
+ icon: Lightbulb,
+ title: t('about.values.creativity.title'),
+ description: t('about.values.creativity.description')
},
+ {
+ icon: Target,
+ title: t('about.values.flexibility.title'),
+ description: t('about.values.flexibility.description')
+ },
+ {
+ icon: Handshake,
+ title: t('about.values.honesty.title'),
+ description: t('about.values.honesty.description')
+ },
+ {
+ icon: Smile,
+ title: t('about.values.respect.title'),
+ description: t('about.values.respect.description')
+ },
+ {
+ icon: Globe,
+ title: t('about.values.diversity.title'),
+ description: t('about.values.diversity.description')
+ }
]
return (
-
+
{/* Hero Section */}
-
+
-
-
- {t("about.hero.title")}
-
-
- {t("about.hero.subtitle")}
-
+
+
+
+
+ {t('about.hero.title')}
+
+
+ {t('about.hero.subtitle')}
+
+
+
+
+
+
+ {/* Decorative elements */}
+
+
+
+
- {/* Story Section */}
-
+ {/* What We Do Section */}
+
-
-
{t("about.story.title")}
-
-
{t("about.story.paragraphs.first")}
-
{t("about.story.paragraphs.second")}
-
{t("about.story.paragraphs.third")}
+
+
+
+
+
+
+
+
+
+ {t('about.whatWeDo.title')}
+
+
+
+ {t('about.whatWeDo.paragraph1')}
+
+
+ {t('about.whatWeDo.paragraph2')}
+
+
+ {t('about.whatWeDo.paragraph3')}
+
+
+
+
+
+
+
+
+ {/* Hybrid Work Section */}
+
+
+
+
+ {t('about.hybrid.title')}
+
+
+ 70% da equipe do GoHorse Jobs trabalha remotamente.{" "}
+ 100% de trabalho com autonomia.
+
+
diff --git a/frontend/src/app/api/config/route.ts b/frontend/src/app/api/config/route.ts
index 8407c62..401d7fa 100644
--- a/frontend/src/app/api/config/route.ts
+++ b/frontend/src/app/api/config/route.ts
@@ -2,7 +2,6 @@ import { NextResponse } from 'next/server';
export const runtime = 'edge';
-
/**
* Runtime Configuration API
*
diff --git a/frontend/src/app/blog/[slug]/page.tsx b/frontend/src/app/blog/[slug]/page.tsx
new file mode 100644
index 0000000..0591e98
--- /dev/null
+++ b/frontend/src/app/blog/[slug]/page.tsx
@@ -0,0 +1,484 @@
+"use client"
+
+import { useState } from "react"
+import { Navbar } from "@/components/navbar"
+import { Footer } from "@/components/footer"
+import { Calendar, Clock, User, Share2, Facebook, Twitter, Linkedin, Link as LinkIcon, ArrowLeft, Tag } from "lucide-react"
+import Image from "next/image"
+import Link from "next/link"
+import { useParams } from "next/navigation"
+
+export const runtime = 'edge';
+
+export default function BlogPostPage() {
+ const params = useParams()
+ const [copied, setCopied] = useState(false)
+
+ const copyLink = () => {
+ navigator.clipboard.writeText(window.location.href)
+ setCopied(true)
+ setTimeout(() => setCopied(false), 2000)
+ }
+
+ // Mapeamento de posts com suas respectivas imagens
+ const postsData: Record = {
+ "como-se-destacar-entrevistas-ti": {
+ title: "Como se destacar em entrevistas de emprego na área de TI",
+ author: "Carolina Santos",
+ date: "15 Jan 2026",
+ readTime: "8 min",
+ category: "Entrevistas",
+ image: "https://images.unsplash.com/photo-1573496359142-b8d87734a5a2?w=1200&q=80",
+ tags: ["Entrevistas", "Tecnologia", "Carreira", "Dicas"]
+ },
+ "linguagens-programacao-2026": {
+ title: "As 10 linguagens de programação mais procuradas em 2026",
+ author: "Roberto Silva",
+ date: "12 Jan 2026",
+ readTime: "10 min",
+ category: "Tecnologia",
+ image: "https://images.unsplash.com/photo-1542831371-29b0f74f9713?w=1200&q=80",
+ tags: ["Programação", "Tecnologia", "Mercado", "Linguagens"]
+ },
+ "salarios-desenvolvedores-brasil": {
+ title: "Guia completo de salários para desenvolvedores no Brasil",
+ author: "Mariana Costa",
+ date: "10 Jan 2026",
+ readTime: "12 min",
+ category: "Mercado de Trabalho",
+ image: "https://images.unsplash.com/photo-1554224155-8d04cb21cd6c?w=1200&q=80",
+ tags: ["Salários", "Desenvolvedores", "Brasil", "Carreira"]
+ },
+ "transicao-carreira-tech": {
+ title: "Transição de carreira para TI: Por onde começar?",
+ author: "Lucas Oliveira",
+ date: "8 Jan 2026",
+ readTime: "7 min",
+ category: "Carreira",
+ image: "https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=1200&q=80",
+ tags: ["Transição", "Carreira", "TI", "Iniciantes"]
+ },
+ "trabalho-remoto-produtividade": {
+ title: "Como manter a produtividade trabalhando remotamente",
+ author: "Ana Paula Mendes",
+ date: "5 Jan 2026",
+ readTime: "6 min",
+ category: "Dicas",
+ image: "https://images.unsplash.com/photo-1498050108023-c5249f4df085?w=1200&q=80",
+ tags: ["Home Office", "Produtividade", "Trabalho Remoto", "Dicas"]
+ },
+ "soft-skills-desenvolvedor": {
+ title: "Soft skills essenciais para desenvolvedores de sucesso",
+ author: "Felipe Rodrigues",
+ date: "2 Jan 2026",
+ readTime: "9 min",
+ category: "Desenvolvimento",
+ image: "https://images.unsplash.com/photo-1531482615713-2afd69097998?w=1200&q=80",
+ tags: ["Soft Skills", "Desenvolvimento", "Carreira", "Competências"]
+ },
+ "portfolio-desenvolvedor-destaque": {
+ title: "Como criar um portfólio que impressiona recrutadores",
+ author: "Juliana Ferreira",
+ date: "28 Dez 2025",
+ readTime: "11 min",
+ category: "Carreira",
+ image: "https://images.unsplash.com/photo-1467232004584-a241de8bcf5d?w=1200&q=80",
+ tags: ["Portfólio", "GitHub", "Projetos", "Carreira"]
+ },
+ "inteligencia-artificial-empregos": {
+ title: "IA e o futuro dos empregos em tecnologia",
+ author: "Pedro Almeida",
+ date: "25 Dez 2025",
+ readTime: "8 min",
+ category: "Tecnologia",
+ image: "https://images.unsplash.com/photo-1677442136019-21780ecad995?w=1200&q=80",
+ tags: ["IA", "Inteligência Artificial", "Futuro", "Tecnologia"]
+ },
+ "negociar-salario-tech": {
+ title: "Guia definitivo para negociar salário na área de TI",
+ author: "Rodrigo Martins",
+ date: "22 Dez 2025",
+ readTime: "10 min",
+ category: "Carreira",
+ image: "https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?w=1200&q=80",
+ tags: ["Salário", "Negociação", "Carreira", "TI"]
+ }
+ }
+
+ const slug = params.slug as string
+ const postInfo = postsData[slug] || postsData["como-se-destacar-entrevistas-ti"]
+
+ // Post de exemplo baseado em conteúdo real de sites de emprego
+ const post = {
+ ...postInfo,
+ content: `
+
+ O mercado de tecnologia está cada vez mais competitivo. Saber se destacar em uma entrevista pode ser o diferencial entre conseguir a vaga dos sonhos ou ficar para trás.
+
+
+
+ Em 2026, a maioria dos conflitos entre freelancers e clientes não são sobre a qualidade técnica do trabalho, mas sim sobre comunicação. Mal-entendidos, mudanças de escopo e expectativas pouco claras continuam sendo as principais causas de projetos frustrados.
+
+
+
+ Aprender a melhorar a comunicação com o cliente como freelancer em 2026 não só reduz o atrito, como também permite trabalhar com mais clareza, cobrar preços melhores e construir relacionamentos de longo prazo dentro do ecossistema freelancer.
+
+
+
1. Prepare-se profundamente sobre a empresa
+
+
+ Antes de qualquer entrevista, dedique tempo para pesquisar a fundo sobre a empresa. Visite o site oficial, leia sobre a cultura organizacional, entenda os produtos e serviços oferecidos e acompanhe as notícias recentes.
+
+
+
+ Demonstrar conhecimento sobre a empresa não apenas impressiona os entrevistadores, mas também mostra seu genuíno interesse pela vaga e pela organização.
+
+
+
+
+ 💡 Dica profissional: Prepare perguntas inteligentes sobre a empresa. Isso demonstra proatividade e interesse real pela posição.
+
+
+
+
2. Domine as competências técnicas exigidas
+
+
+ Na área de TI, as habilidades técnicas são fundamentais. Certifique-se de que você domina as tecnologias e ferramentas mencionadas na descrição da vaga.
+
+
+
+
Revise conceitos fundamentais da sua área de atuação
+
Pratique exercícios de código e desafios técnicos
+
Prepare-se para demonstrar projetos anteriores
+
Esteja atualizado sobre as últimas tendências tecnológicas
+
+
+
3. Desenvolva suas soft skills
+
+
+ Além das habilidades técnicas, as empresas valorizam cada vez mais as soft skills. Capacidades como comunicação, trabalho em equipe, resolução de problemas e adaptabilidade são essenciais.
+
+
+
+ Durante a entrevista, busque exemplos concretos de situações onde você demonstrou essas competências. Use a técnica STAR (Situação, Tarefa, Ação, Resultado) para estruturar suas respostas.
+
+
+
4. Cuide da sua apresentação pessoal
+
+
+ A primeira impressão conta muito. Vista-se de forma apropriada para a cultura da empresa - mesmo em entrevistas remotas, apresente-se de forma profissional.
+
+
+
+ Em entrevistas presenciais, chegue com 10-15 minutos de antecedência. Em entrevistas online, teste sua conexão, câmera e microfone antecipadamente.
+
+
+
5. Prepare respostas para perguntas comuns
+
+
+ Algumas perguntas são frequentes em entrevistas de TI. Prepare respostas autênticas e bem estruturadas para questões como:
+
+
+
+
"Conte-me sobre você e sua trajetória profissional"
+
"Quais são seus pontos fortes e fracos?"
+
"Por que você quer trabalhar nesta empresa?"
+
"Onde você se vê daqui a 5 anos?"
+
"Descreva um desafio técnico que você superou"
+
+
+
+
Checklist para entrevistas de TI:
+
+
+ ✓
+ Pesquisar a empresa e entender sua cultura
+
+ Mostre que você está genuinamente interessado na oportunidade. Fale com energia sobre seus projetos, demonstre curiosidade sobre o trabalho e mantenha uma postura positiva durante toda a entrevista.
+
+
+
+ O entusiasmo é contagiante e pode fazer toda a diferença na decisão final dos recrutadores.
+
+
+
7. Faça um follow-up após a entrevista
+
+
+ Dentro de 24 horas após a entrevista, envie um e-mail de agradecimento. Reitere seu interesse pela vaga e destaque brevemente por que você seria um bom fit para a posição.
+
+
+
+ Esse pequeno gesto demonstra profissionalismo e pode deixar uma última impressão positiva nos recrutadores.
+
+
+
Conclusão
+
+
+ Se destacar em entrevistas de emprego na área de TI requer preparação, conhecimento técnico e desenvolvimento de habilidades interpessoais. Ao seguir essas dicas e investir tempo em sua preparação, você aumentará significativamente suas chances de sucesso.
+
+
+
+ Lembre-se: cada entrevista é uma oportunidade de aprendizado. Mesmo que não consiga a vaga, reflita sobre a experiência e identifique pontos de melhoria para as próximas oportunidades.
+
+ Especialista em carreira e recrutamento com mais de 10 anos de experiência ajudando profissionais a alcançarem seus objetivos no mercado de tecnologia.
+
+
+
+
+
+
+
+
+ {/* Related Posts */}
+
+
+
+
Artigos Relacionados
+
+
+ {relatedPosts.map((relatedPost) => (
+
+
+
+
+
+ {relatedPost.category}
+
+
+
+
+
+ {relatedPost.title}
+
+
+
+ ))}
+
+
+
+
+
+ {/* Newsletter CTA */}
+
+
+
+
+ Gostou deste conteúdo?
+
+
+ Receba mais artigos como este direto no seu e-mail
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/frontend/src/app/blog/page.tsx b/frontend/src/app/blog/page.tsx
new file mode 100644
index 0000000..eaf37a2
--- /dev/null
+++ b/frontend/src/app/blog/page.tsx
@@ -0,0 +1,399 @@
+"use client"
+
+import { Navbar } from "@/components/navbar"
+import { Footer } from "@/components/footer"
+import { Search, Calendar, Clock, ArrowRight, TrendingUp, Code, Briefcase, Users, Target, Lightbulb } from "lucide-react"
+import Image from "next/image"
+import Link from "next/link"
+import { useState } from "react"
+import { useTranslation } from "@/lib/i18n"
+
+interface BlogPost {
+ id: string
+ slug: string
+ title: string
+ excerpt: string
+ category: string
+ date: string
+ readTime: string
+ image: string
+ author: {
+ name: string
+ avatar: string
+ }
+ featured?: boolean
+}
+
+export default function BlogPage() {
+ const { t } = useTranslation()
+ const [searchTerm, setSearchTerm] = useState("")
+ const [selectedCategory, setSelectedCategory] = useState("Todas")
+
+ const categories = [
+ "Todas",
+ "Carreira",
+ "Tecnologia",
+ "Entrevistas",
+ "Dicas",
+ "Mercado de Trabalho",
+ "Desenvolvimento"
+ ]
+
+ const blogPosts: BlogPost[] = [
+ {
+ id: "1",
+ slug: "como-se-destacar-entrevistas-ti",
+ title: "Como se destacar em entrevistas de emprego na área de TI",
+ excerpt: "Dicas essenciais para profissionais de tecnologia que querem impressionar recrutadores e conquistar a vaga dos sonhos.",
+ category: "Entrevistas",
+ date: "15 de Janeiro, 2026",
+ readTime: "8 min",
+ image: "https://images.unsplash.com/photo-1573496359142-b8d87734a5a2?w=800&q=80",
+ author: {
+ name: "Carolina Santos",
+ avatar: "/logohorse.png"
+ },
+ featured: true
+ },
+ {
+ id: "2",
+ slug: "linguagens-programacao-2026",
+ title: "As 10 linguagens de programação mais procuradas em 2026",
+ excerpt: "Descubra quais são as tecnologias mais valorizadas pelo mercado e como se preparar para as oportunidades futuras.",
+ category: "Tecnologia",
+ date: "12 de Janeiro, 2026",
+ readTime: "10 min",
+ image: "https://images.unsplash.com/photo-1542831371-29b0f74f9713?w=800&q=80",
+ author: {
+ name: "Roberto Silva",
+ avatar: "/logohorse.png"
+ },
+ featured: true
+ },
+ {
+ id: "3",
+ slug: "salarios-desenvolvedores-brasil",
+ title: "Guia completo de salários para desenvolvedores no Brasil",
+ excerpt: "Análise detalhada sobre faixas salariais, benefícios e tendências do mercado de tecnologia brasileiro.",
+ category: "Mercado de Trabalho",
+ date: "10 de Janeiro, 2026",
+ readTime: "12 min",
+ image: "https://images.unsplash.com/photo-1554224155-8d04cb21cd6c?w=800&q=80",
+ author: {
+ name: "Mariana Costa",
+ avatar: "/logohorse.png"
+ },
+ featured: true
+ },
+ {
+ id: "4",
+ slug: "transicao-carreira-tech",
+ title: "Transição de carreira para TI: Por onde começar?",
+ excerpt: "Um guia prático para profissionais que desejam migrar para a área de tecnologia, com dicas de cursos e certificações.",
+ category: "Carreira",
+ date: "8 de Janeiro, 2026",
+ readTime: "7 min",
+ image: "https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=800&q=80",
+ author: {
+ name: "Lucas Oliveira",
+ avatar: "/logohorse.png"
+ }
+ },
+ {
+ id: "5",
+ slug: "trabalho-remoto-produtividade",
+ title: "Como manter a produtividade trabalhando remotamente",
+ excerpt: "Estratégias comprovadas para equilibrar vida profissional e pessoal no modelo home office.",
+ category: "Dicas",
+ date: "5 de Janeiro, 2026",
+ readTime: "6 min",
+ image: "https://images.unsplash.com/photo-1498050108023-c5249f4df085?w=800&q=80",
+ author: {
+ name: "Ana Paula Mendes",
+ avatar: "/logohorse.png"
+ }
+ },
+ {
+ id: "6",
+ slug: "soft-skills-desenvolvedor",
+ title: "Soft skills essenciais para desenvolvedores de sucesso",
+ excerpt: "Além do código: as habilidades comportamentais que fazem a diferença na carreira tech.",
+ category: "Desenvolvimento",
+ date: "2 de Janeiro, 2026",
+ readTime: "9 min",
+ image: "https://images.unsplash.com/photo-1531482615713-2afd69097998?w=800&q=80",
+ author: {
+ name: "Felipe Rodrigues",
+ avatar: "/logohorse.png"
+ }
+ },
+ {
+ id: "7",
+ slug: "portfolio-desenvolvedor-destaque",
+ title: "Como criar um portfólio que impressiona recrutadores",
+ excerpt: "Aprenda a estruturar seus projetos de forma profissional e aumentar suas chances de contratação.",
+ category: "Carreira",
+ date: "28 de Dezembro, 2025",
+ readTime: "11 min",
+ image: "https://images.unsplash.com/photo-1467232004584-a241de8bcf5d?w=800&q=80",
+ author: {
+ name: "Juliana Ferreira",
+ avatar: "/logohorse.png"
+ }
+ },
+ {
+ id: "8",
+ slug: "inteligencia-artificial-empregos",
+ title: "IA e o futuro dos empregos em tecnologia",
+ excerpt: "Como a inteligência artificial está transformando o mercado de trabalho e criando novas oportunidades.",
+ category: "Tecnologia",
+ date: "25 de Dezembro, 2025",
+ readTime: "8 min",
+ image: "https://images.unsplash.com/photo-1677442136019-21780ecad995?w=800&q=80",
+ author: {
+ name: "Pedro Almeida",
+ avatar: "/logohorse.png"
+ }
+ },
+ {
+ id: "9",
+ slug: "negociar-salario-tech",
+ title: "Guia definitivo para negociar salário na área de TI",
+ excerpt: "Técnicas e estratégias para conseguir a melhor proposta salarial possível em sua próxima oportunidade.",
+ category: "Carreira",
+ date: "22 de Dezembro, 2025",
+ readTime: "10 min",
+ image: "https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?w=800&q=80",
+ author: {
+ name: "Rodrigo Martins",
+ avatar: "/logohorse.png"
+ }
+ }
+ ]
+
+ const filteredPosts = blogPosts.filter(post => {
+ const matchesSearch = post.title.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ post.excerpt.toLowerCase().includes(searchTerm.toLowerCase())
+ const matchesCategory = selectedCategory === "Todas" || post.category === selectedCategory
+
+ return matchesSearch && matchesCategory
+ })
+
+ const featuredPosts = blogPosts.filter(p => p.featured)
+ const regularPosts = filteredPosts.filter(p => !p.featured)
+
+ return (
+