Um sistema imersivo de investigação detetivesca onde você assume o papel de um detetive experiente resolvendo casos complexos.
- Interface Completa: Home page, login, registro, dashboard e ambiente desktop
- Autenticação Segura: Sistema de JWT com controle de acesso
- Gestão de Casos: Dashboard com estatísticas e progresso do usuário
- Interface Policial Autêntica: Ambiente desktop simulando sistemas policiais reais
- API Robusta: Backend .NET com Entity Framework e SQLite
- Sistema Objeto Caso: Estrutura modular para criação de casos investigativos
NOVO! Sistema completo para criação e gerenciamento de casos investigativos modulares:
- Casos Modulares: Estrutura padronizada para fácil criação de novos casos
- Progressão Controlada: Sistema de desbloqueio baseado em evidências e tempo
- Análises Forenses: Simulação realista de laboratório com tempos de resposta
- Eventos Temporais: Memos, testemunhas e atualizações que aparecem dinamicamente
- Timeline Interativa: Reconstrução cronológica dos eventos do crime
- API REST Completa: Endpoints para carregamento e validação de casos
"Homicídio no Edifício Corporativo" - Um caso completo de assassinato com:
- 6 evidências interconectadas (documentos, fotos, vídeos, dados)
- 3 suspeitos com perfis detalhados e motivos
- 4 análises forenses (DNA, digitais, perícia digital)
- 3 eventos temporais (memos do chefe, nova testemunha, atualizações)
- Timeline completa do crime
- Solução definitiva com evidências conclusivas
- 📖 Documentação Completa do Sistema Objeto Caso
- 🧪 Testes HTTP - Endpoints de teste
NOVO! Sistema de geração automática de casos usando IA:
- Pipeline AI de 6 Fases: Geração completa automatizada de casos
- Phase 1: Seeding - Criação de arquivos base e bundle ID
- Phase 2: Planning - Planejamento hierárquico (Core → Suspects → Timeline → Evidence)
- Phase 3: Expansion - Expansão detalhada de conteúdo
- Phase 4: Design - Visual consistency registry e master references
- Phase 5: Generation - Documentos PDF e imagens via DALL-E
- Phase 6: Validation - Normalização + RedTeam analysis + Surgical fixes
- Arquitetura Modular: 6 serviços especializados para cada fase
- Azure Functions: Orquestração com .NET 9.0 Isolated Worker
- Monitoramento Completo: Application Insights e logging estruturado
- Storage Dedicado: Armazenamento para casos e bundles gerados
functions/CaseGen.Functions/Services/CaseGeneration/
├── PlanGenerationService.cs (282 lines) - Planejamento hierárquico
├── ExpandService.cs (513 lines) - Expansão de conteúdo
├── DesignService.cs (361 lines) - Design visual
├── DocumentGenerationService.cs (219 lines) - Geração de PDFs
├── MediaGenerationService.cs (149 lines) - Geração de imagens
└── ValidationService.cs (218 lines) - Validação e RedTeam
# Via GitHub Actions - Workflow: "🤖 Deploy Case Generator Infrastructure"
# Ou manualmente:
az deployment group create \
--resource-group casezero-casegen-dev-rg \
--template-file infrastructure/Functions/main.bicep \
--parameters @infrastructure/Functions/parameters.dev.json🔧 CI/CD Disponível: Este projeto inclui pipelines completos de CI/CD com GitHub Actions. Veja a documentação de CI/CD para implantação automatizada em Azure.
- Node.js 18+ e npm
- .NET 8 SDK
- Git
git clone https://github.com/lcarli/CaseZero-Alternative.git
cd CaseZero-Alternativecd backend/CaseZeroApi
# Restaurar dependências
dotnet restore
# Executar o servidor (irá criar banco SQLite automaticamente)
dotnet runO backend estará disponível em: http://localhost:5000
Em outro terminal:
cd frontend
# Instalar dependências
npm install
# Nota: É normal aparecer algumas vulnerabilidades moderadas de dependências
# Execute 'npm audit' para ver detalhes, mas evite 'npm audit fix --force'
# pois pode quebrar compatibilidade
# Executar servidor de desenvolvimento
npm run devO frontend estará disponível em: http://localhost:5173
⚠️ Nota sobre Testes: Durante desenvolvimento ativo, alguns testes podem falhar temporariamente. Para verificar se a aplicação está funcionando, teste manualmente a interface e as funcionalidades principais. Veja TROUBLESHOOTING.md para soluções de problemas comuns.
O sistema implementa um fluxo moderno de autenticação com verificação por email:
- Apenas 3 campos necessários: Nome, Sobrenome e Email Pessoal
- Email Institucional Automático: Gerado no formato
{nome}.{sobrenome}@fic-police.gov - Dados Automáticos: Badge, departamento (ColdCase) e posição (rook) gerados automaticamente
- Email de verificação enviado para o email pessoal
- Design HTML responsivo seguindo identidade visual do jogo
- Token de verificação válido por 24 horas
- Email de boas-vindas após verificação
- Rook: Nível inicial para novos usuários
- Detective: Nível intermediário
- Sergeant, Lieutenant, Captain, Commander: Níveis avançados
Utilize os arquivos .http organizados em tests/http-requests/:
tests/http-requests/
├── test-casegen.http # Testes gerais de geração
├── casegen-functions/
│ ├── test-real-pdf.http # Testes de PDF rendering
│ └── test-cover-page.http # Testes de cover page
└── casezero-api/
└── CaseZeroApi.http # Testes de API endpoints
Veja documentação completa para instruções de uso.
# 1. Obter token de autenticação (substitua pelas suas credenciais)
TOKEN=$(curl -X POST "http://localhost:5000/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "Password123!"}' | \
jq -r '.token')
# 2. Listar casos disponíveis
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:5000/api/caseobject
# 3. Carregar Case001
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:5000/api/caseobject/Case001
# 4. Validar estrutura do caso
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:5000/api/caseobject/Case001/validate- Framework: React 19 com TypeScript
- Roteamento: React Router DOM
- Estilização: styled-components
- Build: Vite
- Autenticação: Context API + JWT tokens
CaseZeroApi (Web API)
- Framework: ASP.NET Core 8
- Banco de Dados: SQLite com Entity Framework Core
- Autenticação: JWT + ASP.NET Identity
- API: RESTful endpoints
- CORS: Configurado para localhost:5173
- Sistema de Casos: CaseObjectService + API endpoints
CaseGen.Functions (Azure Functions)
- Runtime: .NET 9.0 Isolated Worker
- Arquitetura: 6 serviços especializados (1,742 linhas organizadas)
- Storage: Azure Blob Storage + Table Storage
- LLM: Azure OpenAI (GPT-4o)
- Images: DALL-E 3 via Azure OpenAI
- Caching: RedTeam analysis caching
- Logging: Structured logging com Application Insights
- Home Page - Apresentação do jogo detetivesco
- Registro - Registro simplificado com verificação por email
- Verificação de Email - Ativação da conta via email pessoal
- Login - Autenticação com email institucional/senha
- Dashboard - Visão geral de estatísticas e casos
- Desktop - Ambiente de trabalho para investigação de casos
- Casos - Sistema modular de casos investigativos
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # Componentes reutilizáveis
│ │ ├── contexts/ # React Contexts (Auth, Window)
│ │ ├── hooks/ # Custom hooks
│ │ ├── pages/ # Páginas da aplicação
│ │ └── services/ # API services
├── backend/ # .NET backend API only
│ ├── CaseZeroApi/ # Web API (.NET 8)
│ │ ├── Controllers/ # API controllers
│ │ ├── Models/ # Modelos de dados
│ │ ├── DTOs/ # Data Transfer Objects
│ │ ├── Data/ # DbContext
│ │ └── Services/ # Business logic
│ ├── CaseZeroApi.Tests/ # Unit tests (API)
│ └── CaseZeroApi.IntegrationTests/ # Integration tests
├── functions/ # Azure Functions case generator
│ └── CaseGen.Functions/ # Durable pipeline (.NET 9)
│ ├── Functions/ # Function endpoints
│ ├── Services/
│ │ └── CaseGeneration/ # 6 serviços especializados
│ ├── Models/ # Domain models
│ └── Schemas/ # JSON schemas
├── cases/ # Casos investigativos
│ ├── CASE-2024-001/ # Exemplo: Homicídio Corporativo
│ ├── CASE-2024-002/ # Exemplo: Roubo em Clínica
│ └── CASE-2024-003/ # Exemplo: Apropriação Indébita
│ ├── case.json # Configuração do caso
│ ├── evidence/ # Evidências
│ ├── suspects/ # Suspeitos
│ ├── forensics/ # Análises forenses
│ ├── memos/ # Memorandos temporais
│ └── witnesses/ # Testemunhas
├── tests/
│ └── http-requests/ # Testes HTTP REST Client
│ ├── test-casegen.http # Testes gerais
│ ├── casegen-functions/ # Testes Functions
│ └── casezero-api/ # Testes API
├── infrastructure/ # IaC (Bicep templates)
│ ├── Functions/ # Case Generator infra
│ └── Web/ # Web App infra
└── docs/ # Documentação técnica
├── BACKEND_ARCHITECTURE.md
├── CASE_GENERATION_PIPELINE.md
├── OBJETO_CASO.md
└── PDF_DOCUMENT_TEMPLATES.md
Frontend:
npm run dev # Servidor de desenvolvimento
npm run build # Build para produção
npm run lint # Verificar código
npm run test # Executar testes (vitest)
npm run test:run # Executar testes uma vez
npm audit # Verificar vulnerabilidades (normal ter algumas moderadas)Backend:
dotnet run # Executar servidor
dotnet build # Compilar projeto
dotnet test # Executar testes (alguns podem falhar durante desenvolvimento)
dotnet ef migrations # Gerenciar migraçõesTestes:
# Usar REST Client extension no VS Code
# Abrir arquivos em tests/http-requests/*.httpUse o Case Generator AI para gerar casos completos automaticamente:
# Via HTTP REST Client
# Ver tests/http-requests/casegen-functions/test-real-pdf.http
POST http://localhost:7071/api/GenerateCase
Content-Type: application/json
{
"difficulty": "Detective",
"timezone": "-03:00",
"generateImages": true
}- Copie a estrutura de um caso existente:
cp -r cases/CASE-2024-001 cases/CASE-2024-004-
Edite o arquivo
case.jsoncom novos dados -
Substitua os arquivos nas subpastas com novo conteúdo
-
Teste via API com os endpoints do CaseObjectController
Ver documentação completa para detalhes sobre estrutura de casos.
- Autenticação JWT com tokens de 7 dias
- Senhas hasheadas com BCrypt
- Validação de dados no frontend e backend
- Proteção de rotas sensíveis
- CORS configurado adequadamente
- Validação de arquivos de caso com sandboxing
O sistema foi desenvolvido com design responsivo, funcionando em:
- Desktop (resolução primária)
- Tablets
- Dispositivos móveis
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
- Use o Case Generator AI para geração automática via IA
- Ou copie um caso existente como template manual
- Siga a estrutura documentada em
docs/OBJETO_CASO.md - Teste com arquivos HTTP em
tests/http-requests/
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
✅ Concluído:
- Task 1: 7 PDF templates documentados + limpeza de documentação
- Task 2: CaseGenerationService dividido em 6 serviços especializados (3,938 → 1,742 linhas organizadas)
- Task 4: Removidos arquivos
package-lock.jsonórfãos - Task 6: Arquivos
.httporganizados emtests/http-requests/
📊 Métricas:
- Redução de complexidade: 56% do código organizado
- Serviços criados: 6 especializados + 1 coordinator
- Build status: ✅ 0 erros, 3 warnings pré-existentes
- Cobertura de testes: Em desenvolvimento (Task 3)
- Task 3: Testes unitários para os 6 novos serviços
- Atualização da documentação de arquitetura
- Melhorias na pipeline de CI/CD
Este projeto utiliza práticas modernas de DevOps com:
- CI/CD Automatizado: GitHub Actions com pipelines para desenvolvimento e produção
- Infraestrutura como Código: Templates BICEP para Azure
- Testes Automatizados: Testes unitários e de integração
- Segurança: Verificações de segurança e análise de vulnerabilidades
- Monitoramento: Application Insights e alertas de saúde