Skip to content

uelberbell/Java-Code-Analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Code Analyzer PRO 🔍

Ferramenta profissional para análise de padrões de código Java com interface estilo SonarQube

Version Electron License Author AI

📋 Índice

🎯 Sobre o Projeto

O Java Code Analyzer PRO é uma ferramenta desktop desenvolvida com Electron que realiza análise estática de código Java, identificando problemas de qualidade, padrões de código, vulnerabilidades de segurança e code smells.

Com interface inspirada no SonarQube, oferece uma experiência profissional para desenvolvedores e equipes que buscam manter alta qualidade em seus projetos Java.

✨ Principais Diferenciais

  • 🎨 Interface PRO estilo SonarQube
  • 📊 Dashboard de métricas em tempo real
  • 🚨 Quality Gate automático (PASSED/FAILED)
  • 🔍 15.000+ issues analisados simultaneamente
  • 📱 Scroll infinito para performance otimizada
  • 💾 Memória de último caminho utilizado
  • 🎯 Filtros avançados por severidade e categoria
  • 📋 Detalhes completos de cada issue

🚀 Funcionalidades

Core Features

  • Análise de padrões de código Java
  • Detecção de code smells
  • Análise de segurança (SQL Injection, senhas hardcoded)
  • Verificação de performance
  • Padrões de produção (TODOs, código debug)
  • Cálculo de dívida técnica
  • Relatórios detalhados por arquivo

Interface Features

  • 🎨 Interface dual: Clássica + PRO
  • 📊 Dashboard com métricas visuais
  • 🔍 Sistema de filtros avançado
  • 📱 Design responsivo
  • 🎯 Modal de detalhes interativo
  • 💾 Memória de sessão (último caminho)
  • Scroll infinito otimizado

Quality Features

  • 🚨 Quality Gate automático
  • 📈 Distribuição por severidade: Blocker, Critical, Major, Minor, Info
  • 🏷️ Categorização: Padrões, Code Smells, Produção, Performance, Segurança
  • ⏱️ Tempo estimado para correção
  • 🎯 Priorização inteligente de issues

📸 Capturas de Tela

Tela Principal

Tela Principal Interface principal com branding Capgemini e GitHub Copilot

Interface PRO

Interface PRO Dashboard estilo SonarQube com métricas em tempo real

Modal de Detalhes

Modal Detalhes Modal com informações completas do issue e sugestões de correção

🔧 Pré-requisitos

Antes de começar, certifique-se de ter instalado:

Node.js >= 16.0.0
npm >= 8.0.0

Verificar instalação:

node --version
npm --version

📦 Instalação

1. Clone o repositório

git clone https://github.com/your-repo/Java-Code-Analyzer.git
cd Java-Code-Analyzer

2. Instale as dependências

npm install

3. Execute a aplicação

npm start

4. Para desenvolvimento com debug

npm run dev

🎮 Como Usar

Primeira Análise

  1. Abra a aplicação
  2. Clique em "Selecionar Pasta"
  3. Escolha a pasta com arquivos Java (ex: JavaSource/)
  4. Clique em "Analisar Código"
  5. Aguarde a análise (spinner de loading)
  6. Clique em "Ver Análise Completa" para interface PRO

Interface PRO

  • 📊 Dashboard: Visualize métricas principais
  • 🚨 Quality Gate: Status geral do projeto
  • 📈 Severidade: Distribição dos problemas
  • 🏷️ Categorias: Tipos de issues encontrados
  • 🔍 Filtros: Refine a visualização
  • 📋 Tabela: Lista completa com scroll infinito
  • 👁️ Detalhes: Modal com informações completas

Filtros Disponíveis

  • Por Severidade: Blocker, Critical, Major, Minor, Info
  • Por Categoria: Padrões, Code Smells, Produção, Performance, Segurança
  • Combinações: Múltiplos filtros simultâneos

📁 Estrutura do Projeto

java-code-analyzer/
├── main.js                          # Processo principal Electron
├── package.json                     # Dependências e scripts
├── README.md                        # Este arquivo
│
├── src/
│   ├── renderer/                    # Interface do usuário
│   │   ├── assets/
│   │   │   └── capgemini-logo.png   # Logo corporativa
│   │   │
│   │   ├── index.html               # Tela principal
│   │   ├── advanced-results.html    # Interface PRO
│   │   │
│   │   ├── style.css                # CSS tela principal
│   │   ├── advanced-style.css       # CSS interface PRO
│   │   │
│   │   ├── script.js                # JS tela principal
│   │   └── advanced-results-script.js # JS interface PRO
│   │
│   └── analyzer/                    # Engine de análise
│       ├── java-analyzer.js         # Analisador clássico
│       ├── advanced-java-analyzer.js # Analisador PRO
│       └── rules-engine.js          # Motor de regras
│
└── docs/                            # Documentação
    ├── screenshots/                 # Capturas de tela
    └── CHANGELOG.md                 # Histórico de versões

