Commit graph

317 commits

Author SHA1 Message Date
Tiago Yamamoto
fd085ec193 feat(jobs/new): location autocomplete using /api/v1/locations/search
- Replace free-text location input with debounced autocomplete
- On country select, fetch its numeric ID from /api/v1/locations/countries
  and use it to scope the search results to that country
- Typing ≥2 chars in location field triggers GET /api/v1/locations/search
  with 350ms debounce; results show city (blue) and state (green) badges
- On result selection, stores cityId + regionId and sets the display label
  to "Name, Region" format; IDs are included in the job creation payload
- Spinner shown while searching; dropdown closes on outside click / select
- CEP search button preserved alongside the autocomplete

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:39:46 -06:00
Tiago Yamamoto
2686b69506 feat(jobs/new): add user account registration and fix companyId in job payload
- Add password + confirm-password fields to billing step (Step 3) so the
  recruiter creates their account credentials during the job posting flow
- Validate password length (≥8) and confirmation match before proceeding
- Extract company `id` from POST /auth/register/company response and send
  it as `companyId` in the job creation payload (was missing — caused 400)
- Pass `contact` (full name) to company registration endpoint
- Remove hardcoded "Temp@123456" password; use the user-provided one
- Remove hardcoded "+55" phone prefix; send raw digits with "+" prefix
- Add translations (pt-BR, en, es) for password fields and error messages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:32:55 -06:00
Tiago Yamamoto
d7b03dad19 docs: add AI context rules and missing READMEs 2026-02-21 13:33:36 -06:00
Tiago Yamamoto
de3f497223 fix: resolve TypeScript build errors preventing Coolify deploy
- Fix nullable location in my-jobs search filter (job.location ?? '')
- Fix Locale type assertion in jobs/new description language select
- Fix nullable location in api.ts transformApiJobToFrontend

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:33:45 -06:00
Tiago Yamamoto
7e202bb99e feat(i18n): fully translate /jobs/new page into pt-BR, en, and es
Replace all hardcoded Portuguese strings with locale-aware translations
using contentByLocale object. All 4 steps (job details, preview,
billing, payment), labels, placeholders, options, error messages,
and button texts now adapt to the user's selected language.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 06:06:12 -06:00
Tiago Yamamoto
55705a0fbb fix(i18n): initialize locale from browser/localStorage and add fallback chain
- Initialize useState with getInitialLocale() instead of hardcoded 'en',
  so the correct locale is used from the very first render
- Default to 'pt-BR' instead of 'en' for SSR and fallback
- Add fallback chain in t(): tries current locale -> pt-BR -> en
- Extract resolveKey() helper for cleaner key resolution
- Cast dictionaries as Record<string, unknown> to avoid type issues
- Wrap localStorage access in try-catch for blocked storage scenarios

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 06:02:06 -06:00
Tiago Yamamoto
8fb358a984 fix: remove edge runtime from job detail page and add description fallback
Remove `export const runtime = "edge"` which could interfere with i18n
JSON imports causing translation keys to render as literal text. Also
add fallback text when job description is empty.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 05:56:59 -06:00
Tiago Yamamoto
f6758c165c fix: resolve merge conflict markers in ApiJob interface and fix requirements type handling
Removed leftover <<<<<<< Updated upstream conflict markers that were breaking TypeScript compilation,
preventing the job detail page (/jobs/[id]) from loading real data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 05:47:08 -06:00
Tiago Yamamoto
4edcd22975 fix(frontend): sync job description language with selected locale 2026-02-18 08:41:09 -03:00
Tiago Yamamoto
064211ed11 fix: resolve merge conflicts in api.ts 2026-02-17 16:20:40 -06:00
Tiago Yamamoto
a6c5bae22d fix(frontend): ajustar idiomas e layout da página de publicar vaga 2026-02-17 18:48:04 -03:00
Tiago Yamamoto
c121132f1a feat(frontend): turn more jobs section into carousel 2026-02-17 18:37:24 -03:00
Tiago Yamamoto
28869a358c Fix job details i18n and load company data from API 2026-02-17 18:23:30 -03:00
Tiago Yamamoto
f39dc503d5 fix(frontend): apply jobs query filters and preserve search layout 2026-02-17 18:11:05 -03:00
Tiago Yamamoto
11b40fe700 fix: corrige URLs do frontend para HTTPS e SSL do seeder
- Frontend: adiciona API_URL e BACKOFFICE_URL como variáveis runtime
- Seeder: corrige parsing de sslmode do DATABASE_URL
- Seeder: aumenta timeout do healthcheck para 30s
2026-02-17 10:14:57 -06:00
Tiago Yamamoto
8fbb54c977 refactor job posting routes and add dashboard job creation page 2026-02-17 09:42:31 -03:00
Tiago Yamamoto
d9cdec5884 fix: corrige erros de tipagem no build do frontend 2026-02-16 16:07:09 -06:00
Tiago Yamamoto
e2b2f303e7 fix: replace readAt with read in notifications-dropdown
Align with Notification interface that uses 'read' boolean field
2026-02-16 09:24:15 -06:00
Tiago Yamamoto
bf14357285 fix: align Notification interface between api.ts and types.ts
- Add 'read' field to Notification interface in api.ts
- Remove duplicate Notification interface in candidate-dashboard.tsx
- Import Notification type from api.ts to ensure consistency
2026-02-16 09:05:48 -06:00
Tiago Yamamoto
11e0deef2a fix: resolve build errors for Coolify deployment
- Frontend: Remove duplicate useState import in applications page
- Backoffice: Install devDependencies during build for nest CLI
- Seeder: Fix healthcheck port to match app port (8080)
- Add Coolify CI/CD workflow for automatic deployment on push to dev
- Update DEVOPS.md with Coolify environment documentation
2026-02-16 08:42:29 -06:00
Tiago Yamamoto
6ec54460f8 docs: unify documentation structure
- Create docs/AGENTS.md for AI assistants context
- Create docs/WORKFLOWS.md consolidating deployment workflows
- Remove redundant docs/root/ folder
- Remove .agent/ folder (consolidated into docs/)
- Update dates in all documentation files
- Simplify README.md documentation section
2026-02-16 05:57:02 -06:00
Tiago Yamamoto
6fbd1f5ffc feat: implement full auth system with HTTPOnly cookies + JWT, fix migrations to UUID v7, remove mock data from frontend
Backend:
- Fix migrations 037-041 to use UUID v7 (uuid_generate_v7)
- Fix CORS defaults to include localhost:8963
- Fix FRONTEND_URL default to localhost:8963
- Update superadmin password hash with pepper
- Add PASSWORD_PEPPER environment variable

