<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architectural design of the project on Pledger.io</title><link>https://www.pledger.io/architecture/design/</link><description>Recent content in Architectural design of the project on Pledger.io</description><generator>Hugo</generator><language>en-us</language><copyright>Copyright © 2026 Pledger.io</copyright><atom:link href="https://www.pledger.io/architecture/design/index.xml" rel="self" type="application/rss+xml"/><item><title>The business domain of Pledger.io</title><link>https://www.pledger.io/architecture/design/domain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.pledger.io/architecture/design/domain/</guid><description>&lt;p&gt;The diagram below depicts the domain model that is used in Pledger.io.
In this domain you can clearly see that the &lt;code&gt;Transaction&lt;/code&gt; is linked to the &lt;code&gt;Account&lt;/code&gt; using at least two &lt;code&gt;Parts&lt;/code&gt;.
It also indicates that there are multiple concepts that describe the context of a transaction, these are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Budget&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Category&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tag&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Contract&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;










&lt;figure &gt;&lt;img class="img-fluid "
 src="https://www.pledger.io/img/architecture/data-model-2800x994.png"
 srcset="https://www.pledger.io/img/architecture/data-model-576x204.webp 576w, https://www.pledger.io/img/architecture/data-model-768x273.webp 768w, https://www.pledger.io/img/architecture/data-model-992x352.webp 992w, https://www.pledger.io/img/architecture/data-model-1200x426.webp 1200w, https://www.pledger.io/img/architecture/data-model-1400x497.webp 1400w, https://www.pledger.io/img/architecture/data-model-2800x994.webp 2800w" sizes="100vw" height="994" width="2800" alt="Domain model"&gt;&lt;figcaption class="figure-caption"&gt;Domain model&lt;/figcaption&gt;
 &lt;/figure&gt;
&lt;p&gt;In this design the choice was made to attach everything on a &lt;code&gt;UserAccount&lt;/code&gt;.
Where the &lt;code&gt;Account&lt;/code&gt; is the primary entity, with an enumeration in it to indicate the type of account.&lt;/p&gt;</description></item><item><title>The backend design for Pledger.io</title><link>https://www.pledger.io/architecture/design/backend-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.pledger.io/architecture/design/backend-design/</guid><description>&lt;p&gt;The REST-api is the main part of the application.
This is a Java base web application that contains all the business logic for Pledger.io.
The user interface is bundled into the application by the 
 









 
 
 
 



 
 

 &lt;a href="https://www.pledger.io/architecture/design/deployment/"&gt;Deployment setup&lt;/a&gt;.&lt;/p&gt;





&lt;h2 id="used-tooling" class="heading "&gt;Used tooling&lt;a href="#used-tooling" aria-labelledby="used-tooling"&gt;








&lt;!-- &lt;i class="fas fa-link anchor"&gt;&lt;/i&gt; --&gt;
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 576 512"&gt;&lt;use href="#fas-link"&gt;&lt;/use&gt;&lt;/svg&gt;&amp;nbsp;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This part of Pledger.io is build using the following tooling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 









 

&lt;a href="https://gradle.org/"&gt;Gradle&lt;/a&gt;,
used as the build tool.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://micronaut.io/"&gt;Micronaut framework&lt;/a&gt;,
used as the DI and API framework.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://docs.langchain4j.dev/"&gt;LangChain4j&lt;/a&gt;,
used as the engine to interact with Vector stores and LLM implementations.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2 id="rest-design" class="heading "&gt;Rest design&lt;a href="#rest-design" aria-labelledby="rest-design"&gt;








&lt;!-- &lt;i class="fas fa-link anchor"&gt;&lt;/i&gt; --&gt;
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 576 512"&gt;&lt;use href="#fas-link"&gt;&lt;/use&gt;&lt;/svg&gt;&amp;nbsp;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The REST interface is designed contract-first.
This means that all APIs are designed in an Open API Specification file and interfaces are generated using Micronaut.&lt;/p&gt;</description></item><item><title>The UI design for Pledger.io</title><link>https://www.pledger.io/architecture/design/ui-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.pledger.io/architecture/design/ui-design/</guid><description>&lt;p&gt;The user interface is a React-based application.
It is built up using the following frameworks and tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 









 

&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;,
used as the UI framework.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://www.typescriptlang.org/"&gt;Typescript&lt;/a&gt;,
used as the programming language.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://www.chartjs.org/"&gt;Chart.js&lt;/a&gt;,
used for the rendering of the various charts inside the application.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://primereact.org/"&gt;Primereact&lt;/a&gt;,
used as the primary UI component library for the application.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://axios-http.com/docs/intro"&gt;axios&lt;/a&gt;,
used for the communication with the REST-api.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2 id="overview" class="heading "&gt;Overview&lt;a href="#overview" aria-labelledby="overview"&gt;








