dave-InTheCloud / payment-ms

demo for space

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Payment Microservice

This project demonstrates a native application built with GraalVM, Spring Boot 3, and React for currency exchange and transfer functionalities.

Try it

Executables:

  • Download pre-built executables from here.

Deployed version:

  • Access the application from a web browser at the provided server URL.

Application URLs (when running locally):

Technical Stack

Back-end:

  • Spring Boot 3 native (Java) web framework producing native application bytecode with GraalVM support for potential AOT compilation and native image generation.
  • Flyway + Spring Data JPA + H2 for database migration and access
  • Asciidoctor and Swagger for documentation
  • MapStruct, Jackson, and Lombok for back-end data binding
  • Actuator for monitoring
  • Moneta JSR 354 for currency exchange base en ECB european central bank

Front-end:

  • React: Popular JavaScript library for building dynamic and user-friendly interfaces.

GraalVM:

  • Optional: GraalVM can be used for AOT compilation and native image generation of the Spring Boot application, potentially improving performance and startup time.

Compilation Instructions

Classic JAR Build (Frontend + Backend - for Development):

# Build back-end
mvn clean install

# Build back-end and front-end
mvn clean install -Pprod

# Build front-end and run both
./mvnw spring-boot:run -Pprod

Local Native Image

Requirements:

Instructions:

  1. After changes:

    mvn clean package -Pprod -Pnative -Dmaven.test.skip=true
  2. Compile the native image:

    mvn -Pprod -Pnative native:compile -Dmaven.test.skip=true

Docker native image :

  • requirements docker installed
mvn clean package -Pprod -Pnative -Dmaven.test.skip=true
mvn -Pprod -Pnative spring-boot:build-image -Dmaven.test.skip=true

Required dependencies for raspberry 4 native compilation:

  • apt-get install libz-dev
  • apt update && sudo apt upgrade
  • apt-get install libfreetype-dev

About

demo for space


Languages

Language:JavaScript 92.8%Language:Java 7.0%Language:HTML 0.2%Language:CSS 0.1%Language:Dockerfile 0.0%