On functional level this application could grow to handle more features. Some examples could be:
- Accounts information should be persisted on a real database instead of being volatile information.
- A User enitity should be created to associate users with accounts
- Users should be able to login and see their balance
- We could also use create an entity for tracking transfers
On a Infra-structure level
- App should be containarized using docker compose or a DockerFile and deployed on a container-orchestration system automating computer application deployment, scaling, and management
- Use Jenkins to build, test, and deploy for continuous integration and continuous delivery(following a proper git flow).
- Use Swagger to document API's
- Use Spring Boot Actuator for health and metrics of the application.
Also the use of Agile Methodology is important to improve effectiveness of the developers and to have a work flow where is easier to ship better software solutions.