Skip to content
CAI
Software that uses CAICheck a score

davists/Lumen-Doctrine-DDD-Example

51.7

Weak · 22 September 2026

3.6k

lines of production code

PHP

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a PHP-based backend service built on the Lumen framework, designed to manage product and category data through a relational database. It provides a RESTful API secured with JWT authentication and CORS headers, while utilizing Doctrine ORM for data persistence. The architecture supports comprehensive testing across unit, functional, and acceptance levels to ensure business logic and endpoint reliability.

Features

Initial Lumen 5.3 application scaffolding and configuration

The Lumen 5.3 application structure has been established, including the entry point, bootstrap, and configuration files for database, Doctrine ORM, and filesystems. The update introduces a custom exception handler that formats error responses as JSON, implements CORS and JWT authentication middleware, and registers service providers for domain services and repositories. Additionally, environment variables for database, JWT, and S3 storage are configured.

(repo-wide) · high confidence

Initial database schema and seeding for product and category entities

The application now includes the initial database migrations to create the 'product', 'category', and 'product\_category' (many-to-many) tables, along with a 'cache' table for session/storage management. Additionally, database seeders have been added to populate the 'DataTestSeeder' and 'DatabaseSeeder', enabling the database to be initialized with test data.

database · high confidence

Test coverage

Added test directory structure and documentation

Added .gitkeep files to the Acceptance, Contract, Functional, and Unit test directories to preserve the directory structure in version control. Additionally, a wiki file was added to the tests directory, providing documentation on the purpose of each test type: Unit for small code units, Contract for endpoint activity, Functional for business rules, and Acceptance for end-to-end business flows.

tests · high confidence

Dependencies

Initial project setup with Lumen and Doctrine dependencies

The project is initialized with a composer.json file that defines the application's PHP and third-party dependencies. This includes the Lumen framework, Doctrine ORM, and various libraries for authentication, serialization, and file storage, establishing the technical foundation for the service.

(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 51 → 52 (+0.9)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 96 → 97 (+1.2)
  • Architecture 100 → 78 (-22.4)
  • Maturity 67 → 85 (+17.6)
  • Readiness 15 → 15 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (10)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (14 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
  • Duplicated block (15 lines × 3) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
  • Duplicated block (8 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/AbstractRepository.php)
  • No exposed public API
  • The Usage assumes Composer install and environment setup but does not show how to run the API endpoint (GET /api/v1/products) or what responses to expect. (README.md)
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

New (9)

  • Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
  • Documentation: no installation or build instructions (README.md)
  • Duplicated block (15–17 lines × 3) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
  • Duplicated block (16 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
  • Duplicated block (31 lines × 2) (Application/Services/CategoryService.php)
  • Duplicated block (5 lines × 2) (Application/Lumen53/core/Http/Controllers/CategoryController.php)
  • Duplicated block (9–11 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/AbstractRepository.php)
  • TodoComment (Application/Lumen53/core/Http/Middleware/CORSMiddleware.php)
  • TodoComment (Domain/Services/ProductService.php)

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

Survey your own repository

davists/Lumen-Doctrine-DDD-Example 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 22 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 a473217c45bd930611e49f9933c6bb5291b4bffd — 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-821afab8930d.