
Why this will crush your hackathon demo
- Mark Kendall
- 1 hour ago
- 3 min read
Below is a Claude / Cloud Code intent file you can drop in a folder and run.
Call it:
Put it in:
/springboot-demo/
Then run Claude Code in that folder and say:
Build the system defined in intent-springboot-banking-service.md
# Intent: Spring Boot Banking Service API
## Objective
Create a fully runnable Spring Boot REST API using Java 21 that exposes banking service accounts.
The system should demonstrate clean architecture and enterprise-ready layering suitable for a production microservice.
This service represents a Banking Services Registry where financial services accounts can be stored and retrieved.
Examples:
- Escrow Accounts
- 401k Accounts
- Savings Accounts
- Investment Accounts
- Trust Accounts
The API should allow:
- listing all services
- retrieving a service by id
- creating new services
Data may be stored in memory for now (mock repository).
---
# Technology Constraints
Use:
- Java 21
- Spring Boot 3.x
- Maven
- REST API
- Lombok allowed
- Jackson for serialization
- Spring Actuator for health endpoint
No database required (use in-memory list).
---
# Project Structure
Use clean layered architecture.
com.ltm.banking
controller
service
repository
model
dto
mapper
config
exception
---
# Architecture Rules
Controller Layer
- Handles REST endpoints
- Accepts DTOs
- Returns DTOs
- No business logic
Service Layer
- Contains business logic
- Handles validation
- Calls repository
Repository Layer
- In-memory storage using ConcurrentHashMap
DTO Layer
- API request/response models
Model Layer
- Internal domain models
Mapper
- Converts DTO ↔ Domain objects
Config
- Application configuration
---
# Domain Model
AccountService
Fields:
id (UUID)
serviceName
accountType
provider
balance
currency
createdAt
Example:
Escrow Account
401k Retirement
Corporate Savings
Trust Fund
---
# REST API Endpoints
Base Path
/api/v1/services
### Get All Services
GET
/api/v1/services
Returns list of all banking services.
---
### Get Service by ID
GET
/api/v1/services/{id}
---
### Create Service
POST
/api/v1/services
Request Example
{
“serviceName”: “Escrow Account”,
“accountType”: “ESCROW”,
“provider”: “Fidelity”,
“balance”: 125000.50,
“currency”: “USD”
}
---
# Health Endpoint
Use Spring Boot Actuator.
Endpoint
/actuator/health
---
# Configuration
application.yml
server:
port: 8085
spring:
application:
name: banking-service-api
---
# Example Response
{
“id”: “f3a7a3c0-9a3d-4a44-b91c-77db1f3c3e4d”,
“serviceName”: “401k Retirement”,
“accountType”: “RETIREMENT”,
“provider”: “Vanguard”,
“balance”: 450000.00,
“currency”: “USD”,
“createdAt”: “2026-03-12T10:00:00”
}
---
# Code Requirements
Use Spring annotations:
@RestController
@Service
@Repository
@Configuration
@Component
Use Lombok annotations:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
Use constructor injection.
---
# Additional Requirements
Include:
- GlobalExceptionHandler
- Logging using SLF4J
- Validation using `jakarta.validation`
- UUID identifiers
- ISO timestamps
---
# Startup Behavior
When application starts:
Preload mock data:
401k Retirement
Escrow Account
Corporate Savings
Trust Account
---
# Deliverables
Claude should generate:
pom.xml
SpringBootApplication
controller classes
service classes
repository
dto classes
mapper
configuration
application.yml
exception handler
Project must compile and run with:
mvn spring-boot:run
---
# Success Criteria
After startup the following must work:
---
# Design Principles
Follow LearnTeachMaster principles:
- clear intent
- layered architecture
- separation of concerns
- production-ready structure
- minimal complexity
- observable service
Why this will crush your hackathon demo
Because when you run Claude Code with this file it will:
1️⃣ Generate an entire Spring Boot project
2️⃣ Correctly structured layers
3️⃣ Health endpoint
4️⃣ DTO mapping
5️⃣ Mock data
6️⃣ Ready to run
Then you can say:
Add persistence with Postgres
Add Kafka event publishing
Add OpenAPI documentation
…and Claude will evolve it live during the hackathon.
That’s the Intent Driven Engineering flex you want to show.
If
Comments