Developing Tabunganku Backend with Spring Boot

Repository The repository for the backend implementation of Tabunganku is available here. Technology I develop the backend using Java 17 with Spring Boot, and Postgres 15.3 as the data store. Other Java libraries that I use in this project: spring-dotenv: a library to load environment variables from .env file. I use it to load database information and others. MapStruct: a library to create mapping between two Java Beans. I use it to transform entity objects into DTO objects....

2023-08-10 · 3 min · Willy Setiawan

Securing Sensitive Data in SpringBoot Project

Background When building a web application, we eventually have to connect to a database to retrieve data and to update data. One thing we don’t want to experience is having our database password leaked. Cloud providers solve this issue by providing a service to store sensitive information (e.g., AWS Secrets Manager). We need to explore an alternative solution to avoid reliance on external services. I researched two Java libraries that allow us to store sensitive data: Jasypt and dotenv....

2023-08-07 · 3 min · Willy Setiawan

Tabunganku API Design

Main Page From main page, we can conclude that we need an API to display category list and an API to display daily transaction. To calculate the total of each category, the value can be derived from a user’s transaction data. As a result, we don’t need a specific API to do that. Add Transaction Page (There should be a “Notes” section here) In this page, we need an API to get category list for a user and an API to add a new transaction....

2023-06-27 · 3 min · Willy Setiawan

Backend Design of Tabunganku

Entity Relationship Diagram There are 3 entities defined: User, Transaction, and Category. A user can create many transactions, but each transaction must have one category. Entity Relationship Diagram of Tabunganku. User contains username and email properties, which are self-explanatory. Column Type username Text email Text For Transaction, it contains category, which will be filled by category ID of the transaction. date property is used to store when the transaction happens, and note is additional information regarding the transaction....

2023-06-19 · 1 min · Willy Setiawan