Claude Code Plugins

Community-maintained marketplace

Feedback

spring-boot-package-structure-creator

@sivaprasadreddy/sivalabs-marketplace
36
0

Creates recommended package structure for Spring Boot projects.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name spring-boot-package-structure-creator
description Creates recommended package structure for Spring Boot projects.

Spring Boot Package Structure Creator

Instructions

Follow a domain-driven, modular architecture where packages are organized by business modules rather than technical layers.

Recommended Example Package Structure

dev.sivalabs.meetup4j/
├── Application                      # Main Spring Boot entrypoint class
├── shared/                          # Cross-cutting concerns
│   ├── BaseEntity.java
│   ├── DomainException.java
│   ├── ResourceNotFoundException.java
│   └── SpringEventPublisher.java
│
├── events/                          # Events module (bounded context)
│   ├── domain/                      # Domain logic
│   │   ├── models/                  # ViewModels for read operations
│   │   │   └── EventVM.java
│   │   ├── vo/                      # Value Objects
│   │   │   ├── EventId.java
│   │   │   ├── EventCode.java
│   │   │   ├── EventDetails.java
│   │   │   ├── Schedule.java
│   │   │   ├── TicketPrice.java
│   │   │   ├── Capacity.java
│   │   │   └── EventLocation.java
│   │   ├── events/                  # Domain events
│   │   │   ├── EventCreated.java
│   │   │   ├── EventPublished.java
│   │   │   └── EventCancelled.java
│   │   ├── EventEntity.java         # Aggregate root
│   │   ├── EventRepository.java     # Repository interface
│   │   ├── EventService.java        # Write operations
│   │   ├── EventQueryService.java   # Read operations
│   │   ├── EventMapper.java         # Domain to ViewModel mapper
│   │   ├── CreateEventCmd.java      # Command
│   │   ├── PublishEventCmd.java
│   │   └── InvalidEventCreationException.java
│   ├── rest/                        # REST API layer
│   │   ├── converters/              # Type converters
│   │   │   └── StringToEventCodeConverter.java
│   │   ├── EventsController.java
│   │   ├── CreateEventRequest.java  # HTTP Request DTO
│   │   └── CreateEventResponse.java # HTTP Response DTO
│   └── EventsAPI.java               # Module's public API (facade)
│
├── registrations/                   # Registrations module
│   ├── domain/
│   │   ├── vo/
│   │   │   ├── RegistrationId.java
│   │   │   ├── RegistrationCode.java
│   │   │   └── Email.java
│   │   ├── EventRegistrationEntity.java
│   │   ├── RegistrationRepository.java
│   │   ├── EventRegistrationService.java
│   │   ├── EventRegistrationQueryService.java
│   │   └── RegisterAttendeeCmd.java
│   └── rest/
│       ├── converters/
│       ├── EventRegistrationController.java
│       └── EventRegistrationRequest.java
│
└── config/
    └── GlobalExceptionHandler.java

Naming Conventions

Type Convention Example
Entities *Entity EventEntity, EventRegistrationEntity
Value Objects Domain name (record) Email, EventCode, EventId
Commands *Cmd CreateEventCmd, PublishEventCmd
Command Response *Result LoginResult, RegistrationResult
ViewModels *VM EventVM, RegistrationVM
HTTP Request *Request CreateEventRequest, EventRegistrationRequest
HTTP Response *Response CreateEventResponse, EventRegistrationResponse
Repositories *Repository EventRepository, RegistrationRepository
Services (Write) *Service EventService, EventRegistrationService
Services (Read) *QueryService EventQueryService, EventRegistrationQueryService
Domain Exceptions *Exception InvalidEventCreationException, EventCancellationException
Module API *API EventsAPI