Skip to content
CAI
Software that uses CAICheck a score

DEVids-VT/Insightify

38.0

Weak · 21 September 2026

6.8k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Insightify is a microservices-based platform that aggregates financial data, news, and social networking capabilities. It provides backend services for managing user identities, friendships, posts, and notifications, while a background job system periodically fetches and caches cryptocurrency market data. The system exposes these features through an API gateway and serves content via both a Blazor and an Angular-based web client.

Features

Add Docker Compose configuration for local development environment

A new \src/docker-compose.yml\ file has been added to define the local development environment, orchestrating services including Redis, MongoDB, SQL Server, RabbitMQ, and various application components such as the financial data API, background tasks, news API, notifications, MVC, gateway, posts, and identity server. Additionally, a \src/NuGet.config\ file has been introduced to configure the NuGet package source.

src · high confidence

Add financial data, news, posts, and profiles endpoints to the API gateway

The API gateway now exposes new endpoints for retrieving and managing financial data (crypto currency details, market charts, and all currencies), news articles, posts (including creation, likes, and comments), and user profiles. These changes introduce new controllers, service interfaces, and client models that route requests to the respective backend services, enabling users to access financial market data, read news, and interact with the social features of the platform.

src/Gateways/Insightify.Web.Gateway/Insightify.Web.Gateway · high confidence

Added infrastructure for caching crypto data in background tasks

The financial background tasks service now includes infrastructure to cache fetched data in Redis. This is supported by a new CryptoDataModelConverter for serializing MarketValue objects and an updated CryptoCurrency enum that defines the specific digital assets (Solana, BinanceCoin, Bitcoin, and Ethereum) currently supported by the system.

src/Services/Insighify.FinancialDataApi/Insightify.FinancialBackgroundTasks/Infrastructure · high confidence

Adds post management commands and queries for the Insightify Posts service

The Insightify Posts service now supports creating, editing, and deleting posts, as well as liking, disliking, saving, and un-saving posts. Users can also add, delete, and retrieve comments on posts. The service introduces a new query system that allows retrieving posts by ID, searching posts, and fetching comments, likes, and saves associated with a post. These changes enable full CRUD operations for posts and interactive features like commenting and social engagement (likes/saves).

src/Services/Insightify.Posts · high confidence

Identity service introduces user profile and account management capabilities

The IdentityAPI service now supports user profile management and account settings. Users can update their profile information via a new /editProfile endpoint, and the system tracks a profile picture URL in the database, which is exposed in the IdentityServer claims for downstream services. Additionally, the service implements a full account lifecycle including login, logout, and a registration flow that requires email confirmation before the account is active.

src/Services/Insightify.IdentityAPI · high confidence

Initial project structure for Insightify.Web.Gateway

The Insightify.Web.Gateway service is introduced with its foundational build and deployment configuration. This includes a Dockerfile that defines a multi-stage build process using .NET 7.0 (ASP.NET runtime and SDK) to containerize the application, exposing ports 80 and 443. A .dockerignore file is added to exclude unnecessary files from the Docker context, and a Visual Studio solution file (.sln) is created to manage the project's build configurations (Debug/Release).

src/Gateways/Insightify.Web.Gateway · high confidence

Initial release of News and Notification services with background task scheduling

This change introduces the core infrastructure for the News and Notification services, enabling the system to fetch, store, and distribute news articles. The NewsAPI service provides REST endpoints to retrieve and manage news articles, backed by a MongoDB repository and a Quartz-based background job that periodically fetches external news data. The NewsBackgroundTasks service handles the scheduled fetching and publishing of events, while the Notifications service is also initialized with its own Docker and solution configurations. Validation rules for article titles, descriptions, and authors are enforced via FluentValidation, and pagination headers are automatically added to API responses.

src/Services/Insightify.NewsAPI · high confidence

Initial release of the Friendship service

The Friendship service is now available, enabling users to send, accept, and reject friend requests, as well as manage existing friendships. The service exposes a REST API for these operations, backed by a MongoDB repository for storing friend requests and friendship records.

