Introduction
There is a saying, that everyone of us have statistically four milion dollars ideas per year. Point is - to achieve something, you can't just stop on thinking about your business idea, app or company. You have to implement your idea.
It sounds great for a first time, you sit at you desk, create app from Spring generator. It takes one night, to design and implement couple entities, with services, repositories and controllers. It takes another night to bind essential libraries, set up connection to database, search engine, authentication model or caching mechanism. Frontend for each entity, or for basic metrix, API explorer, logging or configuration also takes time, that has no value for end user.
And well, that's fine for one project. But, when on monthly basis you can came up with another idea, you may end up on being expert at starting projects, with ZERO projects actually finished to MVP (minimal viable product) state.
I was at this point about year ago. Annoyed with constant kick off routine, I decided to found solution to this issue. At first, I tried to copy existing projects, but simple changes, like changing data storage from PostgreSQL in old project to MongoDB in new one could take couple boring hours. I definitely needed some kind of generator for whole web applications, not only for backend part.
After many try-outs I finally found JHispter.
What is JHipster
JHipster is Yeoman generator for both complex and simple web applications. Technology Stack - modular Spring Boot Starter (only java on backend) React and Angular on Frontend, and various options on deployment.
JHipster allows developer to select and specify technological stack of web application including choice of architecture (microservice/monolith)
JHipster provides great number of tasks that can be automated. Some of them are:
- Entity generation, modification - entities are created with pretty nice user experience, services DTO's repositories (JPA/Mongo nad Elasticsearch Repositories) and controllers (couple hours of spared time)
- Internationalisation
- Security model - implementation of statefull security(not recommended) but also security with JWT tokens and UAA servers
- Metrics and configuration
- Self documenting API with Swagger
- Logging with Kibana
It doesn't bind you with any of these technologies, though. You are free to modify, delete and add new libraries, services and integration with customization options provided, as you would write it from scratch on your own.
Resources:
Repo:
TBD in next part :). Stay Tuned!
Follow up
You don't have to take my words for granted. This is meant to be at least two weekly series of tutorials, guides, and blog posts about features and architecture of JHipster Application. Next Week I will show you how to create web Application using JHipster and what comes out of the box.
Curious? Stay tuned!
Sounds interesting, I'll follow the progress.