My inspiration for this project came on Mar 10 2025, whiles withdrawing some cash from the ATM. I was fascinated with the entire backend process from slotting in your debit card, to receiving your cash. Why Java? You might ask. I wanted to face my fears (I have a phobia with Java) to go deep into core Java covering all the important concepts of java. I have always seen Java as a "hard" language. But with this project, my main objective is to make the concepts very simple and easy to understand, woven with intentional and eloquent documentation serving as a guide whiles navigating the code base. And again this domain (banking system) is something almost everyone can relate to.
This project involves designing and implementation of a console-based banking application for a fictitious bank, PBC (Premium Bank of Canada) with postgreSQL as the database. The system will focus on the core banking features such as:
- User Management
- Account Mangement
- Customer Management
- Customer Transactions
- Security & Logging
🔧 Java Concepts included in this project
- Core Java Concepts
- Object-Oriented Design and Patterns
- Data Modeling (Relational & Dimensional Data Modeling)
- JDBC with PostgreSQL for database operations
- Logging, Exception Handling
- Unit Testing
The main IDE used for this project was Apache NetBeans IDE 25
The main Relational Database Management System and client used for this project: