🚀 Rainer's Global MCP Knowledge Hub
Sistema completo de gestão de conhecimento e workflows construído com NestJS seguindo os padrões oficiais e arquitetura limpa.
📋 Sobre o Projeto
Sistema desenvolvido para gestão de conhecimento, workflows de aprovação, análise de código com IA e busca inteligente, seguindo os princípios de Clean Architecture e Domain-Driven Design (DDD).
� Início Rápido
📖 Documentação
🚀 Getting Started
- Setup Guide - Complete setup and installation guide
- Quick Reference - Quick command reference
- **** - Docker setup and configuration
🤝 Contributing
- Contributing Guide - How to contribute to the project
- Security Policy - Security guidelines and vulnerability reporting
📚 Guides
🔗 API e Integração
🔧 Configuração e Instalação
📊 Análise e Arquitetura
🧪 Testes
- Framework: NestJS com Fastify
- Database: PostgreSQL com Prisma ORM
- Validação: class-validator + class-transformer
- Testes: Jest + Supertest (unit, integration, E2E)
- Container: Docker + Docker Compose
- Code Quality: ESLint + Prettier + Husky
- Documentação: Swagger/OpenAPI
- MCP Server: Code Intelligence MCP para análise de código com IA 🤖
🏗️ Arquitetura
O projeto segue a arquitetura modular do NestJS com Clean Architecture:
modules/${nomeModulo}/
├── application/ # Casos de uso (services)
├── domain/ # Entidades e objetos de valor
├── infrastructure/ # Controllers, Repositories, Services
├── interfaces/ # Interfaces TypeScript
├── tests/ # Testes (unit, integration, e2e)
└── ${nomeModulo}.module.ts📦 Módulos
1. Auth - Autenticação e Autorização
- Login e registro de usuários
- JWT com refresh tokens
- RBAC (Role-Based Access Control)
- Guards e decoradores personalizados
2. Users - Gestão de Usuários
- CRUD de usuários
- Perfis e configurações
- Gestão de roles
3. AI - Análise com Inteligência Artificial
- Análise de código
- Métricas e sugestões
- Processamento com IA
4. Workflows - Fluxos de Trabalho
- APPROVAL: Workflows de aprovação
- NOTIFICATION: Sistema de notificações
- PROCESS: Processos automatizados
5. Search - Busca e Indexação
- Busca em múltiplas entidades
- Indexação de conteúdo
- Histórico de buscas
6. Health - Monitoramento
- Health checks
- Status da aplicação
- Métricas de performance
🚀 Como Executar
Pré-requisitos
- Node.js 18+
- Docker e Docker Compose
- PostgreSQL (ou usar Docker)
Instalação
- Clone o repositório:
git clone
cd rainers-mcp-hub- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp .env.example .env- Inicie com Docker Compose:
docker-compose up -d- Execute as migrations do Prisma:
npx prisma migrate dev- Popule o banco com dados iniciais:
npm run prisma:seed- Inicie a aplicação:
# Desenvolvimento
npm run start:dev
# Produção
npm run build
npm run start:prod📚 Documentação
A documentação Swagger está disponível em:
- URL:
http://localhost:3000/api/docs - API Prefix:
/api
🧪 Execução de Testes
# Executar todos os testes
npm run test
# Executar com cobertura
npm run test:cov
# Executar testes E2E
npm run test:e2e
# Executar em modo watch
npm run test:watch🔧 Comandos Úteis
# Build
npm run build
# Linting
npm run lint
# Format
npm run format
# Prisma
npm run prisma:generate
npm run prisma:migrate
npm run prisma:studio
# Docker
docker-compose up -d # Iniciar containers
docker-compose down # Parar containers
docker-compose logs -f app # Ver logs da aplicação📊 Estrutura do Banco de Dados
O schema Prisma inclui:
- Users: Usuários e autenticação
- RefreshTokens: Tokens de renovação
- Workflows: Fluxos de trabalho
- WorkflowSteps: Etapas dos workflows
- Notifications: Sistema de notificações
- CodeAnalysis: Análises de código
- AIMetrics: Métricas de IA
- SearchIndex: Índices de busca
- SearchHistory: Histórico de buscas
🔐 Segurança
- Validação de dados com class-validator
- JWT para autenticação
- Bcrypt para hash de senhas
- Guards para proteção de rotas
- CORS configurado
- Variáveis de ambiente para secrets
📝 Padrões e Convenções
- Clean Architecture: Separação de responsabilidades
- DDD: Domain-Driven Design
- SOLID: Princípios SOLID aplicados
- Repository Pattern: Abstração de acesso a dados
- Use Case Pattern: Casos de uso isolados
- Dependency Injection: Injeção de dependência nativa NestJS
🤝 Contribuindo
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
👨💻 Autor
Rainer - Desenvolvedor Full Stack
Desenvolvido com ❤️ usando NestJS e Clean Architecture
