MisterAzix / technical-test-bforbank

This project is a part of the technical test for BforBank's internship program.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸš€ BforBank Technical Test πŸš€

Introduction

Welcome to the BforBank MoneyPot Microservice. This project is a part of the technical test for BforBank's internship program. The microservice is designed to manage a "MoneyPot" for each customer. Every time a customer makes a purchase, the merchant can add a certain amount to the customer's MoneyPot. The customer can check their MoneyPot at any time to see if it is available. A MoneyPot is considered available if the customer has made at least 3 purchases and has a minimum of €10 in their MoneyPot.

The microservice is built using Java, Spring Boot, SQL, and Maven. It exposes a REST API for managing the MoneyPots.

What could be improved ?

  • Add rights management with a canExecute method at usecase level
  • Add Deployment
  • Add environment management (to prepare deployment)
  • Add E2E tests
  • Add coverage check to prevent pull request to be merged if test coverage is not enough
  • Add a small front to interact with the API

Installation Guide

Prerequisites

  • Java 17
  • Maven

Steps

  1. Clone the repository to your local machine.
git clone git@github.com:MisterAzix/technical-test-bforbank.git
  1. Navigate to the project directory.
cd technical-test-bforbank
  1. Build the project using Maven.
mvn clean install
  1. Launch database using Docker.
docker-compose up -d
  1. Run the application.
mvn spring-boot:run

Project available at http://localhost:8080

Examples

  1. View moneypot containing 15€ and 3 transactions, available is true
image
  1. View moneypot containing 20€ but only 2 transactions, available is false
image
  1. Adding money to moneypot
image image
  1. View a not found moneypot
image

πŸ‘€οΈ Authors πŸ‘€

About

This project is a part of the technical test for BforBank's internship program.


Languages

Language:Java 100.0%