tekBlueprint.frame

tb.frame aka tekBlueprint Application Framework

The idea is to create a set of ready-made components for rapid web application development using a current technology stack.

By and large, many projects implement the same functionality over and over again. Large companies create their own internal frameworks, some open source them, others don’t. The idea behind this project is similar: to reduce development costs. This is especially relevant when time and human resources are limited.

This is currently a pilot project to create a such framework, primarily for the needs of tekBlueprint projects.


Basic principles

RuleExample
Each block is a complete library and can be used without requiring any connection to other blocks.frame-security - contains basic functionality for managing users, access groups, and permissions: entities (e.g., Hibernate), services (e.g., Spring Boot), and views (e.g., ReactJS).

If necessary, it can be implemented as a separate microservice function.
A block can contain one or more modules: SPI, data model (entities), services (business logic), presentation (UI).- SPI – implements a specific set of interfaces for interacting with modules on all layers (business logic, UI)
- Data Storage Layer – persistent data storage, can be any (NoSQL, RDBMS, Graph DB) for each module.
- Service Layer – implemented in one of the development languages ​​and frameworks. Naturally, blocks of the same type must match when assembling the overall application.
- View – user UI on any of the frameworks.
An optional SPI can be used to connect blocks and expand functionality.- For the data layer, relationships between entities are implemented via identifiers without the use of constraints at the DB level. Data consistency is monitored on the application side.
- The service layer uses automatic detection of connected functionality (e.g., Java Service Loader, Spring Boot autoconfiguration).
- At the presentation layer, component/microfrontend mounting is also performed automatically using various JS tools (importmaps, module federation, etc.).
Blocks are implemented for various development languages.There is no binding to any specific development language. The frame-security module can be implemented in two repositories:
- frame-security-java
- @tb-frame/components-react
- frame-security-rust
While maintaining the same general approach and functionality, the required module is included in the application.
There is no mandatory platform and no restrictions dictated by this platformAll communication between modules is performed exclusively via SPI. While this may complicate initial assembly and configuration, it does not impose additional restrictions on future expansion. It also provides additional isolation between modules.

Core technical stack

CategoryNameVendor
BackendLanguageJava 21+
Services LayerSpring Boot 4+
Data Access LayerHibernate 7+ (via Spring Boot BOM)
SerializationJackson 3
Code GenerationMapStruct, Lombok
SPIService Loader, Spring DI
TestSpock (Groovy 4), JUnit Jupiter
RDBMSPostgreSQL
FrontendLanguageTypeScript (~6.0)
FrameworkReact 19
UIPrimeReact 10
State & DataTanStack React Query, Axios
Routingreact-router 7
Formsreact-hook-form
i18ni18next
BuildVite (~8.0), lerna, Biome (lint)
TestVitest