Frontend:
- Replace mockJobs with real API calls in home page
- Replace mockNotifications with notificationsApi in context
- Replace mockApplications with applicationsApi in dashboard
- Fix register/user page to call real registerCandidate API
- Fix hardcoded values in backoffice and messages pages

Auth:
- Support both HTTPOnly cookie and Bearer token authentication
- Login returns token + sets HTTPOnly cookie
- Logout clears HTTPOnly cookie
- Token valid for 24h
2026-02-16 05:20:46 -06:00
GoHorse Deploy
a3c2a18e61 Merge branch 'dev' of github.com:rede5/gohorsejobs into dev 2026-02-15 14:20:28 +00:00
Tiago Yamamoto
bbb7ecb462 Fix homepage card layout at medium-large breakpoints 2026-02-14 21:02:40 -03:00
Tiago Yamamoto
325a6efd71 Restaura fluxo Careerjet em 4 etapas no layout solicitado 2026-02-14 20:56:32 -03:00
Tiago Yamamoto
49d761cad8 feat: unificar campos de register job em publicar vaga 2026-02-14 20:33:54 -03:00
GoHorse Deploy
2a66e2888a Merge branch 'main' of github.com:rede5/gohorsejobs into dev 2026-02-14 21:58:08 +00:00
Tiago Yamamoto
83ed28a1fe feat(post-job): avançar checklist com status pós-pagamento e comprovante 2026-02-14 17:35:18 -03:00
Tiago Yamamoto
66c35ac6c5 feat(post-job): advance billing and payment flow parity 2026-02-14 17:30:37 -03:00
Tiago Yamamoto
01e7a3b920 feat(post-job): add preview and billing step to publish flow 2026-02-14 17:21:52 -03:00
Tiago Yamamoto
68e7db5e40 feat(post-job): add careerjet-style publication fields and validations 2026-02-14 17:14:15 -03:00
GoHorse Deploy
ae475e41a9 feat: implement careerjet gap analysis improvements
- Video Interview system (backend + frontend)
- Date Posted filter (24h, 7d, 30d)
- Company filter in jobs listing
- Recent searches persistence (LocalStorage)
- Job Alerts with email confirmation
- Favorite jobs with API
- Company followers system
- Careerjet URL compatibility (s/l aliases)
2026-02-14 19:37:25 +00:00
Tiago Yamamoto
66eb34a35b chore: update pnpm lockfiles for CI frozen installs 2026-02-14 15:57:54 -03:00
Tiago Yamamoto
5d2712f216 Ajusta colunas da home para evitar cards comprimidos 2026-02-14 15:51:43 -03:00
Tiago Yamamoto
b41bf56585 Refine migrations flow and lint tooling across apps 2026-02-14 15:42:40 -03:00
Tiago Yamamoto
b166ff440a Add Careerjet-compatible job search params and gap analysis 2026-02-14 15:12:04 -03:00
GoHorse Deploy
ed982caccc merge: resolve conflicts by accepting dev changes 2026-02-14 17:38:47 +00:00
Rede5
472ccc95e2 fix: resolve all merge conflicts in backend 2026-02-14 17:12:56 +00:00
Tiago Yamamoto
5884148f9f refactor(frontend): improve home visual hierarchy and responsiveness 2026-02-12 20:24:54 -03:00
Tiago Yamamoto
3ac4bc5fd5 chore: remove docker compose artifacts and references 2026-02-12 20:06:40 -03:00
Gabbriiel
f700dd075c Merge branch 'dev' of https://github.com/rede5/gohorsejobs into dev 2026-02-12 19:10:31 -03:00
Gabbriiel
1d8fe78697 docs: move diagrama de arquitetura para STATUS_REPORT.md 2026-02-12 19:09:41 -03:00
Tiago Yamamoto
e728a91deb docs(frontend): add design system guide for consistent UI changes 2026-02-12 16:34:19 -03:00
GoHorse Deploy
1569deb1ce Update infrastructure and frontend configuration 2026-02-11 13:24:12 +00:00
Tiago Yamamoto
5f984af73b Add architecture and frontend documentation anchors 2026-02-09 22:14:36 -03:00
GoHorse Deploy
5291f3f15d chore: database reset, frontend API configuration 2026-02-09 14:11:05 +00:00
GoHorse Deploy
65ac4233c2 fix(frontend): handle network errors gracefully in auth refresh 2026-02-09 11:31:30 +00:00
GoHorse Deploy
e1638f9275 feat(frontend): add Cadastro button next to Login, remove dropdown 2026-02-09 11:23:49 +00:00
GoHorse Deploy
5c8bdac215 fix(frontend): resolve hydration mismatch in navbar i18n 2026-02-09 11:16:18 +00:00
GoHorse Deploy
5c7b2c791c feat(frontend): apply HML layout with carousel arrows to dev 2026-02-09 11:10:59 +00:00
GoHorse Deploy
0df21b5dae feat(ui): implement jobs carousel and clean registration links 2026-02-08 03:21:15 +00:00
GoHorse Deploy
9f0b6ca809 feat(ui): remove registration submenu 2026-02-07 23:37:05 +00:00
GoHorse Deploy
5614d3b8b6 fix: use npm in Dockerfile 2026-02-07 23:06:46 +00:00
GoHorse Deploy
e51a16f622 trigger rebuild 2026-02-07 19:48:28 +00:00
GoHorse Deploy
fee98a651b fix: standardize apiUrl to api.rede5.com.br 2026-02-07 16:51:04 +00:00
GoHorse Deploy
ec974e8b1f fix: point apiUrl to api-dev.gohorsejobs.com 2026-02-07 16:36:04 +00:00
GoHorse Deploy
197e40bc2c fix: change default API URL to /api/v1 2026-02-07 15:37:45 +00:00
GoHorse Deploy
bf41617ac6 chore: merge dev into hml resolving conflicts 2026-02-07 14:46:03 +00:00
GoHorse Deploy
285b0f12f5 chore: ensure all changes are committed 2026-02-07 14:32:59 +00:00
GoHorse Deploy
e1a5163c3b Merge branch 'dev' into hml 2026-02-07 13:29:01 +00:00
Marcus
8a3b661a53 voltando 2026-01-31 10:34:26 -03:00
GoHorse Deploy
8070492e48 feat: New Home layout, Navbar and I18n improvements 2026-01-27 01:26:10 +00:00
Marcus
ea4f922c70 ci: imagens compressadas 2026-01-26 21:10:44 -03:00
eycksilva
5a38f49279 erro de deploy corrigido 2026-01-23 15:20:21 -03:00
eycksilva
ff23cb4eb4 atualizacao imagens e descricoes 2026-01-23 15:13:36 -03:00
NANDO9322
baf4f68ed0 ajuste page principal 2026-01-22 23:16:14 -03:00
eycksilva
2c7249b404 corrigido erro de deploy 2026-01-22 12:22:00 -03:00
eycksilva
e63792324f atualizacao idiomas e campo de digitacao 2026-01-22 12:08:31 -03:00
eycksilva
ac6c0d0276 erro de commit corrigido 2026-01-21 12:39:04 -03:00
eycksilva
d916bee429 att layout 2026-01-21 12:33:57 -03:00
eycksilva
6a9bbd84cd att layout 2026-01-20 15:48:58 -03:00
eycksilva
6ceb8c70bb atualizacao cards 2026-01-20 14:25:37 -03:00
eycksilva
9e0021b62b att erro corrigido 2026-01-20 14:00:11 -03:00
eycksilva
b1d2008f8c fix: adiciona tipagem para parametro tag em blog post page 2026-01-20 13:48:16 -03:00
eycksilva
dd7086bf34 atualizacao geral de funcionalidades 2026-01-20 12:36:48 -03:00
eycksilva
ffa0203ec0 atualizacao layout 2026-01-19 15:58:33 -03:00
NANDO9322
9a1fca0c36 feat: (TASK: Mudança na forma de operar os usuarios)
refatoração fluxo de vagas e correção login automático
- Frontend:
  - Implementa componente JobFormBuilder para perguntas dinâmicas
  - Atualiza página /post-job com fluxo de 3 etapas e integração do builder
  - Corrige payload de registro (auth.ts) enviando campo password corretamente
  - Implementa auto-login após cadastro da empresa (redirecionamento e token)
  - Remove páginas obsoletas de registro de candidato