🛠️ Tecnologias

Core

Design System

  • Gradientes CSS - Visual moderno
  • Flexbox/Grid - Layout responsivo
  • Animations - Transições suaves
  • Typography - Fontes system (San Francisco, Segoe UI)

Features Avançadas

  • LocalStorage - Persistência de dados
  • IPC (Inter-Process Communication) - Comunicação entre processos
  • File System API - Leitura de arquivos Java
  • Regular Expressions - Pattern matching avançado

📊 Métricas de Análise

Severidades

Severidade Descrição Tempo Correção
🔴 Blocker Bloqueia deploys 2-4 horas
🚨 Critical Problemas graves 1-2 horas
⚠️ Major Problemas importantes 15-30 min
⚠️ Minor Melhorias recomendadas 5-10 min
ℹ️ Info Informações úteis 2-5 min

Categorias

  • 📐 Padrões de Código - Indentação, chaves, formatação
  • 🦨 Code Smells - Métodos longos, classes grandes
  • 🚀 Preparação Produção - TODOs, System.out, debug
  • Performance - Loops ineficientes, concatenação
  • 🔒 Segurança - SQL Injection, senhas hardcoded

Quality Gate

PASSED: blocker === 0 && critical <= 5 && total <= 1000
FAILED: blocker > 0 || critical > 5 || total > 1000

🧪 Desenvolvimento

Scripts Disponíveis

npm start          # Executar aplicação
npm run dev        # Executar com DevTools
npm run build      # Build para produção
npm run test       # Executar testes (futuro)
npm run lint       # Verificar código

Debug

# Habilitar DevTools
npm run dev

# Console commands
window.clearLastPath()  # Limpar histórico de caminhos

Personalização

Adicionar Nova Regra

// src/analyzer/rules-engine.js
addCustomRule('minha-regra', {
    category: 'codingStandards',
    severity: 'major',
    pattern: /seu-pattern-aqui/g,
    message: 'Sua mensagem aqui'
});

Customizar Interface

/* src/renderer/advanced-style.css */
:root {
    --primary-color: #667eea;
    --secondary-color: #764ba2;
    --success-color: #28a745;
    --warning-color: #ffc107;
    --danger-color: #dc3545;
}

🤝 Contribuição

Contribuições são sempre bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Clone seu fork
  3. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  4. Commit suas alterações (git commit -m 'Add: Minha nova feature')
  5. Push para a branch (git push origin feature/MinhaFeature)
  6. Abra um Pull Request

Padrões de Commit

Add: Nova funcionalidade
Fix: Correção de bug  
Update: Atualização de código
Remove: Remoção de código
Docs: Atualização de documentação
Style: Alterações de estilo/formatação
Refactor: Refatoração de código
Test: Adição/correção de testes

📋 Versioning

Utilizamos SemVer para versionamento.

Histórico de Versões

  • v2.0.0 (2025-01-24) - Interface PRO completa
  • v1.5.0 (2025-01-20) - Scroll infinito e filtros
  • v1.0.0 (2025-01-15) - Primeira versão estável

Veja CHANGELOG.md para detalhes completos.

👨‍💻 Autor

Uelber de Jesus Oliveira

  • 📧 Email: uelberbell@gmail.com
  • 🏢 Empresa: Capgemini Brasil
  • 👤 Login: uelberbell
  • 📅 Última atualização: 26 de Janeiro de 2025

🤖 Powered by GitHub Copilot

Este projeto foi desenvolvido com assistência da IA GitHub Copilot © 2025, demonstrando a sinergia entre desenvolvedores humanos and inteligência artificial na criação de software de qualidade.

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.


🚀 Java Code Analyzer PRO

Análise profissional de qualidade de código

Capgemini Brasil 🇧🇷 | Powered by GitHub Copilot 🤖

Capgemini GitHub Copilot


Feito com ❤️ e ☕ no Brasil

Última atualização: 26/01/2025 às 16:12 (UTC)

About

Java conde analyzer funciona como um sonar para detectar problemas nas classes Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published