Bakery App Starter for FW8 and Spring/JavaEE

Bakery is an App Starter to give you a head start building your business application based on Vaadin Framework 8 and Spring or JavaEE.

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.

Features

Full stack architecture

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.

There are two versions of the app starter: One based on Spring and one based on JavaEE.

The Spring version uses Spring Data to take care of the database, Spring Security to manage authentication and authorization and Spring boot to help in packaging, configuring and running. It runs in any Servlet 3.1 compatible server.

The JavaEE version uses JPA 2.1 + Deltaspike Data to take care of the database, Shiro to manage authentication and authorization. It has been verified using Wildfly 10, TomEE 7 Plume and WebSphere Liberty but should run on any JavaEE7 compatible server with JPA 2.1 support.

Note
TomEE 7.0.3 WebProfile and TomEE 7.0.3 plus (newest version at time of writing) ship with JPA 2.0 although it otherwise supports JavaEE7. You need to use the Plume version.

Both versions uses an H2 database so that you can run the software directly with zero configuration and it can easily be replaced for your production database. Vaadin Designer has been used to build all UIs and the application is tested with Vaadin TestBench. Gatling, along with TestBench is used to perform scalability tests on the system.

Architecture diagram for Spring
Architecture diagram for JavaEE

Declarative, mobile-first views

Views are built with Vaadin Framework 8 with the help of Vaadin Designer. Each view is built responsively, mobile-first. Vaadin Designer enables you to build the views visually and in a very fast and productive way. The views that are bundled show paradigms on how to create certain types of view and serve as bases for your own views.

Bakery Mobile view

CRUD views

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.

Bakery CRUD view

Dashboard with Charts

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.

Bakery Dashboard view

Authentication and authorization

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.

In the Spring version, the authentication and authorization is built on top of Spring Security. In the JavaEE version, Shiro is used for the same purpose. Both offer you many extensions points so you can configure it the way you handle security in your company.

Bakery Login screen

Tested

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.

Scalable

The application includes a scalability setup for testing how your application scales to multiple users.

We have tested the application’s performance. Download the scalability report to find out closer how many end users you can serve.

Service layer

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.

Maven

Dependency management and building is handled by Maven and the standardized Maven conventions help working in the industry-proven way.

Getting started

A personalized project can be downloaded from the product page by giving group id, artifact id and developer name.

Note
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.

Software needed

  • Java JDK 1.8 or higher

  • Maven is required for building, running and packaging the Software