Varagos/MinasPhone
39.7
Weak · 21 September 2026
31k
lines of production code
TypeScript
primary language
4
measurements over time
What this system is
This is a full-stack e-commerce application featuring a Next.js client, a NestJS server, and a React Admin dashboard. It provides product catalog management with flexible attributes, user authentication via SuperTokens, and order processing with automated email notifications. The system also includes an admin interface for managing products, orders, and users, supported by a structured API layer and domain-driven design principles.
Features
Add email notification system for order events
The notifications module now includes handlers for the OrderConfirmedDomainEvent, enabling automated email communications. A new EmailService integrates with SendGrid to support both dynamic templates (for customer order confirmations) and standard HTML emails (for internal admin notifications). The NotificationService orchestrates these sends, allowing multiple admin recipients to receive new order alerts while customers receive a templated confirmation.
server/src/modules/notifications · high confidence
Add product attribute system and attribute management API
The server now supports a flexible product attribute system, allowing products to be associated with specific types and their corresponding attributes. Database migrations introduce new tables for product types, attributes, attribute values, and the many-to-many relationships linking them. A new HTTP controller exposes endpoints to create, update, and delete attributes, as well as query them. This enables more granular product categorization and filtering capabilities.
server · high confidence
Add product type management and Google image search integration
The product catalog module now supports managing product types and searching for images via Google. A new \CreateProductTypeCommand\ and associated handler allow creating product types, while a new \FindSearchEngineImagesQuery\ and handler integrate with a \GoogleImageSearchService\ to retrieve images based on search text. Additionally, event handlers have been added to automatically delete old or deleted images from cloud storage when products are updated or removed.
server/src/modules/product-catalog · high confidence
Adds request context and DDD infrastructure for request tracing
The server now maintains a per-request context to store a unique request ID (correlation ID) and a database transaction connection, enabling end-to-end request tracing and consistent logging across the application. This infrastructure is implemented via a new \AppRequestContext\ and \ContextInterceptor\ that generate and attach the request ID to every request. Additionally, a set of Domain-Driven Design (DDD) base classes and utilities are introduced, including \Entity\, \AggregateRoot\, \DomainEvent\, \Command\, and \ValueObject\ implementations, along with a \SqlRepositoryBase\ for database operations. These components provide a structured way to manage domain logic, events, and data access, while also supporting structured error handling with correlation IDs in exception logs.
(repo-wide) · high confidence
Introduce React Admin-based admin panel with full CRUD for products, orders, and categories
The admin area now features a new React-based interface built on the react-admin framework, providing a complete management dashboard. Users can now create, read, update, and delete products, orders, categories, and users directly through the admin panel. The implementation includes a custom data provider that handles image uploads as Base64 strings and transforms backend attribute structures for the UI. Additionally, the panel supports internationalization with translations for English, Arabic, and Greek, and enforces authentication via a custom auth provider.
admin · high confidence
Introduce SuperTokens-based authentication and user management
The user management module now integrates SuperTokens for authentication, providing an \IAuthService\ and \IRoleService\ implementation backed by SuperTokens. This includes a \SuperTokensAuthService\ for user operations, \SupertokensUserRolesService\ for role management, and associated guards (\AuthGuard\, \RolesGuard\) and middleware. The system now supports finding users by ID or email, paginated user listing, and automatic role assignment (Admin or Customer) upon sign-up, with a listener to handle the \super-tokens.user.registered\ event.
server/src/modules/user-management · high confidence
Introduce client-side API layer with mock and server implementations
The client application now features a structured API layer that abstracts data fetching for categories, products, cart, and orders. This includes a unified \Api\ interface, separate \mock\ and \server\ implementations, and corresponding TypeScript types. The server implementation connects to the backend via generated API clients and route configurations, while the mock layer provides static data for development. This change enables the UI components (such as the cart, category pages, and checkout forms) to interact with a consistent API contract, supporting both local development and production environments.
client/src · high confidence
Introduces shared API response and validation utilities
Adds a suite of reusable API infrastructure components to the server's API library. This includes a standardized error response structure (ApiErrorResponse) and a base response class (ResponseBase) that automatically handles common timestamp and ID fields. Additionally, the update introduces a request validation layer featuring custom validators for sorting, range filtering, and attribute-based filtering, alongside a DTO for paginated query parameters. These changes provide a consistent way to handle API errors, structure standard response payloads, and validate complex query parameters across the application.
server/src/libs/api · high confidence
Behavioural changes
Migrated client application from Create React App to Next.js
The client application has been migrated from a Create React App setup to a Next.js project. This change introduces a new project structure and configuration, including Next.js-specific configuration files (next.config.js, tsconfig.json, postcss.config.js), ESLint and Prettier setup, Jest configuration for testing, and updated documentation. Users will now benefit from Next.js features such as file-based routing, API routes, and optimized builds, while the development and deployment processes are updated to align with the Next.js framework.
client · high confidence
Test coverage
Added tests for the useUrl hook
Added a new test suite for the useUrl hook, specifically verifying that the setRange function correctly updates the URL with the expected range parameter.
client/\\tests\\_ · high confidence_
Dependencies
Migrated client to Next.js and server to NestJS
The client application has been migrated from a Create React App setup to Next.js, introducing support for server-side rendering, improved routing, and modern React 19. The server has been refactored from a basic Express.js setup to a full NestJS application, adding structured architecture, dependency injection, and advanced features like event handling and Swagger documentation. This shift provides a more robust, scalable, and maintainable foundation for both the frontend and backend components.
(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 → 40 (+0.4)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 91 → 91 (+0.3)
- Architecture 43 → 55 (+12.5)
- Maturity 69 → 70 (+0.8)
- Readiness 26 → 24 (-1.9)
- Security 54 → 53 (-1.0)
- Accessibility 46 → 46 (+0.6)
Resolved (64)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (client/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (server/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (client/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (server/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (admin/yarn.lock)
- High CVE: [GHSA redacted] (admin/yarn.lock)
- High CVE: [GHSA redacted] (admin/yarn.lock)
- High CVE: [GHSA redacted] (admin/yarn.lock)
- High CVE: [GHSA redacted] (admin/yarn.lock)
- High CVE: [GHSA redacted] (client/yarn.lock)
- High CVE: [GHSA redacted] (server/yarn.lock)
- …and 44 more
New (296)
- AttributeEntity.productValueConforms (cognitive 24) (server/src/modules/product-catalog/domain/attribute.entity.ts)
- AttributeEntity.productValueConforms (cyclomatic 18) (server/src/modules/product-catalog/domain/attribute.entity.ts)
- AttributesSubformEdit.AttributesSubformEdit (cyclomatic 19) (admin/src/resources/products/components/AttributesSubformEdit.tsx)
- Critical CVE: [GHSA redacted] (client/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (server/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (client/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical CVE: [GHSA redacted] (server/yarn.lock)
- Critical CVE: [GHSA redacted] (admin/yarn.lock)
- Critical vulnerability: [GHSA redacted] (client/yarn.lock)
- CustomFilterParam.validate (cognitive 21) (server/src/libs/api/query-params.request.ts)
- Documentation: no licence statement (README.md)
- FileTooLong: privacy-policy/page.tsx (client/src/app/[locale]/information/privacy-policy/page.tsx)
- FindProductsQueryHandler.execute (cognitive 21) (server/src/modules/product-catalog/application/products/queries/find-products/find-products.handler.ts)
- FindProductsQueryHandler.execute (cyclomatic 18) (server/src/modules/product-catalog/application/products/queries/find-products/find-products.handler.ts)
- …and 276 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
Varagos/MinasPhone 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 c15547b3282ffe74c42e65388fac64f70b8c7d19 — 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.