0% found this document useful (0 votes)
3 views1 page

Test Task Java June+

The task requires the development of a Java application that handles REST requests for wallet operations, including deposits and withdrawals, and allows retrieval of wallet balances. It specifies the use of Java 8-17, Spring 3, PostgreSQL, and Liquibase for database migrations, with a focus on high performance and error handling. The application must be containerized using Docker and include configuration options, tests for endpoints, and be uploaded to GitHub upon completion.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views1 page

Test Task Java June+

The task requires the development of a Java application that handles REST requests for wallet operations, including deposits and withdrawals, and allows retrieval of wallet balances. It specifies the use of Java 8-17, Spring 3, PostgreSQL, and Liquibase for database migrations, with a focus on high performance and error handling. The application must be containerized using Docker and include configuration options, tests for endpoints, and be uploaded to GitHub upon completion.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Hello, dear applicant!

This task is designed to test your true Java development skills, so treat
it like a project. Complete it honestly and give it your best shot. Good luck!

Write an application that accepts a REST request of the form

POST api/v1/wallet​
{​
valletId: UUID,

operationType: DEPOSIT or WITHDRAW,

amount: 1000​
}

then execute the logic to change the account in the database

It is also possible to obtain the wallet balance.

GET api/v1/wallets/{WALLET_UUID}

стек:

java 8-17

Spring 3

Postgresql

Migrations for the database must be written using liquibase.

Please pay special attention to the challenges associated with operating in a competitive
environment (1000 RPS per wallet). No request should remain unprocessed (50X error).

Please ensure compliance with the response format for evidently incorrect requests, such as
when a wallet does not exist, when the JSON is invalid, or when there are insufficient funds.

The application must be launched within a Docker container, as should the database. The
entire system should be initiated using Docker Compose.

Provide the ability to configure various application and database settings without rebuilding
containers.

Endpoints must be covered by tests.

Upload the solved task to GitHub, provide a link.​



All issues arising on the task should be solved independently, at their own discretion.

You might also like