MCPcopy Index your code
hub / github.com/ericus20/spring-boot-starter

github.com/ericus20/spring-boot-starter @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,010 symbols 2,991 edges 234 files 404 documented · 40% 61 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Spring Boot Starter

A highly opinionated and complete starter for Spring Boot production ready projects.

Running Instance on Heroku

https://spring-boot-starter.ericopoku.com/

Java CI with Gradle pre-commit

Test Coverage

Coverage Branches

Built With

Features

Sample ongoing project using this template

Entity Relational Diagram (ERD)

img.png

Production Ready Folder Structure

.
├── config                            # Can hold project level configurations like pmd, checkstyle, etc.
├── documents                         # Holds project documentations. Markdown sections, etc.
│   └── images
├── libs                              # Holds special libraries used by the application.
│   └── newrelic
└── src
    ├── integrationTest               # Integration test suites separated from unit tests.
    │   ├── java
    │   │   └── com
    │   │       └── developersboard
    │   │           ├── backend
    │   │           ├── task
    │   │           └── web
    │   └── resources
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── developersboard
    │   │           ├── annotation     # All custom annotations used in the application
    │   │           ├── backend        # Business Logic and Data Access implementation
    │   │           ├── config         # Configuration classes and properties
    │   │           ├── constant       # Constants used in the application
    │   │           ├── enums          # Enums used in the application
    │   │           ├── exception      # Custom exceptions used in the application
    │   │           ├── shared         # Resources like dto, utils, etc. used in the application
    │   │           ├── task           # Scheduled tasks and cron jobs used in the application
    │   │           └── web            # Web layer implementation
    │   ├── resources
    │   │   ├── i18n                   # I18n property files, comes with 'en', 'fr', 'es' and 'zn_CN'
    │   │   ├── static
    │   │   │   ├── css
    │   │   │   ├── fonts
    │   │   │   ├── images
    │   │   │   └── js
    │   │   │       └── form-validation
    │   │   └── templates
    │   │       ├── common
    │   │       │   └── email
    │   │       ├── email
    │   │       ├── error
    │   │       └── user
    │   └── scripts                     # Scripts used in the application as part of docker build, etc.
    └── test
        ├── java
        │   └── com
        │       └── developersboard
        │           ├── backend
        │           ├── config
        │           ├── shared
        │           └── web
        └── resources


Configuration properties required to deploy to Heroku:

img.png

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Credit

TBD

Authors

  • Eric Opoku - Initial work
  • George Anguah - Initial work
  • Matthew Puentes - Initial work
  • Stephen Boakye - Contributor
  • Charles Dimbeng - Contributor
  • Simon Kodua - Contributor

Acknowledgments

  • To Support
  • To learn
  • etc

Notes

  • The following environment variables can be customized as necessary.:

  • The defaults are:

    ADMIN_USERNAME=admin
    ADMIN_PASSWORD=password
    ENCRYPTION_SECRET_SALT=salt
    ENCRYPTION_SECRET_PASSWORD=password
    JWT_SECRET=salt
    SPRING_PROFILES_ACTIVE=dev
    ACCESS_TOKEN_EXPIRATION_IN_MINUTES=5
    
  • The AWS Properties and defaults are:

    AWS_REGION=us-east-1
    AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
    AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    AWS_S3_BUCKET_NAME=spring-boot-starter
    
  • The Email Properties and defaults are:

    EMAIL_PROTOCOL=smtp
    EMAIL_HOST=smtp.gmail.com
    EMAIL_PORT=587
    EMAIL_USERNAME
    EMAIL_PASSWORD # If using gmail, this must be a 2 step verification enabled app password
    
  • The profiles defined in the application are development, test, integration-test, integration-test-ci, and production to test out production functionalities.

    • Datasource must be provided for production profile for the application to run.

