This is a quick overview of how we build software.
- Frontend
- designsystem - Försäkringskassans Designsystem.
- Publishing to NPMJS.
- designsystem-user-app - Example frontend application using designsystem.
- Integrates with template-quarkus using client from template-api via NPMJS.
- Mocks backend with apimock-express using devindex-menu and mocks from template-api.
- designsystem-user-lib - Example NPM library using our toolchain via NPMJS.
- designsystem - Försäkringskassans Designsystem.
- API
- template-api - Example API that publishes spec and any frontend/backend generated code to repository.
- Using gradle-conventions via repository.
- template-asyncapi - Example Async API that publishes spec and generated code to repository.
- Using gradle-conventions via repository.
- template-api - Example API that publishes spec and any frontend/backend generated code to repository.
- Backend
- fk-maven - Parent POM:s to use with Maven to apply our code standard and other things.
- Publishing to repository.
- fk-logging - Common logging functionality.
- gradle-conventions - Precompiled script plugins to use with Gradle to apply our code standard and other things.
- Publishing to repository.
- template-quarkus - Example Quarkus application using our toolchain.
- Using fk-maven via repository.
- Implements
jaxrs-specgenerated by template-api. - May call other backend apps by creating a client with jaxrs-client-factory together with
jaxrs-specfrom api or by generatingjaxrs-speclike template-jar-api-generate.
- template-jar - Example JAR library using our toolchain.
- Publishing to repository.
- Using gradle-conventions via repository.
- template-jar-api-generate - Example showing how to generate code from OpenAPI that is fetched from repository.
- Using gradle-conventions via repository.
- template-bamoe - Example BAMOE.
- fk-maven - Parent POM:s to use with Maven to apply our code standard and other things.
- Deployment
- template-openshift - Very simplified deployment with Openshift.
- Using image from designsystem-user-app.
- Using image from template-quarkus.
- There is also template-kubernetes if you want an even simpler setup with Kubernetes.
- template-openshift - Very simplified deployment with Openshift.
graph TD
%% Backend nodes
subgraph Backend
C1[fk-maven]
C2[gradle-conventions]
C3[template-quarkus]
C4[template-jar]
C5[template-jar-api-generate]
C3 -->|Using| C1
C5 -->|Using| C2
C4 -->|Using| C2
end
%% API nodes
subgraph API
direction TB
B1[template-api]
B1 -->|Using| C2
B2[template-asyncapi]
end
%% Frontend nodes
subgraph Frontend
A1[designsystem]
A2[designsystem-user-app]
A3[designsystem-user-lib]
A2 -->|Uses| A1
A2 -->|Calls| B1
end
%% Repository subgraph
subgraph Package_Repositories
GHRepo[GitHub Package Registry]
NPM[NPMJS]
end
%% Openshift deployment
subgraph Openshift_Deployment
K3[backend]
K2[frontend]
end
%% Cross-subgraph links
C3 -->|Implements| B1
%% Publishing arrows
C1 -->|Publishing JAR| GHRepo
C2 -->|Publishing JAR| GHRepo
C3 -->|Publishing Docker| GHRepo
C4 -->|Publishing JAR| GHRepo
B1 -->|Publishing JAR| GHRepo
B1 -->|Publishing NPM| NPM
B2 -->|Publishing JAR| GHRepo
A1 -->|Publishing NPM| NPM
A2 -->|Publishing Docker| GHRepo
A3 -->|Publishing NPM| NPM
%% Docker to Openshift deployment flows
GHRepo -->|Image| K2
GHRepo -->|Image| K3