JHipster has two mechanisms to extend its features:
- A modules system, which lets users build their own Yeoman generators (http://www.jhipster.tech/modules/creating-a-module/) to complement JHipster
- A blueprint mechanism to customize the required parts of the code generated by JHipster
The difference between a module and a blueprint is that a blueprint lets you override certain parts of the generated application while JHipster scaffolds the remaining parts. For example, a blueprint can override the client-side code alone, while the server side is generated by JHipster. A module, on the other hand, can only change what is generated by JHipster, and so is more suitable for adding complementary features on top of the ones created by JHipster.
Try to build a module to add a simple, contact us page to your application.
You can use the JHipster module generator (https://github.com/jhipster/generator-jhipster-module) to scaffold a new module.
Let's see what the best practices are.