NB: Windows users must use gradlew instead of ./gradlew**

  • Start Spring Boot application using on linux/unix - ./gradlew bootRun
  • Run unit tests using - ./gradlew test
  • Run integration tests using - ./gradlew integrationTest
  • Run all tests using - ./gradlew testAll *
  • Access application on http://localhost:8080/
  • Access in-memory database on http://localhost:8080/console
  • Run owasp dependency check - ./gradlew dependencyCheckAnalyze --info
  • Access Swagger UI - http://localhost:8080/swagger-ui/index.html

Running on Docker (Assuming docker is installed)

  • in the directory where docker-compose.yml file resides, simply run the command - docker-compose up

Stop running application on Docker

  • in the directory where docker-compose.yml file resides, simply run the command - docker-compose down

Extension points exported contracts — how you extend this code

I18NService (Interface)
Provides public methods for internationalization. @author Eric Opoku @version 1.0 @since 1.0 [3 implementers]
src/main/java/com/developersboard/backend/service/i18n/I18NService.java
JwtService (Interface)
This is the contract for the jwt service operations. @author Eric Opoku @version 1.0 @since 1.0 [2 implementers]
src/main/java/com/developersboard/backend/service/security/JwtService.java
BruteForceProtectionService (Interface)
This is the contract for the brute force protection service operations. Responsible for handling the login attempts. @a [2 …
src/main/java/com/developersboard/backend/service/security/BruteForceProtectionService.java
CookieService (Interface)
Provides mechanism to create and manage cookies. @author Eric Opoku @version 1.0 @since 1.0 [2 implementers]
src/main/java/com/developersboard/backend/service/security/CookieService.java
AuditService (Interface)
This is the contract for the audit service operations. @author Eric Opoku @version 1.0 @since 1.0 [2 implementers]
src/main/java/com/developersboard/backend/service/security/AuditService.java

Core symbols most depended-on inside this repo

createUser
called by 38
src/main/java/com/developersboard/shared/util/UserUtils.java
getName
called by 29
src/main/java/com/developersboard/shared/dto/UserDto.java
getId
called by 24
src/main/java/com/developersboard/backend/persistent/domain/base/Identifiable.java
generateJwtToken
called by 23
src/main/java/com/developersboard/backend/service/security/JwtService.java
createUserDto
called by 23
src/main/java/com/developersboard/shared/util/UserUtils.java
convertToUserDto
called by 20
src/main/java/com/developersboard/shared/util/UserUtils.java
getName
called by 17
src/main/java/com/developersboard/backend/persistent/domain/user/User.java
validateInputs
called by 17
src/main/java/com/developersboard/shared/util/core/ValidationUtils.java

Shape

Method 653
Function 181
Class 155
Interface 16
Enum 5

Languages

Java82%
TypeScript18%

Modules by API surface

javadoc/script-dir/jquery-3.5.1.min.js83 symbols
src/main/resources/static/js/form-validation/FormValidation.min.js61 symbols
src/integrationTest/java/com/developersboard/backend/service/user/UserServiceIntegrationTest.java31 symbols
src/integrationTest/java/com/developersboard/web/rest/v1/UserRestApiIntegrationTest.java22 symbols
src/test/java/com/developersboard/shared/util/core/SecurityUtilsTest.java20 symbols
src/main/java/com/developersboard/backend/service/user/impl/UserServiceImpl.java19 symbols
src/main/java/com/developersboard/backend/service/user/UserService.java18 symbols
src/test/java/com/developersboard/shared/util/core/DateUtilsTest.java17 symbols
src/test/java/com/developersboard/backend/service/security/CookieServiceTest.java15 symbols
src/test/java/com/developersboard/backend/service/user/UserServiceTest.java14 symbols
src/integrationTest/java/com/developersboard/backend/service/mail/EmailServiceIntegrationTest.java14 symbols
src/main/resources/static/js/form-validation/Bootstrap5.min.js13 symbols

Datastores touched

spring_boot_starterDatabase · 1 repos

For agents

$ claude mcp add spring-boot-starter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact