Skip to content
CAI
Software that uses CAICheck a score

xtoon/xtoon-boot-ddd

51.6

Adequate · 21 September 2026

10.1k

lines of production code

Java

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a monolithic application scaffolding framework designed to provide a structured foundation for building enterprise applications. It offers core infrastructure services including user and tenant management, authentication, and security controls. Additionally, it provides domain-specific modules for managing organizational structures, such as employees, offices, and job positions. The architecture is organized into distinct modules for common utilities, system services, and API controllers, facilitating a clear separation of concerns.

Features

Database schema updated to version 1.3.0 with new organizational tables

The database schema has been updated to version 1.3.0, introducing support for a new organizational structure. This update adds five new tables to the database: \org\_employee\ for storing employee details, \org\_office\ for managing organizational units, and \org\_post\ for job positions. Additionally, it includes two relationship tables, \org\_employee\_office\ and \org\_employee\_post\, which link employees to their respective offices and job positions. These changes enable the system to manage complex organizational hierarchies and employee-role assignments.

db · high confidence

New domain models and application services for authentication, captcha, and user/tenant management

This change introduces the core domain models and application services for the system's security and user management features. It adds domain models for employees, offices, and posts, alongside new services for handling CAPTCHA generation and validation, user authentication (including login by account, mobile, and token), and tenant registration and querying. The update also includes the corresponding repository implementations and DTOs required to support these new capabilities.

xtoon-sys · high confidence

New employee, office, and post management interfaces and domain models

The xtoon-org module introduces new application service interfaces and implementations for managing employees, offices, and posts. This includes the creation of \EmployeeApplicationService\, \OfficeApplicationService\, and \PostApplicationService\ along with their corresponding query services (\EmployeeQueryService\, \OfficeQueryService\, \PostQueryService\). The diff also adds command objects (\EmployeeCommand\, \OfficeCommand\, \PostCommand\) and DTOs (\EmployeeDTO\, \OfficeDTO\, \PostDTO\) to support these operations. Additionally, domain model classes such as \EmployeeName\, \EmployeeNo\, \SexEnum\, \OfficeCode\, \OfficeName\, \PostCode\, and \PostName\ are introduced to encapsulate business rules for these entities. Some existing files like \SysTenantServiceFacade\ and \Email\/\Mobile\ types have been renamed and moved to align with the new organizational structure.

xtoon-org · high confidence

Removals

Removed legacy account, tenant, and user management endpoints and implementations

Deleted the legacy service interfaces and implementations for account, tenant, and user management (including AccountService, TenantService, and UserService), along with their corresponding Facade implementations, controllers, and supporting domain classes (factories, repositories, specifications, and converters). This removes the previous registration, login, and user management capabilities from the system.

src/main · high confidence

Architecture

Refactored common utilities and domain models into the xtoon-common module

This change reorganizes the codebase by moving shared domain models (such as Specification, Entity, ValueObject, and StatusEnum) and utility classes (including UserContext, TenantContext, and various helper classes) from the main application's infrastructure and domain packages into the xtoon-common module. This includes renaming packages from com.xtoon.boot.domain.shared and com.xtoon.boot.infrastructure to com.xtoon.boot.common.domain and com.xtoon.boot.common.util. Additionally, the MyBatis interceptor was updated to use the new UserContext for retrieving the current user's ID, and the Page class was simplified by removing the sameValueAs method. Test coverage was added for specification logic (And, Or, Not) and utility classes.

xtoon-common · high confidence

Behavioural changes

Refactor xtoon-api controllers to use application services

Controllers in the xtoon-api module have been refactored to replace direct calls to facade services with application services (e.g., UserApplicationService, RoleApplicationService, PermissionApplicationService). This change separates the web layer from the business logic, moving validation and data transformation into the application layer. Additionally, common classes such as AbstractController, Result, and utility classes have been moved from the infrastructure package to the web package, and the LogController has been renamed to reflect its new location.

xtoon-api · high confidence

Updated project documentation and configuration

The README.md was updated to reflect version 1.2.0, corrected the project description to specify 'monolithic application scaffolding' instead of 'SaaS platform', and added Swagger and Hibernate-validator to the technology stack. Additionally, the .gitignore was updated to exclude .DS\_Store files.

