CodeChecker

A modular, extensible static code analysis framework designed to detect style violations, code quality, and structural issues in Java programs.

Overview

CodeChecker is a Java-based static analysis tool built to evaluate code style and cyclomatic complexity in Java source files. The project emphasizes clean architecture, modular analysis passes, and automation-friendly output formats.

🚀 Features

Code Style Analysis

Cyclomatic Complexity

Developer Tooling

JSON Output

CodeChecker in Action 🚀

Below is a live demonstration of CodeChecker running in the terminal and printing analysis results in real time.

CodeChecker Terminal Demo

What this demo shows:

🧠 How CodeChecker Works

This modular design allows easy extension of new checks without impacting existing functionality.

🏗 Architecture Overview

CodeChecker/ │ ├─ src/ │ ├─ main/ │ │ ├─ java/ │ │ │ ├─ Main.java │ │ │ ├─ IndentationChecker.java │ │ │ ├─ TodoChecker.java │ │ │ ├─ TrailingWhitespaceChecker.java │ │ │ ├─ SimpleCyclomaticComplexityChecker.java │ │ │ ├─ AdvancedCyclomaticComplexityChecker.java │ │ │ ├─ JsonReportGenerator.java │ └─ ComplexityTest.java ├─ .github/ │ └─ workflows/ │ └─ java-ci.yml ├─ docs/ │ └─ index.html

Each checker follows the single-responsibility principle, ensuring clarity and testability.

📊 Example Output

=== CodeChecker ===

Simple Cyclomatic Complexity:
Total Complexity: 10

Advanced Cyclomatic Complexity per method:
Method: main → Complexity: 10
File Total Complexity: 10

No code style issues found!

⭐ Usage

Console Mode

java -cp src/main/java Main <filepath>

JSON Mode

java -cp src/main/java Main <filepath> --json

Sample JSON Output

{
  "file": "src/ComplexityTest.java",
  "indentationIssues": [],
  "todoIssues": [],
  "trailingWhitespaceIssues": [],
  "simpleCyclomaticComplexity": 10,
  "advancedCyclomaticComplexityTotal": 10,
  "advancedCyclomaticComplexityPerMethod": { "main": 10 },
  "anyIssues": false
}

🛣 Future Enhancements

🎓 Academic & Portfolio Context

This project demonstrates strong Java fundamentals, understanding of software quality metrics, and practical static analysis design. It was built with clean architecture principles and CI automation, making it suitable as a systems-oriented portfolio project.