crvc1998/hexagonal-architecture-django
60.1
Adequate · 22 September 2026
1.3k
lines of production code
Python
primary language
6
measurements over time
What this system is
This system is a Django-based application implementing a hexagonal architecture to manage an article voting feature. It handles user interactions through an HTTP API, processing vote commands and returning structured JSON responses. The codebase includes domain models for users, votes, and karma, supported by a service layer and repository pattern for data persistence. Comprehensive tests cover the domain, service, and HTTP adapter layers to ensure reliability.
Features
Initial project scaffolding and configuration
The repository was initialized with essential configuration files including .editorconfig, .flake8, .gitignore, and mypy.ini to standardize code formatting, linting, and static type checking. A Makefile was added to streamline development tasks such as running tests, linting, and managing the Django application. The project also includes a MIT LICENSE, a README with setup instructions and API examples, and a renovate.json for automated dependency updates.
(repo-wide) · high confidence
Initial project structure and core domain models
The project is initialized with a Django-based hexagonal architecture, establishing the foundational layers for an article voting feature. This includes domain models for users, votes, and karma, along with the corresponding database entities and migrations. The diff introduces the HTTP adapter for the vote-for-article use case, implementing the API endpoint that processes vote commands and returns structured JSON responses. It also sets up the dependency injection container to wire the service layer to the repository and view, enabling the core voting logic to function.
_src, src/hexarch\project, src/myapp · high confidence
Test coverage
Added tests for article voting functionality
Added new test files to verify the article voting feature, including unit tests for the domain model (VotingUser, Karma specification), service layer (ArticleRatingService), and HTTP adapter (ArticleVoteView), as well as integration tests for the persistence repository and exception handling.
tests · 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 53 → 60 (+7.2)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 54 → 54 (+0.0)
- Readiness 34 → 49 (+15.1)
- Security 95 → 97 (+2.2)
- Domain Modelling 100 → 100 (+0.0)
Resolved (12)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (requirements.txt)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Medium CVE: [GHSA redacted] (requirements.txt)
- Medium CVE: PYSEC-2026-1304 (requirements.txt)
- No exposed public API
- Test reliability not included
- The README contains no architecture or design description for a Django application following Hexagonal Architecture (ports/adapters/repositories). (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 (14)
- Critical CVE: [GHSA redacted] (requirements.txt)
- Documentation: no contributor guidance (README.md)
- Medium CVE: [GHSA redacted] (requirements.txt)
- Medium CVE: [GHSA redacted] (requirements.txt)
- No ADRs found
- Outdated: django
- Outdated: django-stubs
- Outdated: djangorestframework
- Outdated: djangorestframework-stubs
- Outdated: flake8
- Outdated: mypy
- Outdated: pytest
- Outdated: pytest-django
- Outdated: types-requests
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
crvc1998/hexagonal-architecture-django 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 a183f48457de12208db66949eaa12e86b1081edf — 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.