- Backend:
  - Atualiza CreateCompanyUseCase para retornar token JWT
  - Ajusta JobService para persistência correta de campos JSON (Questions, Benefits)
  - Atualiza DTOs de Job e Company para refletir novas estruturas
  - Adiciona migração (033) para novas colunas de refatoração
  - Ajustes nos repositórios para suporte aos novos modelos
Ref: #refactor-jobs #fix-auth
2026-01-17 17:07:35 -03:00
NANDO9322
8f331c97d3 feat(backoffice): Implementa gestão de credenciais e novas abas administrativas
BACKEND:
- Implementa [CredentialsHandler](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/api/handlers/credentials_handler.go:9:0-11:1) e rotas /api/v1/system/credentials para gestão segura de chaves.
- Adiciona criptografia RSA no [CredentialsService](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/services/credentials_service.go:17:0-22:1) para proteger chaves de API (Stripe, Cloudflare, etc).
- Automatiza geração de pares de chaves RSA no .env via script.

FRONTEND:
- Refatora /dashboard/backoffice organizando em Abas: Dashboard, Planos, Stripe e Sistema.
- Implementa CRUD completo para gestão de Planos (criar, editar, remover).
- Adiciona visualização de status do Stripe e botão para limpar cache Cloudflare.
- Ajusta formatação de data nos logs para fuso horário America/Sao_Paulo.
- Atualiza pi.ts para suportar novos endpoints de planos e credenciais.
2026-01-09 17:18:51 -03:00
NANDO9322
c339c3fbaf feat(backoffice): corrige erro 500 e implementa seeder de banco
- Remove marcadores de conflito git em admin_service que causavam erro 500 em ListCompanies.
- Implementa SeederService no backend Go com streaming SSE para logs em tempo real.
- Expõe endpoints: GET /api/v1/seeder/seed/stream e POST /api/v1/seeder/reset.
- Atualiza config do frontend para apontar URL do seeder para a API backend.
- Corrige erros de sintaxe na UI do dashboard Backoffice e implementa busca de estatísticas.
- Garante lógica correta de UPSERT no seeder (RETURNING id) usando colunas 'identifier' e 'full_name' para evitar abortar transações.
- Corrige constraint de role em user_companies no seeder para usar 'admin'.
2026-01-09 12:21:56 -03:00
NANDO9322
6c178946cc resolve bug cloudflare 2026-01-08 18:22:25 -03:00
NANDO9322
ad558bc656 feat: melhorias na gestão de empresas e correções de persistência
- Backend: Correção na persistência do email da empresa (CreateCompanyUseCase) e suporte a exclusão em cascata (Cascade Delete) para evitar erro 500.
- Backend: Adicionado suporte completo para Phone, Website, Address, Description e Slug na criação.
- Backend: Correção crítica no JobService para ocultar nome de candidatos na listagem de vagas.
- Frontend: Adição da coluna 'Email' na listagem de empresas e padronização dos ícones de ação.
- Frontend: Inclusão de novas chaves de tradução (i18n) e melhorias no modal de criação.
2026-01-08 17:14:41 -03:00
NANDO9322
23ff95f1a8 fix: correcao cloudflare 2026-01-08 10:07:14 -03:00
NANDO9322
a43e664a56 fix: correcao cloudflare 2026-01-06 20:31:32 -03:00
NANDO9322
ddc2f5dd03 feat: atualiza fluxo de cadastro de candidatos com persistência completa de dados e máscara de telefone
Frontend:
- Implementar máscara de entrada de telefone para números BR ((XX) XXXXX-XXXX).
- Atualizar formulário de cadastro para enviar dados completos do perfil do candidato (endereço, formação, habilidades, etc.).
- Corrigir problemas de idioma misto na página de Detalhes da Vaga e adicionar traduções faltantes.

