Headstart Framework: a Java and Spring Boot-based Framework

Headstart framework is a simple Spring Boot-based framework to help speed up the development of greenfield projects by providing baseline implementation of standard backend features that most applications need. These features include user authentication and authorization, user management, role and permission management, user account management, and so on. Meanwhile, developers can choose their front-end technologies for their projects and integrate with these backend features via HTTP REST API/JSON. Moreover, Headstart provides commonly used dependencies (e.g., databases) and makes switching between providers relatively easy.

Meet Headstart Framework

Undoubtedly, Spring Boot has made building applications fun and easy. Although it has allowed us to build applications quickly, we almost always reinvent the wheels for new projects. Unfortunately, we could not simply repurpose an existing codebase for another client without changing many codes.

With Headstart, we can have a simple well-documented customer-neutral quality baseline codebase with good test coverage from which we can start developing new projects. Also, developers could build additional features on Headstart that are not domain-specific.

Headstart Framework General Requirements

We developed the Headstart framework on top of Spring Boot. Therefore, most of the requirements will be similar to any Java or Spring Boot project.

  • Java 11
  • Spring Boot 2.5.5

General Framework Features

The Headstart Framework has the following features.

  • Database agnostic and supports major RDBS platforms
  • Extensible to afford developers greater freedom in customizing Headstart
  • It supports multi-tenancy
  • Supports limited scripting
  • Creation of simple tasks for internal processing

Moreover, a Headstart application could serve as an Identity Access Management service to allow authentication (via JWT token) and authorization for microservices. For authorization, we could use the same set of authorities (permissions) across microservices with, for instance, the @PreAuthorize annotation.

Local Development Environment

To work with Headstart in a local development environment, we recommend using the following tools.

  • Docker
  • Intellij IDEA (optional)
  • Postman (optional)
  • Data Grip (optional)
  • SonarQuebe
  • Jenkins

We use Docker compose to start up the services the Headstart framework uses. These services include an RDBMS server, queue instances, an object storage server, Sonarqube, and so on. Having these services running makes development easy because the developer no longer needs to worry about configuring these services himself.

Your First Java Spring Boot Project

We want Headstart to be as easy as possible to get started with developing new Java projects. Depending on the Headstart framework version you have, choose the appropriate quickstart link below.

  • Version 1.0 (Work In Progress)

Next Steps

Next, we explore other features of the Headstart framework. These include configuring or customizing Headstart applications to meet specific needs.