(repo-wide) · high confidence

Test coverage

Removed obsolete test classes for user, permission, role, and system facade components

The test suite for the user domain model (Account, Permission, Role, User) and several system-level service facades (SysLog, SysPermission, SysTenant, SysUserService) has been removed. Additionally, the unit tests for the MyBatis repository implementations (TenantRepositoryImpl, UserRepositoryImpl) and the SysLogController have been deleted, indicating a cleanup of outdated or unused test coverage in the src/test directory.

src/test · high confidence

Dependencies

Migrate to multi-module Maven project structure

The project has been restructured from a single-module Maven build into a multi-module architecture. The root \pom.xml\ now defines modules \xtoon-common\, \xtoon-sys\, \xtoon-org\, and \xtoon-api\, with common dependencies and properties moved from the root to the \xtoon-common\ module. This change isolates shared libraries (such as MyBatis-Plus, Shiro, and Fastjson) into the common module, while \xtoon-api\, \xtoon-sys\, and \xtoon-org\ now depend on \xtoon-common\ for their shared functionality.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 49 → 52 (+2.5)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 95 → 96 (+1.7)
  • Architecture 100 → 87 (-12.7)
  • Maturity 57 → 57 (-0.0)
  • Readiness 18 → 26 (+7.9)
  • Security 97 → 97 (+0.0)

Resolved (8)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (7 lines × 2) (xtoon-common/src/main/java/com/xtoon/boot/common/util/xss/HTMLFilter.java)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness

New (23)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (11 lines × 4) (xtoon-common/src/main/java/com/xtoon/boot/common/domain/StatusEnum.java)
  • Duplicated block (11 lines × 4) (xtoon-common/src/main/java/com/xtoon/boot/common/domain/StatusEnum.java)
  • Duplicated block (20 lines × 10) (xtoon-org/src/main/java/com/xtoon/boot/org/domain/model/employee/EmployeeId.java)
  • Duplicated block (20 lines × 2) (xtoon-org/src/main/java/com/xtoon/boot/org/domain/model/office/OfficeCode.java)
  • Duplicated block (20 lines × 8) (xtoon-org/src/main/java/com/xtoon/boot/org/domain/model/employee/EmployeeName.java)
  • Duplicated block (21 lines × 2) (xtoon-org/src/main/java/com/xtoon/boot/org/domain/model/employee/Email.java)
  • Duplicated block (22 lines × 2) (xtoon-org/src/main/java/com/xtoon/boot/org/domain/model/employee/Mobile.java)
  • Duplicated block (22 lines × 3) (xtoon-sys/src/main/java/com/xtoon/boot/sys/domain/model/captcha/CaptchaCode.java)
  • Duplicated block (7 lines × 2) (xtoon-common/src/main/java/com/xtoon/boot/common/util/xss/HTMLFilter.java)
  • Hotspot: xtoon-common/src/main/java/com/xtoon/boot/common/util/mybatis/MybatisInterceptor.java (xtoon-common/src/main/java/com/xtoon/boot/common/util/mybatis/MybatisInterceptor.java)
  • No ADRs found
  • No assertions: delete (xtoon-sys/src/test/java/com/xtoon/boot/sys/infrastructure/persistence/repository/PermissionRepositoryImplTest.java)
  • No assertions: isSatisfiedBy (xtoon-sys/src/test/java/com/xtoon/boot/sys/domain/specification/LoginByAccountSpecificationTest.java)
  • No assertions: isSatisfiedBy (xtoon-sys/src/test/java/com/xtoon/boot/sys/domain/specification/LoginByTokenSpecificationTest.java)
  • No assertions: store (xtoon-sys/src/test/java/com/xtoon/boot/sys/infrastructure/persistence/repository/CaptchaRepositoryImplTest.java)
  • No assertions: store (xtoon-sys/src/test/java/com/xtoon/boot/sys/infrastructure/persistence/repository/LogRepositoryImplTest.java)
  • …and 3 more

Architecture

  • Containers 0 added · 0 removed · contexts 0 added · 1 removed · edges 0 added · 0 removed

Removed bounded contexts (1)

  • xtoon-sys

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

xtoon/xtoon-boot-ddd was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit bb226216f6a6ebca90074f2cf924b1e7d998dbb0 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.