Merge pull request #54 from rede5/codex/revise-and-update-project-documentation

docs: unificar documentação e atualizar README principal
This commit is contained in:
Tiago Yamamoto 2026-02-14 17:07:28 -03:00 committed by GitHub
commit c33dd80ade
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 104 additions and 849 deletions

366
README.md
View file

@ -1,356 +1,104 @@
# 🐴 GoHorse Jobss
# 🐴 GoHorse Jobs
[![Go](https://img.shields.io/badge/Go-1.24-00ADD8?style=flat-square&logo=go)](https://golang.org/)
[![Next.js](https://img.shields.io/badge/Next.js-15-black?style=flat-square&logo=next.js)](https://nextjs.org/)
[![NestJS](https://img.shields.io/badge/NestJS-11-E0234E?style=flat-square&logo=nestjs)](https://nestjs.com/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?style=flat-square&logo=postgresql)](https://postgresql.org/)
[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=flat-square&logo=docker)](https://docker.com/)
Plataforma de recrutamento com arquitetura separada por serviços:
> 🇧🇷 Plataforma SaaS de recrutamento conectando empresas e profissionais de tecnologia.
- **Frontend**: Next.js (portal de vagas e dashboards).
- **Backend**: API em Go (regras de negócio, autenticação, dados).
- **Backoffice**: NestJS (administração, operações e integrações).
- **Seeder API**: utilitários para carga de dados de desenvolvimento.
---
## 💼 O Negócio
## ✅ Estado atual da documentação
### Proposta de Valor
Este repositório tinha documentação duplicada e com partes desatualizadas. A partir desta revisão:
**GoHorse Jobs** é uma plataforma completa de recrutamento que conecta empresas a candidatos qualificados, oferecendo:
| Para Empresas | Para Candidatos |
|---------------|-----------------|
| ✅ Publicar vagas ilimitadas | ✅ Buscar vagas com filtros avançados |
| ✅ Gerenciar candidaturas | ✅ Candidatar-se em 1 clique |
| ✅ Chat em tempo real | ✅ Perfil profissional completo |
| ✅ Painel de analytics | ✅ Notificações push |
| ✅ Múltiplos recrutadores | ✅ Favoritar vagas |
### Modelos de Monetização
| Plano | Features | Preço |
|-------|----------|-------|
| **Basic** | 3 vagas/mês, 1 usuário | Grátis |
| **Pro** | 20 vagas/mês, 5 usuários | R$ 199/mês |
| **Enterprise** | Ilimitado, SSO, API | Sob consulta |
- a **fonte canônica** de documentação geral passa a ser a pasta [`docs/`](docs/);
- arquivos antigos na raiz (ex.: `ROADMAP.md`, `STATUS_REPORT.md`) foram reduzidos para ponteiros;
- o roadmap foi simplificado para refletir prioridades reais do produto (sem backlog histórico de iniciativas fora de escopo atual).
---
## 🔄 Fluxos de Negócio
## 📚 Onde encontrar cada assunto
### 1. Empresa Publica Vaga
### Documentação central (canônica)
```mermaid
flowchart LR
A[Empresa] --> B[Registro/Login]
B --> C[Criar Vaga]
C --> D[Pagamento]
D --> E[Vaga Publicada]
E --> F[Candidatos Aplicam]
F --> G[Triagem]
G --> H[Contratação]
```
- [docs/API.md](docs/API.md) — endpoints, contratos e exemplos.
- [docs/API_SECURITY.md](docs/API_SECURITY.md) — autenticação, autorização e segurança.
- [docs/DATABASE.md](docs/DATABASE.md) — estrutura e decisões de dados.
- [docs/DEVOPS.md](docs/DEVOPS.md) — execução local, deploy e operação.
- [docs/ROADMAP.md](docs/ROADMAP.md) — direção de produto e engenharia.
- [docs/TASKS.md](docs/TASKS.md) — tarefas e acompanhamento de execução.
### 2. Candidato Busca Emprego
### Documentação por componente
```mermaid
flowchart LR
A[Candidato] --> B[Buscar Vagas]
B --> C[Filtrar]
C --> D[Ver Detalhes]
D --> E[Candidatar]
E --> F[Aguardar Resposta]
F --> G[Chat com Recrutador]
G --> H[Contratação]
```
### 3. Registro Rápido + Vaga (Novo!)
```mermaid
flowchart LR
A[/post-job/] --> B[Dados da Empresa]
B --> C[Dados da Vaga]
C --> D[Confirmação]
D --> E[Empresa + Vaga Criados]
```
- [backend/BACKEND.md](backend/BACKEND.md)
- [frontend/FRONTEND.md](frontend/FRONTEND.md)
- [backoffice/BACKOFFICE.md](backoffice/BACKOFFICE.md)
- [seeder-api/SEEDER-API.md](seeder-api/SEEDER-API.md)
---
## 🚀 Roadmap B2C (Marketplace Transformation)
Estamos transformando o GoHorse Jobs de um Job Board tradicional para um **Marketplace Completo** de Serviços e Produtos.
| Fase | Foco | Features Principais | Status |
|------|------|---------------------|--------|
| **1** | **Monetização** | Stripe Checkout, Boost de Vagas, Assinaturas | 🟡 Em Progresso |
| **2** | **Serviços (Gigs)** | Marketplace de Freelancers, Stripe Connect, Escrow | 🔴 Q1 2025 |
| **3** | **Loja (Store)** | Venda de Equipamentos, Merch, Logística | 🔴 Q2 2025 |
| **4** | **AI & Matching** | Video Interviews, Triagem Automática, Cover Letter AI | 🔴 Q3 2025 |
> Ver o [Roadmap Detalhado](docs/ROADMAP.md) para o Gap Analysis completo.
---
## 📚 Documentação
### Documentação Principal
| Documento | Descrição |
|-----------|-----------|
| 📖 [docs/API.md](docs/API.md) | Referência completa da API |
| 🔐 [docs/API_SECURITY.md](docs/API_SECURITY.md) | Autenticação e RBAC |
| 🗄️ [docs/DATABASE.md](docs/DATABASE.md) | Schema do banco de dados |
| 🚀 [docs/DEVOPS.md](docs/DEVOPS.md) | CI/CD, Docker, Kubernetes |
| 🗺️ [docs/ROADMAP.md](docs/ROADMAP.md) | Status e progresso |
| 📋 [docs/TASKS.md](docs/TASKS.md) | Tarefas detalhadas |
### Documentação por Componente
| Componente | Documentação | Tech Stack |
|------------|--------------|------------|
| **Backend** | [backend/BACKEND.md](backend/BACKEND.md) | Go, Clean Architecture, DDD |
| **Frontend** | [frontend/FRONTEND.md](frontend/FRONTEND.md) | Next.js 15, Tailwind, shadcn |
| **Backoffice** | [backoffice/BACKOFFICE.md](backoffice/BACKOFFICE.md) | NestJS, Fastify, Stripe |
| **Seeder** | [seeder-api/README.md](seeder-api/README.md) | Node.js, PostgreSQL |
---
## 🏗️ Arquitetura
```mermaid
graph TB
subgraph "Frontend (Appwrite)"
FE[Next.js 15]
end
subgraph "Backend (Kubernetes)"
API[Go API]
BO[NestJS Backoffice]
end
subgraph "Database"
DB[(PostgreSQL 16)]
end
subgraph "External Services"
MQ[LavinMQ]
S3[Cloudflare R2]
FCM[Firebase FCM]
AW[Appwrite Realtime]
ST[Stripe]
end
FE --> API
FE --> AW
API --> DB
API --> MQ
API --> S3
BO --> DB
BO --> MQ
BO --> FCM
BO --> ST
```
### Componentes
| Componente | Responsabilidade | Porta |
|------------|------------------|-------|
| **Frontend** | UI, SSR, Auth | 3000 |
| **Backend** | API REST, Business Logic | 8521 |
| **Backoffice** | Stripe, Email, FCM | 3001 |
| **PostgreSQL** | Persistência | 5432 |
| **LavinMQ** | Email Queue | 5672 |
---
## 🛠️ Tech Stack
### Backend (Go)
| Tecnologia | Uso |
|------------|-----|
| Go 1.24 | API REST |
| GORM | ORM |
| JWT v5 | Autenticação |
| Swagger | Documentação |
| BCrypt | Password hashing |
### Frontend (Next.js)
| Tecnologia | Uso |
|------------|-----|
| Next.js 15 | Framework |
| Tailwind 4 | CSS |
| shadcn/ui | Componentes |
| Framer Motion | Animações |
| Appwrite | Realtime |
### Backoffice (NestJS)
| Tecnologia | Uso |
|------------|-----|
| NestJS 11 | Framework |
| Stripe | Pagamentos |
| Nodemailer | Emails |
| Firebase Admin | Push |
---
## 🚀 Quick Start
## 🚀 Quick start
### Pré-requisitos
- Docker v24+ ou Go 1.24+
- Node.js v20+
- PostgreSQL v16+
- Go 1.24+
- Node.js 20+
- PostgreSQL 16+
### Instalação
### Subindo localmente
```bash
# Clone
# 1) clone
git clone https://github.com/rede5/gohorsejobs.git
cd gohorsejobs
# Configure
# 2) variáveis de ambiente (ajuste os valores)
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
# Backend
cd backend && go run ./cmd/api
# 3) backend
cd backend
go run ./cmd/api
# Frontend (outro terminal)
cd frontend && npm install && npm run dev
# 4) frontend (novo terminal)
cd ../frontend
npm install
npm run dev
# Seeder (opcional)
cd seeder-api && npm install && npm run seed
# 5) seeder (opcional)
cd ../seeder-api
npm install
npm run seed
```
### Usando start.sh
### Script auxiliar
```bash
./start.sh
# Escolha uma opção:
# 1. Run Backend
# 2. Run Frontend
# 3. Run Seeder
# 4. Run Migrations
# 5. Reset + Seed
```
---
## 🔑 Credenciais de Teste
## 🧱 Estrutura resumida
> [!NOTE]
> O SuperAdmin foi atualizado via migration `032_update_superadmin_lol.sql`.
> No primeiro login será necessário trocar a senha (status `force_change_password`).
| Tipo | Login | Email | Senha |
|------|-------|-------|-------|
| **SuperAdmin** | `lol` | `lol@gohorsejobs.com` | `Admin@2025!` |
| **Company Admin** | `takeshi_yamamoto` | - | `Takeshi@2025` |
| **Recruiter** | `maria_santos` | - | `User@2025` |
| **Candidate** | `paulo_santos` | - | `User@2025` |
> [!WARNING]
> Se o login retornar 401, verifique se a migration `032_update_superadmin_lol.sql` foi executada no banco.
---
## 🔧 Environment Variables
### Backend
```env
DATABASE_URL=postgres://user:pass@host:5432/db
JWT_SECRET=your-secret-key-min-32-chars
PASSWORD_PEPPER=your-pepper
CORS_ORIGINS=https://frontend.com
```
### Frontend
```env
NEXT_PUBLIC_API_URL=https://api.gohorsejobs.com
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_PROJECT_ID=your-project
```
### Backoffice
```env
DATABASE_URL=postgres://user:pass@host:5432/db
STRIPE_SECRET_KEY=sk_test_xxx
AMQP_URL=amqp://user:pass@host:5672
```
---
## 📂 Estrutura
```
```text
gohorsejobs/
├── backend/ # Go API (Clean Architecture)
│ ├── cmd/api/ # Entrypoint
│ ├── internal/ # Business logic
│ ├── migrations/ # 30 SQL migrations
│ └── BACKEND.md # Documentação
├── frontend/ # Next.js 15 App
│ ├── src/app/ # 35 pages
│ ├── src/components/ # 44 components
│ └── FRONTEND.md # Documentação
├── backoffice/ # NestJS API
│ ├── src/ # 7 modules
│ └── BACKOFFICE.md # Documentação
├── seeder-api/ # Node.js Seeder
│ └── README.md # Documentação
├── docs/ # Documentação central
│ ├── API.md
│ ├── API_SECURITY.md
│ ├── DATABASE.md
│ ├── DEVOPS.md
│ ├── ROADMAP.md
│ └── TASKS.md
├── k8s/ # Kubernetes manifests
│ ├── dev/
│ ├── hml/
│ └── prd/
└── start.sh # Script de inicialização
├── backend/
├── frontend/
├── backoffice/
├── seeder-api/
├── docs/
├── k8s/
└── start.sh
```
---
## 📊 Status do Projeto
## 🤝 Contribuição
| Área | Progresso | Status |
|------|-----------|--------|
| Backend API | 95% | 🟢 Production Ready |
| Frontend | 85% | 🟢 Funcional |
| Backoffice | 80% | 🟢 Funcional |
| Seeder | 100% | 🟢 Completo |
| Documentação | 95% | 🟢 Atualizada |
Ver [docs/ROADMAP.md](docs/ROADMAP.md) para detalhes.
---
## 🤝 Contribuindo
1. Fork o projeto
2. Crie sua branch (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'feat: add amazing feature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request
---
## 📄 Licença
Este projeto está sob a licença MIT. Veja [LICENSE](LICENSE) para detalhes.
---
<p align="center">
<sub>Desenvolvido com ❤️ pela equipe GoHorse</sub>
</p>
1. Crie uma branch de feature/fix.
2. Faça commits pequenos e objetivos.
3. Atualize documentação relevante em `docs/` quando necessário.
4. Abra PR com contexto, impacto e evidências de teste.

View file

@ -1,311 +1,7 @@
# 🗺️ GoHorse Jobs - Roadmap Completo
# Roadmap (movido)
> **Data**: 27/12/2024
> **Status**: Pré-lançamento
> **Objetivo**: Documentar funcionalidades existentes, gaps e próximos passos
Este arquivo foi mantido apenas por compatibilidade de links antigos.
---
A versão oficial e atualizada do roadmap está em:
## 📊 Status Atual do Projeto
### ✅ Funcionalidades Implementadas
#### Backend (Go API)
| Feature | Status | Endpoint |
|---------|--------|----------|
| Login/Autenticação | ✅ | `POST /api/v1/auth/login` |
| CRUD de Empresas | ✅ | `/api/v1/companies` |
| CRUD de Usuários | ✅ | `/api/v1/users` |
| CRUD de Vagas | ✅ | `/api/v1/jobs` |
| Candidaturas | ✅ | `/api/v1/applications` |
| Storage S3 | ✅ | `/api/v1/storage/*` |
| JWT com HttpOnly Cookies | ✅ | - |
| Rate Limiting | ✅ | 100 req/min |
| CORS configurado | ✅ | - |
| Swagger/OpenAPI | ✅ | `/docs` |
#### Frontend (Next.js 15)
| Feature | Status | Path |
|---------|--------|------|
| Homepage | ✅ | `/` |
| Login | ✅ | `/login` |
| Cadastro | ✅ | `/cadastro` |
| Listagem de Vagas | ✅ | `/vagas` |
| Detalhe da Vaga | ✅ | `/vagas/[id]` |
| Dashboard Admin | ✅ | `/dashboard` |
| Gestão de Usuários | ✅ | `/dashboard/users` |
| Gestão de Empresas | ✅ | `/dashboard/companies` |
| Gestão de Vagas | ✅ | `/dashboard/jobs` |
| Minhas Candidaturas | ✅ | `/dashboard/my-jobs` |
| Mensagens | ✅ | `/dashboard/messages` |
| Upload de Imagens | ✅ | Componente S3 |
#### Seeders (Node.js)
- ✅ Users (com roles diferentes)
- ✅ Companies (com dados completos)
- ✅ Jobs (vagas de exemplo)
- ✅ Applications
- ✅ Regions/Cities
#### DevOps
- ✅ Dockerfiles para todos os serviços
- ✅ Pipeline CI/CD (Drone)
- ✅ Manifests Kubernetes
- ✅ Documentação básica
---
## 🚨 Gaps Críticos para Lançamento (P0)
> [!CAUTION]
> Itens que **DEVEM** estar funcionando antes de ir ao ar
### 1. **Fluxo de Candidatura Completo**
```
[x] Frontend: Botão "Candidatar-se" na página de vagas
[x] Frontend: Modal/Form para anexar currículo
[x] Backend: Upload de currículo (PDF) para S3
[ ] Backend: Notificação por email para empresa
[x] Frontend: Tela "Minhas Candidaturas" funcional
```
### 2. **Gestão de Currículo/Perfil do Candidato**
```
[x] Frontend: Página de edição de perfil completo
[x] Backend: Endpoint PUT /api/v1/users/me
[x] Backend: Armazenar skills, experiências, educação
[x] Frontend: Upload de foto de perfil
```
### 3. **Dashboard da Empresa Funcional**
```
[x] Listar candidatos por vaga
[x] Alterar status da candidatura (aprovado/rejeitado/em análise)
[x] Visualizar currículo do candidato
[ ] Exportar lista de candidatos
```
### 4. **Recuperação de Senha**
```
[x] Frontend: Tela "Esqueci minha senha"
[x] Backend: Endpoint POST /api/v1/auth/forgot-password
[x] Backend: Integração com serviço de email (Mock)
[x] Backend: Endpoint POST /api/v1/auth/reset-password
```
### 5. **Validação de Dados**
```
[x] Backend: Validação de email único
[x] Backend: Validação de documento global (CNPJ/CPF/EIN)
[x] Frontend: Feedback de erros amigável
[x] Backend: Sanitização de inputs (XSS prevention)
[x] Frontend: Utilitário sanitize.ts
```
---
## ⚠️ Gaps Importantes (P1)
> [!WARNING]
> Itens importantes para experiência do usuário após lançamento
### 6. **Sistema de Notificações**
```
[x] Frontend: NotificationContext e NotificationDropdown
[x] Frontend: Badge de notificações no header
[x] Frontend: Lista de notificações (mock data)
[x] Backend: Tabela de notificações (migration 017)
[x] Backend: FCM (Firebase Cloud Messaging) integration
[x] Backend: Envio de email transacional (Mock)
[ ] Backend: Notificação por email para empresa (integração real)
```
### 7. **Busca e Filtros Avançados**
```
[x] Backend: Full-text search em vagas (PostgreSQL plainto_tsquery)
[x] Backend: Filtros por localização, salário, tipo (workMode, employmentType)
[x] Backend: Ordenação por data/salary/relevance
[x] Backend: Paginação otimizada (max 100 items)
[x] Frontend: UI de filtros avançados
```
### 8. **Painel Administrativo (Backoffice)**
```
[x] Módulos AdminModule, PlansModule, StripeModule
[x] TicketsModule com proxy para backend
[x] ActivityLogsModule com proxy para backend
[x] Dockerfile otimizado (multi-stage, non-root)
[x] Health endpoint
[x] Autenticação via Guard
[x] CRUD de usuários via backoffice (UI)
[x] Relatórios de uso (mock stats)
[x] Logs de atividade (integrado ao backend)
[x] Gestão de tickets/suporte (backend + backoffice)
```
### 9. **Métricas e Analytics**
```
[x] Contagem de visualizações por vaga
[x] Taxa de conversão (visualização → candidatura)
[x] Dashboard de métricas para empresas (API pronta)
[x] Integração com Google Analytics
```
### 10. **Integração Social**
```
[ ] Login com Google
[ ] Login com LinkedIn
[ ] Compartilhar vaga nas redes
[ ] Importar perfil do LinkedIn
```
---
## 📈 Melhorias Futuras (P2)
> [!TIP]
> Features que aumentam competitividade após MVP estável
### 11. **Matching Inteligente**
```
[ ] Algoritmo de match candidato-vaga
[ ] Recomendação de vagas personalizadas
[ ] Score de compatibilidade
[ ] Alertas de vagas similares
```
### 12. **Pagamentos e Monetização**
```
[ ] Planos para empresas (free/pro/enterprise)
[x] Destaque de vagas (featured)
[x] Pagamento via Stripe/Pix (Checkout Backend Implemented)
[~] Gestão de assinaturas (Fundação Backend Pronta)
```
### 13. **Testes e Avaliações**
```
[ ] Testes técnicos online
[ ] Sistema de avaliação de candidatos
[ ] Feedback pós-entrevista
[ ] Notas compartilhadas entre recrutadores
```
### 14. **Internacionalização**
```
[x] i18n frontend (pt-BR, en, es)
[ ] Vagas internacionais
[ ] Conversão de moeda
[ ] Timezones para entrevistas
```
### 15. **API Pública**
```
[ ] Documentação para parceiros
[ ] Rate limiting por API key
[ ] Webhooks para integração
[ ] SDK para desenvolvedores
```
---
## 🛠️ Débitos Técnicos
> [!NOTE]
> Itens de qualidade de código e infraestrutura
### Testes
```
[ ] Aumentar cobertura backend para 80%
[ ] Testes E2E com Playwright/Cypress
[ ] Testes de integração API
[ ] Testes de carga com k6
```
### Performance
```
[ ] Cache Redis para sessões
[ ] CDN para assets estáticos
[ ] Otimização de queries (N+1)
[ ] Lazy loading de imagens
```
### Segurança
```
[ ] Audit de dependências
[ ] Penetration testing
[ ] Backup automatizado do DB
[ ] Logs de segurança (SIEM)
[ ] Centralizar gestão do Stripe (Backend vs Backoffice)
[ ] Verificar assinatura de Webhooks Stripe
```
### Observabilidade
```
[ ] Métricas com Prometheus
[ ] Dashboards Grafana
[ ] Distributed tracing
[ ] Alertas (PagerDuty/OpsGenie)
```
---
## 📅 Cronograma Sugerido
### Semana 1 (Lançamento + Estabilização)
- [ ] Deploy para produção
- [ ] Monitorar erros e hotfixes
- [ ] Completar fluxo de candidatura básico
- [ ] Ajustar feedback de usuários
### Semana 2-3
- [ ] Recuperação de senha
- [ ] Dashboard empresa funcional
- [ ] Sistema de notificações básico
- [ ] Busca e filtros
### Semana 4-6
- [ ] Backoffice completo
- [ ] Login social (Google)
- [ ] Métricas básicas
- [ ] Melhorias de UX
### Mês 2+
- [ ] Monetização
- [ ] Matching inteligente
- [ ] API pública
- [ ] Expansão de features
---
## 🎯 Métricas de Sucesso para Lançamento
| Métrica | Meta |
|---------|------|
| Uptime | > 99% |
| Tempo de resposta API | < 200ms |
| Erros 5xx | < 0.1% |
| Vagas cadastradas | > 50 |
| Candidaturas | > 100 |
| Empresas ativas | > 10 |
---
## 💡 Notas Finais
O projeto tem uma base sólida com:
- Arquitetura limpa (Clean Architecture)
- Stack moderna (Go + Next.js 15)
- Multi-tenancy implementado
- CI/CD configurado
**Para o lançamento hoje**, foque em:
1. Garantir que login/cadastro funcionam
2. Vagas são listadas corretamente
3. Candidatura básica funciona
4. Comunicar limitações aos usuários beta
**Próximo passo imediato**: Testar o fluxo completo candidato → vaga → candidatura manualmente antes de ir ao ar.
---
*Documento gerado em 27/12/2024 - Atualizar conforme progresso*
- [`docs/ROADMAP.md`](docs/ROADMAP.md)

View file

@ -1,110 +1,8 @@
# 📊 Relatório Técnico & Status (GoHorseJobs)
# Status Report (movido)
## 1. Visão Geral da Arquitetura (Real vs. Planejado)
Este arquivo foi reduzido para evitar divergência de informação.
Este diagrama reflete o estado atual do sistema em ambiente de desenvolvimento (`localhost`), destacando os pontos funcionais e as integrações pendentes.
Para status e planejamento atuais, consulte:
* 🟢 **Verde:** Funcionando/Operacional.
* 🟡 **Amarelo:** Parcial/Bugado.
* 🔴 **Vermelho:** Quebrado/Faltando Config.
* 💀 **Vermelho Escuro:** Falha Crítica de Segurança.
```mermaid
graph TD
%% --- ESTILOS DE ALTO CONTRASTE ---
%% Adicionei 'color:#000' (Preto) e aumentei a borda para 3px
classDef working fill:#dcfce7,stroke:#16a34a,stroke-width:3px,color:#000;
classDef partial fill:#fef9c3,stroke:#ca8a04,stroke-width:3px,stroke-dasharray:5 5,color:#000;
classDef broken fill:#fee2e2,stroke:#dc2626,stroke-width:3px,stroke-dasharray:5 5,color:#000;
classDef critical fill:#991b1b,stroke:#fca5a5,stroke-width:4px,color:#fff;
classDef success fill:#dcfce7,stroke:#16a34a,stroke-width:3px,color:#000;
classDef warning fill:#fef9c3,stroke:#ca8a04,stroke-width:3px,color:#000;
classDef error fill:#fee2e2,stroke:#dc2626,stroke-width:3px,color:#000;
subgraph Frontend["Frontend & App"]
FE[Next.js 15]:::working
end
subgraph Backend["Core Backend"]
API[Go API]:::working
DB[(PostgreSQL)]:::working
BO[NestJS Backoffice]:::broken
end
subgraph Integracoes["Integrações (O Gargalo)"]
MQ[LavinMQ]:::broken
S3["Cloudflare R2/S3<br/>(Uploads)"]:::broken
FCM[Firebase FCM]:::broken
AW["Appwrite Realtime<br/>(Chat)"]:::broken
ST["Stripe<br/>(Pagamentos)"]:::broken
end
%% Fluxos
FE -->|✅ OK| API
API -->|✅ OK| DB
%% Falhas
API -.->|❌ Falha no Upload| S3
FE -.->|❌ Falha na Conexão| AW
API -.->|❌ Não Configurado| MQ
API -.->|❌ Mockado/Ignorado| ST
%% Alerta de Segurança
SEC["⚠️ FALHA CRÍTICA DE SEGURANÇA<br/>Usuário altera o próprio Role para SuperAdmin"]:::critical
FE -.-> SEC
%% Atores
Empresa((Empresa))
Candidato((Candidato))
%% Fluxo Empresa
subgraph JornadaEmpresa["Jornada da Empresa"]
LoginE[Login/Registro]:::success
Dash[Dashboard]:::warning
NewJob[Criar Vaga]:::warning
Payment[Pagamento]:::error
ListJobs[Listar Minhas Vagas]:::error
AdminUser[Gerenciar Usuários]:::success
end
%% Fluxo Candidato
subgraph JornadaCandidato["Jornada do Candidato"]
Search[Buscar Vagas]:::success
Details[Ver Detalhes]:::success
Apply[Candidatar-se]:::error
end
%% Conexões Empresa
Empresa --> LoginE
LoginE --> Dash
Dash -->|Botão 'Publish' não funciona| NewJob
NewJob -->|❌ Salva mas não aparece na lista| ListJobs
NewJob -.->|❌ Pula Etapa| Payment
LoginE -->|⚠️ PERIGO: Permite virar Admin| AdminUser
%% Conexões Candidato
Candidato --> Search
Search -->|Vê vaga criada pela empresa| Details
Details -->|❌ Erro: Upload Obrigatório Falha| Apply
%% Funcionalidades Isoladas
subgraph OutrosModulos["Outros Módulos"]
Tickets[Tickets/Suporte]:::success
Chat[Chat Realtime]:::error
end
```
## 2. Diagnóstico de Problemas Críticos
🚨 Segurança (Nível Crítico)
Escalada de Privilégio: Falha de controle de acesso (RBAC). A empresa consegue editar o próprio perfil e se tornar SuperAdmin via API/Frontend (PUT /users), ganhando controle total do sistema.
⛔ Funcional (Bloqueante)
Upload de Currículo: O fluxo do candidato é interrompido pois o campo de currículo é obrigatório, mas o serviço de Storage (S3/R2) não está configurado com as chaves de acesso.
Listagem de Vagas (Empresa): A empresa cria a vaga, mas ela não aparece na lista "Minhas Vagas" (possível erro de filtro por ID no backend).
🛠️ Próximos Passos Sugeridos
HOTFIX: Bloquear alteração de role no update de usuários.
INFRA: Configurar credenciais do Bucket S3/R2.
FIX: Corrigir query de listagem de vagas no dashboard da empresa.
- [`docs/ROADMAP.md`](docs/ROADMAP.md)
- [`docs/TASKS.md`](docs/TASKS.md)

View file

@ -1,146 +1,59 @@
# 🗺️ GoHorse Jobs & Marketplace - "The Intense" Roadmap (10X)
# 🗺️ Roadmap GoHorse Jobs (Atualizado)
**O Roadmap Definitivo.**
Este documento não é apenas uma lista de tarefas; é o **DNA estratégico e técnico** para transformar o GoHorse Jobs na plataforma dominante de empregos e serviços digitais no Brasil (e futuramente LATAM/Global).
> **Meta:** Deixar de ser um "Job Board" e tornar-se um **Ecossistema de Carreira**.
> **Filosofia:** "Extreme GoHorse" na velocidade, "Solid/Clean Arch" na fundação.
> Documento de direção de produto e engenharia.
>
> **Critério:** manter apenas itens que fazem sentido para o escopo atual da plataforma de recrutamento.
---
## 🏗️ Pilar 1: Fundação & Arquitetura (Já Consolidado)
*O alicerce que permite escalar sem quebrar.*
## 1) Prioridades em andamento
### 1.1 Backend & Core (Go)
- [x] **Clean Arch + DDD:** Separação estrita entre Handlers, Services, UseCases e Repositories.
- [x] **UUID v7:** Migração completa de INT para UUIDv7 (time-sorted) em todas as tabelas críticas (`users`, `jobs`, `applications`).
- *Por que?* Evita fragmentação de índices e permite sharding futuro sem conflitos.
- [x] **Testes de Integração:** Setup de `sqlmock` e `testify` para cobertura crítica de Handlers e Services.
- [x] **Logs Estruturados:** `slog` com rastreamento de RequestID para observabilidade total.
- **Confiabilidade do core de vagas e candidaturas**
- estabilidade de fluxo de candidatura;
- redução de falhas em integrações externas;
- melhoria de monitoramento e logs operacionais.
### 1.2 Frontend & UX (Next.js)
- [x] **Design System:** Componentes ShadCN/UI padronizados e responsivos.
- [x] **Auth Híbrida:** Suporte a JWT Bearer e Cookies para segurança máxima em clientes web e mobile.
- [x] **Dashboards Dedicados:** Áreas distintas e otimizadas para Candidatos (foco: aplicar rápido) e Recrutadores (foco: triagem rápida).
- **Segurança e governança**
- endurecimento de regras de autorização (RBAC);
- revisão de endpoints administrativos;
- trilha de auditoria para ações sensíveis.
- **Operação e deploy**
- padronização de ambientes (dev/hml/prd);
- melhoria de documentação de deploy e rollback;
- limpeza de dívida técnica em scripts operacionais.
---
## 💎 Pilar 2: Marketplace B2C & Monetização (Q1 2025)
*Transformando usuários gratuitos em receita recorrente.*
## 2) Próximas entregas (curto prazo)
### 2.1 Engine de Pagamentos (Stripe Integration)
**Objetivo:** Permitir fluxo financeiro fluido para B2B e B2C.
- **Experiência de empresa/recrutador**
- melhorar gestão de vagas e candidatos no dashboard;
- ajustes de filtros e listagens;
- melhorias de usabilidade nas ações mais frequentes.
- [ ] **Checkout de Vagas (B2B):**
- Empresas pagam para destacar vagas ("Featured") ou furar a fila de moderação.
- **Regra de Negócio:** Vaga paga entra como `status: published` automaticamente (após check de fraude). Vaga grátis entra como `review`.
- **Técnico:** Webhook Stripe (`checkout.session.completed`) atualiza tabela `job_payments` e dispara evento de publicação.
- [ ] **Assinaturas Recorrentes (SaaS):**
- Planos "Pro" para Recrutadores (Acesso ao Banco de Talentos, Filtros Avançados).
- Planos "Prime" para Candidatos (Destaque na busca, feedback detalhado de rejeição).
- [ ] **Marketplace de Serviços (Stripe Connect):**
- Candidatos vendem "Mentorias" ou "Revisão de CV".
- **Split de Pagamento:** Plataforma retém X% (ex: 15%), o resto vai para o prestador.
- **Técnico:** Uso de Stripe Connect Express para onboarding simplificado de vendedores (KYC automático).
- **Experiência do candidato**
- simplificação do processo de candidatura;
- melhoria de feedback de status;
- refinamento de notificações.
### 2.2 Gamificação & Engajamento
**Objetivo:** Viciar o usuário na plataforma (Retenção).
- [ ] **Sistema de Níveis (XP):**
- Ações geram XP: Completar perfil (+50XP), Aplicar (+10XP), Receber entrevista (+100XP).
- **Benefício:** Níveis altos ganham destaque visual ou acesso antecipado a vagas.
- [ ] **Badges Conquistáveis:** "Verificado", "Top Voice", "Dev Sênior", "Early Adopter".
- [ ] **Daily Streak:** Incentivo para login diário (ex: manter a visibilidade do perfil no topo).
- **Qualidade de código**
- aumento de cobertura de testes em pontos críticos;
- redução de inconsistências entre documentação e implementação;
- revisão de endpoints legados.
---
## 📦 Pilar 3: E-commerce & Logística (Q2 2025)
*Expansão física: Venda de Merch e Equipamentos para Home Office.*
## 3) Backlog estratégico (médio prazo)
### 3.1 Loja Oficial (Merch)
- [ ] **Catálogo de Produtos:** Camisetas, Canecas, Adesivos "GoHorse".
- [ ] **Integração de Estoque:** Controle simples de estoque (`product_variants`, `inventory_logs`).
- [ ] **Checkout Unificado:** O mesmo carrinho serve para Vagas Premium e Camisetas.
### 3.2 Logística & Frete (Brasil)
**Foco:** Adaptação total ao mercado brasileiro.
- [ ] **Cálculo de Frete (Correios/Melhor Envio):**
- Integração via API para cálculo em tempo real (SEDEX, PAC) baseado no CEP do usuário.
- **Fallback:** Tabela de contingência para frete fixo caso API caia.
- [ ] **Rastreamento:**
- Webhook de atualização de status de entrega (`código de rastreio` salvo no pedido).
- Notificação via WhatsApp/Email quando sair para entrega.
- [ ] **Regras Fiscais:** Integração básica para emissão de NF-e (via Bling ou eNotas) no momento da confirmação do pagamento.
- funcionalidades avançadas de matching e recomendação;
- expansão de integrações para aquisição e retenção de usuários;
- melhorias incrementais de monetização.
---
## 🧠 Pilar 4: Inteligência & Automação (Q3 2025 - "GoHorse AI")
*Onde a mágica acontece. O diferencial competitivo.*
## 4) O que foi removido deste roadmap
### 4.1 Matching Semântico (Vector Search)
- [ ] **Embeddings:** Gerar vetores (OpenAI ou Local LLM) para:
- Descrições de Vagas.
- Currículos/Bios de Candidatos.
- [ ] **Busca Vetorial (pgvector):**
- Substituir o `LIKE` ou `Fuzzy` por busca semântica (`cosine similarity`).
- **Resultado:** Busca por "Frontend Ninja" retorna perfis com "React", "Vue", "Angular" mesmo sem a palavra exata.
Para evitar ruído, este documento **não mantém mais iniciativas históricas fora do foco atual**, incluindo trilhas antigas de e-commerce/logística (ex.: frete/correios) e planejamentos especulativos sem execução ativa.
### 4.2 Assistente de Carreira (LLM Agent)
- [ ] **Review de Currículo Automático:**
- AI analisa o PDF e sugere melhorias (ex: "Use verbos de ação", "Quantifique resultados").
- [ ] **Gerador de Cover Letter:**
- Bot lê a vaga + perfil do usuário e gera uma carta personalizada em segundos.
- [ ] **Pre-Screening Bot:**
- Chatbot no WhatsApp/Site que faz perguntas de triagem ("Você tem 3 anos de Exp?", "Inglês Fluente?") e classifica o candidato para o RH.
---
## 📱 Pilar 5: Mobile First & Notificações (Ongoing)
*Estar onde o usuário está: No celular.*
- [ ] **PWA (Progressive Web App):**
- Service Workers para cache offline agressivo (funcionar no metrô/ônibus).
- "Add to Home Screen" com ícone nativo.
- [ ] **Notificações Push (FCM):**
- Alerta de vaga nova (match).
- Alerta de "Visto por um recrutador".
- Alerta de status de entrega de produto.
- [ ] **Integração WhatsApp (Twilio/ZAP):**
- Candidato recebe link de entrevista direto no Wpp.
- Recrutador recebe aviso de "Candidato Perfeito" no Wpp.
---
## 🛡️ Pilar 6: Segurança & Compliance (LGPD)
*Protegendo o ativo mais valioso: Dados.*
- [ ] **Anonimização de Dados:** Opção para candidato "esconder" nome/contato até o match.
- [ ] **Auditoria Completa (Audit Trail):**
- Quem acessou o currículo de quem? (Já iniciado em `activity_logs`).
- Registro imutável de alterações salariais ou contratuais.
- [ ] **Pre-signed URLs:** Curriculos no S3/R2 com links temporários (TTL 15min) para evitar scraping.
- [ ] **Anti-Fraud:** Rate-limiting agressivo em endpoints de login e cadastro. Detecção de emails temporários.
---
## 📊 Gap Analysis Técnico (O que precisamos resolver JÁ)
| Área | Gap | Solução Técnica Proposta | Complexidade |
|------|-----|--------------------------|--------------|
| **Busca** | Postgres `Semântico` | Implementar `pgvector` ou ElasticSearch. A busca atual não escala. | Alta |
| **Email** | SMTP Síncrono | Migrar para Fila (Redis/RabbitMQ) + Worker assíncrono para envio de emails em massa. | Média |
| **Cache** | Inexistente | Implementar Redis para cache de `GET /jobs` e Sessões de Usuário. | Média |
| **Img** | Upload Direto | Implementar Image Processing (Sharp/Go) para resize/compression antes do S3. | Baixa |
| **Logs** | Arquivo Local | Centralizar logs (Loki/Elastic) para visualização no Grafana. | Alta |
---
## 📅 Cronograma Estimado (Dev)
- **Semana 1-2:** Fixar Testes Backend, Estabilizar Deploy, Finalizar C4 Model.
- **Semana 3-4:** Implementar Stripe Checkout (Pagamento Básico).
- **Semana 5-6:** Módulo de Logística (Básico - Frete Correios).
- **Semana 7-8:** Início do Módulo AI (Matching Vetorial).
> *"O futuro pertence a quem deploya na sexta-feira."* 🚀
Histórico detalhado, quando necessário, deve ser consultado por commit/PR anterior.