&lt;!-- &lt;i class="fas fa-link anchor"&gt;&lt;/i&gt; --&gt;
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 576 512"&gt;&lt;use href="#fas-link"&gt;&lt;/use&gt;&lt;/svg&gt;&amp;nbsp;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The Pledger.io application follows a layered architecture pattern,
separating concerns into distinct layers that interact with each other in a controlled manner.
This document describes the high-level architecture of the application, including its main layers and components.&lt;/p&gt;</description></item><item><title>Deployment strategy for Pledger.io</title><link>https://www.pledger.io/architecture/design/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.pledger.io/architecture/design/deployment/</guid><description>&lt;p&gt;The deployment repository is used to bundle the user-interface and REST-api into a single deployable artifact.
This repository is built using the following tooling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 









 

&lt;a href="https://gradle.org/"&gt;Gradle&lt;/a&gt;,
used as the build tool.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt;,
used to create the docker images.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://www.electron.build/"&gt;Electron&lt;/a&gt;,
used to create the desktop application.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2 id="build-process" class="heading "&gt;Build process&lt;a href="#build-process" aria-labelledby="build-process"&gt;








&lt;!-- &lt;i class="fas fa-link anchor"&gt;&lt;/i&gt; --&gt;
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 576 512"&gt;&lt;use href="#fas-link"&gt;&lt;/use&gt;&lt;/svg&gt;&amp;nbsp;
 &lt;/a&gt;
&lt;/h2&gt;










&lt;figure class="col-10 mx-auto"&gt;&lt;img class="img-fluid "
 src="https://www.pledger.io/img/architecture/application-build-process-2800x743.png"
 srcset="https://www.pledger.io/img/architecture/application-build-process-576x153.webp 576w, https://www.pledger.io/img/architecture/application-build-process-768x204.webp 768w, https://www.pledger.io/img/architecture/application-build-process-992x263.webp 992w, https://www.pledger.io/img/architecture/application-build-process-1200x318.webp 1200w, https://www.pledger.io/img/architecture/application-build-process-1400x372.webp 1400w, https://www.pledger.io/img/architecture/application-build-process-2800x743.webp 2800w" sizes="100vw" height="743" width="2800" alt="Build process"&gt;&lt;figcaption class="figure-caption"&gt;Build process&lt;/figcaption&gt;
 &lt;/figure&gt;
&lt;ol&gt;
&lt;li&gt;Pulling the latest version of the &lt;code&gt;user-interface&lt;/code&gt; and &lt;code&gt;REST-api&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Building an output archive for the combined REST-api and user-interface.&lt;/li&gt;
&lt;li&gt;Building a &lt;code&gt;docker&lt;/code&gt; image for the combined REST-api and user-interface.&lt;/li&gt;
&lt;li&gt;Building an &lt;code&gt;electron application&lt;/code&gt; for the combined REST-api and user-interface.&lt;/li&gt;
&lt;li&gt;Pushing the docker image to the docker registry.&lt;/li&gt;
&lt;li&gt;Pushing the desktop application to the release repository.&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Repositories involved for Pledger.io</title><link>https://www.pledger.io/architecture/design/repositories/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.pledger.io/architecture/design/repositories/</guid><description>&lt;p&gt;Pledger.io is a web application that consists out of several repositories.
Each of the repositories has a dedicated goal and is designed to be bundled into a single application.&lt;/p&gt;
&lt;p&gt;At this point in time, the following repositories are available:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code repositories&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 









 

&lt;a href="https://github.com/pledger-io/rest-application"&gt;rest-application&lt;/a&gt;,
the main application repository containing the Java REST-api.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://github.com/pledger-io/user-interface"&gt;user-interface&lt;/a&gt;,
the React based user interface.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://github.com/pledger-io/build-tooling"&gt;build-tooling&lt;/a&gt;,
the deployment repository bundling the user-interface and rest-application artifacts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Documentation repositories&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
 









 

&lt;a href="https://github.com/pledger-io/user-documentation"&gt;user-documentation&lt;/a&gt;,
the repository that generates this website.&lt;/li&gt;
&lt;li&gt;
 









 

&lt;a href="https://github.com/pledger-io/importer-configurations"&gt;importer-configuration&lt;/a&gt;,
the repository containing the default configuration for the CSV-based transaction importer.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>