Skip to content
CAI
Software that uses CAICheck a score

bbohec/bangarang

43.2

Weak · 21 September 2026

14.5k

lines of production code

JavaScript

with TypeScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a web application built on the Svelte and Sapper framework, designed to manage claims and members through a server-side rendered interface. It exposes RESTful endpoints for claim and member interactions, utilizing Google Cloud Datastore as its primary data persistence layer while supporting a fake adapter for testing. The system includes comprehensive acceptance and integration tests to validate user registration, claim declaration, and data retrieval workflows.

Features

Added Svelte route components for the application's main pages

New Svelte route files have been added to the \src/routes\ directory, implementing the frontend structure for the application's pages. This includes a root \index.svelte\ that redirects to the language-specific routes, and a set of \\[language\]/\ route files (such as \MainMenu\, \BusinessModel\, \Register\, \SignIn\, and \ClaimView\) that handle server-side data preloading and language context assignment. Additionally, specific pages for value propositions and landing pages have been introduced to support content-driven navigation.

src/routes · high confidence

Added Tailwind CSS v2.0.3 and modern-normalize to global styles

The static/global.css file was added, importing Tailwind CSS v2.0.3 and modern-normalize v1.0.0, which applies a comprehensive set of utility classes and base styles to the application. Additionally, a new static/manifest.json file was created to define the web app manifest, specifying the app name, theme color, and icon assets.

static · high confidence

Added client-side adapters for REST and GCP Datastore interactions

The client layer now includes a suite of new adapters that implement the application's interactor contracts. This includes a \RestInteractor\ for HTTP communication, alongside specific adapters for claims, members, and user interface states. The implementation provides both a production-ready \GcpDatastore\ adapter for Google Cloud Datastore and a \Fake\ adapter for testing or local development, allowing the client to interact with backend services through a consistent interface.

src/client · high confidence

Behavioural changes

Migrated to Svelte and Sapper with Tailwind CSS styling

The application has been migrated to use the Svelte framework and Sapper for server-side rendering, replacing the previous stack. The build system now utilizes Rollup with TypeScript support, and the styling is handled by Tailwind CSS, which is configured to purge unused styles in production builds. Configuration files for ESLint, TypeScript, PostCSS, and Vercel deployment have been added to support this new architecture.

(repo-wide) · high confidence

Migration to Sapper for server-side rendering and routing

The application has been migrated to Sapper, introducing a new server entry point (src/server.ts) that handles API routes for claims and members, along with client-side initialization (src/client.ts) and a service worker for offline caching. The server now exposes REST endpoints for claim and member interactions, supporting both fake and GCP Datastore adapters. Additionally, Google Analytics tracking has been added to the HTML template.

src · high confidence

Sapper build artifacts and server configuration updated

The Sapper build output has been regenerated, introducing a new build.json manifest that maps Svelte components (such as MainMenu, DeclareClaim, and Register) to their compiled JavaScript chunks. The server entry point (index.js) now explicitly sets the PORT environment variable to 3000 and requires the server module. The server.js bundle includes dependencies for Express, CORS, compression, and Google Cloud Datastore, while the service worker and template have been updated to reflect the new asset hashes and include Google Analytics tracking.

\\sapper\\_ · high confidence_

Test coverage

Added acceptance tests for user registration, claim declaration, and claim retrieval; Added integration tests for Bangarang claim and member interactors.

Dependencies

Initial project setup with Sapper, Svelte, and Tailwind CSS

The project was initialized with a new set of dependencies, establishing the core technology stack. This includes Sapper (v0.28.10) and Svelte (v3.34.0) for the web framework, along with Tailwind CSS (v2.0.3) for styling. The configuration also adds essential build and development tools such as Rollup, TypeScript, Mocha for testing, and various Babel and PostCSS plugins. Additionally, production dependencies like Express, Axios, and Google Cloud Datastore are included to support the application's backend and data management needs.

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

Lenses

  • Code Health 92 → 65 (-27.1)
  • Architecture 99 → 86 (-12.5)
  • Maturity 68 → 68 (+0.0)
  • Readiness 31 → 30 (-1.1)
  • Security 65 → 65 (+0.1)
  • Accessibility 41 → 41 (+0.9)

Resolved (62)

  • Boundary-crossing change coupling: FakeBangarangClaimInteractor.ts ↔ User.ts (src/client/adapters/FakeBangarangClaimInteractor.ts)
  • Boundary-crossing change coupling: FakeBangarangMembersInteractor.ts ↔ User.ts (src/client/adapters/FakeBangarangMembersInteractor.ts)
  • Boundary-crossing change coupling: User.ts ↔ BangarangClaimInteractorContract.ts (src/client/businessLogic/entities/User.ts)
  • Change coupling: FakeBangarangClaimInteractor.ts ↔ FakeBangarangMembersInteractor.ts (src/client/adapters/FakeBangarangClaimInteractor.ts)
  • Coverage not included — suite not readable by the collector
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • …and 42 more

New (88)

  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (the committed lockfile is in a format this engine cannot resolve)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • …and 68 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

bbohec/bangarang 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 dd3486b75729e8f41462ab37998825c3b2447f88 — 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-fa71c66cabd8.