src/Services/Insightify.Friendship · high confidence

Initial release of the Insightify MVC client application

The MVC web application is introduced with support for viewing and managing posts, news, and financial data. Users can browse a feed of posts, create new posts, and interact with them via likes and comments. The application also provides a news feed and a cryptocurrency dashboard displaying market data and charts. Authentication is handled via OpenID Connect, and the application is configured for Docker deployment.

src/Web/Insightify.MVC · high confidence

Introduce Angular-based client application alongside Blazor SPA

The project now includes a new Angular-based client application (Insightify.Client) alongside the existing Blazor Single Page Application. This adds a separate frontend implementation featuring a header with navigation, an identity component for login/logout functionality, a notification system using SignalR, and a news module. The Angular client is configured with standard tooling (Angular CLI, VS Code settings) and includes unit tests for its components and services.

src/Web/Insightify.SPA · high confidence

Introduce Financial Data API for retrieving cryptocurrency market data

A new Financial Data API service has been added, exposing endpoints to fetch cryptocurrency details, market charts, and a list of all supported currencies. The service is built on ASP.NET Core, with controllers handling HTTP requests and a service layer that retrieves data from a Redis cache. The API is configured with JWT-based authentication and Swagger documentation, and includes a Dockerfile for containerization.

src/Services/Insighify.FinancialDataApi/Insighify.FinancialDataApi · high confidence

Introduce Insightify Framework with core infrastructure, pagination, and messaging abstractions

The Insightify Framework is introduced, providing a foundational set of utilities for building .NET applications. This includes a CoreServicesBuilder for dependency injection and service registration, along with extensions for AutoMapper, Health Checks, and Swagger. The framework adds pagination support via the \Insightify.Framework.Pagination\ module, which automatically injects \X-Pagination\ headers into API responses. Additionally, it introduces an \ApiFetcher\ for handling HTTP requests with retry logic and an abstraction layer for RabbitMQ-based messaging, including configuration for endpoints and consumers. A \LoggingConfiguration\ is also added to support Serilog with Seq and Console sinks.

src/Common · high confidence

Introduce background task service with Redis caching and Quartz scheduling

The Insightify.FinancialBackgroundTasks service is introduced to handle background processing, specifically caching fetched financial data in Redis. The service is configured to connect to Redis and RabbitMQ, schedule jobs via Quartz.NET, and fetch data from the CoinGecko API. This adds a new background worker that supports the application's data pipeline.

src/Services/Insighify.FinancialDataApi/Insightify.FinancialBackgroundTasks · high confidence

Introduce the new Insightify Notifications service

The new Insightify.Notifications service is introduced, providing a REST API for retrieving notifications and a SignalR hub for real-time push notifications. The service consumes RabbitMQ events to store and broadcast notifications, supports paginated API responses with custom headers, and connects to a MongoDB database.

src/Services/Insightify.Notifications/Insightify.Notifications · high confidence

Introduced solution files for Financial Data API and Background Tasks

Added Visual Studio solution files for the Insighify.FinancialDataApi and Insightify.FinancialBackgroundTasks projects, establishing the build configuration for these services.

src/Services/Insighify.FinancialDataApi · high confidence

New background jobs for fetching crypto currency and market chart data

Two new background jobs have been added to the financial background tasks service: CryptoCurrencyJob and MarketChartsJob. CryptoCurrencyJob fetches current cryptocurrency data and stores it in Redis, while MarketChartsJob retrieves 1-day market chart data for each cryptocurrency, also persisting results to Redis. Both jobs are scheduled via Quartz and include a 30-second delay between processing individual currencies to manage API rate limits.

src/Services/Insighify.FinancialDataApi/Insightify.FinancialBackgroundTasks/Jobs · high confidence

Behavioural changes

Background tasks now cache financial data in Redis and schedule periodic jobs

The financial background tasks service now registers Quartz.NET scheduled jobs for fetching market charts and cryptocurrency data, and configures a Redis connection for caching the fetched data. This introduces a new caching layer and automated background jobs to the financial data API.

