--- title: ING Challenge --- ## Requirements ### Accounts Implement a class that returns `account` objects with the following structure (you can use any form of persistence you like - LocalDb, mock objects, json files,etc): ```json= { "resourceId": "450ffbb8-9f11-4ec6-a1e1-df48aefc82ef", "product": "Betaalrekening", "iban": "NL69INGB0123456789", "name": "Hr A van Dijk , Mw B Mol-van Dijk", "currency": "EUR" } ``` ### Transactions Implement a class that returns `transaction` objects with the following structure (you can use any form of persistence you like - LocalDb, mock objects, json files,etc): ```json= { "iban": "NL69INGB0123456789", "transactionId": 1, "amount": 20.00, "categoryId": 1, "transactionDate": "2020-09-23" } ``` ### Category list The list of available transaction categories is ``` 1 - Food 2 - Entertainment 3 - Clothing 4 - Travel 5 - Medical expenses ``` ### Accounts endpoint Create an api in .net 6 and the following endpoint: `GET /api/accounts` It reads data from [Accounts](#Accounts) and returns the list of client's accounts. The endpoint should return an array using the following structure: ```json= { "accounts": [ { "resourceId": "450ffbb8-9f11-4ec6-a1e1-df48aefc82ef", "product": "Betaalrekening", "iban": "NL69INGB0123456789", "name": "Hr A van Dijk , Mw B Mol-van Dijk", "currency": "EUR" } ] } ``` ### Transaction report endpoint Implement another endpoint: `GET /api/transactions/report` It reads data from 2. and returns a sum of client [Transactions](#Transactions) from the last month, grouped by category, for a specific account. The endpoint should return an array using the following structure: ```json= [ { "categoryName": "Food", "totalAmount": 1000.20, "currency": "RON" }, { "categoryName": "Entertainment", "totalAmount": 2500.00, "currency": "RON" } ] ``` --- ## Notes - Push your code to a public github repository - Use `.net 6` - Your code should be clean, easy to read, and covered by **unit tests** - A new type of data source should be easily plugged in - Integrate Swaggger for your APIs - Use HealthChecks - **[BONUS]** Create docker files for your APIs - **[BONUS]** Publish your APIs (ex: Azure, AWS, Google Cloud Platform)