• Stars
    star
    282
  • Rank 146,549 (Top 3 %)
  • Language
    TypeScript
  • Created about 9 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

❤️ 21-Points Health is an app you can use to monitor your health.

21-Points Health

Build Status Known Vulnerabilities

To track your health and improve your life. 😊

This application was generated using JHipster 7.9.3, and serves as the sample application in the JHipster Mini-Book.

Project Structure

Node is required for generation and recommended for development. package.json is always generated for a better development experience with prettier, commit hooks, scripts and so on.

In the project root, JHipster generates configuration files for tools like git, prettier, eslint, husky, and others that are well known and you can find references in the web.

/src/* structure follows default Java structure.

  • .yo-rc.json - Yeoman configuration file JHipster configuration is stored in this file at generator-jhipster key. You may find generator-jhipster-* for specific blueprints configuration.

  • .yo-resolve (optional) - Yeoman conflict resolver Allows to use a specific action when conflicts are found skipping prompts for files that matches a pattern. Each line should match [pattern] [action] with pattern been a Minimatch pattern and action been one of skip (default if ommited) or force. Lines starting with # are considered comments and are ignored.

  • .jhipster/*.json - JHipster entity configuration files

  • npmw - wrapper to use locally installed npm. JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using ./npmw instead of the traditional npm you can configure a Node-less environment to develop or test your application.

  • /src/main/docker - Docker configurations for the application and services that the application depends on

Development

Before you can build this project, you must install and configure the following dependencies on your machine:

  1. 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. You will only need to run this command when dependencies change in package.json.

npm install

We use npm scripts and Angular CLI with Webpack as our build system.

Run the following commands in two separate terminals to create a blissful development experience where your browser auto-refreshes when files change on your hard drive.

./gradlew -x webapp
npm start

Npm is also used to manage CSS and JavaScript dependencies used in this application. You can upgrade dependencies by specifying a newer version in package.json. You can also run npm update and npm install to manage dependencies. Add the help flag on any command to see how you can use it. For example, npm help update.

The npm run command will list all of the scripts available to run for this project.

PWA Support

JHipster ships with PWA (Progressive Web App) support, and it's turned off by default. One of the main components of a PWA is a service worker.

The service worker initialization code is disabled by default. To enable it, uncomment the following code in src/main/webapp/app/app.module.ts:

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),

Managing dependencies

For example, to add Leaflet library as a runtime dependency of your application, you would run following command:

npm install --save --save-exact leaflet

To benefit from TypeScript type definitions from DefinitelyTyped repository in development, you would run following command:

npm install -D --save-exact @types/leaflet

Then you would import the JS and CSS files specified in library's installation instructions so that Webpack knows about them: Edit src/main/webapp/app/app.module.ts file:

import 'leaflet/dist/leaflet.js';

Edit src/main/webapp/content/scss/vendor.scss file:

@import '~leaflet/dist/leaflet.css';

Note: There are still a few other things remaining to do for Leaflet that we won't detail here.

For further instructions on how to develop with JHipster, have a look at Using JHipster in development.

Using Angular CLI

You can also use Angular CLI to generate some custom client code.

For example, the following command:

ng generate component my-component

will generate few files:

create src/main/webapp/app/my-component/my-component.component.html
create src/main/webapp/app/my-component/my-component.component.ts
update src/main/webapp/app/app.module.ts

JHipster Control Center

JHipster Control Center can help you manage and control your application(s). You can start a local control center server (accessible on http://localhost:7419) with:

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

Building for production

Packaging as jar

To build the final jar and optimize the TwentyOnePoints application for production, run:

./gradlew -Pprod clean bootJar

This will concatenate and minify the client CSS and JavaScript files. It will also modify index.html so it references these new files. To ensure everything worked, run:

java -jar build/libs/*.jar

Then navigate to http://localhost:8080 in your browser.

Refer to Using JHipster in production for more details.

Packaging as war

To package your application as a war in order to deploy it to an application server, run:

./gradlew -Pprod -Pwar clean bootWar

Testing

To launch your application's tests, run:

./gradlew test integrationTest jacocoTestReport

Client tests

Unit tests are run by Jest. They're located in src/test/javascript/ and can be run with:

npm test

UI end-to-end tests are powered by Cypress. They're located in src/test/javascript/cypress and can be run by starting Spring Boot in one terminal (./gradlew bootRun) and running the tests (npm run e2e) in a second one.

Lighthouse audits

You can execute automated [lighthouse audits][https://developers.google.com/web/tools/lighthouse/] with [cypress audits][https://github.com/mfrachet/cypress-audit] by running npm run e2e:cypress:audits. You should only run the audits when your application is packaged with the production profile. The lighthouse report is created in build/cypress/lhreport.html

For more information, refer to the Running tests page.

Code quality

Sonar is used to analyse code quality. You can start a local Sonar server (accessible on http://localhost:9001) with:

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

Note: we have turned off authentication in src/main/docker/sonar.yml for out of the box experience while trying out SonarQube, for real use cases turn it back on.

You can run a Sonar analysis with using the sonar-scanner or by using the gradle plugin.

Then, run a Sonar analysis:

./gradlew -Pprod clean check jacocoTestReport sonarqube

For more information, refer to the Code quality page.

Using Docker to simplify development (optional)

You can use Docker to improve your JHipster development experience. A number of docker-compose configuration are available in the src/main/docker folder to launch required third party services.

For example, to start a postgresql database in a docker container, run:

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

To stop it and remove the container, run:

docker-compose -f src/main/docker/postgresql.yml down

You can also fully dockerize your application and all the services that it depends on. To achieve this, first build a docker image of your app by running:

npm run java:docker

Or build an arm64 docker image when using an arm64 processor os like macOS with M1 processor family running:

npm run java:docker:arm64

Then run:

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

When running Docker Desktop on MacOS Big Sur or later, consider enabling experimental Use the new Virtualization framework for better processing performance (disk access performance is worse).

For more information refer to Using Docker and Docker-Compose, this page also contains information on the docker-compose sub-generator (jhipster docker-compose), which is able to generate docker configurations for one or several JHipster applications.

Continuous Integration (optional)

To configure CI for your project, run the ci-cd sub-generator (jhipster ci-cd), this will let you generate configuration files for a number of Continuous Integration systems. Consult the Setting up Continuous Integration page for more information.

More Repositories

1

history-of-web-frameworks-timeline

The history of web frameworks as described by a timeline of releases.
369
star
2

idea-live-templates

My IntelliJ Live Templates
277
star
3

jhipster4-demo

Blog demo app with JHipster 4
Java
179
star
4

ng-demo

🦴 Bare Bones Angular and Angular CLI Tutorial
TypeScript
177
star
5

infoq-mini-book

Template project for creating an InfoQ Mini-Book with Asciidoctor
CSS
172
star
6

jhipster6-demo

JHipster 6 Demo! 🎉
Java
153
star
7

jhipster7-demo

JHipster 7 Demo! 🔥
TypeScript
81
star
8

jhipster5-demo

Get Started with JHipster 5 Tutorial and Example
Java
80
star
9

ajax-login

Ajax Login
JavaScript
46
star
10

angular2-tutorial

Getting Started with Angular 2
TypeScript
46
star
11

boot-ionic

An example mobile app written with Ionic Framework
JavaScript
36
star
12

microservices-for-the-masses

Microservices for the Masses with Spring Boot, JHipster, and JWT
CSS
36
star
13

java-webapp-security-examples

Example projects showing how to configure security with Java EE, Spring Security and Apache Shiro.
Java
36
star
14

jhipster8-demo

JHipster 8 Demo! 🌟
TypeScript
34
star
15

cloud-native-pwas

Cloud Native Progressive Web Apps with Spring Boot and Angular
Shell
31
star
16

spring-native-examples

JHipster Works with Spring Native!
Java
24
star
17

boot-makeover

A Webapp Makeover with Spring 4 and Spring Boot
Java
23
star
18

jhipster-book

The JHipster Mini-Book
CSS
21
star
19

camel-rest-swagger

Camel with Spring JavaConfig and Camel's REST + Swagger support with no web.xml
JavaScript
20
star
20

play-more

HTML5 Fitness Tracking with Play!
JavaScript
17
star
21

mobile-jhipster

Mobile Development with Ionic, React Native, and JHipster
TypeScript
17
star
22

jhipster-demo

JHipster 2 Demo
Java
16
star
23

java-rest-api-examples

Java REST API Examples
HTML
15
star
24

ionic-jhipster-example

Example of integrating Ionic with JHipster
Java
13
star
25

webflux-oauth2

Spring Webflux with OAuth
Java
11
star
26

devoxxus-jhipster-microservices-demo

JHipster Microservices Demo Code from Devoxx US 2017
Java
10
star
27

angular-tutorial

Getting Started with AngularJS
JavaScript
10
star
28

nuxt-spring-boot

Vue
7
star
29

angular-book

The Angular Mini-Book
TypeScript
7
star
30

spring-kickstart

JavaScript
7
star
31

jhipster-reactive-microservices-oauth2

Java
6
star
32

appfuse-noxml

A work-in-progress version of AppFuse with no XML
Java
6
star
33

okta-spring-boot-angular-example

TypeScript
6
star
34

jhipster-oidc-example

Example of doing OIDC Login with Keycloak and Okta
Java
5
star
35

okta-scim-spring-boot-example

A SCIM Example with Apache SCIMple and Spring Boot
Java
5
star
36

ionic-4-oidc-demo

Angular/Cordova demo of Ionic App Auth
TypeScript
4
star
37

spring-boot-oauth

Java
4
star
38

auth0-react-example

JavaScript
4
star
39

jhipster-stormpath-example

Example app showing how to integrate Stormpath into JHipster 3.x
Java
4
star
40

javaone2017-jhipster-demo

Blog application created during my JHipster talk at JavaOne 2017
Java
3
star
41

spring-boot-postgresql

Java
3
star
42

webflux-mongodb

Java
3
star
43

okta-native-hints

Java
3
star
44

jhipster-reactive-monolith-oauth2

Java
3
star
45

infoq-mini-book-presentation

Writing an InfoQ Mini-Book with Asciidoctor
JavaScript
3
star
46

play-scalate

Play Plugin for Scalate
Scala
3
star
47

okta-react-quickstart

JavaScript
3
star
48

okta-spring-boot-saml-example

Java
3
star
49

jhipster-micro-frontends

JHipster Microservices Architecture with Micro Frontends
Java
3
star
50

appauth-react-electron

JavaScript
2
star
51

react-native-logout-issue

JavaScript
2
star
52

angular-app

HTML
2
star
53

jx-demo

Java
2
star
54

jhipster-microfrontends-react

Java
2
star
55

speaking-tour

How to plan a speaking tour
2
star
56

vue-gateway

Java
2
star
57

bjug-microservices

Microservices with JHipster example from Boulder JUG - February 2020
Java
2
star
58

jhipster-sb3-csrf

Java
1
star
59

21-points-v7

TypeScript
1
star
60

environment-marespring-production

Makefile
1
star
61

mraible

1
star
62

blog-oauth2-native

TypeScript
1
star
63

blazor-test

C#
1
star
64

okta-react-auth-js

JavaScript
1
star
65

jwt-client

TypeScript
1
star
66

history-of-online-video-timeline

1
star
67

webflux-couchbase

Java
1
star
68

auth0-expenses-api

JavaScript
1
star
69

ionic-jhipster

TypeScript
1
star
70

ionic-4-oauth2

TypeScript
1
star
71

jhipster-ionic-images

Example repo with image upload/view/delete working
TypeScript
1
star
72

jhipster-blog-oauth2

Java
1
star
73

jhipster-flickr2

GitHub Actions for GraalVM images example
Java
1
star
74

spinnaker-store

Java
1
star
75

my-cool-app

JavaScript
1
star
76

jhipster4-stormpath-example

JHipster 4 + Stormpath + JWT Example
TypeScript
1
star
77

grails-oauth-example

Grails application demonstrating OAuth with LinkedIn's API
1
star
78

jhipster-oauth-example

This repo is temporary. It will be deleted soon. I'm creating it for community code review.
Java
1
star
79

okta-react-signin-widget

JavaScript
1
star
80

jhipster-microfrontends-angular

Java
1
star
81

html5-denver

TypeScript
1
star