BankingAPI

screenshot of BankingAPI

Example Banking API with NestJS

Overview

The Banking API Project offers a robust solution for managing digital wallets and Visa cards, making it easier for users to create, transfer, and manage their funds effectively. Built with the NestJS framework, this API uses the Command Query Responsibility Segregation (CQRS) pattern, which encapsulates business logic and follows event-driven design principles. The project is designed for seamless deployment and has been fully tested to ensure reliability and ease of use.

The system supports a variety of operations including wallet creation, fund transfers, and card management, all integrated with a straightforward API interface. With features that emphasize security and user control, this project is tailored for those looking to implement banking-like functionalities in their applications.

Features

  • Wallet Creation: Allows the creation of multiple wallets for a company using a simple POST request, supporting various currencies.

  • Secure Fund Transfers: Facilitates internal transfers between wallets, ensuring that funds can only be sent within a user’s own accounts; fees apply for currency exchanges.

  • Card Management: Users can create cards linked to specific wallets, ensuring that each card only uses the wallet's currency while managing their spending effectively.

  • Card Blocking and Unblocking: Provides the ability to block cards instantly, ensuring security; users can later unblock cards to access their funds again.

  • Integration Testing: Uses SQLite for integration testing, ensuring that all functionalities work correctly in a controlled environment.

  • Documentation: Comprehensive front-end documentation guides developers on how to integrate with the API, making it easier to implement the necessary services in applications.

  • External Exchange Rates: Integrates with an external service to access real-time exchange rates, keeping transactions accurate and up-to-date.

  • Status Codes for Actions: Clear HTTP status codes provide feedback on the success of operations, enhancing user experience during API interactions.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.