Bakery is an App Starter to give you a head start building your business application based on Vaadin 10+ with Flow and Spring.
It includes an end-to-end technology stack covering each layer that is needed to build a production grade application. The App Starter is opinionated and reflects Vaadin’s view on what is the best way to build business applications.
Bakery architecture is built to give a full opinionated working stack with all the technologies changed out. Every project has however their own needs and each stack doesn’t fit in to every project. If the default stack is not a perfect fit for your needs, you can switch out the technologies to match your requirements better.
Bakery is using the Spring stack by default, with Spring Data taking care of the database, Spring Security managing authentication and authorization and Spring boot helps in packaging, configuring and running. An H2 database is added so that you can run the software directly with zero configuration and it can easily be replaced for your production database. The application is tested with Vaadin TestBench. Gatling, along with TestBench is used to perform scalability tests on the system.
Views are built with Vaadin 10+. Each view is built responsively, mobile-first. Vaadin Designer allows to edit existing views and create new ones visually in a fast and productive way.
They go with multiple names. Create-Read-Update-Delete, Master-Detail. Updating data is at the core of many business applications. Bakery includes two examples of CRUD views where you can maintain the data.
A dashboard view is included to give the user an overview of the data in the application in one glance. Customize the widgets to show the data that is relevant to your users and give them indications on events that they should react to. Vaadin Board is used to layout the dashboard and Vaadin Charts visualizes the data.
The application is protected with user login to keep your sensitive data safe. Users can have different roles defined in the application which defines what they can do within the application. The authentication and authorization is built on top of Spring Security, giving you many extensions points to configure it the way you handle security in your company.
Whenever client goes offline bakery shows offline screen
As soon as connection to the server is restored page is reloaded.
Integration tests are built on the application with the help of Vaadin TestBench. We content that you don’t break functionality of the application why developing by maintaining and running the tests while developing. Running tests can be set up to happen on an integration server along with every commit.
The application includes a scalability setup for testing how your application scales to multiple users.
Views contact a service layer which separates the UI layer from the business logic layer. The Service layer is divided to Services which is the contact point for the UI layer, and repositories that communicate with the database.
Database layer makes use of Spring Data, JPA and Hibernate to fetch data, with a handy API for querying. The application comes bundled with an in-memory H2 database for easy setup and getting started, along with an easy way to switch the in-memory database for a production database.
The application is set up, run and packaged with the help of Spring Boot, which helps you create production-ready applications.
A personalized project can be downloaded from the product page by picking
Full Stack App with Spring and providing Group Id and App Name, it’s needed to be logged in to be able to download.
|A paid Pro or Prime subscription is required for creating a new software project from a Starter template. After its creation, results can be used, developed and distributed freely, but licenses for the used commercial components are required during development. The Starter or its parts cannot be redistributed as a code example or template. For full terms, see the Commercial Vaadin Template License.|
See more information on setting up your environment in Running, building and packaging.