https://github.com/barwol/remitly-banking-api
Spring Boot API for Remitly internship, managing banking data with CRUD operations. Uses PostgreSQL, Docker, after parsing the csv file
https://github.com/barwol/remitly-banking-api
docker java postgresql spring
Last synced: 2 months ago
JSON representation
Spring Boot API for Remitly internship, managing banking data with CRUD operations. Uses PostgreSQL, Docker, after parsing the csv file
- Host: GitHub
- URL: https://github.com/barwol/remitly-banking-api
- Owner: BarWol
- Created: 2025-03-03T15:44:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-12T22:39:51.000Z (over 1 year ago)
- Last Synced: 2025-03-29T20:17:01.636Z (about 1 year ago)
- Topics: docker, java, postgresql, spring
- Language: Java
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Remitly Banking API
A **Spring Boot** API developed as part of the Remitly internship application, designed to manage banking data with full **CRUD operations**.
The application parses a **CSV file** to populate the database and provides **RESTful endpoints** to interact with banking data.
## Features
- **Spring Boot**
- **PostgreSQL**
- **Docker**
- **CSV Parsing**
- **RESTful API Design**
- **Postman**
- **Maven**
## Technologies Used
- **Spring Boot**
- **PostgreSQL**
- **Docker**
- **CSV Parsing**
- **RESTful Web Services**
## API Endpoints
| Method | Endpoint | Description |
|----------|---------------------------------|---------------------------------------------|
| **GET** | `/v1/test` | Retrieve all banking records. |
| **GET** | `/v1/swift-codes/{swiftCode}` | Retrieve a specific banking record in json format |
| **GET** | `/v1/swift-codes/country/{countryISO2code}` | Retrieve banks in a country given IS02code |
| **POST** | `/v1/swift-codes` | Create a new banking record. The headquarter must be added before branch |
| **DELETE** | `/v1/swift-codes/{swiftCode}` | Delete a banking record. |
## Testing
Due to time constraints, the project lacks full unit test coverage with mocking. However, thorough manual testing during development was conducted using:
- **Postman** – For API request validation and response testing.
- **SQL Queries** – To verify database changes and data integrity.
## Integration tests are present
### Challenges Faced
While coding was relatively straightforward and enjoyable, organizing the project properly took some extra effort.
---
### How to run instructions:
To run this project, ensure that **Docker** is installed
1. clone the repository
2. docker-compose up --build
3. mvn test to run the integration api tests