mschuwalow/zio-todo-backend
51.1
Adequate · 20 September 2026
370
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is a ZIO-based Todo-Backend API that manages a list of todo items through HTTP endpoints. It provides full CRUD functionality for creating, reading, updating, and deleting tasks, backed by an H2 database with Flyway migrations. The application is built using Scala 2.13, ZIO 2, http4s, and Doobie, and is packaged for containerized deployment via sbt.
Features
Initial database schema, logging configuration, and application settings
The application now includes an initial database migration (V1) that creates a TODOS table with ID, TITLE, COMPLETED, and ORDERING columns. Logging has been configured using Log4j2 with console output for the application and repository packages, replacing the previous log4j.properties setup. Application configuration has been expanded to define structured settings for the API (port and base URL) and the database (H2 in-memory driver, user, and password).
src/main/resources · high confidence
Behavioural changes
Adopts Scalafmt for code formatting and updates project configuration
The project has switched its code formatting tool from Scalastyle to Scalafmt (version 3.8.3), introducing a new .scalafmt.conf and .scalafix.conf to manage style rules and import organization. This change includes migrating the Scala dialect to 2.13 and updating the .gitignore to reflect modern build tool artifacts. Additionally, the README has been updated to clarify the project's identity as a ZIO-based Todo-Backend implementation and includes a CI badge.
(repo-wide) · high confidence
Migrate to ZIO 2 and Doobie for database access
The application's core logic and data access layer have been rewritten to use ZIO 2 and Doobie. The previous repository implementation has been replaced with DoobieTodoRepository, which uses Doobie for SQL operations and HikariCP for connection pooling, managed via a new database configuration layer. The main entry point and API startup have been updated to use ZIO 2's runtime and configuration providers, and the HTTP routes have been refactored to align with the new ZIO 2 effects and Doobie-based repository.
src/main/scala/com/schuwalow/todo · high confidence
Removal of legacy Scala 2.12 ZIO and Cats Effect entry point
The application's main entry point and domain model definitions have been removed. This change eliminates the previous implementation which relied on the \scalaz-zio\ library (specifically \ZIO\ from \scalaz.zio\) and \cats-effect\ for runtime management, along with \http4s\ and \pureconfig\ for configuration and server setup. The deleted \Main.scala\ contained the logic for bootstrapping the HTTP server and dependency injection, while \domain.scala\ defined the core \TodoItem\ data structures. This cleanup prepares the codebase for the migration to Scala 2.13 and the switch to the native ZIO ecosystem.
src/main/scala/com/schuwalow/zio/todo · high confidence
Removal of legacy ZIO 1.x repository implementation
The \TodoRepository\ trait, its \InMemoryTodoRepository\ implementation, and the associated \package.scala\ delegation layer have been removed from the codebase. This change eliminates the legacy \scalaz.zio\-based repository code, which previously provided in-memory storage and access methods for todo items, indicating a migration away from the older ZIO 1.x API surface.
src/main/scala/com/schuwalow/zio/todo/repository · high confidence
Test coverage
Added test suite for TodoRepository and HTTP API; Removed legacy ScalaTest-based test suite; Updated test configuration resources.
Dependencies
Initial project scaffolding with Sbt 1.11.3 and ZIO 2 ecosystem
The project has been initialized with a new build structure using Sbt 1.11.3, replacing any previous build configuration. This setup defines the core dependency versions, including ZIO 2.1.19 for the functional effect system, http4s 0.23.37 for HTTP services, Doobie 1.0.0-RC10 for database access, and Flyway 11.10.3 for database migrations. The build also includes compiler plugins like kind-projector 0.13.4 and better-monadic-for 0.3.1, along with plugins for code formatting (sbt-scalafmt 2.5.5), static analysis (sbt-scalafix 0.14.9), and native packaging (sbt-native-packager 1.11.1).
project · high confidence
Migrate build system from Maven to sbt
The project has switched its build tool from Maven (pom.xml) to sbt (build.sbt). This migration updates the Scala version to 2.13.18, replaces the legacy ZIO 0.16 dependency with the modern ZIO ecosystem (including ZIO 1.x, ZIO-Logging, and ZIO-Test), and updates core libraries such as http4s to 0.21.x, doobie to 0.9.x, and flyway to 7.x. The new build configuration also integrates Docker packaging via the DockerPlugin, enabling the application to be containerized with a base image of eclipse-temurin:17-jre and exposing port 8080.
(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
Baseline
- First survey — no prior run to compare against. CAI 51.
Lenses
- Code Health 100
- Architecture 69
- Maturity 42
- Readiness 60
- Security 49
Changes since last survey
- 300 commits — 299 feature/other, 1 fixes
By area
- (repo) — 146 commits
- project/Dependencies.scala — 96 commits
- project/build.properties — 23 commits
- (root) — 18 commits
- project/plugins.sbt — 16 commits
- .github/workflows — 1 commit
Notable commits
- fix: Revert to working main (#734)
- change: Merge pull request #587 from mschuwalow/update/zio-interop-cats-23.1.0.5
- change: Merge pull request #592 from mschuwalow/update/sbt-1.10.11
- change: Merge pull request #593 from mschuwalow/update/sbt-scalafmt-2.5.4
- change: Merge pull request #594 from mschuwalow/update/doobie-core-1.0.0-RC9
- change: Merge pull request #595 from mschuwalow/update/flyway-core-11.8.0
- change: Merge pull request #596 from mschuwalow/update/flyway-core-11.8.1
- change: Merge pull request #597 from mschuwalow/update/sbt-scalafix-0.14.3
- change: Merge pull request #598 from mschuwalow/update/flyway-core-11.8.2
- change: Merge pull request #599 from mschuwalow/update/zio-2.1.18
- change: Merge pull request #600 from mschuwalow/update/sbt-1.11.0
- change: Merge pull request #601 from mschuwalow/update/zio-2.1.19
- change: Merge pull request #602 from mschuwalow/update/flyway-core-11.9.0
- change: Merge pull request #603 from mschuwalow/update/sbt-1.11.1
- change: Merge pull request #604 from mschuwalow/update/flyway-core-11.9.1
- change: Merge pull request #605 from mschuwalow/update/sbt-1.11.2
- change: Merge pull request #606 from mschuwalow/update/circe-core-0.14.14
- change: Merge pull request #607 from mschuwalow/update/log4j-core-2.25.0
- change: Merge pull request #608 from mschuwalow/update/flyway-core-11.9.2
- change: Merge pull request #609 from mschuwalow/update/sbt-dynver-5.1.1
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
mschuwalow/zio-todo-backend 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 20 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 1ac74093a0fa6cfac6769464bd51d20bca014d4e — 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-b51f968c9b10.