/dot-transfer

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Getting Started

Reference Documentation

Postman Published Postman Documentation

For further reference, please consider the following sections:

Entity Relationship Diagram

ERD

Running the application

  • Clone the repository
  • Create a database in PostgreSQL
  • Update the application.properties file with the database credentials
  • Run the application with the following command: ./gradlew bootRun or with intellij
  • Use Postman to test the endpoints
  • The application runs on port 8081
Build the project:  
```shell
./gradlew build

Run the application:

./gradlew bootRun

Technologies Used

  • Intellij IDEA
  • Java
  • Spring Boot
  • Spring Batch
  • Spring Data JPA
  • Gradle

Getting Started

Prerequisites

  • Java 11 or higher
  • Gradle
  • PostgreSQL

Assumptions

  • Transactions are large in volume and need to be processed in batches.
  • The transactions are stored in a database and need to be read from the database.
  • Transaction summary needs to be sent to the user via email.

Improvements

  • Send Transaction Summary to the user via email.
  • Error Handling: Enhance error handling mechanisms to provide more detailed and user-friendly error messages.
  • Security: Implement authentication and authorization to secure the endpoints.
  • Scalability: Optimize the batch processing to handle larger volumes of transactions efficiently.
  • Testing: Increase test coverage, especially for edge cases and integration tests.
  • Documentation: Improve API documentation using tools like Swagger.

Simulate concurrent transfer

  • You could run the test.transfer.go file to simulate concurrent transfer of funds between accounts.
  • The test.transfer.go file is located in the root folder.