hnjaman/complete-microservice-application
39.9
Weak · 21 September 2026
1.3k
lines of production code
Java
with TypeScript, JavaScript
4
measurements over time
What this system is
This system is a microservices-based e-commerce platform that manages product catalogs, pricing, and discount offers. It comprises an Angular frontend, an API gateway for routing and security, and separate backend services for products and offers, all registered with a service discovery registry. The architecture leverages Spring Cloud components like Zuul and Eureka to handle cross-cutting concerns such as authentication, CORS, and circuit breaking.
Features
Added MIT license, macOS RabbitMQ installer, and comprehensive project documentation
The repository now includes a MIT License file, a shell script for installing RabbitMQ on macOS, and a detailed README explaining the microservice architecture, including service registry, API gateway, and frontend setup. The .gitignore file was also updated to exclude build artifacts and IDE-specific files for the Angular frontend and Spring Boot services.
(repo-wide) · high confidence
Initial API Gateway setup with Zuul proxy and Hystrix fallbacks
The api-gateway module is introduced, configuring a Spring Boot application that acts as a reverse proxy using Spring Cloud Netflix Zuul. The gateway routes requests for /product-service/\\ and /offer-service/\\ to their respective microservices. It includes Hystrix circuit breaker support with custom fallback responses for the product service, enabling graceful degradation. Additionally, the configuration enables CORS headers for all paths and registers with the Eureka service registry.
api-gateway · high confidence
Initial release of the microservice-ui frontend application
The microservice-ui Angular application has been introduced, providing a web interface for managing products, prices, and discounts. The UI integrates with backend services via a REST service layer, featuring components for adding new products, setting prices, and applying discounts. The application includes a store view displaying product details, prices, and discount offers, along with dialog forms for data entry. Authentication is handled via a middleware that validates JWT tokens for protected routes. The project is configured with Angular Material, Bootstrap, and Font Awesome for styling, and includes end-to-end tests using Protractor.
microservice-ui · high confidence
Behavioural changes
Add offer retrieval and update logic
The offer service now supports fetching all offers via a new GET /offer endpoint, and the existing POST /offer endpoint has been updated to update an existing offer if the product ID is already present, rather than always creating a new one. Additionally, the service is now registered with the service discovery client, and the event dispatcher has been updated to use the 'offer.pushed.key' configuration property.
offer-service/src/main/java · medium confidence
Product service adds pricing and discount calculation logic
The product service now tracks and calculates product pricing. A new method allows setting a product's price and automatically computes the current price after applying any configured discount. Additionally, the list of all products is now sorted by price in ascending order.
service-registry · high confidence
Product service updates: new endpoints, H2 database, and service discovery
The product-service now exposes new REST endpoints to add and retrieve product prices, and to fetch individual products by ID. It also adds a discount offer handler that only processes offers greater than zero. Internally, the service switched from MySQL to an embedded H2 database for local development, enabled Eureka service discovery, and removed the unused MultiplicationResultAttempt client and related DTOs. The application is now registered with the service registry and supports CORS for the frontend at localhost:3000.
product-service · medium confidence
Switched database to H2 and enabled service discovery
The offer-service configuration has been updated to use the in-memory H2 database instead of MySQL, with the H2 console enabled at /h2. Additionally, Eureka service discovery has been configured, allowing the service to register with the service registry at localhost:8761. The RabbitMQ exchange key was also updated from 'offer.solved' to 'offer.pushed'.
offer-service/src/main/resources · high confidence
Test coverage
Disabled OfferServiceApplicationTests
The integration test for the offer service has been commented out, effectively disabling the context load test for the application.
offer-service/src/test · high confidence
Dependencies
Upgrade to Spring Boot 2.1.0 and Spring Cloud Greenwich.M3
The project dependencies have been updated to use Spring Boot 2.1.0.RELEASE and Spring Cloud Greenwich.M3 across the api-gateway, service-registry, offer-service, and product-service modules. This includes adding Spring Cloud Netflix dependencies (Eureka client, Ribbon, Zuul) and upgrading the Lombok library to version 1.18.2. Additionally, the database configuration for offer-service and product-service has been switched from MySQL to H2, and the service-registry module has been updated to include JAXB dependencies required for Java 9+ compatibility.
(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 43 → 40 (-3.2)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 86 → 91 (+4.5)
- Architecture 100 → 76 (-24.2)
- Maturity 64 → 64 (+0.0)
- Readiness 37 → 28 (-8.9)
- Security 66 → 66 (+0.0)
- Accessibility 30 → 30 (+0.0)
Resolved (58)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical vulnerability: [GHSA redacted] (microservice-ui/package-lock.json)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- …and 38 more
New (126)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical CVE: [GHSA redacted] (microservice-ui/package-lock.json)
- Critical vulnerability: [GHSA redacted] (microservice-ui/package-lock.json)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- …and 106 more
Architecture
- Containers 0 added · 0 removed · contexts 2 added · 1 removed · edges 0 added · 0 removed
Added bounded contexts (2)
- offer-service
- product-service
Removed bounded contexts (1)
- service-registry
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
hnjaman/complete-microservice-application 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 9c3996dcccbc637a471ff46ce1a37d272919b3b8 — 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.