Skip to content

Commit 4722bed

Browse files
committed
docs: refreshed architecture guides and updated sample-code usage in README
templates: improved README.md.ftl includes hex sample and greeting endpoint cli: renamed --samples flag to --sample-code for clarity assets: regenerated cover.png and updated social-preview HTML metadata chore: aligned dependency table rendering and layout examples
1 parent a79258b commit 4722bed

File tree

11 files changed

+635
-660
lines changed

11 files changed

+635
-660
lines changed

README.md

Lines changed: 122 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@
1919

2020
## 🧠 Why Codegen Blueprint Exists
2121

22-
Modern engineering teams don’t struggle to **start** new services —
22+
Modern engineering teams don’t struggle to **start** new services —
2323
they struggle to keep them **architecturally consistent** as they scale.
2424

25-
Most generators create a folder layout and walk away.
26-
Codegen Blueprint enforces **architectural integrity**:
25+
Most generators produce a folder structure and walk away.
26+
Codegen Blueprint safeguards **architectural integrity**:
2727

28-
* Starts clean — no framework leaks into the domain
28+
* Starts clean — no framework dependencies in the domain
2929
* Stays clean — structure guides every evolution
30-
* Prevents silent architecture drifts over time
30+
* Prevents silent architecture drift
3131

32-
Not just scaffolding.
32+
Not just scaffolding.
3333
Not just templates.
3434

35-
> **Architecture embedded into the software delivery pipeline.**
35+
> **Executable Architecture — baked into the delivery pipeline.**
3636
3737
<br/>
3838

@@ -48,31 +48,28 @@ Not just templates.
4848

4949
### 🎯 Who is this for?
5050

51-
| Role | What you gain |
52-
| -------------------- | --------------------------------- |
53-
| Platform Engineering | Organization‑wide standardization |
54-
| Lead Architect | Governance as Code |
55-
| Developers | Clean architecture from day zero |
56-
| New Team Members | Instant productivity |
51+
| Role | Benefit |
52+
| -------------------- | -------------------------------- |
53+
| Platform Engineering | Org‑wide standardization |
54+
| Lead Architect | Governance as Code |
55+
| Developers | Clean architecture from day zero |
56+
| New Team Members | Instant productivity |
5757

5858
---
5959

6060
### 🥇 What makes it different?
6161

62-
> **This is not a competitor comparison.**
63-
> Spring Initializr and JHipster are fantastic and widely used tools with different missions.
64-
> Codegen Blueprint focuses specifically on keeping architecture **intentional** from day zero.
62+
> **Initializr‑like simplicity****Architecture‑first consistency**
6563
66-
| Capability Focus | Spring Initializr & JHipster | Codegen Blueprint |
67-
| ---------------------------------- | ---------------------------- | ----------------- |
68-
| Generates folder layout |||
69-
| Opinionated architecture defaults | ⚠️ | **** |
70-
| Domain isolation by design || **** |
71-
| Profile-driven evolution paths | ⚠️ | **** |
72-
| Anti-drift architecture support || **** |
64+
| Capability Focus | Spring Initializr & JHipster | Codegen Blueprint |
65+
| --------------------------------- | ---------------------------- | ----------------- |
66+
| Generates folder layout |||
67+
| Opinionated architecture defaults | ⚠️ | **** |
68+
| Domain isolation by design | | **** |
69+
| Profiledriven evolution paths | ⚠️ | **** |
70+
| Antidrift support (future‑ready) | | **** |
7371

74-
> 🚀 Same starting point → different long-term destination
75-
> 🧭 Codegen Blueprint helps teams **preserve architectural integrity** as services evolve
72+
> 🧭 Same starting point — **better long‑term alignment**
7673
7774
---
7875

