Skip to content
CAI
Software that uses CAICheck a score

dyarleniber/typescript-ddd-forum

41.4

Weak · 21 September 2026

12.4k

lines of production code

TypeScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a full-stack forum application built with TypeScript, featuring a React front-end and an Express/GraphQL back-end. It provides core social features including user authentication, post and comment management, and a voting mechanism. The architecture supports containerized development and includes database management scripts for MySQL.

Features

Add forum module with domain models, services, and HTTP routes

The forum module is introduced, providing the core domain models for posts, comments, and members, along with their associated value objects (e.g., PostTitle, CommentText) and ID types. This includes the implementation of voting logic for both posts and comments, with domain services handling the state transitions for upvoting and downvoting. The module also exposes HTTP routes for creating, retrieving, and voting on posts and comments, as well as retrieving member information.

(repo-wide) · high confidence

Added database creation and deletion scripts

New scripts have been added to manage the MySQL database lifecycle. The \scripts/db/create.js\ script connects to the database server and creates the appropriate database (development or test) based on the environment, while \scripts/db/delete.js\ handles dropping the corresponding database schema. These scripts rely on environment variables for connection details and database names.

scripts · high confidence

Added front-end application scaffolding and core forum components

The public front-end application has been introduced, bootstrapped with Create React App and configured with TypeScript, SASS, and Prettier. This includes the main \App\ component with React Router definitions for pages like discussion, comments, and login, alongside a Redux store setup. The diff also adds core forum UI components, including a post submission form, a voting system with upvote/downvote logic, post and comment display templates, and a filter for sorting posts by popularity or recency. Additionally, the change introduces the necessary data transfer objects (DTOs) and Redux action creators to manage forum state and interactions.

public, public/app/src/modules/forum, public/app/src/modules/users · high confidence

Adds core domain and infrastructure layers for a forum application

Introduces a foundational architecture for a forum application, including domain models (AggregateRoot, Entity, ValueObject, WatchedList), a domain event system for handling asynchronous notifications, and a Sequelize-based database layer with migrations and models for users, posts, comments, and votes. It also adds HTTP infrastructure with Express routes, a GraphQL API using Apollo Server, and utility classes for text and flow control.

src/shared · high confidence

Centralized module initialization via new entry point

A new entry point at src/index.ts has been added to centralize the initialization of shared infrastructure and application modules. This includes importing the HTTP server and database (Sequelize) setup, as well as the forum module's subscriptions, ensuring these components are loaded at startup.

src · high confidence

Initial project scaffolding and configuration

The repository was initialized with essential tooling and configuration files to support a TypeScript-based application. This includes setting up ESLint and Prettier for code quality and formatting, configuring TypeScript with strict type-checking disabled, and establishing a Jest testing environment. Additionally, the project now supports containerized development and deployment via a new Dockerfile, docker-compose.yml, and entrypoint script, alongside standard configuration files like .gitignore, .env.template, and a MIT LICENSE.

(repo-wide) · high confidence

Introduce user domain model and authentication infrastructure

Added the core user domain model, including the User aggregate root with properties for email, username, password, and admin status, along with value objects for email, name, and password. Introduced domain events for user lifecycle (created, deleted, logged in, email verified). Implemented a Redis-based authentication service for managing JWT tokens and refresh tokens, and a Sequelize repository for user persistence. The HTTP routes for user registration, login, logout, and token refresh are now available.

src/modules/users · high confidence

Behavioural changes

Added Husky pre-commit hook for linting

The project now includes a Husky pre-commit hook that automatically runs lint-staged on staged files before each commit. This ensures code quality checks are enforced at commit time, preventing linting issues from being committed.

.husky · medium confidence

Dependencies

Added TypeScript, React, and backend dependencies for the new front-end and server applications

The project now includes package manifests and lockfiles for both the main server-side application and a separate front-end app. The server-side setup introduces TypeScript, Apollo Server, Express, Sequelize, and various utility libraries, while the front-end app is built with React, Redux, and related tooling. This establishes the foundational dependencies required to build and run the application's client and server components.

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

Lenses

  • Code Health 74 → 80 (+6.6)
  • Architecture 68 → 65 (-3.6)
  • Maturity 75 → 79 (+3.7)
  • Readiness 34 → 35 (+0.6)
  • Security 76 → 62 (-14.6)
  • Accessibility 28 → 30 (+2.3)

Resolved (59)

  • Coverage not included — suite not readable by the collector
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/yarn.lock)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/yarn.lock)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/yarn.lock)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • …and 39 more

New (191)

  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/yarn.lock)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/yarn.lock)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/yarn.lock)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • Critical CVE: [GHSA redacted] (public/app/package-lock.json)
  • …and 171 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

dyarleniber/typescript-ddd-forum 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 ec457803d7547bc527c0353a3876a363880a2cc7 — 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-b84573e22831.