BankIt is a full-featured banking system developed using Java and Spring Boot. It offers essential banking operations like credit, debit, and transfer to manage transactions efficiently. The system includes automated email notifications for each transaction, providing users with real-time updates. Additionally, users can access transaction history and receive PDF statements via email, enhancing account management.
- Transaction Management: Perform essential banking operations like credit, debit, and fund transfer.
- Real-Time Notifications: Automated email alerts for every transaction, giving users instant updates.
- Transaction History: View past transactions and generate statements.
- PDF Statements: Generate and email PDF statements directly to the user.
- Java with Spring Boot for building a robust backend
- Maven for dependency management
- JPA (Java Persistence API) for database interaction
- MySQL for data storage
-
Controllers (
/Controllers
)- Handle incoming requests and map them to appropriate services.
- Example:
UserController
handles account creation, balance enquiry, credit, debit, and transfer operations.
-
DTO (Data Transfer Objects) (
/DTO
)- Define request and response structures for data exchange.
- Examples:
UserDTO
,CreditDebitRequest
,EnquiryRequest
,Transfer
.
-
Services (
/Services
)- Core business logic for banking operations.
- Example:
UserService
implements the logic for creating accounts, balance enquiry, credit, debit, and transfer.
-
Repositories (
/Repositories
)- Data access layer that interacts with the database.
- Example:
UserRepository
extendsJpaRepository
and provides methods to manage user accounts and transactions.
-
Entities (
/Entities
)- Define database tables and relationships.
- Examples:
User
andTransaction
entities representing database tables for users and transactions.
- Java 11 or higher
- Maven for managing dependencies
- MySQL database server
- Clone the Repository
git clone https://github.com/yourusername/BankIt.git cd BankIt
- Configure Database
-
Create a MySQL database named
bankit_db
. -
Update the database configuration in
src/main/resources/application.properties
with your MySQL username and password:spring.datasource.url=jdbc:mysql://localhost:3306/bankit_db spring.datasource.username=YOUR_USERNAME spring.datasource.password=YOUR_PASSWORD```
- Configure Mail Server
-
To send email notifications, configure the mail server settings in
src/main/resources/application.properties
:spring.mail.host=smtp.example.com spring.mail.port=587 spring.mail.username[email protected] spring.mail.password=YOUR_EMAIL_PASSWORD spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.from[email protected]
-
Replace
smtp.example.com
,[email protected]
, andYOUR_EMAIL_PASSWORD
with your SMTP server details and credentials.
-
Install Dependencies
mvn install
-
Run the Application
mvn spring-boot:run
Contributions are welcome! Please fork this repository and submit a pull request for any enhancements or bug fixes.