gohorsejobs/frontend
2025-12-09 20:29:49 -03:00
..
public first commit 2025-12-09 19:04:48 -03:00
src fix: refactor dashboard urls, fix layout duplication and resolve backend api errors 2025-12-09 20:29:49 -03:00
.dockerignore docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
.gitignore first commit 2025-12-09 19:04:48 -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
next.config.ts docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
package-lock.json first commit 2025-12-09 19:04:48 -03:00
package.json first commit 2025-12-09 19:04:48 -03:00
postcss.config.mjs first commit 2025-12-09 19:04:48 -03:00
README.md docs: complete project documentation overhaul 2025-12-09 19:36:36 -03:00
tsconfig.json first commit 2025-12-09 19:04:48 -03:00

Frontend - GoHorse Jobs

Next.js Tailwind CSS TypeScript

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


🏗️ 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
/vagas 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.