/jhipster-lite

JHipster Lite ⚡ is a development platform to generate, develop & deploy modern web applications & microservice architectures, step by step.

Primary LanguageJavaApache License 2.0Apache-2.0

Logo JHipster Lite

JHipster Lite ⚡

JHipster Lite version Build Status Coverage Status

sonarcloud-quality-gate sonarcloud-maintainability

sonarcloud-bugs sonarcloud-vulnerabilities sonarcloud-security sonarcloud-code-smells sonarcloud-coverage

Description

JHipster is a development platform to quickly generate, develop & deploy modern web applications & microservice architectures.

JHipster Lite will help you to start your project, by generating step by step only what you need.

  • the generated code uses Hexagonal Architecture
  • the technical code is separated from your business code
  • you will only generate the code you want, no additional unused code
  • best quality as possible: 💯% coverage, 0 code smell, no duplication 😎

Deploy to Heroku

Click this button to deploy your own instance of JHipster Lite:

Deploy to Heroku

Complementary information:

  • You will have the latest release behaviour on that server

Prerequisites

Java

You need to have Java 17 :

Node.js and NPM

  • Node.js: we use Node to run a development web server and build the project. Depending on your system, you can install Node either from source or as a pre-packaged bundle.

After installing Node, you should be able to run the following command to install development tools.

npm ci

You will only need to run this command when dependencies change in package.json.

npm install

Test the project

To launch tests:

./mvnw clean test

To launch tests and integration tests:

./mvnw clean verify

Prettier

We use prettier and prettier-java to format our code.

To check format:

npm run prettier:check

To launch format all code:

npm run prettier:format

Sonar Analysis

To launch local Sonar Analysis:

docker-compose -f src/main/docker/sonar.yml up -d

Then:

./mvnw clean verify sonar:sonar

So you can check the result at http://localhost:9001

Run the project

You can run the project using Maven, as spring-boot:run is the default target:

./mvnw

Or, first, you can package as jar:

./mvnw package

Then, run:

java -jar target/*.jar

Then navigate to http://localhost:7471/swagger-ui.html in your browser.

e2e tests

You need to run the project first. Then, you can run the end-to-end tests:

npm run e2e

Or in headless mode:

npm run e2e:headless

Generate your project

Go to http://localhost:7471, select your option and generate the code you want, step by step, and only what you need.

If needed more advanced features, go to http://localhost:7471/swagger-ui.html and use your own JSON to generate the code you want. Here an example:

{
  "folder": "/tmp/beer",
  "generator-jhipster": {
    "baseName": "beer",
    "projectName": "Beer Project",
    "packageName": "tech.jhipster.beer",
    "serverPort": 8080
  }
}

You can use the different existing APIs to:

  • init the project

Then, for a Java project, you can add:

  • Maven as Build Tool
  • Gradle as Build Tool
  • Java Base classes and Domain Error

List of optional tools for Java:

  • ArchUnit tests
  • JaCoCo configuration for minimum coverage
  • Sonar configuration

Setup:

  • GitHub Codespaces
  • Gitpod

Spring Boot:

  • Spring Boot as Server Framework
  • Spring Boot Actuator
  • Tomcat or Undertow as Spring Boot MVC
    • Spring Security with JWT
      • Basic Auth
    • OAuth 2.0 and OIDC Authentication
  • AOP Logging
  • Asynchronous execution and scheduling configuration
  • Spring Cache
    • Simple
    • Ehcache
  • Developer Tools
  • Logstash TCP appender
  • Springdoc without or with Security JWT
  • Jib to build Docker image

Spring Boot Database:

  • PostgreSQL, MySQL or MariaDB as Database
    • Liquibase or Flyway as Database Migration Tool
    • User and Authority tables (depending on Liquibase or Flyway)
  • MongoDB as NoSQL Database

Spring Cloud:

  • Eureka client
  • Spring Cloud Config client
  • Spring Cloud Consul

Broker:

  • Apache Kafka

Client:

  • Angular
  • React with Vite
  • Vue with Vite

Continuous Integration:

  • GitHub Actions