Skip to content

InvestBank: Simplifying Financial Management with Personalized Insights, Data, and Advice.

License

Notifications You must be signed in to change notification settings

Kolman-Freecss/gluns-spring

Repository files navigation

Gluns-Spring

Service built to work as core microservice for Gluns-Bank project.

Gluns Logo

Index

Useful Links

Project Resources

Brief Features Description

  • Security implementation using Spring Boot 3.3.5 and Keycloak with JSON Web Tokens (JWT).
    • SSO (Single Sign-On) using Keycloak.
    • OAuth2 Protocol.

Use

Local

  1. Check the .launchers folder to see the different launchers.
  2. Run GlunsSpringApplication.run.xml to start the application. (This will start the Springboot application)

Docker

  1. Build the Docker containers:

    docker compose build
  2. Bring up the containers in the background:

     docker compose up -d

Tech stack

  • Java 21
  • Spring:
    • Spring Boot 3.3.5
    • Spring Actuator
    • Spring Webflux
      • Reactive programming. Async API to perform non-blocking operations in the main thread application.
      • Used also to consume the Github API asynchrously (instead Java 11 HttpClient or OkHttp).
    • Spring Boot DevTools
      • To reload the application when a change is detected.
    • Spring AOP
      • Auxiliar Join Components to log the requests and responses.
  • Auth:
    • Keycloak
    • JSON Web Tokens (JWT)
  • Maven
  • OpenAPI/Swagger docs v2

CI/CD

  • Docker
  • Docker Compose

DB

  • MySQL
  • pgAdmin4
  • Spring Data JPA Hibernate
    • Way to interact with the database using an ORM (Hibernate) with all the entities and relationships configured.

Architecture

  • Microservices Architecture
    • Sync communication through REST API
  • Hexagonal Architecture

Infrastructure

Diagram Flow:

Diagram Flow

Configuration

Keycloak Configuration

  • Configure Keycloak with the following settings:
    • New Realm: gluns
    • Create a new Client: gluns-back
      • Client ID: gluns-back
    • 2 Roles: USER and ADMIN
    • 2 Users: user and admin
      • Password: password
      • Map Roles to the users: USER and ADMIN

Flows

User Chat Flow:

User Chat Flow


Shield: CC-BY-NC-ND 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

CC-BY-NC-ND 4.0