The Banking Portal API provides a set of endpoints for managing user accounts, fund transfers, and transactions. This project aims to facilitate secure and efficient banking operations for users.
- User Registration: Users can register by providing their details, such as name, email, address, and phone number.
- PIN Management: Users can create and update their PINs for added security.
- Cash Deposit and Withdrawal: Users can deposit and withdraw cash from their accounts.
- Fund Transfer: Users can transfer funds to other accounts within the system.
- Transaction History: Users can view their transaction history.
- Java Spring Boot Framework
- Spring Security for authentication
- JWT (JSON Web Token) for secure API authentication
- MySQL for data storage
- Hibernate for object-relational mapping
- Maven for project management
- Postman for API testing
- UI Fix for Dashboard Charts
- Pagination in table
- Save JWT Token in db and remove on logout
- Email trigger on account login
- Send Bank Statement on Email
- Clone the repository:
git clone https://github.com/yourusername/banking-portal-api.git
- Navigate to the project folder:
cd banking-portal-api
- Configure MySQL: Set up a MySQL database and update the database credentials in
application.properties
. - Build and run the project:
mvn spring-boot:run
The API implements global exception handling for common error scenarios, such as account not found, unauthorized access, and insufficient balance.
We welcome and encourage developers to contribute to the project and help us make it even better. If you are interested in contributing, follow these steps:
👉🏻Fork the Repository: Click on the "Fork" button on the top right corner of the GitHub repository page. This will create a copy of the repository in your GitHub account.
👉🏻Clone the Forked Repository: Open your terminal or command prompt and use the following command to clone the repository to your local machine:
git clone https://github.com/your-username/BankingPortal-API.git
Replace your-username
with your GitHub username.
👉🏻Create a New Branch: Move into the project directory using cd BankingPortal-API
and create a new branch for your changes:
git checkout -b feature/your-new-feature
Replace your-new-feature
with a descriptive name for your contribution.
👉🏻Make Changes: Now, make the desired changes to the codebase using your favorite code editor.
👉🏻Commit Changes: After making the changes, save your work and commit the changes with a meaningful commit message:
git add .
git commit -m "Add your commit message here"
👉🏻Push Changes: Push your changes to your forked repository:
git push origin feature/your-new-feature
👉🏻Create a Pull Request: Go to your forked repository on GitHub, and you'll see a "Compare & Pull Request" button. Click on it to create a new pull request.
👉🏻Wait for Review: Your pull request will be reviewed by the project maintainers. Make any necessary changes based on their feedback.
👏🏻👏🏻 Congratulations! 🎉🎊 Your contribution has been accepted and merged into the main repository. You are now a contributor to the project.
server.port=8180
spring.datasource.url=jdbc:mysql://localhost:3306/bankingapp
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform = org.hibernate.dialect.MySQL5Dialect
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto = update
spring.main.allow-circular-references=true
server.error.include-message=always
# JWT Configuration
jwt.secret=your-secret-key
jwt.expiration=86400000 # Token expiration time in milliseconds (e.g., 24 hours)
jwt.header=Authorization
jwt.prefix=Bearer
spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=[email protected] spring.mail.password=x88p99qxzmdvgmdu spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true