---
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)