BANKING SYSTEM API
An API is a programming interface designed exclusively for the use of clients who require a careful treatment of data and optimal management of their systems.
With the Banking System API, we offer a careful treatment of the database that structures the banking like an entity, speeding up, with clear details, the registration of operations, optimizing data and generating transactions that keep, always safe, the financial bank system.
Banking System API is an application developed under the REST API architecture criteria, which allows optimal integration with external servers and database like SQL. It is designed to be used mainly by bank administrators, also, containing access routes for account holders users, as well as third parties.
How to configure
- Banking System used SQL database, so required configure an instance and schema in MySQL with the name "Banking_System", this will be database saving routes.
- Run the program to give permission to the controller routes to make changes.
- Controller routes can be tested using POSTMAN or any other HTTP request and test programme (At the final of this chapter you can find a link with JSON raw information to facilitate test it).
Specifications
With the correct use of BANKING SYSTEM API, you will be able to:
Create USERS: Administrators, holder accounts and third parties
Create BANK ACCOUNTS: Checking, savings and credit cards.
Checking accounts:
- When creating it, depending on the client's age (24 years), a student account is generated or not, automatically. The Student-Checking Account will not have monthly maintenance.
Penalty fee:
- It is configured to apply when the balance of the accounts is below the default minimum balance.
Interest Rate:
- Default applied annually to savings accounts and monthly to credit card accounts.
USERS Permissions
ADMINS permissions:
- Admins can create other administrators, account holders and third parties. They can also check accounts, update balances and delete any other accounts.
ACCOUNT HOLDERS permissions:
- Accounts holder can make transfers and consult only their accounts.
THIRD-PARTY permissions:
- TP can send and receive money, across transfers, to the others accounts.
ALL USERS:
- All users have a SecretKey that is implemented throughout the API as a security measure.
API Structure Diagram:
Main technologies used:
- Java / Spring / SpringBoot : to write the API code by using the libraries provided by both frameworks.
- Unit testing : to test the functionality of all repository routes and controllers.
- JPA: to map and relate the API with the database.
- SQL: to review and administrate the database.
Information for Devs:
- The API code is written with the naming conventions, among others, we use PascalCase for the name of Models, and their homonyms in SQL with snake_case. It's suggested for future modifications follows the same convention to keep clean the project.
- The root model of the repository, controllers, models and services were correctly organized in different packages, giving the possibility to future updates and allow growth of the project, which will facilitate the development of the API architecture.
- Each method that calls a setter is accompanied by a comment with details about your implementation. The JSON file attached at the following link provides the raw data for a easily access, check, and modify routes on Postman body. (https://drive.google.com/file/d/10NCLJN8WaWKpbKv1mjc2stysk71kzolZ/view?usp=share_link)
App done by: