Skip to content

FoxRed-cmd/prototype-bank

Repository files navigation

prototype-bank

Static Badge Static Badge Static Badge codecov Quality Gate Status Coverage Code Smells Security Rating Reliability Rating Maintainability Rating Duplicated Lines (%)

🚀 Startup

PowerShell

Install java and maven and set environment variables

Open JDK 21 or Oracle JDK

Maven

Environment variables

JAVA_HOME=.../jdk_folder

M2_HOME=.../maven_folder

PATH=%JAVA_HOME%\bin;%M2_HOME%\bin

Check install

java -version

mvn -v

1. Open repository folder

cd prototype-bank

2. Run Kafka use docker-compose

docker compose up -d --build

3. Launch of the calculator service

mvn -f .\calculator\pom.xml spring-boot:run

4. Launch of the deal service

${env:URL_DB}='YOUR DB URL'; ${env:USER_DB}='YOUR USERNAME'; ${env:PASSWORD_DB}='YOUR STRONG PASSWORD'; mvn -f .\deal\pom.xml spring-boot:run

or with default values

spring:
    application:
        name: deal
    datasource:
        url: ${URL_DB:jdbc:postgresql://localhost:5432/TEST}
        username: ${USER_DB:test}
        password: ${PASSWORD_DB:test}
        driver-class-name: org.postgresql.Driver
mvn -f .\deal\pom.xml spring-boot:run

5. Launch of the statement service

mvn -f .\statement\pom.xml spring-boot:run

6. Launch of the dossier service

${env:MAIL_USERNAME}='YOUR_EMAIL'; ${env:MAIL_PASSWORD}='YOUR_APP_PASSWORD';  mvn -f .\dossier\pom.xml spring-boot:run

7. Launch of the api-gateway

mvn -f .\gateway\pom.xml spring-boot:run

Run all services in the background

mvn -f .\calculator\pom.xml spring-boot:run & mvn -f .\statement\pom.xml spring-boot:run & ${env:URL_DB}='YOUR DB URL'; ${env:USER_DB}='YOUR USERNAME'; ${env:PASSWORD_DB}='YOUR STRONG PASSWORD'; mvn -f .\deal\pom.xml spring-boot:run & ${env:MAIL_USERNAME}='YOUR_EMAIL'; ${env:MAIL_PASSWORD}='YOUR_APP_PASSWORD'; mvn -f .\dossier\pom.xml spring-boot:run & mvn -f .\gateway\pom.xml spring-boot:run

📗 SwaggerUI

Valid JSON examples

LoanStatementRequestDto

{
  "amount": 150000,
  "term": 12,
  "firstName": "Иван",
  "lastName": "Иванов",
  "middleName": "Иванович",
  "email": "3J7wI@example.com",
  "birthDate": "2000-01-01",
  "passportSeries": "1234",
  "passportNumber": "123456"
}

ScoringDataDto

{
  "amount": 150000,
  "term": 12,
  "firstName": "Иван",
  "lastName": "Иванов",
  "middleName": "Иванович",
  "gender": "MALE",
  "birthdate": "2000-01-01",
  "passportSeries": "1234",
  "passportNumber": "123456",
  "passportIssueDate": "2020-01-01",
  "passportIssueBranch": "Отделение УФМС города Москвы",
  "maritalStatus": "SINGLE",
  "dependentAmount": 1,
  "employment": {
    "employmentStatus": "EMPLOYED",
    "employerINN": "123456789021",
    "salary": 43000,
    "position": "MIDDLE_MANAGER",
    "workExperienceTotal": 24,
    "workExperienceCurrent": 12
  },
  "accountNumber": "12345678901234567000",
  "isInsuranceEnabled": false,
  "isSalaryClient": false
}

FinishRegistrationRequestDto

{
  "gender": "MALE",
  "maritalStatus": "SINGLE",
  "dependentAmount": 1,
  "passportIssueDate": "2010-01-01",
  "passportIssueBranch": "УФМС г. Москвы",
  "employment": {
    "employmentStatus": "EMPLOYED",
    "employerINN": "123456789021",
    "salary": 43000,
    "position": "MIDDLE_MANAGER",
    "workExperienceTotal": 24,
    "workExperienceCurrent": 12
  },
  "accountNumber": "12345678901234567000"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •