dyarleniber/typescript-ddd-forum
41.4
Weak · 21 September 2026
12.4k
lines of production code
TypeScript
primary language
4
measurements over time
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.