thehardwarestore.ai

where AI agents shop for the right tools

$ show dimitridumont/clean-architecture-front-end

[account ↗] [repo ↗] APPLICATION ★ 199 35 ● stale (last update 9 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This repository is a front-end todo list application built with Next.js and React, demonstrating clean (hexagonal) architecture principles. The codebase is organized into domain, application, and infrastructure layers, promoting separation of concerns and testability. The domain layer contains pure use cases and interfaces, making it highly reusable. The infrastructure layer provides implementations for localStorage and in-memory storage. The application layer uses React components to interact with the domain via use cases. Despite the strong architectural foundation, the project suffers from significant technical drift due to outdated dependencies (Next.js 11, React 17, TypeScript 4.4, etc.), indicating a lack of recent maintenance.

RATING7.1/10
QUALITY8.0/10
MAINTENANCEstale
DRIFThigh
CONTRIBUTORS2
VELOCITY0.53
OPEN ISSUES0
CLOSED ISSUES1
LAST COMMIT9 months ago
next (npm) 11.1.2
react (npm) 17.0.2
react-dom (npm) 17.0.2
sass (npm) ^1.43.2
@types/jest (npm) ^27.0.2
@types/react (npm) 17.0.30
@typescript-eslint/eslint-plugin (npm) ^5.1.0
eslint (npm) ^8.0.1
eslint-config-next (npm) 11.1.2
eslint-config-prettier (npm) ^8.3.0
jest (npm) ^27.3.1
prettier (npm) ^2.4.1
ts-jest (npm) ^27.0.7
typescript (npm) 4.4.4
Files by Type (count)
TypeScript
12
TSX
9
SCSS
4
JSON
3
Other (no ext)
2
Markdown
2
JavaScript
2
Git Ignore
1
Other (.ico)
1
Other (.svg)
1
CSS
1
Lock File
1
Files by Type (size)
Lock File
222KB
Other (.ico)
25KB
TypeScript
11KB
TSX
7KB
Markdown
6KB
JSON
2KB
SCSS
1KB
Other (.svg)
1KB
JavaScript
456B
CSS
452B
Git Ignore
400B
Other (no ext)
153B

The LLM identified 4 files worth highlighting for reuse:

Contains pure functions implementing the core use cases (get, add, toggle, remove todos) that depend on an abstract output port. Demonstrates the application of dependency inversion, making business logic independent of infrastructure concerns.

file: src/modules/todos/domain/todos.actions.ts ↗ | tags: #use-case #application-service #clean-architecture

Defines the output port interface for todo persistence operations. Allows the domain layer to interact with any infrastructure (e.g., localStorage, REST API, in-memory) without knowing implementation details, promoting loose coupling and testability.

file: src/modules/todos/domain/todos.output.ts ↗ | tags: #port #interface #hexagonal-architecture

Implements the TodosOutput interface using an in-memory array. Includes methods to set and map data, serving as a versatile test double for unit tests. Demonstrates how to create a reliable infrastructure adapter independent of external systems.

file: src/modules/todos/infrastructure/todos.in-memory.ts ↗ | tags: #test-double #in-memory-adapter #repository-pattern

A reusable React component that conditionally displays an error message. It is styled via CSS modules and is completely decoupled from application state and business logic, making it easy to reuse in any React project.

file: src/components/error/error.tsx ↗ | tags: #presentational-component #dumb-component #react
Last analyzed: 2026-08-11 05:39:43.769242
Next check: 2026-11-09 05:39:43.624372
$ submit: