Skip to content

πŸ’« A modern lightweight Java web scaffold based on spring boot 3. It features a modern technology stack, keeps up with community trends, and follows best practices in design and coding style.

License

Notifications You must be signed in to change notification settings

RAIMUNDOS54/mjga-scaffold

Β 
Β 

Repository files navigation

Make Java Great Again!

modern Lightweight Test Meticulous coding Meticulous coding

MJGA is a modern Java web scaffold built based on the following principles:

One philosophy

  1. Manages the entire lifecycle of an application and its environment through docker-compose.yml.
  2. Customizes all property variables through the .env file.

Out of box:

  1. Foundational business functions such as authentication, permission management, and cache abstraction.
  2. Code Check&Format, CI/CD Plugin, and Docker Integration, all ready to use out of the box.
  3. Comprehensive unit testing that is well-designed and isolates the runtime environment.

Modern, Configurable, Meticulous coding, Not-all-in-one

  1. Modern: technology choices closely follow the trends in the open-source community.
  2. Configurable: supports component selection and configuration on a web page.
  3. Meticulous coding: considers best practices for every variable, function, module, and component.
  4. Not-all-in-one: both now and in the future, MJGA will maintain its boundaries.

Database First

MIT License

Technology Version Description
OpenJdk 17
SpringBoot 3.2.1 Core framework
Jooq 3.18.6 Generates type-safe SQL queries
Gradle 8.4 Automation build tool
Pmd 6.55.0 Static code analysis tool
Spotless 6.18.0 Code formatting
... ... ...

Usage

Docker

Confirm default environment variables

# env will be applied to compose.yaml
less ${projectRoot}/.env

Install Docker Engine and start the container

cd ${projectRoot}
docker-compose up -d

Local

(Optional) Start on local machine

# confirm .env and make sure process can use it
nano/vim ${projectRoot}/.env
${projectRoot}/gradlew bootRun

Generate DB Mapping Source

# confirm .env and make sure process can use it
nano/vim ${projectRoot}/.env
# generate schema mapping codes
./gradlew generateJooq
# output ->
# projectRootDir/build/generated-src
# └── jooq
#    └── tables # table mapping
#       β”œβ”€β”€ daos # Data Access Layer
#       β”œβ”€β”€ pojos # mapping dto
#       └── records # jooq query record

More Document

Test coverage

cover

summary

πŸ”—

portfolio

About

πŸ’« A modern lightweight Java web scaffold based on spring boot 3. It features a modern technology stack, keeps up with community trends, and follows best practices in design and coding style.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.7%
  • Dockerfile 0.3%