Adaptech/nota
42.4
Weak · 21 September 2026
4k
lines of production code
JavaScript
primary language
4
measurements over time
What this system is
This system is a web-based platform for managing organizations, voters, and referendums, featuring a React frontend and a RESTful API backend. It supports the full lifecycle of referendums, including registration, voting, and organization management, while explicitly excluding monetary transactions and election administration features. The architecture relies on modern JavaScript tooling and state management libraries to deliver a responsive user interface and robust API endpoints.
Features
Initial web application structure and configuration
The web directory is initialized with a complete React application structure, including Webpack configuration for development and production builds, Babel presets, ESLint rules, and a Node.js server setup. The application features a landing page, a referendums page displaying referendum cards, and a register page, all managed by React Router. State management is handled via MobX stores for UI and data, with components like the Header, Footer, and ReferendumCard. The build process compiles JSX and CSS, and the server serves static assets and handles hot reloading in development.
web · high confidence
Introduce API for managing organizations, voters, and referendums
The API now exposes endpoints for creating and managing organizations, registering and authenticating voters, and creating, modifying, opening/closing polls, and casting votes in referendums. This includes new controllers (OrganizationController, ReferendumController, VoterController) that map HTTP requests to domain commands (CreateOrganization, RegisterVoter, CreateReferendum, CastVote, etc.) and domain aggregates (Organization, Referendum, Voter). The change also adds supporting infrastructure such as a CommandActionHelper for standardizing command execution, a Logger, and event classes for the domain.
api · high confidence
Removals
Removed legacy services and logging utilities
The legacy service implementations—ReadRepository, commandHandler, and the Logger utility—have been removed from the codebase. This eliminates the previous in-memory read store, the event-sourcing command handler, and the custom logging class, likely as part of a broader architectural shift to a different data access or event-processing strategy.
src/services · high confidence
Behavioural changes
Moved API type definitions to api/ directory
The TypeScript type definition files and their associated typings.json configuration files for the body-parser, uuid, and validator modules have been relocated from the root typings directory to the api/ subdirectory. This change reorganizes the project's type declaration structure, grouping these specific API-related types within the api folder.
api/typings/modules/body-parser, api/typings/modules/uuid, api/typings/modules/validator · high confidence
Removal of ElectionAdmin read model
The read model for managing election administrators has been removed from the application. This eliminates the ability to track and store election admin records via the 'ElectionAdminCreated' and 'ElectionAdminUpdated' events, effectively removing the 'electionadmin' feature from the system.
src/readModels · high confidence
Removal of MonetaryAmount domain class
The MonetaryAmount class, which previously handled currency and value validation for USD and CAD, has been removed from the domain layer. Users will no longer be able to create or validate monetary amounts using this specific domain model.
src/domain · high confidence
Removal of legacy application entry point
The main application entry point (src/app.js), which previously handled Express server setup, middleware registration, and dynamic loading of controllers and events, has been removed from the codebase.
src · high confidence
Dependencies
Upgrade web and API dependencies
The web application's package.json was added with a new set of dependencies including React 15.4.1, MobX, and various build tools, while the API's package.json was updated to include new libraries such as LevelDB and Morgan, and removed older Babel presets in favor of specific transform plugins.
(dependencies) · medium 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 43 → 42 (-0.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 62 → 60 (-1.3)
- Architecture 100 → 74 (-25.9)
- Maturity 49 → 49 (+0.0)
- Readiness 20 → 23 (+3.0)
- Security 99 → 99 (+0.0)
- Accessibility 73 → 73 (+0.0)
Resolved (8)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Medium IaC: CKV_DOCKER_2 (api/Dockerfile.development)
- Medium IaC: CKV_DOCKER_2 (web/Dockerfile.development)
- No exposed public API
- Scanner failed to run — not a clean result
- Test reliability not included
- dormant codebase — no living knowledge left to concentrate
New (9)
- CommandActionHelper (cognitive 18) (api/src/infra/CommandActionHelper.js)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no committed lockfile, so no resolved version to grade)
- Documentation: no architecture or design documentation (README.md)
- Floating npm dependency: uuid
- Medium IaC: WD-DOCKER-0003 (api/Dockerfile.development)
- Medium IaC: WD-DOCKER-0003 (web/Dockerfile.development)
- No ADRs found
- Scanner failed to run — not a clean result
- Scanner failed to run — not a clean result
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Adaptech/nota 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 3039e4b0e3c366c7a0d1ce05a88a7aa971c3e155 — 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.