Skip to content

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.

Notifications You must be signed in to change notification settings

Baiao-de-Dados/rpe-backend

Repository files navigation

🚀 RPE Backend

NestJS TypeScript Prisma PostgreSQL Docker

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.

📋 Índice

🎯 Funcionalidades

👥 Gestão de Usuários

  • Autenticação JWT com roles hierárquicos
  • Perfis de usuário personalizados
  • Sistema de permissões avançado

📊 Avaliações de Performance

  • 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

🔄 Gestão de Ciclos

  • Criação e configuração de ciclos de avaliação
  • Controle de prazos e status
  • Acompanhamento de progresso

🤖 Integração com IA

  • Análise automática de feedback com Google GenAI
  • Sugestões de melhorias baseadas em IA
  • Equalização inteligente de avaliações

📈 Relatórios e Analytics

  • Dashboards de performance
  • Exportação de dados em Excel
  • Métricas de progresso individual e por equipe

💾 Import/Export

  • Importação em massa de usuários e avaliações
  • Exportação de relatórios
  • Validação automática de dados

🛠️ Tecnologias

Core

  • NestJS - Framework Node.js progressivo
  • TypeScript - Superset tipado do JavaScript
  • Prisma - ORM moderno para TypeScript

Banco de Dados

Autenticação & Segurança

  • JWT - JSON Web Tokens
  • Passport - Middleware de autenticação
  • bcrypt - Hash de senhas
  • Criptografia de campos sensíveis

Documentação & Validação

Integração IA

DevOps & Qualidade

📁 Estrutura do Projeto

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

🚀 Instalação e Configuração

Pré-requisitos

  • Node.js (v18 ou superior)
  • pnpm (gerenciador de pacotes)
  • PostgreSQL (v15 ou superior)
  • Docker (opcional)

1. Clone o repositório

git clone <repository-url>
cd rpe-backend

2. Instale as dependências

pnpm install

3. Configure as variáveis de ambiente

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

4. Configure o banco de dados

# Gerar cliente Prisma
pnpm db:generate

# Executar migrações
pnpm db:migrate

# Executar seed (dados iniciais)
pnpm prisma db seed

5. Inicie a aplicação

# Modo desenvolvimento
pnpm start:dev

# Modo produção
pnpm build
pnpm start:prod

🐳 Docker

Desenvolvimento com Docker Compose

# 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 imagem

# Build da aplicação
pnpm db:build

🗄️ Banco de Dados

Scripts úteis

# 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

Estrutura principal

  • Users: Usuários do sistema
  • Cycles: Ciclos de avaliação
  • Evaluations: Diferentes tipos de avaliação
  • Projects: Projetos e membros
  • Logs: Auditoria do sistema

📚 Documentação da API

A documentação completa da API está disponível via Swagger:

http://localhost:3000/api

Principais endpoints:

  • 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

# Testes unitários
pnpm test

# Testes em modo watch
pnpm test:watch

# Testes de cobertura
pnpm test:cov

# Testes E2E
pnpm test:e2e

🔐 Segurança

Implementações de Segurança

  • 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

Roles e Permissões

enum Role {
  ADMIN = 'ADMIN',
  MANAGER = 'MANAGER', 
  LEADER = 'LEADER',
  EMPLOYER = 'EMPLOYER'
}

📋 Scripts Disponíveis

Desenvolvimento

pnpm start:dev      # Inicia em modo desenvolvimento
pnpm start:debug    # Inicia com debug habilitado
pnpm build          # Build da aplicação

Banco de Dados

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

Qualidade de Código

pnpm lint           # Executa ESLint
pnpm format         # Formata código com Prettier
pnpm test           # Executa testes

Utilitários

pnpm prepare        # Configura Husky (hooks)

Desenvolvido com ❤️ para a RocketCorp

About

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.

Topics

Resources

Stars

Watchers

Forks

Contributors 5

Languages