This project is part of the Banque Misr Internship, one of the largest banks in Egypt. During this internship, the backend team was tasked with building a Money Transfer API using the Spring framework. The API follows the Model-View-Controller (MVC) architecture pattern, ensuring separation of concerns and a clean, maintainable codebase.
The Money Transfer API allows for secure and efficient processing of money transfers between accounts. It provides endpoints for initiating, tracking, and managing transfers while ensuring high reliability and scalability. This project was designed to meet the needs of Banque Misr’s backend infrastructure while adhering to industry best practices.
- Account Management: Create and manage accounts for customers.
- Money Transfers: Secure transfer of funds between accounts.
- Transaction History: View and track past transactions.
- Validation and Error Handling: Ensures that transactions are valid and handled correctly with appropriate error responses.
- Spring Framework: For building the backend application.
- Spring Boot: To simplify project setup and configuration.
- Spring Data JPA: For interacting with the database.
- MySQL: For the database design and management.
- Postman: For testing and documenting API endpoints.
- Swagger: For generating interactive API documentation and providing an easy way to explore the API's functionality.
- Maven: Dependency management and build automation.
To run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/Y-Elsayed/MoneyTransferAPI.git
- Navigate to the project directory:
cd MoneyTransferAPI - Build the project using Maven:
mvn clean install
- Run the application:
mvn spring-boot:run
The API will now be running locally on http://localhost:8080
Refer to the Swagger documentation