triplet · travel expense diary

Period

triplet records foreign‑currency cash and card spending together and automatically converts it to won at the current exchange rate. We built it at the Shinhan Bank hackathon during SSAFY. It was my first project with JPA and my first deployment. I handled half of the server and CI/CD setup.

Selected for the Shinhan Bank hackathon from 8 applicants per place

Java 11Spring Boot 2.7.10Spring Data JPAMySQL 8.0AWS S3AWS EC2DockerGitHub Actions

  • Trip creation with budget and cash on hand
  • Currency exchange requests
  • Calendar‑style expense diary
  • Image upload

Working with a dummy bank API

Problem
Security and technical issues kept a real bank API out of reach, so the hackathon ran on a dummy‑data API. We had to work out the transaction logic and exchange rate information ourselves.
Solution
Built additional APIs and dummy data for spending, exchange‑rate and other cases. We used that data to reproduce each user scenario while building features.

Running out of instance resources

Problem
To run at no cost, we put all containers on one AWS Free Tier instance. Usage kept climbing until the instance shut down.
Solution
I considered upgrading to a paid size but configured memory swap on the 1 GB RAM instance instead. As it was my first deployment, finding the cause took a long time.

Architecture

triplet deployment diagram: React on Netlify, Nginx, Spring Boot and MySQL in Docker on EC2, S3 and GitHub Actions
Deployment to EC2 with GitHub Actions
triplet start screen with an airplane illustration and login form
triplet start screen with an airplane illustration and login form
triplet trip project list
triplet project creation screen for destination and dates
triplet dashboard with calendar and daily spending
triplet day view with expenses and a trip photo