0% found this document useful (0 votes)
3 views2 pages

Senior Java Developer Exercise

The document outlines a hands-on exercise for a Senior Java Developer to create a simplified Banking REST API using Java and Spring Boot. Key functionalities include user registration, account operations, and transaction management, with technical requirements such as Java 17+, Spring Boot, and JWT authentication. Deliverables include a GitHub repository or zipped project folder with a README.md detailing project execution, API endpoints, and test coverage.

Uploaded by

bantechlimitednz
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 views2 pages

Senior Java Developer Exercise

The document outlines a hands-on exercise for a Senior Java Developer to create a simplified Banking REST API using Java and Spring Boot. Key functionalities include user registration, account operations, and transaction management, with technical requirements such as Java 17+, Spring Boot, and JWT authentication. Deliverables include a GitHub repository or zipped project folder with a README.md detailing project execution, API endpoints, and test coverage.

Uploaded by

bantechlimitednz
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

Senior Java Developer Hands-On Exercise

Objective:

Build a simplified Banking REST API using Java and Spring Boot.

Functional Requirements:

1. User Registration & Login

- Users can sign up with a username and password.

- Users can log in and receive a JWT token.

2. Account Operations

- Each user has a single account with a balance.

- Users can:

- View their account balance.

- Transfer money to another user's account.

- View a paginated list of past transactions.

3. Transaction Model

- Each transfer should create two entries:

- Debit from sender

- Credit to receiver

- Timestamp, amount, sender/receiver info, and status should be stored.

Technical Requirements:

- Java 17+

- Spring Boot (Spring Security, Spring Data JPA)

- H2 or PostgreSQL
Senior Java Developer Hands-On Exercise

- JWT-based authentication

- Unit tests (JUnit 5, Mockito)

- Clean modular architecture

- Swagger/OpenAPI (optional)

Bonus Points:

- Use MapStruct or manual DTO mappers

- Transactional consistency and error handling

- API rate-limiting (e.g., Bucket4j)

- Dockerize the application

Deliverables:

- GitHub repo or zipped project folder

- [Link] with:

- How to run the project

- API endpoints

- Test coverage info

Example API Endpoints:

POST /api/auth/register

POST /api/auth/login

GET /api/account/balance

POST /api/account/transfer

GET /api/account/transactions?page=0&size=10

You might also like