src/Services/Insighify.FinancialDataApi/Insightify.FinancialBackgroundTasks/Extensions · high confidence

Updated project documentation and solution structure

The repository has been migrated to a new location, bringing with it a comprehensive update to the README.md file which now includes project awards, a detailed description of the microservice architecture, and contributor information. Additionally, the solution file (Insightify.sln) has been regenerated to reflect the new project structure, including services like FinancialDataApi, Friendships, IdentityAPI, NewsAPI, and various framework components, ensuring the build configuration is correctly mapped for Visual Studio.

(repo-wide) · high confidence

Dependencies

Initial dependency and project structure setup for the Insighify platform

This change introduces the foundational .NET and JavaScript dependencies for the Insighify platform, establishing the core framework, microservices, and client applications. The .NET projects are standardized on .NET 7.0 and reference a new \Insightify.Framework\ library (v2.0.0) along with supporting packages like AutoMapper, Serilog, and FluentValidation. Specific services are configured with their own dependencies: the Financial Data API uses MongoDB and Quartz for background tasks, the News API integrates with MongoDB and Serilog, and the Posts service relies on Entity Framework Core and MediatR. The web layer includes an Angular client (v16) and MVC/SPA clients using Refit and SignalR. Test projects are also added for the framework and news API.

(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 39 → 38 (-1.2)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 63 → 61 (-1.4)
  • Architecture 69 → 69 (+0.0)
  • Maturity 44 → 46 (+2.1)
  • Readiness 32 → 31 (-1.6)
  • Security 52 → 45 (-7.0)
  • Accessibility 37 → 37 (-0.2)
  • Performance 70 → 70 (+0.0)

Resolved (115)

  • Bounded contexts not declared
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • High CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • …and 95 more

New (249)

  • CommentedOutCode (src/Gateways/Insightify.Web.Gateway/Insightify.Web.Gateway/Middlewares/ExceptionHandlingMiddleware.cs)
  • CommentedOutCode (src/Services/Insightify.Notifications/Insightify.Notifications/Validators/NotificationValidator.cs)
  • CoverageExclusion (src/Gateways/Insightify.Web.Gateway/Insightify.Web.Gateway/Extensions/ServiceCollectionExtensions.cs)
  • CoverageExclusion (src/Gateways/Insightify.Web.Gateway/Insightify.Web.Gateway/Program.cs)
  • CoverageExclusion (src/Services/Insighify.FinancialDataApi/Insighify.FinancialDataApi/Extensions/ServiceCollectionExtensions.cs)
  • CoverageExclusion (src/Services/Insightify.IdentityAPI/Insightify.IdentityAPI/Extensions/ProgramExtensions.cs)
  • CoverageExclusion (src/Services/Insightify.IdentityAPI/Insightify.IdentityAPI/Middleware/DatabaseMiddleware.cs)
  • CoverageExclusion (src/Services/Insightify.IdentityAPI/Insightify.IdentityAPI/Program.cs)
  • CoverageExclusion (src/Services/Insightify.NewsAPI/Insightify.NewsAPI/Extensions/ServiceCollectionExtensions.cs)
  • CoverageExclusion (src/Services/Insightify.NewsAPI/Insightify.NewsAPI/Program.cs)
  • CoverageExclusion (src/Services/Insightify.NewsAPI/Insightify.NewsBackgroundTasks/Extensions/ServiceCollectionExtensions.cs)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/Web/Angular.Client/insightify-client/package-lock.json)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)
  • Duplicated block (10 lines × 2) (src/Gateways/Insightify.Web.Gateway/Insightify.Web.Gateway/Clients/Models/FinancialData/CryptoCurrencyResponseModel.cs)
  • Duplicated block (10 lines × 2) (src/Gateways/Insightify.Web.Gateway/Insightify.Web.Gateway/Clients/Models/News/NewsArticleResponseModel.cs)
  • …and 229 more

API surface

  • Unchanged — 37 HTTP endpoints

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

Survey your own repository

DEVids-VT/Insightify 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 7a89c22c2e403be916c80966905d607e6772479d — 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-28e75b8e3254.