SmartBank is a full-stack banking application built as a learning project to demonstrate core web development concepts. It provides a secure and role-based environment for users and administrators to manage basic banking operations.
This project showcases key functionalities of modern web applications, from secure user authentication to database management.
- User Registration & Approval: New users can register, but their accounts must be approved by an administrator before they can log in.
- Role-Based Access Control: Separate dashboards are provided for standard users and administrators using Spring Security.
- User Dashboard:
- Securely deposit and withdraw funds.
- View a complete transaction history for their account.
- Admin Dashboard:
- View and manage all registered users.
- Approve new user registrations.
- Monitor all banking transactions across the platform.
- Update or delete user accounts.
- Database Integration: All user details, account balances, and transaction records are persisted in a MySQL database.
- Backend:
- Spring Boot: Framework for building the backend application.
- Spring Security: For user authentication, authorization, and role-based access.
- Spring Data JPA / Hibernate: For seamless database interaction and object-relational mapping.
- Java: The core programming language.
- Frontend:
- Thymeleaf: Server-side template engine for dynamic HTML pages.
- Bootstrap 5: For a responsive and modern user interface.
- Database:
- MySQL: The relational database to store application data.
Follow these steps to run the project on your local machine:
-
Clone the Repository:
git clone [https://github.com/your-username/SmartBank.git](https://github.com/your-username/SmartBank.git)
(Replace
your-username/SmartBank.gitwith your actual repository URL) -
Database Configuration:
- Create a new MySQL database named
smartbank. - Update the database credentials in
src/main/resources/application.propertieswith your own details:spring.datasource.url=jdbc:mysql://localhost:3306/smartbank spring.datasource.username=root spring.datasource.password=your_password spring.jpa.hibernate.ddl-auto=update
- Create a new MySQL database named
-
Run the Application:
- Open the project in your IDE (like Spring Tool Suite - STS).
- Run the
SmartBankApplication.javafile.
-
Access the Application:
- Open your web browser and navigate to
http://localhost:8080.
- Open your web browser and navigate to
If you have suggestions or find any bugs, please open an issue or submit a pull request.