Backend:
- Atualizar modelo de Usuário, Entidade e DTOs para incluir campos de perfil (Data de Nascimento, Endereço, Formação, etc.).
- Atualizar UserRepository para persistir e recuperar os dados estendidos do usuário no PostgreSQL.
- Atualizar RegisterCandidateUseCase para mapear campos de entrada para a entidade Usuário.
2026-01-06 18:19:47 -03:00
NANDO9322
1f9b54d719 fix: resolve problemas de cadastro, seletor de localização e swagger
- Corrige violação de restrição de role no Registro de Candidato (usa 'candidate' em minúsculo)
- Corrige erro de chave duplicada para slug da empresa adicionando timestamp ao workspace do candidato
- Corrige crash no LocationPicker tratando respostas nulas no frontend e retornando arrays vazios no backend
- Corrige documentação do Swagger para o endpoint de Login e adiciona definição de segurança BearerAuth
2026-01-05 13:30:02 -03:00
Yamamoto
1b9bd81687 feat(tickets): add pagination, skeleton loading, create modal, i18n support 2026-01-05 11:26:45 -03:00
Tiago Yamamoto
b1107864b5 Add payment gateway configs and lock credentials 2026-01-03 20:28:21 -03:00
Tiago Yamamoto
aeb57f325a Fix profile updates, avatar upload, and settings 2026-01-03 20:21:29 -03:00
Tiago Yamamoto
ce26de6225 Fix locale sync for post job and candidates 2026-01-03 19:57:09 -03:00
Tiago Yamamoto
f6c10e5332 Remove user ID from admin tickets table 2026-01-03 19:37:23 -03:00
Tiago Yamamoto
762df003fd Localize home post job button 2026-01-03 18:42:09 -03:00
Yamamoto
08efbe4f2b feat(frontend): improve login error handling and user avatar
- Implemented more specific error messages for the login page, distinguishing between invalid credentials and server errors.
- Updated i18n files with new translations for login error messages.
- Improved the avatar fallback to use the user's email initials if their name is not available.
- Removed frontend-source.tar.gz from tracking.
- Chore: Added debug logs to the seeder-api location loader.
2026-01-03 18:28:12 -03:00
Yamamoto
c9fbcc22bb fix(i18n): add missing settings and seeder translations to all locales 2026-01-03 15:22:46 -03:00
Yamamoto
5155fa853d fix: Auth URL race, Seeder Reset 500, and UI confirmation modal
- auth.ts: await initConfig() before refreshSession to fix localhost fallback
- server.js: optional chaining req.body?.password for reset endpoint
- seeder/page.tsx: replace confirm() with elegant AlertDialog for reset
2026-01-03 14:21:29 -03:00
Yamamoto
621e4594c6 fix: resolve seeder connection, backoffice scroll and auth session refresh 2026-01-03 12:11:38 -03:00
Yamamoto
928997c9ce feat: enhance seeder ui, add logging stream and fix translations 2026-01-03 11:46:35 -03:00
Yamamoto
c8d4ff2726 fix: resolve migration 032 column size, update credentials, silence auth logs 2026-01-03 11:04:56 -03:00
Yamamoto
655f779b11 feat(dashboard): add seeder page for database seed/reset
- Add /dashboard/seeder page with Seed and Reset buttons
- Add Seeder item to sidebar (superadmin only)
- Use seeder API endpoints POST /seed and POST /reset
- Add confirmation dialogs for destructive actions
2026-01-03 10:16:34 -03:00
Yamamoto
0238195723 fix(auth): suppress SSR warning during build + add deploy docs to FRONTEND.md
- Move 'No user found in storage' log inside window check to avoid SSR logs
- Add CI/CD deploy section with Forgejo pipeline instructions
- Update documentation date
2026-01-03 09:46:38 -03:00
Yamamoto
31fadc1b11 feat(auth): migrate sessionStorage to localStorage and add refreshSession()
- Replace sessionStorage with localStorage for user data persistence
- Add refreshSession() function to restore session from HTTPOnly cookie via /users/me
- Update tests to use localStorage mocks
- Add 3 new tests for refreshSession() functionality
- Update superadmin credentials in README.md and DEVOPS.md
2026-01-03 09:33:55 -03:00