ahmeed83 / FullPower

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FULLPOWER APP

Tech Stack

Server: React, TailwindCSS

Server: Java 11, Spring boot, Spring WEB, Lombok, MongoDB

Run Locally

Clone the project

  git clone https://github.com/ahmeed83/RabobankAssignment

Go to the project directory

  cd RabobankAssignment

Build the application

  mvn clean install

Start the server

  run the class >>>> src/main/java/nl/rabobank/RaboAssignmentApplication.java

Application will start on localhost:8080

API Reference

Rest Method EndPoint Description
GET /rabobank/api/v1/customer-account-details/{customerId} Get all customer accounts
POST /rabobank/api/v1/authorize-account Authorize given account

DEMO

application

Sequence Diagrams

Rabo-Ahmed-SD

Features

1- Customers can call the server with their user ID (when they log in). They will get a list of their account details. These accounts consist of the account itself, and the authorization type that this account has.

2- The authorization type can consist of three types:

  1. OWNER: means this account belongs to the logged-in user.
  2. READ: means this account is not belong to the logged-in user, but he has the permission to see it.
  3. Write: means this account is not belong to the logged-in user, but he has the permission to change it.

3- Customers can authorize their accounts to other customers. They can permit READ/WRITE permissions of their accounts to others. However, customers can not permit OWNER permission to other customers.

4- If an account is already been assigned to a customer, this account can not be assigned again. However, the same account can be assigned to a different customers if the authorization type is different. For example, if a customer has authorization for an account with type READ, the account can be authorized again for a different authorization type (in this case WRITE).

Postman collection

Postman Collection

Author: Ahmed Aziz

About


Languages

Language:CSS 97.4%Language:Java 1.5%Language:JavaScript 1.0%Language:HTML 0.0%