Skip to content

microfalx/bootstrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

806 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bootstrap

Introduction

Bootstrap provides building blocks for Spring Boot projects. Although Spring Boot (and the rest of the Spring projects) are coming with many services, this project provides some custom services and components to speed up the development process.

Bootstrap is very opinionated when it comes to building (web) application in Java based on Spring Boot. It's opinions are based on personal experience of the creators.

It is recommended to read the following documents to get familiar with Spring Boot and related extensions/plugins:

The repository is indexed with Devin and a wiki is available at DeepWiki. Please keep in mind this is generated by AI and it might not be accurate, but it can be a good starting point to understand the project and its features.

Features

Bootstrap is organized in multiple modules, each module provides a set of features. The modules are:

  • base: provides basic services and components, such as feature flags, configuration, exception handling, logging, CLI support, etc.
    • app: provides application metadata.
    • cli: provides command line interface support.
    • configuration: provides application dynamic configuration.
    • core: provides core setups, services, components and utilities.
    • feature: provides feature flags.
    • logging: provides logging.
    • metrics: provides metrics.
    • registry: provides a hierarchical storage.
    • resource: provides resource management.
    • security: provides additional Spring Boot security elements.
    • store: provides key-value stores based on RocksDB.
    • support: provides application support.
    • trace: provides tracing integration.
    • web: provides additional Spring web support
    • test: provides additional test setups.
  • data: provides additional data access support
    • broker: provides brokers integration.
    • content: provides file type detection and content extraction support based on Apache Tika.
    • dataset: provides data as records under DataSet API.
    • dsv: provides delimiter-separated values support.
    • jdbc: provides additional JDBC integration, including modular database migration support.
    • model: provides Record Metadata API.
    • test: provides additional data related testing support.
  • extension: provides additional extensions and plugins support
    • dos: provides Denial of Service support.
    • help: provides integrated application help.
    • mail: provides email sending support.
    • rest-api: provides Rest-API integration with Spring Boot.
    • rest-api-client: provides Rest-API client management and type-safe HTTP clients using Retrofit.
    • security: provides security integration with Spring Boot.
    • support: Web UI to manage & monitor the application.
    • system: Web UI to configure the application.
    • template: provides template support using Thymeleaf.
    • web: provides additional Spring MVC support.
    • test: provides additional test setups for Web & Rest API support.
  • cloud: provides cloud related support
    • google: provides Google Cloud related support.
  • ai: provides AI related support
  • serenity: provides web browser testing support based on Serenity BDD.
  • bom: provides a Bill of Materials (BOM) for dependency management.

Getting Started

Build & Run

The project requires Java 17 and Spring Boot 3.X to develop and run and uses and Apache Maven to build.

IDE

Load the project in any IDE which support Apache Maven (Eclipse, IntelliJ, VS Code). There is a main class called DemoApplication in the demo module, just run it, and it will start a Demo application the Spring Boot. Access the application at http://localhost:8080

Shell

Apache Maven is used to build the project.

mvn clean install -DskipTests can be used to compile the application.

mvn spring-boot:run can be used in the demo module to run the demo application using Apache Maven.

Tests

mvn clean test can be used to compile and run tests only.

Database

Bootstrap provides automatic database migration system, which supports a modular application.

Demo

The demo application uses MySQL database. Run the following statements (under root user) to create an empty database and a user for application access (change the database & user if desired, recommended to use demo):

CREATE USER 'demo'@'%' IDENTIFIED BY 'f2RODmy3j1Cq'; 
CREATE DATABASE demo CHARACTER SET utf8 COLLATE utf8_bin; 
GRANT ALL ON demo.* TO 'demo'@'%';
GRANT SELECT ON mysql.* TO demo;
FLUSH PRIVILEGES; 

About

Building blocks for Spring Boot projects

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors