gohorsejobs/frontend
Tiago Yamamoto 592af3216e feat: connect Apply Now to applications API
Frontend changes:
- Add applicationsApi with create() and getByJob() in api.ts
- Update apply/page.tsx to fetch job from API and submit to backend
- Fix job detail page requirements null check
- Use ApiJob type instead of mock Job type
- Replace job.company with job.companyName throughout

Note: Backend has type mismatch issues that need fixing:
- jobs endpoint: varchar vs integer comparison
- applications: null id constraint
2025-12-23 08:29:15 -03:00
..
public Add English jobs slug with redirects 2025-12-22 14:58:11 -03:00
src feat: connect Apply Now to applications API 2025-12-23 08:29:15 -03:00
.dockerignore docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
.env.example chore: add scraper API URL to frontend .env.example and fix gitignore 2025-12-14 09:57:02 -03:00
.gitignore chore: add scraper API URL to frontend .env.example and fix gitignore 2025-12-14 09:57:02 -03:00
.npmrc first commit 2025-12-09 19:04:48 -03:00
.stylelintrc.json docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
components.json first commit 2025-12-09 19:04:48 -03:00
Dockerfile docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
eslint.config.mjs first commit 2025-12-09 19:04:48 -03:00
jest.config.js test(frontend): add jest setup and integration tests for API client 2025-12-15 10:26:12 -03:00
jest.setup.js test(frontend): add jest setup and integration tests for API client 2025-12-15 10:26:12 -03:00
next.config.ts docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
package-lock.json feat: security refactor, server-side pagination, and docs update 2025-12-23 00:50:51 -03:00
package.json feat: security refactor, server-side pagination, and docs update 2025-12-23 00:50:51 -03:00
postcss.config.mjs first commit 2025-12-09 19:04:48 -03:00
README.md feat: security refactor, server-side pagination, and docs update 2025-12-23 00:50:51 -03:00
tsconfig.json first commit 2025-12-09 19:04:48 -03:00
wrangler.toml fix(frontend): remove invalid sections from wrangler.toml 2025-12-15 16:31:26 -03:00

Frontend - GoHorse Jobs

Next.js Tailwind CSS TypeScript

Frontend da plataforma GoHorse Jobs construído com Next.js 15 e App Router.

Features Recentes

  • Server-Side Pagination: Listagem de vagas otimizada com paginação real.
  • Busca e Filtros: Filtragem por localização, tipo e modo de trabalho integrada ao backend.
  • Internacionalização (i18n): Suporte a múltiplos idiomas (PT, EN, ES).
  • Skeleton Loading: UI polida com estados de carregamento.
  • FAQ & Contato: Páginas de suporte com tickets simulados.

🏗️ Arquitetura

src/
├── app/                    # App Router (Páginas)
│   ├── dashboard/          # Área logada
│   │   ├── admin/          # Painel SuperAdmin
│   │   ├── empresa/        # Painel Empresa
│   │   └── candidato/      # Painel Candidato
│   ├── login/              # Autenticação
│   ├── vagas/              # Listagem pública
│   └── layout.tsx          # Layout raiz
│
├── components/             # Componentes React
│   ├── ui/                 # shadcn/ui primitives
│   ├── forms/              # Formulários reutilizáveis
│   └── (feature)/          # Componentes por feature
│
├── contexts/               # React Contexts
│   └── AuthContext.tsx     # Autenticação global
│
├── hooks/                  # Custom Hooks
│   ├── useAuth.ts          # Hook de autenticação
│   └── useProfile.ts       # Hook de perfil
│
└── lib/                    # Utilitários
    ├── api.ts              # Cliente HTTP
    └── utils.ts            # Helpers gerais

🎨 Design System

Tecnologias

Tecnologia Uso
shadcn/ui Componentes base (Radix UI)
Tailwind CSS 4 Estilização utility-first
Lucide Icons Ícones
Framer Motion Animações

Tema

O tema está definido em src/app/globals.css usando CSS variables com cores oklch():

  • Primary: Laranja (oklch(0.68 0.22 45))
  • Background: Light/Dark mode automático
  • Componentes: Herdam do design system

📱 Páginas Principais

Rota Descrição Acesso
/ Landing page Público
/jobs Listagem de vagas Público
/login Autenticação Público
/dashboard/admin Painel admin SuperAdmin
/dashboard/empresa Painel empresa CompanyAdmin, Recruiter
/dashboard/candidato Painel candidato JobSeeker

🚀 Desenvolvimento

Instalar dependências

npm install

Executar em desenvolvimento

npm run dev

Build de produção

npm run build
npm run start

Linting

npm run lint

🐳 Docker

# Build
docker build -t gohorse-frontend .

# Run
docker run -p 3000:3000 gohorse-frontend

Nota: Requer output: "standalone" no next.config.ts (já configurado).


📁 Componentes Principais

Componente Descrição
components/ui/* Primitivos shadcn/ui
components/dashboard-* Componentes do dashboard
components/job-* Componentes de vagas
components/sidebar.tsx Navegação lateral

🔧 Configuração

Variáveis de Ambiente

NEXT_PUBLIC_API_URL=http://localhost:8080

TypeScript

Configurado com strict mode em tsconfig.json.

ESLint

Configurado com next/core-web-vitals e next/typescript.