Rapid Application Development with

JUG Bonn, Mai 26th 2021

About me

Frederik Hahne

@atomfrede

atomfrede.gitlab.io

About me

  • JHipster Core Team Member since 2015
  • Gradle Stream Lead
  • Recently working on vue, micronaut and heroku
  • JUG Paderborn Co-Organizer
  • Software Developer at wescale in Paderborn from home

Intro
Overview
Demo

How long does it take to setup a modern web application?

How long does it take to go into production?

What is JHipster?

+

=

-

What is JHipster?

  • Full Stack Application Development Platform
  • 100% Open Source
  • Best Practice & High Quality Code
  • Community & Knowledge

100% Open Source

  • everything happens on Github or our mailing list
  • 35 core team member
  • JHipster Non-Profit organization
  • JHipster technical steering committee
  • >100K USD annual budget trough donations and sponsors

Community

https://github.com/jhipster/prettier-java

Extending JHipster

Blueprints

  • Access JHipster Configuration
  • Overwrite parts of the main generator
  • Bring own files, templates, features
  • Add or replace parts of the main generator

Neo4j Support

  • We didn't do it
  • New Spring Module in the making
  • Chat and plan during JFN19
  • Neo4j migrations
  • First class SDN/RX support in JHipster
  • Now: Spring Data Neo4j

😱

Gradle Enterprise

+

docs.openrewrite.org

Let's get started

// Installed node, java and git (optional)	
npm install -g generator-jhipster	
		
jhipster

JDL

application {
  config {
    baseName hike
    applicationType monolith
    authenticationType oauth2
    packageName com.github.atomfrede.example.hike
    prodDatabaseType postgresql
    testFrameworks [cypress]
    buildTool gradle
    clientFramework vue
  }
  entities *
}
entity HikingLocation {
    name String required
    description String required
}
entity Hike {
    name String required
    date LocalDate required
    description TextBlob required
    photo ImageBlob required
    type Difficulty required
    length Integer required
}
enum Difficulty {
  EASY,
  MEDIUM,
  HARD,
  ULTRA
}
relationship OneToOne { 
  Hike{startLocation(name)} to HikingLocation,
  Hike{destination(name)} to HikingLocation
}
paginate Hike with pagination
paginate HikingLocation with pagination
jhipster import-jdl app.jdl
docker-compose -f src/main/docker/keycloak.yml up -d
./gradlew

./gradlew -x webapp
npm start

docker-compose -f src/main/docker/postgresql.yml up -d
./gradlew -Pprod

That's Rapid Application Creation

Tooling?

jhipster.tech/jdl-studio

vscode extension

Going to the cloud

jhipster heroku

Monitoring

docker-compose -f src/main/docker/monitoring.yml up -d
docker-compose -f src/main/docker/jhipster-control-center.yml up -d

// http://localhost:7419

Want to contribute?

jhipster.tech/bug-bounties/#-bug-bounties

Try it out

  • jhipster.tech
  • github.com/jhipster/generator-jhipster
  • start.jhipster.tech

Questions?

Made with Slides.com