Sistema de Avaliação de Performance de Colaboradores (RPE) da RocketCorp. Uma API robusta e escalável construída com NestJS para gerenciar ciclos de avaliação, feedback 360°, mentoria e relatórios de performance empresarial.
- 🎯 Funcionalidades
- 🛠️ Tecnologias
- 📁 Estrutura do Projeto
- 🚀 Instalação e Configuração
- 🐳 Docker
- 🗄️ Banco de Dados
- 📚 Documentação da API
- 🧪 Testes
- 🔐 Segurança
- 📋 Scripts Disponíveis
- Autenticação JWT com roles hierárquicos
- Perfis de usuário personalizados
- Sistema de permissões avançado
- Autoavaliação: Colaboradores avaliam seu próprio desempenho
- Avaliação 360°: Feedback multidirecional de pares, gestores e subordinados
- Avaliação Gerencial: Avaliações conduzidas por gestores
- Avaliação de Liderança: Feedback específico para líderes
- Criação e configuração de ciclos de avaliação
- Controle de prazos e status
- Acompanhamento de progresso
- Análise automática de feedback com Google GenAI
- Sugestões de melhorias baseadas em IA
- Equalização inteligente de avaliações
- Dashboards de performance
- Exportação de dados em Excel
- Métricas de progresso individual e por equipe
- Importação em massa de usuários e avaliações
- Exportação de relatórios
- Validação automática de dados
- NestJS - Framework Node.js progressivo
- TypeScript - Superset tipado do JavaScript
- Prisma - ORM moderno para TypeScript
- PostgreSQL - Banco de dados relacional
- JWT - JSON Web Tokens
- Passport - Middleware de autenticação
- bcrypt - Hash de senhas
- Criptografia de campos sensíveis
- Swagger - Documentação automática da API
- class-validator - Validação de DTOs
- class-transformer - Transformação de objetos
- Google GenAI - Análise inteligente de feedback
- Docker - Containerização
- Jest - Framework de testes
- ESLint - Linter para código
- Prettier - Formatador de código
- Husky - Git hooks
src/
├── ai/ # Integração com IA (Google GenAI)
├── auth/ # Autenticação e autorização
├── common/ # Utilitários e decorators compartilhados
├── cryptography/ # Sistema de criptografia
├── cycles/ # Gestão de ciclos de avaliação
├── evaluations/ # Sistema de avaliações
├── import-export/ # Funcionalidades de import/export
├── log/ # Sistema de logs
├── notes/ # Sistema de anotações
├── prisma/ # Configuração do Prisma
├── track/ # Rastreamento de atividades
└── user/ # Gestão de usuários
- Node.js (v18 ou superior)
- pnpm (gerenciador de pacotes)
- PostgreSQL (v15 ou superior)
- Docker (opcional)
git clone <repository-url>
cd rpe-backend
pnpm install
cp .env.example .env
Edite o arquivo .env
com suas configurações:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/rpe_dev"
# JWT
JWT_SECRET="your-super-secret-jwt-key"
# CRYPTOGRAPHY
ENCRYPTION_KEY="your_32_bytes_encryption_key_;)"
ENCRYPTION_PEPPER="your_16_bytes_encryption_pepper_"
# AI Integration
GOOGLE_AI_API_KEY="your-google-ai-api-key"
# App
PORT=3000
NODE_ENV=development
# Gerar cliente Prisma
pnpm db:generate
# Executar migrações
pnpm db:migrate
# Executar seed (dados iniciais)
pnpm prisma db seed
# Modo desenvolvimento
pnpm start:dev
# Modo produção
pnpm build
pnpm start:prod
# Subir apenas o banco de dados
pnpm db:up
# Subir toda a aplicação
pnpm db:run
# Parar os containers
pnpm db:down
# Build da aplicação
pnpm db:build
# Prisma Studio (Interface visual)
pnpm db:studio
# Reset do banco (⚠️ Cuidado em produção)
pnpm prisma migrate reset
# Deploy de migrações
pnpm db:deploy
- Users: Usuários do sistema
- Cycles: Ciclos de avaliação
- Evaluations: Diferentes tipos de avaliação
- Projects: Projetos e membros
- Logs: Auditoria do sistema
A documentação completa da API está disponível via Swagger:
http://localhost:3000/api
- Auth:
/auth
- Autenticação e registro - Users:
/users
- Gestão de usuários - Cycles:
/cycles
- Ciclos de avaliação - Evaluations:
/evaluations
- Sistema de avaliações - AI:
/ai
- Funcionalidades de IA
# Testes unitários
pnpm test
# Testes em modo watch
pnpm test:watch
# Testes de cobertura
pnpm test:cov
# Testes E2E
pnpm test:e2e
- Autenticação JWT com refresh tokens
- Criptografia de campos sensíveis (emails, feedback)
- Validação rigorosa de entrada com class-validator
- Rate limiting e proteção contra ataques
- Logs de auditoria completos
- CORS configurado para ambientes específicos
enum Role {
ADMIN = 'ADMIN',
MANAGER = 'MANAGER',
LEADER = 'LEADER',
EMPLOYER = 'EMPLOYER'
}
pnpm start:dev # Inicia em modo desenvolvimento
pnpm start:debug # Inicia com debug habilitado
pnpm build # Build da aplicação
pnpm db:up # Sobe containers do banco
pnpm db:migrate # Executa migrações
pnpm db:generate # Gera cliente Prisma
pnpm db:studio # Abre Prisma Studio
pnpm lint # Executa ESLint
pnpm format # Formata código com Prettier
pnpm test # Executa testes
pnpm prepare # Configura Husky (hooks)
Desenvolvido com ❤️ para a RocketCorp