An open API service indexing awesome lists of open source software.

https://github.com/kb-web-development/commerzbank-securities-tracker

Domain Driven Design Laravel Commerzbank securities tracker application
https://github.com/kb-web-development/commerzbank-securities-tracker

Last synced: 3 months ago
JSON representation

Domain Driven Design Laravel Commerzbank securities tracker application

Awesome Lists containing this project

README

        

# commerzbank-securities-tracker
Laravel Domain Driven Design (DDD) project which makes use of (German bank) Commerzbank
Securities API.

To read about Commerzbank Securities API: https://developer.commerzbank.com/products/api-catalog/sandbox/securities-api/v4/try-this-api

Through the API, Commerzbank customers can retrieve information about:

(1) their account securities ids ( note: a customer may have only one account securities id or multiple account securities ids)

(2) the portfolio tied to each such account id

(3) all transactions tied to each such account id

![alt text](https://github.com/KB-WEB-DEVELOPMENT/commerzbank-securities-tracker/blob/main/public/images/commerzbank-securities-api-overview.PNG)

I followed Martin Joo's DDD's Laravel approach quite closely when it comes to structure:

![alt text](https://github.com/KB-WEB-DEVELOPMENT/commerzbank-securities-tracker/blob/main/public/images/commerzbank-securities-api-structure.PNG)

Insights from his blog: https://martinjoo.dev/domain-driven-design-with-laravel-domains-and-applications

A) Install and run:

- cp .env.example .env
- composer install
- Set up your database

You should request (1) an access token and (2) the live api access URI from Commerzbank for real data.


Those two values need to be set for the following two parameters in the .env file:

COMMERZBANK_ACCESS_TOKEN


COMMERZBANK_ACCESS_URI


(COMMERZBANK_URI_TIMEOUT=5)

- php artisan migrate
- php artisan db:seed --class=DatabaseSeeder
- php artisan serve
- npm install
- npm run dev

You can login with username "[email protected]" and password "password".

B) Custom commands:

ImportPortfolioCommand.php (File location: App/Console/Commands/ImportPortfolioCommand.php)

--> shows how the portfolio data for a specific account securities id would be imported

(Artisan command in terminal: php artisan portfolio:import)

ImportTransactionsCommand.php (File location: App/Console/Commands/ImportTransactionsCommand.php)

--> shows how all transactions data for a specific account securities id would be imported

(Artisan command in terminal: php artisan transactions:import)