The project is a web application for managing clients' bank accounts. Customers can open accounts, deposit and withdraw money, view transaction history and receive reports on their finances. There are also functions for administrators who can manage accounts and users.
- Learn stack and queue
- Learn multithreading ? under question
- Use redis
- Consolidation of knowledge: JSP, Servlets, Hibernate H2 in memory
- Customers: Users who open accounts and manage their finances.
- Accounts: various types of accounts (savings, current, etc.).
- Transactions: deposit and withdrawal operations.
- Administrators: Users with system management rights.
- Registration and authentication of clients.
- Create, edit and delete invoices.
- Deposit and withdrawal of funds.
- View transaction history.
- Generating reports on accounts.
- User and account management for administrators.
- Java: the main programming language.
- Servlets and JSP: to create a web interface.
- H2 Database: for storing customer, account and transaction data.
- Redis: for caching data about user sessions and frequently requested reports.
- Multithreading: for transaction processing and data security.
- Trees: for organizing account and transaction data.
- Stack: to implement the history of operations (deposit/withdrawal of funds). Each operation is placed on the stack, and if necessary, you can cancel the last operation.
- Queue: for processing incoming transactions. Each transaction is queued, and a multithreaded handler retrieves and processes them.
Using threads to process transactions. Each time a client initiates a transaction, a new thread is created that processes that transaction, while ensuring data security through synchronization.
/bank-app
/src
/main
/java
/com/backend
/model
Account.java
Transaction.java
CardTransaction.java
User.java
/service
AccountService.java
TransactionService.java
UserService.java
/repository
AccountRepository.java
CardRepository.java
TransactionRepository.java
UserRepository.java
CrudRepository.java (interface)
/controller
HistoryPurchasesServlet.java
IndexServlet.java
LoginServlet.java
MakeCardServlet.java
RegisterServlet.java
TransferServlet.java
/util
ContextListener.java
ExceptionHandler.java
HibernateUtil.java
/resources
hibernate.cfg.xml
/webapp
/css
/scripts
/WEB-INF
web.xml
index.jsp
login.jsp
history_purchases.jsp
transfer.jsp
Redis will be used to cache data about user sessions and frequently requested reports. This will reduce the load on the H2 database and speed up data access.
The Financial Assistant project provides an opportunity to explore various aspects of Java development, including working with trees, multithreading, using databases and caching. This is a great opportunity to consolidate knowledge and skills in web application development.
- History of purchases