Fernanda-Kipper/Clean-Archictecture-React
50.2
Adequate · 21 September 2026
355
lines of production code
TypeScript
with JavaScript
4
measurements over time
What this system is
This system is a React-based frontend application that implements a clean architecture for user authentication. It manages the login flow by validating user credentials, communicating with a remote HTTP API via an Axios-based client, and storing the resulting access token in local storage. The codebase is structured with distinct layers for domain logic, data protocols, and presentation, supported by comprehensive testing utilities for mocking HTTP clients and authentication flows.
Features
Add AxiosHttpClient implementation and tests
A new AxiosHttpClient class was added to the infrastructure layer to handle HTTP POST requests using the Axios library. The implementation maps request parameters to an Axios call and returns the status code and response body. A corresponding test suite was added to verify that the client correctly invokes Axios with the right URL, body, and method, and that it returns the expected status code and payload.
src/infra · high confidence
Add remote authentication use-case implementation and tests
A new RemoteAuthentication use-case has been introduced to handle user authentication via a remote HTTP endpoint. The implementation calls the HTTP client with the correct URL and authentication parameters, returning the account model on success (HTTP 200) and throwing InvalidCredentialsError for 401 responses or UnexpectedError for other error codes (400, 404, 500). Comprehensive tests verify the correct URL, request body, and error handling.
src/data/use-cases/authentication · high confidence
Added authentication use-case interface and account model
Introduced the domain-layer contracts for user authentication. A new \AccountModel\ type defines the structure for account data (specifically an \accessToken\). The \Authentication\ interface is added to the \use-cases\ module, specifying that an authentication service must provide an \auth\ method that accepts email and password parameters and returns a promise resolving to an \AccountModel\. These changes establish the foundational types and interface for the authentication feature.
src/domain/use-cases · high confidence
Added domain error classes for invalid credentials and unexpected errors
The src/domain/errors directory now exports two new error classes: InvalidCredentialsError, which represents invalid credential scenarios, and UnexpectedError, which handles unexpected failures. These classes provide structured error handling for authentication and general failure states.
src/domain/errors · high confidence
Added public assets for React application
Added public/index.html and public/global.css to the project. The HTML file serves as the entry point for the React application, importing React 17 via CDN and loading the main bundle. The CSS file provides a global reset for all elements.
public · medium confidence
Initial project configuration and tooling setup
The project now includes the foundational configuration files required to build, lint, and test the application. This includes TypeScript settings (tsconfig.json) that enable JSX, ES6+ targets, and path aliases, alongside a Webpack configuration (webpack.config.js) that bundles TypeScript/React code and processes SCSS styles. Development workflows are supported by ESLint rules (.eslintrc.json), Jest testing configuration (jest.config.js), and Git hooks via Husky and lint-staged to enforce code quality on commit and push.
(repo-wide) · high confidence
Initialize React application entry point
A new entry point (src/main/index.tsx) has been added to the application. This file initializes the React application by rendering the Router component into the DOM, establishing the foundation for client-side routing and page rendering.
src/main · high confidence
Introduce HTTP client protocol and response types
Added new protocol definitions for HTTP interactions: an HttpPostClient interface that accepts generic parameters and returns a standardized HttpResponse, alongside an HttpStatusCode enum and HttpResponse type to structure API responses.
src/data/protocols · high confidence
Introduce login page with form validation and authentication flow
The login page now enforces email and password validation before allowing the form to be submitted. The interface displays real-time validation status using a context provider, showing error messages and a loading spinner during authentication. On successful authentication, the access token is saved to localStorage and the user is redirected to the home page. The login form also includes a link to the sign-up page.
src/presentation · high confidence
Test coverage
Added test utilities for HTTP client mocking; Added test utilities for mocking authentication.
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 52 → 50 (-1.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 54 → 49 (-5.5)
- Readiness 38 → 38 (+0.6)
- Security 75 → 80 (+5.0)
- Accessibility 65 → 65 (+0.0)
Resolved (55)
- 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)
- 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)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 35 more
New (70)
- 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)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- 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)
- …and 50 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
Fernanda-Kipper/Clean-Archictecture-React 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 e11baca8271bfb8a1550a4273dba02f8ae78e0fb — 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.