This style reflects a typical enterprise CRUD microservice, including patterns commonly found in legacy systems, optimized for deterministic code generation.
This project is not a production-ready template.
It is a style example used as input for the CodeTools generator.
The purpose of this codebase is to:
- demonstrate a specific coding style,
- serve as input for template extraction,
- allow deterministic reproduction of similar code.
The business model and rules are intentionally artificial and have no real-world meaning.
This project represents the Style (S) component in the CodeTools generation model.
CodeTools repository: https://github.com/archonity/codetools
In CodeTools:
- D (Data) – comes from structured input (e.g. CSV)
- S (Style) – comes from example code like this project
This repository provides the S part, which can be:
- converted into templates,
- refined,
- used to generate new microservices.
The goal is not correctness of business logic,
but consistency and reproducibility of structure and style.
Generated version: https://github.com/archonity/enterprise-crud-classic-generated
In large systems, a significant part of the codebase follows repeatable patterns.
Instead of rewriting similar code:
- this project provides an example style,
- which can be converted into templates,
- and used to generate similar code automatically.
This enables deterministic reproduction of entire microservice structures.
The domain is fictional and exists only to demonstrate structure:
- context
administration.googoo - aggregate root
FooBar - entity
DeeDoo
Note: domain names are intentionally meaningless. Focus on structure, not semantics.
-
This is a style template for code generation
-
It serves as input for
CodeTools -
It demonstrates:
- architecture
- coding style
- testing approach
- database integration
This project should NOT be used as a direct copy-paste template.
- use it as input for template extraction (CodeTools)
- analyze structure and conventions
- adapt patterns consciously
- copying business logic
- treating domain model as meaningful
- using it as a production-ready starting point
- Java 25
- Maven
mvn clean compilemvn spring-boot:runOr run: com.example.crm.CrmApplication
mvn spring-boot:run -Dspring-boot.run.profiles="file-db"mvn testsrc/main/resources/application.properties
Liquibase (XML)
Migrations: src/main/resources/db/changelog
The project uses hexagonal architecture.
Technologies and solutions:
- Java 25,
- Spring Boot 4,
- REST API.
This project intentionally enforces a consistent, repeatable style to support template-based code generation.
This style reflects a typical enterprise CRUD microservice, including patterns commonly found in legacy systems.
Not maintained in this repository.
In real projects, ADRs are recommended.
- Treat it as a template
- Copy the structure
- Do not blindly copy business logic
Standard Maven layout:
src/main/java
src/main/resources
src/test/java
src/test/resources