@@ -81,6 +78,7 @@ Not just templates.
8178
*[What is Codegen Blueprint (Today)?](#-what-is-codegen-blueprint-today)
8279
* 🧭 [1.0.0 Scope & Status](#-100-scope--status)
8380
* 💡 [Why This Project Matters](#-why-this-project-matters)
81+
* 🔔 [Sample Code & Greeting Example](#-sample-code--greeting-example)
8482
* 🔌 [Inbound Adapter](#-inbound-adapter-delivery)
8583
* ⚙️ [Outbound Adapters & Artifacts](#-outbound-adapters--artifacts)
8684
* 🧪 [Testing & CI](#-testing--ci)
@@ -96,111 +94,117 @@ Not just templates.
9694

9795
A **CLI‑driven**, **architecture‑aware** project generator.
9896

99-
📌 Current primary profile:
100-
**springboot‑maven‑java**
101-
(Spring Boot 3 + Maven + Java 21)
97+
📌 Current primary profile: **springboot‑maven‑java**
98+
(✔ Spring Boot 3.5.x · ✔ Java 21 · ✔ Maven)
10299

103-
Generates a **clean**, **ready‑to‑extend** Spring Boot project structure — similar to Spring Initializr, but with:
100+
Produces a clean and predictable structure with:
104101

105-
* Clear and predictable layout
106-
* Standardized project metadata (groupId, name, package)
107-
* Built‑in test entry points from day zero
108-
* Consistency without dependency overload
102+
* Standardized identifiers (groupId, artifactId, package)
103+
* Clear boundaries for maintainability
104+
* Tests ready from day zero
105+
* No dependency overload
109106

110107
### Optional Architecture Layout
111108

112-
📌 Hexagonal is an evolution path — not a barrier.
113-
114-
For teams embracing Clean/Hexagonal architecture:
109+
📌 Hexagonal is an **opt‑in structured evolution path**.
115110

116111
```
117-
domain // business rules (no Spring dependencies)
112+
domain // business logic only (no Spring)
118113
application // orchestrates ports
119-
adapters // inbound & outbound adapters
120-
bootstrap // Spring wiring & configuration
114+
adapters // inbound & outbound
115+
bootstrap // configuration & wiring
121116
```
122117

123-
> "Spring Initializrbut **with architecture options built‑in**, not bolted on later."
118+
> “Framework‑free domainintentional architecture from day zero.”
124119
125120
<br/>
126121

127122
<p align="center">
128123
<img src="docs/images/architecture/architecture-overview.png"
129-
alt="Codegen Blueprint — Hexagonal Architecture Overview"
124+
alt="Hexagonal Architecture Overview"
130125
width="840"/>
131126
<br/>
132-
<em>
133-
Engine flow: CLI input ➜ Use case orchestration ➜ Domain constraints ➜ Artifact generation ➜ Spring Boot project output
134-
</em>
127+
<em>Flow: Inputs ➜ Use Cases ➜ Domain Rules ➜ Artifacts ➜ Executable Service</em>
135128
</p>
136129

137130
---
138131

139132
## 🧭 1.0.0 Scope & Status
140133

141-
### What is included (1.0.0)
134+
### Included in 1.0.0
142135

143-
| Capability | Status |
144-
|-------------------------------------------------|-------------------|
145-
| CLI-based generation | ✔ Production-ready |
146-
| Standard Spring Boot skeleton |Stable |
147-
| Hexagonal layout option (opt-in) |Available |
148-
| Spring Boot 3 / Java 21 / Maven support | |
149-
| Main + test entrypoints generated | |
150-
| Required artifacts generated (pom, YAML, etc.) | |
151-
| Open-source licensing |MIT License |
136+
| Feature | Status |
137+
| -------------------------------------- | ------------------ |
138+
| CLIbased generation | ✔ Productionready |
139+
| Hexagonal architecture layout (opt‑in) |Available |
140+
| Spring Boot 3 / Java 21 / Maven |Supported |
141+
| Main + test entrypoints |Provided |
142+
| Required build + config artifacts |Generated |
143+
| Greeting sample (optional sample‑code) |Included |
144+
| MIT License |Open‑source |
152145

153-
### What is planned next
146+
### Up Next
154147

155-
| Feature | Status |
156-
|----------------------------------------------|------------|
157-
| REST inbound adapter | Planned |
158-
| Advanced hexagonal variations (ports, CQRS) | Planned |
159-
| Additional profiles (Gradle, Kotlin, Quarkus)| Planned |
160-
| Multi-module generation | Planned |
161-
| Foundation libraries (`blueprint-*`) | Planned |
162-
| Developer UI / web console | Evaluating |
148+
| Feature | Status |
149+
|------------------------------------------------| ---------- |
150+
| REST inbound adapter | Planned |
151+
| Hexagonal evolution kit (ports + CQRS) | Planned |
152+
| Additional profiles (Gradle, Kotlin, Quarkus) | Planned |
153+
| Foundation libraries (`blueprint-*`) | Planned |
154+
| Multi‑module services | Planned |
155+
| Developer UI | Evaluating |
163156

164-
> Strategy: **Deep quality in one profile** → then expand ecosystem.
157+
> Deep quality first → expand ecosystem next
165158
166159
📌 For more details:
167-
- [Engine Enforcement Scope (1.0.0)](docs/architecture/engine-scope.md)
168-
- [Generated Project Scope (1.0.0)](docs/architecture/project-scope.md)
160+
- [Executable Architecture Scope (1.0.0)](docs/architecture/executable-architecture-scope.md)
161+
162+
---
169163

170164
## 💡 Why This Project Matters
171165

172-
Modern services deserve more than a bare `/src/main/java`.
166+
Clean architecture shouldn’t be optional.
173167

174-
You get:
168+
You gain:
175169

176-
* ✔ Predictable structure
170+
* ✔ Predictable structure & boundaries
177171
* ✔ Testability from day zero
178-
*Architecture as a **standard**, not an afterthought
179-
*Faster onboarding
172+
*Faster onboarding & team scaling
173+
*Architectural governance without friction
180174

181175
You avoid:
182176

183-
* ❌ Copy-paste architecture
184-
*Every repo looks different
185-
* ❌ Best practices lost over time
186-
*Silent architecture drift
177+
* ❌ Copypaste architecture
178+
*Each repo reinventing patterns
179+
* ❌ Best‑practice rot over time
180+
*Architecture drift
187181

188-
📘 Explore the architecture:
182+
📘 Explore design:
189183
👉 [How to Explore This Project (Hexagonal Architecture Guide)](./docs/guides/how-to-explore-hexagonal-architecture.md)
190184

191-
### 🧩 Strategic Impact
185+
### Strategic Impact
192186

193-
Architecture stays **intentional — not accidental**.
187+
Architecture becomes **intentional — enforceable — repeatable**.
194188

195-
Teams benefit from:
189+
---
196190

197-
* Standardized setup across services
198-
* Clear responsibility boundaries
199-
* Faster developer onboarding
200-
* Future enforcement ready (ArchUnit, boundaries)
191+
## 🔔 Sample Code & Greeting Example
201192

202-
Result:
203-
**Every new service starts aligned — and scales without losing its architecture.**
193+
📌 Minimal but meaningful reference sample:
194+
195+
* Domain model: **Greeting**
196+
* Use case: generate greeting text
197+
* Inbound REST adapter: `/api/v1/sample/greetings/default`
198+
* Hexagonal structure illustrates **port‑driven design**
199+
200+
Enabled when flags include:
201+
202+
```
203+
--layout hexagonal \
204+
--sample-code basic
205+
```
206+
207+
> Designed as a **teaching reference** and a **quick productivity boost**
204208
205209
---
206210

@@ -221,17 +225,18 @@ Active profile:
221225
springboot‑maven‑java
222226
```
223227

224-
Generated artifacts (1.0.0):
228+
Generated artifacts:
225229

226-
| Category | Includes |
227-
|------------------|-------------------------------------------------------------------------|
228-
| Build files | `pom.xml`, Maven Wrapper (`mvnw`, `.mvn/`) |
229-
| Runtime config | `src/main/resources/application.yml` |
230-
| Source entrypoints | Main application & test bootstrap classes |
231-
| Git hygiene | Standard `.gitignore` |
232-
| Documentation | Minimal `README.md` inside the generated project |
230+
| Category | Includes |
231+
| --------------- | -------------------------------------------------------- |
232+
| Build system | `pom.xml`, Maven Wrapper |
233+
| Runtime config | `src/main/resources/application.yml` |
234+
| Source skeleton | Main application & test bootstraps |
235+
| Sample code | Optional greeting sample (domain + ports + REST adapter) |
236+
| Git hygiene | `.gitignore` |
237+
| Docs (minimal) | `README.md` inside generated project |
233238

234-
> Everything required to **build, run, test and evolve** a clean Spring Boot service from day zero.
239+
> Everything required to **buildrun ▸ extend** a clean service
235240
236241
---
237242

@@ -241,12 +246,10 @@ Generated artifacts (1.0.0):
241246
mvn verify
242247
```
243248

244-
Includes:
245-
246-
* ✔ Unit + integration tests
247-
* ✔ JaCoCo coverage
248-
* ✔ CodeQL security scan
249-
* ✔ Codecov reporting
249+
* Unit + integration tests ✔
250+
* JaCoCo coverage ✔
251+
* CodeQL security ✔
252+
* Codecov reporting ✔
250253

251254
---
252255

@@ -256,44 +259,44 @@ Includes:
256259
java -jar codegen-blueprint-1.0.0.jar \
257260
--cli \
258261
springboot \
259-
--group-id com.acme \
260-
--artifact-id demo \
261-
--name "Demo App" \
262-
--description "Demo application for Acme" \
263-
--package-name com.acme.demo \
262+
--group-id io.github.blueprintplatform.samples \
263+
--artifact-id greeting-service \
264+
--name "Greeting Service" \
265+
--description "Hexagonal greeting sample powered by Blueprint" \
266+
--package-name io.github.blueprintplatform.samples.greeting \
264267
--layout hexagonal \
268+
--sample-code basic \
265269
--dependency web \
266-
--dependency data_jpa \
267-
--dependency validation
270+
--dependency data_jpa
268271
```
269272

270273
**Output (simplified)**
271274

272275
```
273-
demo/
276+
greeting-service/
274277
├── pom.xml
275-
├── src/main/java/com/example/demo/DemoApplication.java
276-
├── src/test/java/com/example/demo/DemoApplicationTests.java
278+
├── src/main/java/io/github/blueprintplatform/samples/greeting/GreetingServiceApplication.java
279+
├── src/test/java/io/github/blueprintplatform/samples/greeting/GreetingServiceApplicationTests.java
277280
├── src/main/resources/application.yml
278281
└── .gitignore
279282
```
280283

284+
> Hexagonal + sample code = ready‑to‑run REST greeting service
285+
281286
---
282287

283288
## 🚀 Vision & Roadmap (Beyond 1.0.0)
284289

285-
> Best practices should **execute**, not just be documented.
286-
287-
Roadmap themes:
290+
> Best practices should **execute**, not merely be documented.
288291
289-
* 🧱 Hexagonal evolution kit (ports + adapters + CQRS)
290-
* 📈 Observability acceleration (metrics + tracing defaults)
291-
* 🔐 Enterprise-grade security (OAuth2 / Keycloak)
292-
* 🧩 Multi-module service composition
293-
* 🎯 Broader profile ecosystem (Gradle / Kotlin / Quarkus)
292+
* 🧱 Hexagonal evolution kits (ports / adapters / CQRS)
293+
* 📈 Observability defaults (tracing / metrics)
294+
* 🔐 Security (OAuth2 / Keycloak patterns)
295+
* 🧩 Multimodule service generation
296+
* 🎯 Broader ecosystem: Gradle / Kotlin / Quarkus
294297
* 💻 Developer UI → configure → generate → download
295298

296-
> **Executable Architecture** for modern service development.
299+
> **Executable Architecture for modern delivery**
297300
298301
---
299302

0 commit comments

Comments
 (0)