No description
Find a file
Tiago Yamamoto 6c87078200 test: increase backend test coverage - sanitizer, middleware, handlers, services
- Add tests for SanitizeEmail, SanitizeDescription, DefaultSanitizer
- Add AuthMiddleware and RequireRole tests
- Add admin_handlers_test.go and location_handlers_test.go
- Expand application_service_test.go with more methods
2025-12-28 01:48:12 -03:00
.forgejo/workflows fix: use setup-go action instead of container image for CI tests 2025-12-28 01:32:56 -03:00
ass-email feat: add HTML email signature templates with dynamic fields 2025-12-11 15:13:52 -03:00
backend test: increase backend test coverage - sanitizer, middleware, handlers, services 2025-12-28 01:48:12 -03:00
backoffice chore(backoffice): update dependencies and resolve peer dependency warnings 2025-12-27 20:49:08 -03:00
docs docs: update roadmap with intense marketplace gap analysis 2025-12-27 23:15:46 -03:00
frontend feat: add backend tests to CI pipeline, improve responsive design, add unit tests 2025-12-28 01:27:48 -03:00
job-scraper-multisite chore(docker): setup google mirror for base images 2025-12-24 17:46:57 -03:00
k8s novo 2025-12-22 22:29:03 -03:00
seeder-api chore: update seeders with tickets and company profile data 2025-12-26 16:50:30 -03:00
.drone.yml Update .drone.yml 2025-12-27 11:09:43 -03:00
.gitignore chore: add Dockerfiles and gitignore files for all services 2025-12-14 09:28:09 -03:00
docker-compose.yml feat: configure backend dev deployment workflow 2025-12-27 22:54:37 -03:00
README.md docs: add b2c marketplace roadmap section to main readme 2025-12-27 23:38:53 -03:00
start.sh feat: expand testing, add fast seeder options, hardcode superadmin 2025-12-24 17:07:45 -03:00
verify_frontend.sh feat: Implement Ticket System, Profile Page integration, and fix migrations 2025-12-23 19:22:55 -03:00

🐴 GoHorse Jobs

Go Next.js NestJS PostgreSQL Docker

🇧🇷 Plataforma SaaS de recrutamento conectando empresas e profissionais de tecnologia.


💼 O Negócio

Proposta de Valor

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

🔄 Fluxos de Negócio

1. Empresa Publica Vaga

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]

2. Candidato Busca Emprego

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!)

flowchart LR
    A[/post-job] --> B[Dados da Empresa]
    B --> C[Dados da Vaga]
    C --> D[Confirmação]
    D --> E[Empresa + Vaga Criados]

🚀 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 para o Gap Analysis completo.


📚 Documentação

Documentação Principal

Documento Descrição
📖 docs/API.md Referência completa da API
🔐 docs/API_SECURITY.md Autenticação e RBAC
🗄️ docs/DATABASE.md Schema do banco de dados
🚀 docs/DEVOPS.md CI/CD, Docker, Kubernetes
🗺️ docs/ROADMAP.md Status e progresso
📋 docs/TASKS.md Tarefas detalhadas

Documentação por Componente

Componente Documentação Tech Stack
Backend backend/BACKEND.md Go, Clean Architecture, DDD
Frontend frontend/FRONTEND.md Next.js 15, Tailwind, shadcn
Backoffice backoffice/BACKOFFICE.md NestJS, Fastify, Stripe
Seeder seeder-api/README.md Node.js, PostgreSQL

🏗️ Arquitetura

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

Pré-requisitos

  • Docker v24+ ou Go 1.24+
  • Node.js v20+
  • PostgreSQL v16+

Instalação

# Clone
git clone https://github.com/rede5/gohorsejobs.git
cd gohorsejobs

# Configure
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env

# Backend
cd backend && go run ./cmd/api

# Frontend (outro terminal)
cd frontend && npm install && npm run dev

# Seeder (opcional)
cd seeder-api && npm install && npm run seed

Usando start.sh

./start.sh
# Escolha uma opção:
# 1. Run Backend
# 2. Run Frontend
# 3. Run Seeder
# 4. Run Migrations
# 5. Reset + Seed

🔑 Credenciais de Teste

Tipo Login Senha Acesso
SuperAdmin superadmin Admin@2025! Full
Company Admin takeshi_yamamoto Takeshi@2025 Empresa
Recruiter maria_santos User@2025 Vagas
Candidate paulo_santos User@2025 Candidato

🔧 Environment Variables

Backend

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

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

DATABASE_URL=postgres://user:pass@host:5432/db
STRIPE_SECRET_KEY=sk_test_xxx
AMQP_URL=amqp://user:pass@host:5672

📂 Estrutura

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

📊 Status do Projeto

Á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 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 para detalhes.


Desenvolvido com ❤️ pela equipe GoHorse